集約ファンイン・フローは、ファンアウト・フローにより送信された要求メッセージへの応答を受信し、受信されたすべての応答を含む結合された応答メッセージを構成します。
始める前に:
このタスクを完了するには、以下のタスクを完了している必要があります。
このタスクを完了する前に、メッセージ・フローの集約に関する概要をお読みになることもお勧めします。ファンアウト・フローがトランザクションであるかどうかによって、また、そうでない場合には、指定したタイムアウト値によって、結合された応答メッセージは、すべての応答がファンイン・フローによって受信される前に生成されることもあります。 このトピックの詳細については、集約ファンアウト・フローの作成を参照してください。
同じメッセージ・フロー内にファンアウトおよびファンイン・フローを組み込むことは可能です。 ただし、2 つの別個のフローを作成する方が良いでしょう。同じファンイン・フローの複数のコピーを同じ実行グループまたはさまざまな実行グループ内にデプロイしないでください。 別個のメッセージ・フローを構成することの利点について詳しくは、ファンアウトおよびファンイン集約フローの関連付けを参照してください。
ファンイン・フローの例を検討するには、WebSphere Message Broker で提供されている Airline Reservations サンプルを参照してください。
ファンイン・フローを作成するには、以下のようにします。
AggregateReply ノードは、ComIbmAggregateReplyBody と呼ばれる Root の下の結合メッセージ・ツリー内にフォルダーを作成します。 この下に、AggregateRequest ノードで設定したフォルダー名を使用する、いくつかのフォルダーを作成します。 関連した応答メッセージは、その下に置かれます。
例えば、要求メッセージが次のフォルダー名を持つとします。
結果として AggregateReply ノードによって作成される集約応答メッセージは、以下に示すような構造を持つことになります。
Compute ノードを使用して、タクシー会社からの応答にアクセスするには、次の相関名を使用します。
InputRoot.ComIbmAggregateReplyBody.TAXI.xyz
フォルダー名は固有でなくてかまいません。 フォルダー名が TAXI の要求が複数ある場合、配列添え字表記法を使用して個々の応答にアクセスできます。以下に例を示します。
InputRoot.ComIbmAggregateReplyBody.TAXI[1].xyz InputRoot.ComIbmAggregateReplyBody.TAXI[2].xyz