Java EE コンテナー内で JMS を使用して同期要求応答パターンを実装しようとしています。シーケンスは次のようになります
- ブラウザーが Web アプリケーションにデータを要求します。これはブロッキング リクエストです (スレッド T1 など)。
- 上記の要求を満たすには、Web アプリがリモート Web サービスに接続する必要があります。したがって、リクエストを形成し、それをキューに入れます (reply-to キューも宣言されています)。
- リモート サービスは要求を処理し、手順 2 で宣言された応答先キューに応答を配置します。
- 応答は Web アプリの応答先 Q から読み取られ、ステップ 1 のブロッキング スレッド T1 で使用できるようになります。
T.Rob が提供する回答に従いました ( MQ サーバーの応答メッセージを正しい要求に一致させる方法) 。
QueueReceiver queueReceiver =
session.createReceiver(destination, "JMSCorrelationID='customMessageId'");
TextMessage receivedMessage = (TextMessage)queueReceiver.receive( 15000 );
上記のソリューションは、複数の同時リクエストが入ってくる可能性のある Java EE コンテナー (Web モジュール) で実行する場合に有効ですか?