2013-12-13 54 views
0

JMS消息有時會移動到DLQ而不會引發任何異常。 使用的Jboss服務器實例是4.3.0.GA_CP04_EAP。移動到DLQ的JMS消息

我們使用的是一個MDB偵聽上隊列中的進來的消息,當它接收它更新數據庫的任何消息和Sens在一個transaction.Transaction電子郵件是CMT。現在

,正在發生的事情是,有時mesages不被消費者拿起他們在DLQ結束。雖然從JMX控制檯消息計數中我可以看到消息曾經到達隊列A但是然後進入DLQ。

這種情況發生間歇性和不扔在日誌中的任何異常無論是。

什麼似乎工作大部分時間被重新啓動服務器。不知道幕後發生了什麼。

** 29天后,同樣的問題已經返回。 這遵循一種模式,但隨着每次重啓而變化。 有2個羣集serevrs也負載平衡,P1和P2。 前兩封電子郵件發送並由P1-Email處理髮送 下一封電子郵件Resquest發送至P2-Email發送 接下來發送兩封電子郵件並由P1-Email處理髮送 下一封電子郵件resquest發送至P2-Email NOT SENT 和循環重複

我已經找到了解決方法,這個揮之不去的問題,由於在http://leakfromjavaheap.blogspot.in/2013/05/when-dead-letter-queue-becomes-zombie.html

DLQ監聽器被設置爲監聽任何傳入的消息中發現的有用的信息,並把他們帶回他們的目的地如果在DLQ上找到它們中的任何一個。 此外,考慮到任何消息從DLQ傳輸到隊列並以無限循環返回到DLQ的情況,設置一個計數器以檢查消息到達DLQ之前的次數,如果它超過了限制,則它被置於永久DLQ(DLQ DLQ)。 自那時起,應用程序一直運行順利。

回答

0

如果在消息發送到DLQ可以提供詳細日誌信息,將更好地深入到這個問題。

0

日誌沒有包含任何有用的信息;甚至沒有例外給出提示。 最後,將本地tx數據源更改爲xa數據源,結果很成功。想知道它背後是否有原因。