MQGet ノードがメッセージを処理する方法

MQGet ノードは、受信したメッセージをすべて処理します。

このトピックには、以下のセクションが含まれています。

メッセージの伝搬

  1. MQ メッセージ記述子ヘッダー (MQMD) が入力ツリー内にある場合、MQGet ノードはそれを使用します。 ない場合には、ノードはデフォルトの MQMD を作成します。
  2. ノードはまた、ノード・プロパティーに設定されている値に基づいて、デフォルトの MQ メッセージ取得オプション (MQGMO) 構造も作成します。 MQGMO が入力ツリー内にある場合、ノードはその内容を使用してデフォルトを変更します。
    変更の始まりMQGMO を組み込み、デフォルトを指定変更する場合、置き換えるすべてのオプションを指定する必要があります。例えば、このオプション・フィールドを MQGMO_CONVERT に設定すると、ワークベンチによって設定されたすべてのオプションがこの値によって指定変更されます。指定変更する MQGMO を使用しないと、WebSphere® Message Broker では以下の値が使用されます。
    • 「待機間隔」がゼロ以外の場合は MQGMO_WAIT が設定され、ゼロの場合には MQGMO_NOWAIT が使用されます。
    • 「トランザクション・モード」「はい」に設定されると、MQGMO_SYNCPOINT が使用されます。
    • 「トランザクション・モード」「いいえ」に設定されると、MQGMO_NOSYNCPOINT が使用されます。
    • 「トランザクション・モード」「自動」に設定されると、MQGMO_SYNCPOINT_IF_PERSISTENT が使用されます。
    • ノード・プロパティーでデフォルトで使用されるその他のオプションは MQGMO_COMPLETE_MSG だけです。「トランザクション・モード」「はい」または「いいえ」に設定されると、このオプションが設定されます。このオプションは、ブローカーが z/OS® で実行される場合には設定されません。
    • デフォルトで使用されるその他のオプションはありません。
    変更の終わり
  3. ノードは、WebSphere MQ に対して MQGet 呼び出しを行います。
  4. ノードは完了コード (CC) を分析して、以下のようにメッセージを適切なターミナルに伝搬します。
    OK
    ノードは、標準のメッセージ解析技法を用いて、出力 LocalEnvironment と出力メッセージ・ツリーを作成してから、メッセージを Out ターミナルに伝搬します。
    Warning
    ノードは、BLOB をメッセージ本体タイプとして用いて、出力 LocalEnvironment と出力メッセージ・ツリーを作成してから、メッセージを Warning ターミナル (接続されている場合) に伝搬します。 Warning ターミナルが接続されていない場合、伝搬は行われずにフローは終了します。
    Fail (メッセージなし)
    ノードは、入力ツリーをコピーすることによって、出力 LocalEnvironment と出力メッセージ・ツリーを作成してから、メッセージを No Message ターミナル (接続されている場合) に伝搬します。 No Message ターミナルが接続されていない場合、伝搬は行われません。 No Message ターミナルに伝搬される出力メッセージは、「生成モード」プロパティー、「メッセージのコピー」または「ローカル環境のコピー」プロパティーの値に従って、入力メッセージのみで構成されます。
    Fail (その他)
    ノードは、メッセージを Failure ターミナルに伝搬します。 Failure ターミナルに接続していない場合は、ブローカーが例外をスローし、その例外を処理できる直近のノードに制御を戻します。 詳しくは、メッセージ・フローのエラー処理を参照してください。

以下の図は、この処理を示しています。

このフロー・ダイアグラムに図示されているプロセスについては、この前の説明文で説明されています。

キューはブラウザーでは開かないので、MQGMO_BROWSE オプションの使用はサポートされていません。

OutputLocalEnvironment の構成

  1. MQGet ノードの「生成モード」プロパティーを、「LocalEnvironment」が含まれないオプションに設定すると、このノードは、入力 LocalEnvironment ツリーを出力 LocalEnvironment ツリーにコピーします。

    このコピーが行われる場合には、 出力 LocalEnvironment ツリーに対してこのノードで行われる更新はダウンストリームに伝搬されません。

  2. 「ローカル環境のコピー」プロパティーが「なし」以外のオプションに設定されている場合、ノードは入力 LocalEnvironment ツリーを出力 LocalEnvironment ツリーにコピーします。
  3. 出力データ位置が出力 LocalEnvironment ツリーを指す場合、ノードはそのツリー内の変更内容を結果ツリーからコピーすることによって適用します。
  4. LocalEnvironment ツリーが伝搬されます。

以下の図は、この処理を示しています。

このフロー・ダイアグラムに図示されているプロセスについては、この前の説明文で説明されています。

出力メッセージを構成する

  1. MQGet ノードの「生成モード」プロパティーを、「メッセージ」が含まれないオプションに設定すると、このノードは、入力メッセージ・ツリーを出力メッセージ・ツリーにコピーします。 ステップ 5 に進みます
  2. 「出力データのロケーション」プロパティーを OutputRoot に設定すると、ノードは、結果ツリーから出力メッセージ・ツリー全体を作成します。 ステップ 5 に進みます
  3. 「メッセージのコピー」プロパティーが「なし」以外の値に設定されている場合、ノードは入力メッセージ・ツリーを出力メッセージ・ツリーにコピーします。
  4. 「出力データのロケーション」プロパティーが、出力メッセージ・ツリーの一部を指している場合、ノードは、そのツリー内での変更を、「結果データのロケーション」プロパティーで定義されている地点で結果ツリーからコピーすることによって適用します。
  5. メッセージ・ツリーが伝搬されます。

以下の図は、この処理を示しています。

このフロー・ダイアグラムに図示されているプロセスについては、この前の説明文で説明されています。

この処理をメッセージ・フロー内でインプリメントする方法の例は、MQGet ノードを使用する要求-応答シナリオを参照してください。

関連概念
メッセージ・フローの概要
関連資料
MQGet ノードを使用する要求-応答シナリオ
MQGet ノード
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

ac34690_