集約フローにおける AggregateControl ノードと AggregateReply ノードの 「集約名 (Aggregate Name)」プロパティーを同じ値に設定することによって、ファンアウト・メッセージ・フロー処理を対応するファンイン・メッセージ・フロー処理に関連付けます。
始める前に:
このタスクを実行するには、以下のタスクを完了している必要があります。
「集約名 (Aggregate Name)」は、 ブローカー内でコンテキストに応じて固有でなければなりません。 一般にこれは、特定の「集約名 (Aggregate Name)」を持つ AggregateControl ノードと AggregateReply ノードがそれぞれ 1 つずつしか存在できないということですが、同一の「集約名 (Aggregate Name)」を持つ複数の AggregateControl ノードが存在することも可能です (複数の AggregateControl ノードの使用を参照してください)。
同じメッセージ・フロー内に、または 2 つの異なるメッセージ・フローに、 ファンアウトおよびファンインを作成することができます。 いずれにせよ、ファンアウト・フローの AggregateControl ノードを ファンイン・フローの AggregateReply ノードに接続すると、集約の 2 つの部分はリンクされます。
集約フローを構成する方法は、以下のような要因によって決まります。
簡単なケースの場合は単一のフローを使用する方がインプリメントが容易ですが、このアプローチにはいくつかの制限があります。一般的に言って、2 つのメッセージ・フローを使用した方が柔軟性が高まるので、通常はこちらの方がより好ましいアプローチです。 航空機 (Airline) サンプルは、集約の 2 つの別個のフローの使用を示しています。
ファンアウト・フローをファンイン・フローと関連付けるには、以下のようにします。
これは、2 つの集約ノード間の直接接続と呼ばれます。
たとえば、次の ESQL をコーディングすることができます。
SET OutputRoot.MQMD.StrucId = MQMD_STRUC_ID; SET OutputRoot.MQMD.Version = MQMD_CURRENT_VERSION; SET OutputRoot.MQMD.Format = MQMD_STRING;
これは、2 つの集約ノード間の間接接続と呼ばれます。
ファンアウトとファンインの両方を含むシングル・メッセージ・フローの利点は次のとおりです。
別個のファンアウトおよびファンインを作成することには次の利点があります。
メッセージ・フローの存続期間中に、しばしばその操作を中断して、 設計を変更し、再デプロイすることが必要になります。 メッセージ・フローに集約が含まれている場合、操作を 2 つのステージに分けて中断すると便利です。
この 2 ステージのシャットダウンは、予測可能な方法で確実にタイムアウトを実施するのに使用します。 ファンアウト・ステージとファンイン・ステージが同じメッセージ・フローにある場合、 この方法でシャットダウンするのが困難な場合があります。 基盤となるトランスポートが WebSphere MQ の場合は、 関係するキューで get/put 操作を禁止することにより、これをある程度まで実現できます。 その他のトランスポートにも、類似の機能があることでしょう。
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ac12310_ |