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

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

メッセージ・フローの集約

集約とは、単一の入力メッセージから派生する、関連要求の生成およびファンアウトと、単一の集約された応答メッセージを生成するためのそれに対応する応答のファンインです。

関連した要求項目の集合を表す、メッセージ・フローによって受信された初期要求は、初期要求のサブタスクを満たすために、適切な数の個別の要求に分割されます。 このプロセスは、ファンアウトとして知られており、集約ノードを含むメッセージ・フローによって提供されます。

サブタスクからの応答は、処理の完了を示すために、元のリクエスター (または別のターゲット・アプリケーション) に戻される単一の応答に結合およびマージされます。 このプロセスは、ファンインとして知られており、集約ノードを含むメッセージ・フローによっても提供されます。

メッセージ集約は、AggregateControl ノードの後に AggregateRequest ノードが続くメッセージ・フローによって開始されます。 応答は、AggregateReply ノードを含むフローを使用して、集約した上でまとめて戻されます。 集約ノードは、要求/応答モデルを使用するトランスポートの場合にのみ正しく機能します。例えば、WebSphere® MQ Enterprise Transport などです。

WebSphere Message Broker は、集約をサポートする以下の 3 つのメッセージ・フロー・ノードを提供します。

メッセージ・フロー内にこれらのノードを組み込むと、複数のファンアウト要求が、実行グループ・プロセス内の 1 つのスレッドから順番に発行されます。

WebSphere MQ Enterprise Transport を使用する場合、ファンイン・フローによって受け取られる応答は、応答 ID を含む有効な応答メッセージである必要があります。応答 ID として、要求メッセージのメッセージ記述子 (MQMD) のメッセージ ID フィールド (MsgId) の値を設定し、この応答 ID を MQMD の相関 ID フィールド (CorrelId) に保管する必要があります。 CorrelId が MQCI_NONE に設定された場合、AggregateReply ノードはエラーを発行します。これは、応答メッセージが無効であり、要求メッセージとマッチングすることができないからです。

集約ノードを使用して、ブローカー環境外のアプリケーションに要求を発行することもできます。 メッセージは、外部アプリケーションまたはサービスに非同期に送信できます。応答は、それらのアプリケーションから検索され、元の要求メッセージに単一の応答を提供するために結合されます。

遅い要求を並行して実行することができ、順次に実行する必要がないので、これらのノードを使用すると、応答時間を改善することもできます。 サブタスクを独立して処理することができ、単一の作業単位の一部として処理する必要がない場合、別々のメッセージ・フローによってサブタスクを処理することができます。

別のアプリケーションにサブタスク要求を発行し (例えば、HTTPRequest ノードを使用して)、ローカル環境内にそれぞれの要求の結果を記録することにより、集約ノードを使用せずに、類似の機能を提供するメッセージ・フローを設計および構成することができます。 それぞれのサブタスクが完了した後、Compute ノードで LocalEnvironment からの結果をマージし、ターゲット・アプリケーションに伝搬するための、結合された応答メッセージを作成します。 ただし、すべてのサブタスクは順番に実行されることになり、集約ノードを使用すれば得られる並列操作のパフォーマンス上の利点はありません。

集約ノードを使用する集約フローの例は、次のサンプルにあります。 Aggregation サンプルは単純な 4 とおりの集約を示し、Airline Reservations サンプルは航空機予約サービスに関連した要求をシミュレートし、集約フローに関連する技法を例示します。

サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。

集約ノードは集約の状態を WebSphere MQ キューに格納します。 デフォルトでは、以下のストレージ・キューが使用されます。 ただし、代わりのストレージ・キューを作成して集約構成可能サービスを使用することにより、どのキューをノードで使用するかを指定することができます。 詳しくは、集約ノードに関するイベントのストレージの構成を参照してください。

デフォルトでは、AggregateControl ノード上のタイムアウトは 0 に設定されます。 タイムアウトを指定しない場合 (または 0 に設定されたままにする場合)、WebSphere MQ が保管する集約要求は、すべての応答メッセージが戻されない限り、決して削除されません。 この状態により、内部キューにメッセージが徐々に溜まる場合があります。 タイムアウトをゼロより大きい値に設定することにより、要求を除去し、キューが冗長な要求でいっぱいにならないようにしてください。 タイムアウトの必要がない場合やタイムアウトになると予想されない場合でも、タイムアウト値を 86400 秒 (24 時間) などの大きな値に設定すると、キューから古い集約メッセージを取り除くことができます。

「タイムアウト」 プロパティーを AggregateControl ノードに設定するか、または集約構成可能サービスを使用して timeoutSeconds プロパティーを指定することにより、タイムアウトを設定することができます。 詳しくは、集約のタイムアウト値の設定を参照してください。

新規の集約ノードはメッセージのタイムアウトの管理に WebSphere MQ メッセージの有効期限を使用します。 メッセージの有効期限を機能させるには、集約ノードがメッセージ・キューをブラウズする必要があります。 集約ノードは、キューを自動的にブラウズして、有効期限が切れたメッセージを処理します。

z/OS platformz/OS® では、集約ノードの代わりにキューをブラウズするスカベンジャー処理を実行するように WebSphere MQ を構成できます。 スカベンジャーを使用可能にするには、ブローカーのキュー・マネージャー・プロパティー EXPRYINT を 5 秒に設定します。 EXPRYINT を設定しない、または 10 秒を超える値に設定する場合、集約ノードは自動的に集約キューのブラウズに戻ります。

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

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

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


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