0

我試圖診斷和修復可能是環境問題。我們有dev,SI和生產服務器,並且它們已經建立了幾年。其中一個環境已停止爲特定的JBM隊列工作,至今我一直無法弄清楚原因。JBoss消息隊列卡住,遠程接口和MDB消費者

我通過JMX控制檯看到的是消息在交付狀態中「卡住」。每次通過隊列發送消息時,MessageCount和DeliveringCount遞增。消費者的onMessage()被調用,它將調試消息輸出到log4j日誌中,但我認爲它不會完成請求。

這是一個持久的JBM設置。重新啓動JBoss服務器沒有幫助。清除或甚至刪除JBM_ *表不會有幫助。

jbm_msg_ref條目具有空的transaction_id,並且狀態爲'C',這似乎是通過我們使用的oracle-persistence-service.xml中的準備語句「ROLLBACK_MESSAGE_REF2」將其置於此狀態。

MDB消費者的MaxPoolSize是15,這也是消費者實例接收的消息的最大數量。 15之後,似乎隊列「填滿」,並且不再有任何可用的消費者MBeans接收消息。

我在尋找關於如何診斷和解決問題的想法或建議。我一直在Google上搜索並試用了幾天,結果很少。這個相當舊版本的JBM有很多JIRA票據,但其他相同設置的實例工作正常,所以我懷疑在這個服務器/數據庫組合中存在某種網絡,競態條件或env問題。

的JBoss Remoting的4.3.0.GA 的JBoss Messaging 1.4.0.SP3 JBoss的4.3.0.GA

謝謝!

回答

0

該問題被確定爲由Oracle數據庫問題引起。數據庫實例被退回來解決問題。數據庫性能很可能很慢,導致消息確認的時間問題。

相關問題