WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

メッセージ・コレクション

メッセージ・コレクションとは、1 つ以上のソースから派生される複数のメッセージを含む単一のメッセージを意味します。

Collector ノードを使用して、1 つ以上のソースからメッセージを収集して 1 つのメッセージ・コレクションにまとめることが可能であり、そうすることで、ダウンストリーム・ノードでそれらを同時に処理できるようになります。 また、Compute ノードを使用して、 メッセージ・コレクションを手動で作成することもできます。

メッセージ・コレクションの構造

メッセージ・コレクションにはサブツリーがあり、それには、Collector ノードで受信された個別のメッセージの内容が保持されています。 メッセージ・フローの中で、Collector ノードから他のノードに伝搬されるメッセージ・アセンブリーには、以下の 4 つのコンポーネントが含まれます。
  • メッセージ (トランスポート・ヘッダーを含む)
  • ローカル環境
  • グローバル環境
  • 例外リスト
以下の図ではメッセージ・コレクションのメッセージ・ツリー構造の例を示します。

これはメッセージ・コレクションのツリーを図示したものです。 周囲のテキストにその内容が説明されています。
この例のメッセージ・コレクションには、WebSphere® MQ から受信したメッセージと、ファイルの入力ソースからのメッセージの 2 種類が入っています。

メッセージ・コレクションには、プロパティー・ヘッダーと単一のフォルダー・エレメント「コレクション」が含まれます。 また、メッセージ・コレクションにはゼロ以上の名前と値の組を成す属性が含まれます。 属性の名前はメッセージ・コレクション内で固有である必要があります。 これらは図の中で <name> / <value> として示されています。 メッセージ・コレクションの標準属性は、CollectionName と呼ばれる属性です。 メッセージ・コレクションを生成するために Collector ノードを使用すると、コレクション名の値はこのノードで構成した値に基づいて生成されます。 コレクション名属性は強制ではありません。

メッセージ・コレクションのコレクション・フォルダー内で、 ツリー構造は図中に <folder name> として表示されるフォルダーになります。 これらのフォルダーには、メッセージ・コレクションに追加された各メッセージのメッセージ・ツリーを 含めることができます。 これらのフォルダーにはそれぞれ名前が付けられますが、 これらの名前はメッセージ・コレクションの中で固有である必要はありません。 <folder name> の値は入力メッセージのソースから派生します。

ネストされたメッセージ・コレクションは許可されていません。 したがって、メッセージ・コレクションを他のメッセージ・コレクションのソース・メッセージとして使用することはできません。 例えば、Collector ノードの入力ターミナルにメッセージ・コレクションを渡そうとすると、エラーが生成されます。

LocalEnvironment、Environment および ExceptionList の各ツリーは構造の中に含まれていませんが、メッセージ・アセンブリーの一部として、別に保持されます。 メッセージ・コレクションには各メッセージに関連付けられた LocalEnvironment という概念が存在しません。

Collector ノードを使用して、メッセージ・コレクションを生成する

Collector ノードを使用して、複数の同期要求、または非同期要求を並行して作成することができます。 これらの要求の結果は、必要に応じて下流の処理で結合することができます。 これは要求/応答に固定したパターンがあり、応答メッセージが要求 ID によってグループ化される集約ノードの動作とは異なります。 対照的に、コレクター・ノードには初期のファンアウト・ステージが不要であり、メッセージの内容を相関させることで、関連性のない入力メッセージをグループ化することができます。 異なるソースからメッセージを受信するために、Collector ノードに動的な入力ターミナルを構成することができます。 また、Collector ノードにイベント・ハンドラーと呼ばれるプロパティーを構成することもできます。このプロパティーを構成することで、メッセージ・コレクションへのメッセージの追加方法とメッセージ・コレクションが完了する時を決定できます。

メッセージ・コレクションを処理する

メッセージ・コレクションは以下のノードでのみサポートされています。
  • Compute
  • JavaCompute
これら以外のノードでメッセージ・コレクションを受信すると、ノードによってエラーが生成されます。
InputRoot.Collection に続くフォルダー名を参照することにより、ESQL 式か XPath 式を使用して、メッセージ・コレクション内のメッセージの内容にアクセスすることができます。 ESQL を使用してメッセージ・コレクション内のメッセージの内容にアクセスするには、以下の ESQL に似たコードを使用できます。
InputRoot.Collection.folder1.XMLNSC
XPath では、ルート・エレメントはメッセージ本文です。 メッセージ・コレクションのルート・エレメントは、そのコレクション・エレメントになります。 したがって、XPath を使用してメッセージ・コレクション内のメッセージの内容にアクセスするには、以下の XPath に似た式を使用する必要があります。
/folder1/XMLNSC
メッセージ・コレクションにアクセスするために使用できる XPath 式の例は以下のとおりです。
  • /*: メッセージ・コレクションのすべてのメッセージのリストが戻ります。
  • /@*: メッセージ・コレクションのすべての属性のリストが戻ります。
  • /@Name: 属性 Name の値が戻ります。

メッセージ・コレクション内のメッセージの順序を決定できない場合があります。 Collector ノードを使用してメッセージ・コレクションを生成すると、メッセージは、それらがノードに到達した順序どおりに並べられます。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:45:56


概念トピック概念トピック | バージョン 8.0.0.5 | ac37690_