WebSphere MQ Backout Queue中Message的输入队列

时间:2012-02-27 10:09:49

标签: ibm-mq

在WebSphere MQ设置中,我有几十个队列。 为了避免有害消息,我正在建立一个退出队列。 一旦导致退出的问题得到解决(在这种情况下),我希望能够将消息放回原始输入队列。 是否有任何元数据可以帮助我理解消息的来源,还是我必须为每个队列创建一个退出队列?

“每个队列的退出队列”是为了简化问题,而不是真实的用例 我觉得它没用,我道歉 我对你的答案的理解是,在我有多个队列需要退出队列的情况下(从业务角度来看)。我可以走两条道路:
1.实现一种逻辑,该逻辑将基于内容,能够设定原始队列 2.每个队列使用BO队列 这是对的吗?

1 个答案:

答案 0 :(得分:1)

如果消息落在DLQ上,则会有一个死信头标。 DLH包含退出原因和原始队列。但是,备份到用户定义的队列的消息没有此类标头。我们的想法是,它们应该能够以原始格式重新排队,而不需要任何转换。

但是,在使用一个公共回退队列和为每个应用程序队列创建回退队列之间存在中间立场。对于初学者,回复队列通常不需要回退队列。用于点对点接口的服务端点队列和队列通常需要回退队列,但这些通常是基于每个应用程序而不是每个队列。例如,在5个不同端点队列上提供服务的应用程序可能具有用于这5个服务端点队列的公共回退队列。然后可以查看消息的内容,以告知它来自哪个端点队列。

这种方法还解决了来自许多不同应用程序的消息最终在DLQ或相同的退出队列中的问题。在这种情况下,存在一个问题,即应该允许数据所有者重新排队消息,因为可能会意外地(或故意地)影响另一个数据所有者的消息。

因此,您不必为每个输入队列提供回退队列,而是为共享相同数据所有者的相关队列组提供它们,并且可以从上下文中获知消息被撤消的地方。

<强>更新
在回复您的修订时,是的。在多个队列共享一个回退队列的情况下,某些东西必须能够分析消息内容以便重新排队到原始目的地。如果这不可行或不实用,那么退出队列与原始队列之间的关系是必要的。