ファンイン・フローでのスレッド不足の回避

ファンアウト・フロー内の AggregateControl ノードの Control ターミナルがキューへの出力制御メッセージに接続されている場合、以下のガイダンスに従って、ファンイン・フローのスレッドが長時間不足しないようにします。

Control ターミナルに接続しなければ、ここに述べている問題を解決できます。 AggregateControl の Control ターミナルの接続の詳細については、集約フローでの制御メッセージの使用を参照してください。

Aggregate Reply ノードには、IN と Control の 2 つの入力ターミナルがあります。 それら両方のターミナルを使用する場合、Control ターミナルの使用はオプションであることを踏まえると、 Aggregate Reply ノードにデータを提供する最も効率的な方法は、ファンイン・フローに対する単一の MQInput ノードを持ち、それに Filter ノードが続くことです。 Filter ノードは、着信メッセージを Aggregate Reply ノードの IN または Control ターミナルに必要に応じてルーティングするために使用します。

メッセージ・フロー内の 2 つの MQInput ノード (1 つは IN ターミナル用、もう 1 つは Control ターミナル用) の代わりに、Filter ノードが続く単一の MQInput を使用します。 単一の MQInput ノードを使用する必要があるのは、追加のスレッド (追加のインスタンスの使用により使用可能になる) を、2 つの MQInput ノード間で分散させる方法を指定する手段がないためです。AggregateReply ノードの Control ターミナルよりも In ターミナルに、より多くのトラフィックが存在する可能性があります。 そのため、In ターミナルの入力ノードにさらに多くのスレッドがあるようにすると役立ちます。 しかし、これを 2 つの MQInput ノードを使用して構成することはできません。 したがって、応答メッセージのバックアップや、集約メカニズムの行き詰まりによって、AggregateReply ノードでスレッドが不足する可能性があります。

Filter ノードで以下に示すような ESQL モジュールを使用して、 メッセージが AggregateReply ノードの適切なターミナルにルーティングされるようにします。
CREATE FILTER MODULE FanIn_Filter
    CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        IF Root.XMLNS.ComIbmAggregateControlNode IS NULL THEN
            RETURN TRUE;  -- wired to In
        ELSE
            RETURN FALSE; -- wired to Control
        END IF;
    END;
END MODULE;

上述のとおりにファンイン・フローを構成できない場合は、 制御メッセージを読み取る MQInput ノードが単一スレッドで実行するように強制できます。 これは MQInput ノードを構成することによって行います。 拡張プロパティー・パネル上で「順序モード」プロパティーの値を「キュー順序」に設定し、「論理順序」を選択することで実行します。 これにより、構成済みの追加のインスタンスはすべて、他の MQInput ノードが使用するために解放されます。 最初の MQInput ノードのパフォーマンスはかなり制限されるので、この構成は代替手段がない場合にのみ使用してください。

関連概念
メッセージ・フローの概要
メッセージ・フローの集約
関連タスク
集約ファンイン・フローの作成
集約ファンアウト・フローの作成
ファンアウトおよびファンイン集約フローの関連付け
集約のタイムアウトの設定
複数の AggregateControl ノードの使用
集約フローでの例外の処理
集約フローの構成
関連資料
AggregateControl ノード
AggregateReply ノード
AggregateRequest ノード
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:42:51

ac12313_