このページでは、要求-応答フローでの MQGet ノードの使用方法を紹介し、 ノードが入力メッセージを (設定した LocalEnvironment および入力パラメーターに応じて) 処理して 出力メッセージを構成する方法を説明しています。
2 つのアプリケーションの間での要求-応答フローによって、1 つのアプリケーションが他方にメッセージを要求できます。以下の図に、このタイプのフローを示します。
この図で、要求アプリケーションはメッセージを応答アプリケーションの「要求」入力キューに入れます。次に、応答アプリケーションはメッセージを処理し、要求アプリケーションからの元のメッセージで指定した「応答」キューに応答を送信します。
これらのアプリケーションのうちいずれか 1 つが置換または拡張され、他方が変更されない場合、2 つのアプリケーションの間でメッセージを変換する必要があります。 これを行う際、以下の図で示すように、両方の間にブローカーを挿入できます。
これでキュー別名または類似装置が構成され、要求アプリケーションが「要求応答の調整」ブローカー・メッセージ・フローの入力キューに要求メッセージを入れることができます。前の例では、このメッセージは応答アプリケーションの入力キューに直接入れられました。「要求応答の調整」フローは応答アプリケーションに対して適切なフォーマットにメッセージを変換して、その入力キューにメッセージを渡します。これはまた、元の要求アプリケーションの応答先キューの詳細を保管し、応答アプリケーションから受け取る応答メッセージに対してこれらを復元することで、要求アプリケーションに正しく送ることができます。
MQGet ノードはフロー内のどこにでも配置でき、その入力ターミナルにおいて、先行ノードから伝搬した入力ツリーを受け取ります。次に、構成済みの WebSphere MQ キューから取得したメッセージを使用して、結果ツリーを構築します。最後に、入力ツリーと結果ツリーを使用して出力ツリーを構築してから、これを出力先に伝搬します。出力先は warning ターミナルまたは failure ターミナルで、ノードの構成と Get 操作の結果に依存します。
フローの構成方法について詳しくは、Coordinated Request Reply サンプルにあるサンプルを参照してください。
先行ノードから伝搬した LocalEnvironment は、MQGet ノードによって読み取られ、更新されます。
${inputMQParmsLocation} は、「要求プロパティー」タブの MQGet ノード・プロパティーの Input MQ Parameters Location 内の値セットです。
${outputMQParmsLocation} は、「結果プロパティー」タブの MQGet ノード・プロパティーの Output MQ Parameters Location 内の値セットです。
これらのプロパティーについての詳細は、MQGet ノードを参照してください。
以下の図は、MQGet ノードが WebSphere MQ への呼び出しに 使用する MQMD を構成する方法について、さらに詳しく示しています。
以下の図は、直前のノードからの入力ツリーと MQGet 呼び出しからの結果ツリーとを結合して、 出力メッセージ・ツリーが構成される方法を示しています。
上で概要を示した規則に従ってメッセージ・ツリーが構成される方法を示すいくつかの例を、以下に示します。
以下のような組み立てのメッセージでは: | MQGet が戻すメッセージは以下のとおりです。 |
---|---|
|
![]()
![]() |
設定が以下の場合: | 結果として生じる出力メッセージの組み立ては、以下のようになります。 |
---|---|
|
|
|
このツリーは、${resultDataLocation} から ${outputDataLocation} への 割り当てを行った結果として、有効に生じたものです。 ソース・エレメントの値、および属性を含むすべての子は、コピーされています。 |
|
入力 MQ パラメーターのロケーションの下に MQMD エレメントがあったので、 このツリーには、OutputLocalEnvironment で get に使用される MQMD があります。 入力ツリーがコピーされなくても、MQMD エレメントが存在するために、 get に使用される MQMD は出力ツリーに配置されます。 |
|
この場合、copyMessage の設定値は最終的な出力ツリーには影響を与えません。 |