私は環境問題の可能性を診断して修正しようとしています。開発サーバー、SIサーバー、本番サーバーがあり、それらは数年間同じようにセットアップされています。特定のJBMキューで環境の1つが機能しなくなりましたが、これまでのところ、その理由を理解できていません。
JMXコンソールで確認しているのは、メッセージが配信状態で「スタック」していることです。MessageCountとDeliveringCountは、メッセージがキューを介して送信されるたびにインクリメントします。コンシューマーのonMessage()が呼び出され、デバッグメッセージがlog4jログに出力されますが、リクエストが完了するとは思いません。
これは永続的なJBMセットアップです。JBossServerを再起動しても効果はありません。JBM_ *テーブルをクリアしたり、削除したりしても役に立ちません。
jbm_msg_refエントリのtransaction_idはnullで、状態は「C」です。これは、使用するoracle-persistence-service.xmlのプリペアドステートメント「ROLLBACK_MESSAGE_REF2」によってこの状態になっているようです。
MDBコンシューマーのMaxPoolSizeは15であり、これはコンシューマーインスタンスによって受信されるメッセージの最大量でもあります。15を過ぎると、キューが「いっぱい」になり、メッセージを受信するために使用できるコンシューマーMBeanがなくなります。
問題を診断して修正する方法についてのアイデアや提案を探しています。私は数日間グーグルで何かを試してきましたが、ほとんど結果がありませんでした。このかなり古いバージョンのJBMにはたくさんのJIRAチケットがありますが、同じセットアップの他のインスタンスは正常に機能するため、この1つのサーバー/ DBコンボに何らかのネットワーク、競合状態、または環境の問題があると思われます。
JBoss Remoting 4.3.0.GA JBoss Messaging 1.4.0.SP3 JBoss 4.3.0.GA
ありがとう!