コネクター・エージェントによる要求の並行処理の実装

Java でマルチスレッドを使用するように設計されたコネクター・エージェントは、追加の構成を行わなくてもマルチスレッドの並行処理を実行できます。さらに、マルチスレッド化用に設計されていないコネクターでも、コネクター・エージェント並列処理 (CAP) と 呼ばれる機能を使用するように構成できるものがあります。この機能により、コネクターを 複数のコネクター・プロセスとして実行して、複数の要求を処理することができます。コネクター・エージェント並列処理は、単一のコネクター・エージェントの主プロセスから並行する複数プロセスをインスタンス化 し、逐次的でなく並行してフローを処理できるようにします。

IBM WebSphere InterChange Server ビジネス・インテグレーション・システム でのコネクター・エージェント並列処理の使用は、Connector Configurator の 「リソース」タブで構成できます。コネクター・エージェントの並行処理の使用は、一部の環境にはパフォーマンスの向上をもたらしますが、その他の環境にはそうではない 場合があるので、コネクター・エージェントのデフォルトの振る舞いは、シリアル処理 を使用するよう設定されています。デフォルト設定を変更する前に、特定のコネクター用 の IBM Business Integration Adapters の資料を調べて、アプリケーションのアーキテクチャー または要件によって並行処理の効果的な使用が妨げられていないか分析し、ユーザー固有の 環境で使用可能なリソースを最も効果的に使用する方法を検討します。実稼働環境に 実装する前に、この設定に対して行った変更内容をテストする必要があります。

コネクター・エージェント並列処理を使用する理由

一般的に、次の環境ではコネクター・エージェント並列処理の使用を検討する必要があります。

コネクター・エージェント並列処理を使用しない理由

コネクターが上記のカテゴリーに分類される場合でも、おそらくコネクター・エージェント並列処理を 使用しないと考えられる環境があります。

要求を並行処理するためのコネクター・エージェントの構成

コネクター・エージェント並列処理の使用の設定を変更するには、Connector Configurator を 開始し、「リソース」タブを選択します。図 105 に「リソース」タブを示します。

図 105. 「リソース」タブでの値の構成


シリアル処理または並行処理のいずれかの「リソース」タブの値を設定します。

1 からそれより大きい値に変更する場合、または大きい値から 1 に変更する場合、変更を適用するにはコネクター・エージェントをリブートする必要があります。値が すでに 1 より大きい場合は、1 より大きい別の値に動的に変更できます。

シリアル処理の場合

デフォルトでは、コネクター定義の「並行処理の度合い」プロパティー は値 1 に設定され、シリアル処理を使用するようになっています。「並行処理の度合い」プロパティー が 1 に設定されると、ウィンドウ内の他のすべての値は 0 に設定されます。

並行処理の場合

並行処理を使用するようコネクターを構成するには、以下の手順を実行します。

  1. 「並列処理の度合い」プロパティーを値 2 より 大きい値に設定します。コネクターは指定された数のスレーブ・プロセスを並行して 実行します。
    注:
    値はスレーブ・プロセスの数を表します。各コネクター・エージェントには、ポーリング・プロセス、マスター・プロセス、構成可能な数のスレーブ・プロセスがあります。例えば、値が 2 である場合、コネクター は合計 4 つのプロセスを使用します (コネクターのポーリング・プロセス、コネクターの マスター・プロセス、2 つのスレーブ・プロセス)。
  2. 「呼び出しによりトリガーされた要求 (Call Triggered Requests)」プロパティーから 字下げされた「最小割り振り (Minimum Allocation)」プロパティーの「値」列に、呼び出しにより起動されるフロー用に生成するスレーブ・プロセスの最小数を 入力します。
  3. 「呼び出しによりトリガーされた要求 (Call Triggered Requests)」プロパティーから 字下げされた「最大割り振り (Maximum Allocation)」プロパティーの「値」列に、呼び出しにより起動されるフロー用に生成するスレーブ・プロセスの最大数を 入力します。
  4. 「イベントによりトリガーされた要求 (Event Triggered Requests)」プロパティーから 字下げされた「最小割り振り (Minimum Allocation)」プロパティーの「値」列に、イベントにより起動されるフロー用に生成するスレーブ・プロセスの最小数を 入力します。
  5. 「イベントによりトリガーされた要求 (Event Triggered Requests)」プロパティーから 字下げされた「最大割り振り (Maximum Allocation)」プロパティーの「値」列に、イベントにより起動されるフロー用に生成するスレーブ・プロセスの最大数を 入力します。

呼び出しにより起動されるフローは同期型で、アクセス・クライアントによって 開始されます。アクセス・クライアントは、要求に対して応答が戻されることを期待します。コネクターが呼び出しにより起動されるフローとイベントにより起動される フローを処理する場合、呼び出しにより起動されるフローにより多くのスレーブ・プロセス を専用化して、開始プログラムができるだけ早く応答を受け取るようにすることもできます。

デフォルト値をそのまま使用することも、各要求タイプに割り当てるプロセスの 最少数と最大数を入力することもできます。両方の要求タイプの最大数の合計が、「並行処理の度合い」プロパティーの値を超えないようにしてください。また、最少数が最大数 を超えることはできません。

コネクター・エージェント並列処理を効果的に使用するには、コネクター・エージェントの 「並行処理の度合い」値と、コネクター・エージェントに要求を送信するコラボレーション・ オブジェクトの「並行イベントの最大数」値を調整します。1 つのコラボレーションのみが このコネクター・エージェントに要求を送信する場合、そのコラボレーションの 「並行イベントの最大数」値を、コネクター・エージェントの「並行処理の度合い」値以上 に設定します。複数のコラボレーションがこのコネクター・エージェントに要求を 送信する場合、「並行処理の度合い」値を、そのコラボレーションの「並行イベントの最大数」値 の合計と同じ値に設定します。

以下に示すデフォルト以外の Java 仮想マシン (JVM) ヒープ/スタック・サイズの パラメーター値を持つコネクターを使用している場合、コネクターの構成ファイルを 編集する必要があります。コネクター構成ファイルに設定した JVM 値は、コネクター・ エージェント・マスター・プロセスからスレーブ・プロセスへと伝搬されます。これらの 値を編集するには、XML エディターを使用して InterchangeSystem.cfg ファイル を開くか、ローカル・ファイルを使用している場合はローカル・コネクター・エージェントの 構成ファイルを開いて、JVM <connector_name> セクションの下にある値を編集します。

JVM パラメーターおよびそれに対応する Java VM オプションは、次のとおりです。

MIN_HEAP_SIZE    (-Xms)
 MAX_HEAP_SIZE (-Xmx)
 MAX_NATIVE_STACK_SIZE(-Xss)
 

デフォルトでは、次の値が使用されます。

MIN_HEAP_SIZE=1m
 MAX_HEAP_SIZE=128m
 MAX_NATIVE_STACK_SIZE=128k
 

コネクターに異なる値を設定する必要がある場合があります。例えば、構成ファイル の JVM セクションに次の値を設定することができます。

[JVM SAPConnector]
 MIN_HEAP_SIZE=256m
 MAX_HEAP_SIZE=512m
 MAX_NATIVE_STACK_SIZE=1m
 

Copyright IBM Corp. 1997, 2004