.net 2.0 用の同じバージョンの .Net TIBCO.EMS.dll で TIBCO JMS 4.3.3 を使用しています。キューにメッセージがスタックするという大きな問題があります。トピックからブリッジされた 1 つのキューからメッセージを消費しています。私たちのアプリケーションは、存続期間の長いセッションを持つ複数のコンシューマーを作成します。それぞれの存続期間の長いセッションには、1 つのコンシューマーがあります。セッションとコンシューマはメイン スレッドで作成されますが、コンシューマ自体は別のスレッドでタイムアウトのある Receive() メソッドを使用してメッセージを消費しています。各コンシューマーには、それが機能する独自のスレッドがあります。受信が成功するたびに、メッセージを受信したコンシューマーを作成したセッションで Commit を呼び出します (見苦しい言い回しで申し訳ありません)。
問題は、このキューが (トピックからのブリッジによって) いっぱいになると、多くのメッセージがスタックすることです。どのスレッドもメッセージを受信できず、キューをブラウズしていることがはっきりとわかり、アプリケーションを再起動すると再処理されます。また、TIBCO コンソールで「show consumer」を実行すると、メッセージがスタックしたときに、送信されたメッセージの数が確認されたメッセージの数と等しくないことがわかります。
完全に道に迷っています。このキューのプリフェッチを有効または無効にしようとしました。どちらのソリューションも機能しませんでした。受信タイムアウトを 1 秒から 1 分に増やしましたが、保留中のメッセージの数が境界を超えている場合でも、メッセージがスタックします。
ヘルプ、ヒント、または提案は大歓迎です。