要求-応答フロー内での MQGet ノードの使用

上記を実現するために MQGet ノード内で行われる処理について詳しくは、 MQGet ノードのメッセージ処理を参照してください。

概要

このページでは、要求-応答フローでの MQGet ノードの使用方法を紹介し、 ノードが入力メッセージを (設定した LocalEnvironment および入力パラメーターに応じて) 処理して 出力メッセージを構成する方法を説明しています。

フローの構成方法について詳しくは、整合要求応答 (Coordinated Request Reply)にあるサンプルを参照してください。

LocalEnvironment の使用方法

LocalEnvironment は、MQGet ノードによって読み取られ、更新されます。

  • MQGMO 構造は、${inputMQParmsLocation}.MQGMO.* から読み取られます。
  • MQ の戻りコードおよび理由コードは、${outputMQParmsLocation}.CC および .RC に入れられます。
  • MQGMO ツリーがローカル環境に存在する場合、 それはノードが使用する値によって更新されて、ダウンストリームに伝搬されます。
  • ${inputMQParmsLocation}.MQMD が存在する場合、MQGET 呼び出し自体に 渡された MQMD (入力メッセージに指定された値またはノードによって生成された値を含む) は、 そのロケーションに配置され、そのロケーションにすでに存在していたものは削除されます。
要約すると、以下のようになります。
${inputMQParmsLocation}
  • QueueName
  • InitialBufferSize
${outputMQParmsLocation}
  • CC
  • RC
both
  • MQGMO.*
  • MQMD

MQGet 呼び出し用の MQMD が構成される方法

  • 入力 MQMD を指定しない場合、デフォルトの MQMD が使用されます。
  • 入力 MQMD を指定した場合、それは以下の 2 つの方法のどちらかで使用されます。
    • 属性「完全入力 MQMD の使用」が設定されている場合、入力 MQMD の全体が使用されます。
    • 属性「完全入力 MQMD の使用」が設定されていない場合、デフォルトの MQMD が準備されて、チェック・ボックス「messageID」または「correlID」 が設定されている場合は入力 MQMD からそれぞれの ID がそこにコピーされます。

以下の図は、MQGet ノードが WebSphere MQ への呼び出しに 使用する MQMD を構成する方法について、さらに詳しく示しています。

この図については、上記のテキストで説明されています。

出力メッセージ・ツリーが構成される方法

以下の図は、直前のノードからの入力ツリーと MQGet 呼び出しからの結果ツリーとを結合して、 出力メッセージ・ツリーが構成される方法を示しています。

この図については、上記のテキストで説明されています。

ここに例を示します。それぞれは以下のとおりです。
copyMessage
copyEntireMessage
generateMode
message
outputDataLocation
OutputRoot.XML.A
resultDataLocation
ResultRoot.XML.C
この例で、出力ツリーは以下の順序で構成されます。
  1. 入力ツリーの全体が出力ツリーにコピーされます。 それには、子 A および A の子 B を含む XML ブランチも含まれます。
  2. 結果ツリーから、XML ブランチの子 C および C の子 D が出力ツリーの位置 OutputRoot.XML.A に入れられます。 A の以前のコンテンツ (値および子) は失われて、C のコンテンツに置き換わります。 それには、すべての値および子 (この例では子 D) が含まれます。
  3. 出力ツリーの位置の名前は、A のままです。
以下の図は、これを視覚的に示しています。

この図については、上記のテキストで説明されています。

メッセージ・ツリーの例

上で概要を示した規則に従ってメッセージ・ツリーが構成される方法を示すいくつかの例を、以下に示します。

表 1. Input、LocalEnvironment、および MQGet の例
以下のような組み立てのメッセージでは: MQGet が戻すメッセージは以下のとおりです。
InputRoot
MQMD
{input message mqmd}
MQRFH2
{input message mqrfh2}
XMLNS
{input message body}
InputLocalEnvironment
MQ
GET
MQGMO
MatchOptions = MQMO_MATCH_CORREL_ID
MQMD (子はなし)
MyData
MQMD
{input mqmd} (CorrelID = {バイナリーで表記した正しい相関 ID})
ResultRoot
MQMD
{result message mqmd}
MQMD
{result message mqmd}
XML
{result message body}
表 2. 例の設定に従った結果として生じる出力メッセージ
設定が以下の場合: 結果として生じる出力メッセージの組み立ては、以下のようになります。
inputMQMDLocation
InputLocalEnvironment.MyData.MQMD
copyMessage
copyEntireMessage
copyLocalEnv
copyEntireLocalEnvironment
generateMode
messageAndLocalEnvironment
outputDataLocation
InputLocalEnvironment.MyData.ReturnedMessage
OutputRoot
MQMD
{input message mqmd}
MQRFH2
{input message mqrfh2}
XMLNS
{input message body}
OutputLocalEnvironment
MQ
GET
MQGMO
{mqgmo used for get}
MQMD
{mqmd used for get}
CC = 0
RC = 0
MyData
MQMD
{input mqmd} (CorrelID = {バイナリーで表記した正しい相関 ID})
戻りメッセージ
MQMD
{result message mqmd}
MQRFH2
{result message mqrfh2}
XML
{result message body}
resultDataLocation
ResultRoot.XML
OutputRoot
MQMD
{input message mqmd}
MQRFH2
{input message mqrfh2}
XMLNS
{input message body}
OutputLocalEnvironment
MQ
GET
MQGMO
{mqgmo used for get}
MQMD
{mqmd used for get}
CC = 0
RC = 0
MyData
MQMD
{input mqmd} (CorrelID = {バイナリーで表記した正しい相関 ID})
戻りメッセージ (ResultRoot.XML からの属性および値を含む)
{result message body}

このツリーは、${resultDataLocation} から ${outputDataLocation} への 割り当てを行った結果として、有効に生じたものです。 ソース・エレメントの値、および属性を含むすべての子は、コピーされています。

copyLocalEnv
none
OutputRoot
MQMD
{input message mqmd}
MQRFH2
{input message mqrfh2}
XMLNS
{input message body}
OutputLocalEnvironment
MQ
GET
MQGMO
{mqgmo used for get}
MQMD
{mqmd used for get}
CC = 0
RC = 0
MyData
戻りメッセージ (ResultRoot.XML からの属性および値を含む)
{result message body}

入力 MQ パラメーターのロケーションの下に MQMD エレメントがあったので、 このツリーには、OutputLocalEnvironment で get に使用される MQMD があります。 入力ツリーがコピーされなくても、MQMD エレメントが存在するために、 get に使用される MQMD は出力ツリーに配置されます。

outputDataLocation
<blank>
copyLocalEnv
copyEntireLocalEnvironment
OutputRoot
MQMD
{result message mqmd}
MQRFH2
{result message mqrfh2}
XMLNS
{result message body}
OutputLocalEnvironment
MQ
GET
MQGMO
{mqgmo used for get}
MQMD
{mqmd used for get}
CC = 0
RC = 0
MyData
MQMD
{input mqmd} (CorrelID = {バイナリーで表記した正しい相関 ID})

この場合、copyMessage の設定値は最終的な出力ツリーには影響を与えません。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2005 Last updated: 11/07/2005
ac34680_