MQ最大重试次数和回退阈值

时间:2012-03-20 14:52:22

标签: jms message-queue ibm-mq

在WAS中,我创建了一个jms队列X.我还创建了另一个队列Y,在MQ中,我指定Y是X的后退队列。
现在对于X,如果我说最大重试次数:3并且回退阈值是2,这意味着在2次尝试之后如果消息没有被X使用,队列管理器将把消息放在Y上。在这种情况下,最大重试次数( 3)永远不会达到,因为它永远不会尝试第三次。而X的倾听者永远不会失败。 我的理解是否正确?

3 个答案:

答案 0 :(得分:4)

我对jms接口不太确定,但在本机WMQ中,队列管理器不会自动将消息重新排队到退出队列。应用程序可以查询backout_count,将其与backout_threshold进行比较,并将消息放入backout_queue。

您应该阅读“WebSphere Application Server如何处理有害消息” - http://www.ibm.com/developerworks/websphere/library/techarticles/0405_titheridge/0405_titheridge.html

阅读“最佳实践:WebSphere MQ共享队列和应用程序”也很重要,向下滚动到第6期 - http://www.ibm.com/developerworks/websphere/library/techarticles/0512_elkins/0512_elkins.html

答案 1 :(得分:0)

一旦达到目标队列上设置的回退阈值,MQ JMS实现就会将消息移动到退出队列。如果未指定回退队列,MQ JMS会尝试将消息放入死信队列。

据我所知,MQ JMS中没有重试概念。它可能与WAS / MDB有关。

答案 2 :(得分:0)

奇怪的是,如果应用程序决定将msg重新排队到退出队列,为什么在队列的属性中定义了退出阈值?不应该在应用程序中定义此阈值属性。

非常混乱。