2012-02-27 167 views
2

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

“每个队列的退出队列”是为了简化问题而不是真正的用例。
我看到它没有工作,我很抱歉。
我对这里的答案的理解是,如果我有多个队列需要退出队列(从业务角度来看)。我可以采取两条路径:
1.实现一个基于内容的逻辑,能够设定原始队列。
2.使用BO队列每个队列。
这是正确的吗?

回答

1

如果消息登录到DLQ上,则会有一个前缀为死信头的消息。 DLH包含退货原因和原始队列。但是,退出到用户定义队列的消息没有这样的头文件。这个想法是,他们应该能够以原始格式重新排序而不需要任何转换。

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

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

所以你不必为提供搁置队列每输入队列,而是为共享同一数据所有者,它是从上下文中可以从消息是从哪里知道的队列相关群体提供他们退出。

UPDATE
回应你的修改,是的。在多个队列共享一个退出队列的情况下,某些东西必须能够分析消息内容以便重新排序到原始目的地。如果这不可行或不切实际,则撤销队列和原始队列之间的1:1关系是必要的。

+0

根据以上描述,请参阅原始问题中的更改。 – 2012-02-28 08:53:39

+0

感谢您的澄清。 – 2012-02-29 07:47:54