2012-03-20 35 views
0

在WAS中,我創建了一個jms隊列X.我還創建了另一個隊列Y,並且在MQ中指定Y是X的退出隊列。
現在對於X假設最大重試次數爲3次,退出閾值爲2,即2次嘗試後如果消息未被X消耗,隊列管理器將把消息放在Y上。在這種情況下,最大重試次數(3)永遠不會因爲它不會再嘗試第三次。 X的聽衆永遠不會失望。 我的理解是否正確?MQ最大重試次數和退出閾值

回答

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

0

MQ JMS實現可以在達到目標隊列上設置的回退閾值後執行將消息移回回退隊列的工作。如果未指定退出隊列,則MQ JMS會嘗試將該消息放入死信隊列中。

就我所知,MQ JMS中沒有重試概念。這可能與WAS/MDB有關。

0

奇怪的是,如果應用程序決定將msg重新排隊以退出隊列,爲什麼退出閾值是在隊列屬性中定義的?不應該在應用程序中定義此閾值屬性。

非常混亂。

相關問題