2012-02-15 40 views
1

假设我有一个由MQ队列提供的应用程序。当应用程序收到包含错误的消息时,应用程序本身会将收到的消息推送到某个无效的消息队列中。在Websphere MQ消息中显示拒绝原因

我的问题是:推荐的方法是让接收应用程序在推送到无效消息队列上的消息中追加失败/拒绝原因?一些解决方案浮现在脑海中,但我不能确定哪一个被认为是“最佳实践”:

  1. 使用标准的头字段
  2. 添加自定义标题
  3. encapsualting在另一个消息(AB)消息

回答

3

如果所有你需要的是放置一个原因代码的消息中,使用MQMD.Feedback场与standard reason codes之一。在WMQ v7.0或更高版本中,应用程序可以设置任意数量的message properties,然后使用JMS语义和本机WMQ API调用读取它们。由您决定命名应用程序定义的属性的分类。

如果消息被重新发送到死信队列而不是应用程序拥有的撤销队列,通常会在其前面加上Dead Letter HeaderMQDLHstructure包含描述消息被重新排列的原因码的字段。通常,应用程序应避免使用DLQ来支持应用程序拥有的队列。当应用程序确实使用DLQ时,他们应该有权在那里放置消息,但不能从该队列中检索消息是正常的。这是因为它是全系统资源,来自不同应用程序的消息可能会落在那里。通常,管理应用程序或具有较高访问权限的人员负责裁决和处理系统DLQ上的消息。