イベントにより起動されるフローの並行処理の実装

コラボレーション・オブジェクトおよびコネクター・コントローラーは、イベントにより起動される複数のフローを同時に処理するよう構成できます。これによって、イベントにより起動されるインターフェースのパフォーマンスが大幅に向上します。

イベントにより起動されるフローのコラボレーションでの並行処理

コラボレーションは、イベントにより起動される複数のフローを並行して処理するように構成できます。並行イベント処理を適切に行うと、システムのスループットおよびイベント処理への応答時間が改善されます (下のヒントを参照)。デフォルトでは、コラボレーションはイベントにより起動されるフローを一度に 1 つずつ処理します。

コラボレーションがイベントにより起動されるフローを並行処理しているとき、コラボレーションはこれらのフローの依存関係を識別し、それらがコネクター・コントローラーから送信された順に処理します。イベントにより起動されるフローの並行処理は、データの競合がないフローで実行されますが、データの競合があるフローは、受信された順に処理されます。

コラボレーションがイベントにより起動される複数のフローを処理するよう構成するには、並行イベントの最大数を参照してください。

ヒント:
イベントにより起動されるフローをコラボレーションで並行処理するには、追加のシステム・リソースが必要です。最高のパフォーマンスを実現するためには、並行イベントの処理に使用するシステム・リソースが確実にアイドル状態ではないようにします。例えば、コラボレーション・キュー内のイベント数が 10 に達することがない場合は、「並行イベントの最大数」の値を 10 に設定しないでください。

コラボレーションのインバウンド・ポートが、Server Access Interface を介する外部呼び出しを受信するためだけにバインドされていて、他のコネクターにバインドされていない場合、「並行イベントの最大数」の値を 0 に設定するとパフォーマンスを向上させることができます。しかし、コラボレーションがコネクターとの双方向交換に使用されている場合は、この値を 0 に設定しないでください。

イベントにより起動されるフローのコラボレーション・オブジェクト・グループでの並行処理

コラボレーション・オブジェクト・グループ内の各コラボレーションは、イベントにより起動される多数の並行フローを処理するために個々に構成できます。グループ内のすべてのコラボレーションには、イベントにより起動される並行フローの数を同じ値に設定して、並行率の低いコラボレーションがボトルネックにならないようにすることをお勧めします。

イベントにより起動されるフローのコネクター・コントローラーでの並行処理

コネクター・コントローラーは、イベントにより起動される複数のフローを並行して処理するように構成できます。

コネクターがイベントにより起動されるフローを並行処理するよう構成すると、イベント・フローの処理パフォーマンスが向上します。これは、複数のビジネス・オブジェクトを同時にマッピングに変換できるためです。

コネクター・コントローラーがイベントにより起動されるフローを並行処理するよう構成するには、「ConcurrentEventTriggeredFlows」プロパティーを、並行処理するフローの最大数に設定します。このプロパティーの詳細については、ConcurrentEventTriggeredFlowsを参照してください。Connector Configurator を使用してコネクター・プロパティーを設定する方法の詳細については、コネクターの構成の概要を参照してください。

ヒント:
「ConcurrentEventTriggeredFlows」プロパティーが 1 より大きい値に設定されている場合、コネクター・コントローラーはアプリケーションからイベントを受け取ったのと同じ順序を保持します。イベントにより起動されるフローをコネクターで並行処理するには、追加のシステム・リソースが必要です。最高のパフォーマンスを実現するためには、並行イベントの処理に使用するシステム・リソースが確実にアイドル状態ではないようにします。例えば、コネクターの InterChange Server Express で受け取るイベント数が 10 に達することがない場合は、「ConcurrentEventTriggeredFlows」プロパティーの値を 10 に設定しないでください。「サーバー統計」ウィンドウを使用して、コネクターの MQ キュー項目数をモニターすることにより、コネクター・キュー内のイベント数を判別します。この統計をモニターすると、「ConcurrentEventTriggeredFlows」プロパティーの値を設定するのに役立ちます。

コネクターが宛先としてのみ使用されている場合、「ConcurrentEventTriggeredFlows」の値を 0 に設定すると、パフォーマンスが向上します。しかし、コネクターがコラボレーションとの双方向交換に使用されている場合は、この値を 0 に設定しないでください。

Copyright IBM Corp. 2004