0

2 つの jms サーバーを持つクラスター化された weblogic 10.3.4 ドメインがあり、それぞれがモジュール内にデプロイされた UDQ を持っています。任意の時点で、これらのキューの 1 つだけが約 5000 の jms メッセージ (仮想の数) を保持します。

コンシューマー側には、これらのキューに接続して 5000 個のメッセージすべてを消費するクライアント コードがあります。このコードが機能する方法は、t3 プロバイダー URL のコンマ区切りリストを使用することです。ここでの問題は、クライアントがメッセージを持たない jms サーバーへの接続を取得した場合、処理するメッセージがないと見なすことです。

すべてのプロバイダーに接続し、キューのメッセージがなくなるまで 100 のバッチでメッセージを消費するために活用できる構成設定またはコード ロジックはありますか?

4

1 に答える 1

0

これはあなたが望むよりも少し強引ですが、次のことができます。

  1. t3 接続 URL 文字列のコピーを取得します。
  2. t3 URL に対して通常の接続を実行します。最初のn 個の URL をスキップする場合、それはそれらがオフラインであることを意味します。
  3. 接続からのすべてのメッセージを消費します。
  4. 切断します。
  5. 接続したばかりの URL とその前のすべての URL を削除します。
  6. URL が残っている場合は、#2 に進みます。それ以外の場合は、#1 に進みます。

その他の考慮事項:

  • #6 の後に一時停止を追加することをお勧めします。
  • リスト内のすべての URL の接続を取得し、それぞれのメッセージ リスナーを開始するだけです。
于 2012-05-08T14:46:19.670 に答える