MQGet ノードを使用する要求-応答シナリオ

要求-応答フローで MQGet ノードが使用されるシナリオについて、および設定した LocalEnvironment ツリーおよび入力パラメーターの両方の内容に応じて、ノードが入力メッセージを処理して出力メッセージを構成する方法に関して、説明をお読みください。

要求-応答フローは、Point-to-Point アプリケーションの特殊な形式です。こうしたアプリケーションについての一般的な説明は、アプリケーション通信モデルを参照してください。 要求-応答メッセージ・フローの例については、以下のサンプルを参照してください。 サンプルは、Message Brokers Toolkit と統合されているインフォメーション・センターを使用する場合にのみ表示できます。

(要求-応答シナリオをインプリメントしたフローを含む) メッセージ・フロー内のいずれの場所にでも MQGet ノードを含めることができます。このノードは、メッセージ・フロー内のそれより前にあるノードから、入力ターミナル上の入力メッセージを受信します。MQGET 呼び出しを発行して、プロパティー内で構成された WebSphere® MQ キューからメッセージを受信してから、結果メッセージ・ツリーを作成します。最後に、入力ツリーと結果ツリーを使用して出力ツリーを作成してから、これを Output、Warning、または Failure ターミナルに伝搬します。出力先はノードの構成と MQGET 操作の結果に依存します。

MQGet ノードによる LocalEnvironment の処理方法

MQGet ノードは、前のノードから伝搬される LocalEnvironment ツリーを調べます。 このノードは以下のように、MQGMO (MQ メッセージ取得オプション) と MQMD (MQ メッセージ記述子ヘッダー) に関連する内容を使用して、LocalEnvironment を更新します。

  • ノードは、${inputMQParmsLocation}.MQGMO.* から MQGMO 構造を読み取ります。
  • ノードは WebSphere MQ 完了コードと理由コードを ${outputMQParmsLocation}.CC および ${outputMQParmsLocation}.RC にコピーします。
  • ${inputMQParmsLocation}.MQGMO が入力ツリー中に存在する場合には、ノードは MQGET 呼び出しに使用される完全な MQGMO を ${outputMQParmsLocation}.MQGMO に書き込みます。
  • MQGET 呼び出しに渡された MQMD (入力メッセージに指定された値またはノードによって生成された値を含む) を、ノードは ${inputMQParmsLocation}.MQMD に書き込み、既存の内容は削除されます。

「要求プロパティー」タブの MQGet ノード・プロパティーの「入力 MQ パラメーターのロケーション」内で値を ${inputMQParmsLocation} に設定します。

「結果プロパティー」タブの MQGet ノード・プロパティーの「出力 MQ パラメーターのロケーション」内で値を ${outputMQParmsLocation} に設定します。

これらのプロパティーの詳細は、MQGet ノードを参照してください。

要約すると、以下のようになります。
${inputMQParmsLocation}
  • QueueName: MQGet ノードの 「キュー名」プロパティーに対する指定変更 (オプション)
  • InitialBufferSize: MQGet ノードの 「初期バッファー・サイズ」プロパティーに対する指定変更 (オプション)
  • MQGMO.*: MQGet ノードが使用する MQGET メッセージ・オプション (オプション)。
${outputMQParmsLocation}
  • CC: MQGET 呼び出し完了コード
  • RC: MQGET 呼び出し結果コード
  • MQGMO.*: ${inputMQParmsLocation} 内に存在する場合に使用される MQGET メッセージ・オプション
  • MQMD: 受信メッセージの未解析 MQ メッセージ記述子1
MQMD を解析することができます (たとえば、ESQL を使用して)。ただし、${outputMQParmsLocation} は LocalEnvironment.MQ.GET です。
DECLARE ptr REFERENCE TO OutputLocalEnvironment.MyMQParms;
CREATE FIRSTCHILD OF ptr DOMAIN('MQMD') PARSE(InputLocalEnvironment.MQ.GET.MQMD)

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

  • デフォルト MQMD が準備されます。 MQMD の詳細については、WebSphere MQ バージョン 6 インフォメーション・センター・オンラインの「アプリケーション・プログラミング・リファレンス」セクション、あるいはWebSphere MQ ライブラリー Web ページWebSphere MQ バージョン 5.3 ブックを参照してください。
  • 入力 MQMD を指定しない場合、デフォルトの MQMD が使用されます。
  • 入力 MQMD を指定する場合、以下の変更の後でデフォルトの MQMD が使用されます。
    • プロパティー「完全入力 MQMD の使用」を設定すると、提供したすべての MQMD フィールドが、入力 MQMD からデフォルトの MQMD にコピーされます。
    • プロパティー「完全入力 MQMD の使用」を設定しないで、プロパティー「メッセージ ID で取得」または 「相関 ID で取得」を選択すると、それぞれの ID が入力 MQMD からデフォルトの MQMD にコピーされます。

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

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

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

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

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

この例では、MQGet ノード・プロパティーは以下の表のように構成されます。
プロパティー アクション
メッセージのコピー メッセージ全体のコピー
生成モード メッセージ
出力データのロケーション OutputRoot.XMLNS.A
結果データのロケーション ResultRoot.XMLNS.C
The MQGet ノードは、以下の順序で出力ツリーを構成します。
  1. 入力ツリーの全体が出力ツリーにコピーされます。 それには、子 A および A の子 B を含む XML ブランチも含まれます。
  2. 結果ツリーから、XML ブランチの子 C および C の子 D が出力ツリーの位置 OutputRoot.XMLNS.A に入れられます。A の以前の内容 (値および子) は失われて、C の内容に置き換えられます。それには、すべての値および子 (この例では子 D) が含まれます。
  3. 出力ツリーの位置の名前は、A のままです。

以下の図は、この動作を示しています。

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

前述の規則に従って MQGet ノードが構成するメッセージ・ツリーの例については、MQGet ノードのメッセージ・ツリーの例を参照してください。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:43:03

ac34680_