Event Manager の構成設定
IBM® Business Process Manager Event Manager の動作を理解するために、構成プロパティーを確認してください。
必要な構成変更を行うには、100Custom.xml ファイルを使用します。80EventManager.xml ファイルは直接編集しないでください。構成プロパティーの変更については、100Custom.xml 構成ファイルの作成を参照してください。
タスク・ローダーのプロパティー
タスク・ローダーは、Event Manager インスタンスの専用スレッドであり、Event Manager タスクをメモリー内のキューにロードします。タスク・ローダーのデフォルト・パラメーター設定は、ほとんどの使用パターン向けに最適化されています。通常、以下のどのパラメーターも調整の必要はありません。
- <loader-long-period>15000</loader-long-period>
- タスク・ローダーがメジャー・ロードを行う間隔 (ミリ秒) を指定します。 Event Manager は、タスク・ローダーの long 期間ごとにアクセス権限のある同期キューおよび非同期キューを確認し、これらのキューの容量を満たします。
- <loader-short-period>2000</loader-short-period>
- タスク・ローダーがマイナー・ロードを行う間隔 (ミリ秒) を指定します。 Event Manager は、タスク・ローダーの short 期間ごとに直近の short 期間または long 期間に容量を満たした各キューを確認し、これらのキューの容量を満たします。この設定は変更しないでください。
- <loader-advance-window>15000</loader-advance-window>
- タスク・ローダーがタスクを取得できる実行までの時間 (ミリ秒) を指定します。スケジュール済みタスクの場合、このパラメーターは、Event Manager がタスク検出を前もって開始する時間を指定します。推奨事項: このプロパティーは <loader-long-period> と同じ値に設定してください。 この値はデフォルトでは、15000 に設定されています。これは、<loader-long-period> と同じ値です。
- <kick-on-schedule>true</kick-on-schedule>
- true に設定すると、タスク・ローダーは新しいタスクがスケジュールされると、即時にメジャー・ロードを開始します。新しくスケジュールされたタスクはほぼ即時に実行されます。この設定は変更しないでください。
キュー容量のプロパティー
Event Manager タスクをスケジュールするために、Event Manager キューが使用されます。Process Designer で Undercover Agent を定義するときに、特定の同期キューを使用するか、または非同期の Undercover Agent (UCA) キューを使用するかを指定します。
ヒント: Event Manager をスロットルするには、キュー容量を減らします。これは max-thread-pool-size プロパティーを使用してスレッド・プールを減らすことによって行うのではないことに注意してください。このプロパティーはプール内のスレッド数を指定するだけであり、Event Manager が使用できる実際のスレッド数は指定できません。
- <sync-queue-capacity>10</sync-queue-capacity>
- 各同期 UCA キューのメモリーにロードする Event Manager タスクの最大数を指定します。
- <async-queue-capacity>10</async-queue-capacity>
- 非同期 UCA キューのメモリーにロードする Event Manager タスクの数を指定します。
- <bpd-queue-capacity>40</bpd-queue-capacity>
- ビジネス・プロセス定義キューのメモリーにロードする Event Manager タスクの数を指定します。このキューは非同期キューであり、BPD、タイマー、システム・タスク、決定タスクを実行する Event Manager タスクに対応します。ヒント: スループットおよびスケーリングを最適化するには、物理プロセッサー・コア当たり、bpd-queue-capacity に 10 を指定して開始します (例えば、4 プロセッサー・コア構成の場合、40 を指定)。最大値は 80 です。
- <system-queue-capacity>10</system-queue-capacity>
- Event Manager 内部システム・キューのメモリーにロードする Event Manager タスクの数を指定します。例えば、ブラックアウト・カレンダーの更新タスクで使用します。
サーバーが始動すると、async-queue-capacity 設定の値がチェックされ、データ・ソースの maxConnections 設定の値と比較されます。以下の式で指定されている条件を満たすと、async-queue-capacity 設定の値が調整されます。
maxConnections < 2 * async-queue-capacity + 5 synchronous queues
async-queue-capacity 設定の値が調整されると、サーバー・ログに警告が書き込まれます。例:
CWLLG2156W: The database connection pool size (200) of the Process Server data source might be too small.
CWLLG2236W: The configured 'async-queue-capacity' parameter of '22900' has been changed to '5'.
CWLLG2236W: The configured 'bpd-queue-capacity' parameter of '22900' has been changed to '98'.
CWLLG2236W: The configured 'system-queue-capacity' parameter of '22900' has been changed to '5'
以下のガイドラインを使用すると、async-queue-capacity 設定の値の計算または調整に役立ちます。
- 接続プールのサイズが十分な場合は、現在構成されている値を使用します。
- 接続プールのサイズが小さすぎる場合は、次のいずれかのオプションを選択します。
- キュー容量が、指定された最小値以下の場合は、警告の出力のみを実行します。
キュー容量が、指定された最小値より大きい場合は、キュー容量の値を調整します。ただし、指定された最小値より値が小さくならないようにします。
注: 調整した async-queue-capacity 設定の値は、TeamWorksConfiguration.running.xml ファイルに書き込まれません。このファイルには、依然として元の値が含まれます。
スレッド・プールのプロパティー
スレッド・プールのプロパティーは、Event Manager が使用するワーカー・スレッドを指定します。
- <use-was-work-manager>true</use-was-work-manager>
- WebSphere Application Server 作業マネージャーをスレッド・プールとして指定するかどうかを指定します。
デフォルトでは、true に設定されています。この値を false に変更することは推奨されません。例えば、false に設定すると、IBM WebSphere Application Server のリソース・モニター・ツールでの表示が無効になります。作業マネージャーは、管理コンソールを使用してクラスター・レベルで構成します。注: アプリケーション・サーバー接続プール内の使用可能な IBM Business Process Manager データベース接続の総数は、少なくとも Event Manager ワーカー・スレッドの最大数の 2 倍にする必要があります。 実際のデータベース・サーバーでの接続数は、少なくともクラスター内のすべてのノードの最大スレッド数の合計にする必要があります。 <use-was-work-manager> が true の場合、スレッド数は、作業マネージャーのスレッド・プール構成で構成されます。 <use-was-work-manager> が false の場合、スレッドの最大数は、BPD キュー容量、非同期キュー容量、システム・キュー容量、同期キューの数の合計になります。
Web コンテナー・スレッドもデータベース接続が必要です。
- <was-work-manager>wm/BPMEventManagerWorkManager</was-work-manager>
- 使用する WebSphere Application Server 作業マネージャーを指定します。
ヒント: Event Manager をスロットルするには、キュー容量を減らします。 <was-work-manager> スレッド・プールを使用している場合、これにより Event Manager スレッドの並行性が制限されます。 スレッド・プールは、キュー容量をサポートする十分な大きさである必要があります。このパラメーターは、bpd-queue-capacity、async-queue-capacity、system-queue-capacity、number of sync-queues の合計サイズに設定してください。
- <min-thread-pool-size>5</min-thread-pool-size>
- Event Manager エンジンのスレッド・プールの最小スレッド数を指定します (WebSphere Application Server 作業マネージャーを使用しない場合)。
- <max-thread-pool-size>50</max-thread-pool-size>
- Event Manager エンジンのスレッド・プールの最大スレッド数を指定します (WebSphere Application Server 作業マネージャーを使用しない場合)。
ヒント: スループットおよびスケーリングを最適化するには、max-thread-pool-size のサイズとして、30 に物理プロセッサー・コア当たり 10 を足して指定し、開始します (例えば、4 プロセッサー・コア構成の場合、70 を指定)。最大値は、110 です。
- <re-execute-limit>5</re-execute-limit>
- Event Manager が、例外で終了したタスクの実行を試行する最大回数を指定します。
ヒント: 失敗して、re-execute-limit に到達した Event Manager タスクは保留になります。 そのようなタスクはデータベース内に保持されます。保留を示すフラグが付けられ、将来、BPMReplayOnHoldEMTasks コマンドを実行したときに実行されるようにスケジュール変更されます。
ハートビートのプロパティー
ハートビートは、Event Manager インスタンスの専用スレッドです。Event Manager インスタンスがまだ実行中であることを定期的にシグナル通知します。
- <heartbeat-period>30000</heartbeat-period>
- ハートビートの間隔を指定します (ミリ秒)。この設定は変更しないでください。設定を変更する場合、<heartbeat-expiration> を 4 で除算した値より小さくしてください。
- <heartbeat-expiration>240000</heartbeat-expiration>
- ハートビートの有効期限を指定します (ミリ秒)。この設定は変更しないでください。設定を変更する場合、<heartbeat-period> の 4 倍の値より大きくしてください。
リーパーのプロパティー
リーパーは、各クラスター・メンバーの専用スレッドです。有効期限の切れた Event Manager インスタンスが所有する Event Manager タスクがないかどうかを検査します。そのようなタスクを検出した場合、リーパーによって、状態が「スケジュール済み」にリセットされ、所有権が「未割り当て」にリセットされます。
その結果、他の Event Manager インスタンスがその処理を取得します。
- <reaper-period>120000</reaper-period>
- 有効期限の切れた Event Manager リーパーのアクティビティーの間隔 (ミリ秒) を指定します。 この設定は変更しないでください。
その他の Event Manager のプロパティー
- <start-paused>false</start-paused>
- 一時停止状態にある Event Manager の開始を許可します。Event Manager は、Process Admin Console の Event Manager モニターを使用して再開できます。
- <name>EM instance name</name>
- Event Manager インスタンス名を指定します。この名前は、Process Admin Console の Event Manager モニターで使用されます。