集約フローでの制御メッセージの使用

始める前に:

このタスクを完了するには、以下のタスクを完了している必要があります。

以下のトピックは、制御メッセージを送信するために必要なアクションを説明しています。 WebSphere Message Broker では、デフォルトの動作は、制御メッセージを送信するための AggregateControl ノードと AggregateReply ノードとの間の接続は無視されるというものです。 この構成により、パフォーマンスは最適化され、制御メッセージの前に応答メッセージが AggregateReply ノードによって受信されるという可能性はなくなります。 制御メッセージは、集約が正しく動作するために必須というわけではありません。 ただし、集約フローに制御メッセージを送信することが引き続き必要な場合は、必須ということもあり得ます。 WebSphere Message Broker バージョン 6.0 で作成されたメッセージ・フローに制御メッセージを送信するには、このトピックの制御メッセージを送信するためのメッセージ・フローの構成および制御メッセージを送信するためのブローカー環境の構成を参照してください。

バージョン 5.0 でメッセージ・フローを作成しており、制御メッセージを使用するようにそれらを構成済みであり、制御メッセージの使用を継続したい場合は、このトピックの制御メッセージを送信するためのブローカー環境の構成を参照してください。 製品の以前のバージョンで作成された AggregateControl ノードと AggregateReply ノードとの間の接続は、このタスクを完了しない限り、バージョン 6.0 では無視されます。

集約の作業例 (制御メッセージを使用しない) については、Airline Reservations サンプルを参照してください。

制御メッセージを送信するためのメッセージ・フローの構成

AggregateControl ノードから AggregateReply ノードに制御メッセージを送信するためにメッセージ・フローを構成するには、次のようにします。
  1. 「ブローカー・アプリケーション開発」パースペクティブに切り替えます。
  2. 単一のメッセージ・フローにファンアウトおよびファンイン・フローを作成した場合、以下のようにします。
    1. 集約メッセージ・フローを開きます。
    2. 関連付けを行うには、AggregateControl ノードの制御ターミナルを AggregateReply ノードの制御ターミナルに接続します。

    これは、2 つの集約ノード間の直接接続と呼ばれます。

  3. ファンアウト・メッセージ・フローとファンイン・メッセージ・フローを別々に作成した場合は、以下のようにします。
    1. ファンアウト・メッセージ・フローを開きます。
    2. 集約ファンアウト・フローの作成で説明されているように、AggregateControl ノードを構成します。
    3. この段階では、制御メッセージを含む有効な出力メッセージを作成する Compute ノードを構成できます。 例えば、制御メッセージを MQOutput ノードに渡す場合、MQMD をメッセージに追加するように Compute ノードを構成し、そのヘッダー内の必須フィールドを完成させてください。 例えば、次の ESQL をコーディングすることができます。
      変更の始まり
      SET OutputRoot.MQMD.StrucId = MQMD_STRUC_ID;
      SET OutputRoot.MQMD.Version = MQMD_CURRENT_VERSION;
      SET OutputRoot.MQMD.Format = MQFMT_STRING;
      変更の終わり
    4. 制御メッセージの中間宛先を表す出力ノードを構成します。 例えば、制御メッセージを中間 WebSphere MQ キューに送信したい場合には、MQOutput ノードを組み込み、基本プロパティー「キュー・マネージャー名」および「キュー名」内のターゲット・キューを識別します。
    5. AggregateControl ノードの制御ターミナルを Compute ノードの in ターミナルに、Compute ノードの out ターミナルを、制御メッセージの中間宛先を表す出力ノードの in ターミナルに接続します。
    6. ファンイン・メッセージ・フローを開きます。
    7. 集約ファンイン・フローの作成で説明されているように、応答メッセージを受信するように 1 つの入力ノードを構成します。さらにこの入力ノードは、AggregateControl ノードから制御情報を受信します。 例えば、中間 WebSphere MQ キューから応答および制御メッセージを受信するように MQInput ノードの基本プロパティー「キュー名 」を設定します。
    8. 入力ノードの後、および AggregateReply ノードの前に、ファンイン・フローでのスレッド不足の回避で説明されているとおりに、フィルター・ノードをファンイン・フローに追加します。
    9. 入力ノードの out ターミナルを、Filter ノードの in ターミナルに接続します。
    10. Filter ノードの out ターミナルを、AggregateReply ノードの制御ターミナルおよび in ターミナルに接続します。

    これは、2 つの集約ノード間の間接接続と呼ばれます。

制御メッセージを送信するためのブローカー環境の構成

WebSphere Message Broker バージョン 6.0 では、デフォルトとして、AggregateRequest ノードの制御ターミナルから AggregateReply ノードへのすべての接続は無視されます。 これらの接続をアクティブにするには、ブローカー環境内で MQSI_AGGR_COMPAT_MODE 環境変数を作成します。 デフォルトではこの環境変数は存在しません。 環境変数の存在は、環境変数が設定されている値に関係なく、AggregateControl ノードからの接続がアクティブであることを意味します。

MQSI_AGGR_COMPAT_MODE 環境変数が作成されていない場合、集約ファンアウト・フローのデフォルトの動作が使用されます。 AggregateControl ノードの制御ターミナルが、直接的または間接的に AggregateReply ノードの IN ターミナルに接続されている場合、この接続は無視され、制御メッセージは送信されません。

MQSI_AGGR_COMPAT_MODE 環境変数が作成されている場合、集約ファンアウト・フローのデフォルトの動作は使用されず、AggregateControl ノードから AggregateReply ノードに制御メッセージを送信できます。 AggregateControl ノードの制御ターミナルが、集約ファンアウト・フローの作成で説明されているとおりに、直接的または間接的に AggregateReply ノードの IN ターミナルに接続されている場合、この接続は認識され、制御メッセージは送信されます。これは最適な構成ではなく、パフォーマンスを低下させる可能性があることに注意してください。

MQSI_AGGR_COMPAT_MODE 変数を作成し、AggregateControl ノードと AggregateReply ノードとの間の接続を認識できるようにするには、次のようにします。
  • Windows の場合:
    1. システム・プロパティーを以下の順で開きます: 「スタート」 > 「コントロール パネル」 > 「システム」
    2. 「詳細設定」タブをクリックします。
    3. 「環境変数」をクリックします。
    4. 「システム環境変数」ペインの下で、「新規作成」をクリックします。
    5. 「変数名」MQSI_AGGR_COMPAT_MODE と入力します。 望む場合は、「変数値」に入力し、そうでない場合はそれをブランクのままにしておきます。
    6. 環境変数を有効にするには、コンピューターを再始動する必要があります。
  • LinuxUNIX、および z/OS 上では、次のようにします。
    1. ブローカー・ユーザー ID のプロファイルを編集し、export MQSI_AGGR_COMPAT_MODE= を組み込みます。
    2. プロファイルを再ロードします。
    3. ブローカーを再始動します。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ac12312_