複数の AggregateControl ノードの使用

「集約名」プロパティーの値セットがすべて同じで「タイムアウト」プロパティーの値が異なる複数の AggregateControl ノードを持つファンアウト・フローを設計することが役に立つ場合もあります。 「集約名」を再利用できるのは、この場合だけです。

始める前に:

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

例えば、出張旅行を予約する集約フローを作成した場合、2 日以内に応答が必要な要求がある一方で、2 時間以内に応答が必要な、より緊急性の高い要求もあるかもしれません。

複数の AggregateControl ノードを使用する集約フローを構成するには、以下のようにします。

  1. 「ブローカー・アプリケーション開発」パースペクティブに切り替えます。
  2. ファンアウト・メッセージ・フローを作成するか、または開きます。
  3. 必要な数の AggregateControl ノードを構成します。 基本プロパティー「集約名」を同じ値に設定します。 例えば、2 つのノードを組み込み、両方に「集約名」として JOURNEY という名前を入力します。
  4. それぞれのノードの「タイムアウト」 プロパティーの値を異なる値に設定します。 例えば、1 つ目のノードの「タイムアウト」を 2 時間に、2 つ目のノードの「タイムアウト」を 2 日間に設定します。
  5. 着信要求を受信するように Filter ノードを構成し、その内容をチェックし、それらの着信要求を正しい AggregateControl ノードに経路指定します。
  6. 必要な結果を得るには、ノードを一緒に接続します。 例えば、優先順位フィールドを「緊急」に設定して、要求をテストするように Filter ノードを構成した場合、短いタイムアウトを設定して True ターミナルを AggregateControl ノードに接続します。 より長いタイムアウトで false ターミナルを AggregateControl ノードに接続します。 AggregateControl ノードの out ターミナルをファンアウト・フロー内の以下のノードに接続します。

    2 つの AggregateControl ノードを直列にではなく、並列に接続する必要があります。 つまり、両方のノードを Filter ノードに (1 つを true ターミナル、もう 1 つを false ターミナルに)、および両方のノードをファンアウトに対して要求を処理する、ダウンストリーム・ノードに接続する必要があります。 それぞれの入力メッセージは、AggregateControl ノードのうちの 1 つのみを通過しなければなりません。 単一のメッセージが複数の AggregateControl ノードによって処理されるようにノードを接続する場合、重複レコードが AggregateRequest ノードによってデータベース内に作成され、後続の処理結果は予測不能です。

以下の図では、この技法を使用するファンアウト・メッセージ・フローの例が説明されます。


ファンアウト・メッセージ・フローは、Filter ノードを使用してインバウンド要求の緊急度を判別し、短いまたは長いタイムアウト値 (これによって、応答が待機する時間の長さを判別する) を設定する 2 つの AggregateControl ノードの 1 つに対するテストの結果に基づいて、その要求を送信します。
関連概念
メッセージ・フローの概要
メッセージ・フローの集約
関連タスク
集約フローの構成
集約ファンアウト・フローの作成
集約ファンイン・フローの作成
ファンアウトおよびファンイン集約フローの関連付け
集約フローでの制御メッセージの使用
ファンイン・フローでのスレッド不足の回避
集約のタイムアウトの設定
集約フロー内の例外の処理
メッセージ・フローの設計
メッセージ・フローの作成
メッセージ・フローの内容の定義
関連資料
AggregateControl ノード
AggregateReply ノード
AggregateRequest ノード
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ac12330_