メッセージ・コレクションとは、1 つ以上のソースから派生される複数のメッセージを含む単一のメッセージを意味します。
Collector ノードを使用して、1 つ以上のソースからメッセージを収集して 1 つのメッセージ・コレクションにまとめることが可能であり、そうすることで、ダウンストリーム・ノードでそれらを同時に処理できるようになります。 また、Compute ノードを使用して、 メッセージ・コレクションを手動で作成することもできます。
メッセージ・コレクションには、プロパティー・ヘッダーと単一のフォルダー・エレメント「コレクション」が含まれます。 また、メッセージ・コレクションにはゼロ以上の名前と値の組を成す属性が含まれます。 属性の名前はメッセージ・コレクション内で固有である必要があります。 これらは図の中で <name> / <value> として示されています。 メッセージ・コレクションの標準属性は、CollectionName と呼ばれる属性です。 メッセージ・コレクションを生成するために Collector ノードを使用すると、コレクション名の値はこのノードで構成した値に基づいて生成されます。 コレクション名属性は強制ではありません。
メッセージ・コレクションのコレクション・フォルダー内で、 ツリー構造は図中に <folder name> として表示されるフォルダーになります。 これらのフォルダーには、メッセージ・コレクションに追加された各メッセージのメッセージ・ツリーを 含めることができます。 これらのフォルダーにはそれぞれ名前が付けられますが、 これらの名前はメッセージ・コレクションの中で固有である必要はありません。 <folder name> の値は入力メッセージのソースから派生します。
ネストされたメッセージ・コレクションは許可されていません。 したがって、メッセージ・コレクションを他のメッセージ・コレクションのソース・メッセージとして使用することはできません。 例えば、Collector ノードの入力ターミナルにメッセージ・コレクションを渡そうとすると、エラーが生成されます。
LocalEnvironment、Environment および ExceptionList の各ツリーは構造の中に含まれていませんが、メッセージ・アセンブリーの一部として、別に保持されます。 メッセージ・コレクションには各メッセージに関連付けられた LocalEnvironment という概念が存在しません。
Collector ノードを使用して、複数の同期要求、または非同期要求を並行して作成することができます。 これらの要求の結果は、必要に応じて下流の処理で結合することができます。 これは要求/応答に固定したパターンがあり、応答メッセージが要求 ID によってグループ化される集約ノードの動作とは異なります。 対照的に、コレクター・ノードには初期のファンアウト・ステージが不要であり、メッセージの内容を相関させることで、関連性のない入力メッセージをグループ化することができます。 異なるソースからメッセージを受信するために、Collector ノードに動的な入力ターミナルを構成することができます。 また、Collector ノードにイベント・ハンドラーと呼ばれるプロパティーを構成することもできます。このプロパティーを構成することで、メッセージ・コレクションへのメッセージの追加方法とメッセージ・コレクションが完了する時を決定できます。
InputRoot.Collection.folder1.XMLNSC
XPath では、ルート・エレメントはメッセージ本文です。 メッセージ・コレクションのルート・エレメントは、そのコレクション・エレメントになります。 したがって、XPath を使用してメッセージ・コレクション内のメッセージの内容にアクセスするには、以下の XPath に似た式を使用する必要があります。 /folder1/XMLNSC
メッセージ・コレクション内のメッセージの順序を決定できない場合があります。 Collector ノードを使用してメッセージ・コレクションを生成すると、メッセージは、それらがノードに到達した順序どおりに並べられます。