WebSphere MQ によるアプリケーション間の接続

アプリケーション間の接続は、通常、多様なアプリケーション・サブシステムの集まりを統合するために使用されます。 アプリケーションの統合を容易にするために、WebSphere® MQ は、アプリケーションを相互接続する手段を備えています。

要求/応答」通信方式を使用すると、1 つのアプリケーションが別のアプリケーションのサービスを要求できます。 これを行うための 1 つの方法は、リクエスターがサービス・プロバイダーにメッセージを送信し、何らかの作業を実行することを要求します。 作業の完了後、プロバイダーは、リクエスターに結果を送信して返すのか、それとも完了の確認だけを返すのかを決定できます。 このリクエスターが応答を受け取るまで待機してから続行する場合を除き、 WebSphere MQ は、その要求に応答を関連付ける方法を備えている必要があります。

WebSphere MQ には、リクエスターとプロバイダー間で交換するメッセージを相関させるための相関 ID があります。 リクエスターは、既知の相関 ID を使用して、メッセージにマークを付けます。 プロバイダーは、同じ相関 ID を使用して、その応答にマークを付けます。 リクエスターは、関連付けられた応答を取り出すため、キューからメッセージを受け取るときにその相関 ID を提供します。 一致する相関 ID を持つ最初のメッセージが、リクエスターに返されます。

次の SQL SELECT ステートメントは、相関 ID が CORRID1 のポリシー MYPOLICY を使用して、ストリング「Msg with corr id」で構成されるメッセージをサービス MYSERVICE に送信します。 ポリシー MYPOLICY の SYNCPOINT 属性が「N」であるため、WebSphere MQ はメッセージをキューに追加します。 ユーザーが COMMIT ステートメントを使用する必要はありません。
  VALUES MQSEND('MYSERVICE', 'MYPOLICY', 'Msg with corr id', 'CORRID1')
     
次の SQL ステートメントは、ポリシー MYPOLICY を使用して、サービス MYSERVICE で指定されたキューから、ID CORRID1 に一致する最初のメッセージを受信します。 SQL ステートメントは、VARCHAR(32000) ストリングを返します。 この相関 ID を持つメッセージがない場合、NULL 値が返されて、キューは変更されません。
  VALUES MQRECEIVE('MYSERVICE', 'MYPOLICY', 'CORRID1')