Event Manager configuration settings

To understand how the IBM® Business Process Manager Event Manager works, review the configuration properties.

Do not directly edit the 80EventManager.xml file; use the 100Custom.xml for any required configuration changes. For information about changing configuration properties, see Changing IBM Process Server properties in 100Custom.xml.

Task loader properties

The task loader is a dedicated thread of an Event Manager instance that loads Event Manager tasks into in-memory queues. The default parameter settings of the task loader are optimized for most usage patterns. Typically there is no need to tune any of these parameters.
<loader-long-period>15000</loader-long-period>
Specified milliseconds between major loads of the task loader. For every task loader long period, the Event Manager looks at each synchronous and asynchronous queue that it has access to and fills them to capacity.
<loader-short-period>2000</loader-short-period>
Specifies milliseconds between minor loads of the task loader. For every task loader short period, the Event Manager looks through each of the queues that the Event Manager filled to capacity during the last short or long period, and fills them to capacity. Do not change this setting.
<loader-advance-window>15000</loader-advance-window>
Specifies milliseconds before execution that the task loader can acquire a task For scheduled tasks, this parameter specifies how far in advance the Event Manager looks for tasks. Recommendation: set this property as equal to <loader-long-period>. The value is set to 15000 by default, which is the same as the <loader-long-period> value.
<kick-on-schedule>true</kick-on-schedule>
If set to true, the task loader is kicked into an immediate major load anytime a new task is scheduled. Newly scheduled tasks are executed almost immediately. Do not change this setting.

Queue capacity properties

The Event Manager queues are used for scheduling Event Manager tasks. When you define an undercover agent in Process Designer, you specify whether to use a particular synchronous queue or the asynchronous undercover agent (UCA) queue.
Tip: Throttling the Event Manager is done by decreasing the queue capacity. Note that it is not done by decreasing the thread pool with the max-thread-pool-size property, which only specifies the number of threads in the pool, not the actual number of threads that can be used by the Event Manager.
<sync-queue-capacity>10</sync-queue-capacity>
Specifies the maximum number of Event Manager tasks that are loaded into memory for each synchronous UCA queue.
<async-queue-capacity>10</async-queue-capacity>
Specifies the number of Event Manager tasks that are loaded into memory for the asynchronous UCA queue.
<bpd-queue-capacity>40</bpd-queue-capacity>
Specifies the number of Event Manager tasks that are loaded into memory for the business process definition (BPD) queue, which is an asynchronous queue that covers Event Manager tasks that execute BPDs, timers, system tasks, and decision tasks.
Tip: To optimize throughput and scaling, start with a bpd-queue-capacity of 10 per physical processor core (for example, 40 for a 4-processor core configuration), with a maximum value of 80.
<system-queue-capacity>10</system-queue-capacity>
Specifies the number of Event Manager tasks that are loaded into memory for the Event Manager internal system queue, for example, blackout calendar update tasks.

Thread pool properties

The thread pool properties designate the worker threads that are used by Event Manager.
<use-was-work-manager>true</use-was-work-manager>
Specifies whether the WebSphere Application Server Work Manager is designated for the thread pool. It is set to true by default. Changing this value to false is not recommended, because setting the value to false would, for example, disable visibility in IBM WebSphere Application Server resource monitoring tools. The Work Manager is configured on the administrative console at the cluster level.
Note: The total available IBM Business Process Manager database connections in the application server connection pool should be at least twice the number of the maximum Event Manager worker threads. The number of connections on the actual database server needs to be at least the sum of the maximum thread number for all nodes in the cluster. If <use-was-work-manager> is true, the number of threads is configured in the work manager thread pool configuration. If <use-was-work-manager> is false, the maximum number of threads is the sum of the BPD queue capacity plus the asynchronous queue capacity plus the system queue capacity plus number of synchronous queues.

The web container threads also need database connections.

<was-work-manager>wm/BPMEventManagerWorkManager</was-work-manager>
Specifies the WebSphere Application Server Work Manager that is used.
Tip: Throttling the Event Manager is done by decreasing the queue capacity. If you are using <was-work-manager> thread pool, it limits the concurrency of Event Manager threads. It should be large enough to support the queue’s capacity. Set this parameter to the size of bpd-queue-capacity plus async-queue-capacity plus system-queue-capacity plus number of sync-queues.
<min-thread-pool-size>5</min-thread-pool-size>
Specifies minimum number of threads for the Event Manager engine thread pool, if the WebSphere Application Server Work Manager is not used.
<max-thread-pool-size>50</max-thread-pool-size>
Specifies maximum number of threads for the Event Manager engine thread pool, if the WebSphere Application Server Work Manager is not used.
Tip: To optimize throughput and scaling, start with a max-thread-pool-size size of 30 plus 10 per physical processor core (for example, 70 for a 4-processor core configuration), with a maximum value of 110.
<re-execute-limit>5</re-execute-limit>
Specifies maximum number of times the Event Manager will try to execute a task if it ends with an exception.
Tip: Event Manager tasks that fail and reach the re-execute-limit are put on hold. The tasks are retained in the database, but they are flagged to be on hold and rescheduled to be run in the future when the BPMReplayOnHoldEMTasks command is run.

Heartbeat properties

A heartbeat is a dedicated thread of an Event Manager instance that periodically signals that the Event Manager instance is still running.
<heartbeat-period>30000</heartbeat-period>
Specifies milliseconds between heartbeats. Do not change this setting. If the setting is changed, it must be less than the <heartbeat-expiration> divided by 4.
<heartbeat-expiration>240000</heartbeat-expiration>
Specifies milliseconds for a heartbeat to expire. Do not change this setting. If the setting is changed, it must be larger than 4 times the <heartbeat-period>.

Reaper property

A reaper is a dedicated thread for each cluster member that checks if there are Event Manager tasks owned by expired Event Manager instances. If it finds those tasks, the reaper resets the state to scheduled and the ownership to unassigned. Therefore, other Event Manager instances pick up the work.
<reaper-period>120000</reaper-period>
Specifies milliseconds between activity of expired Event Manager reaper. Do not change this setting.

Other Event Manager properties

<start-paused>false</start-paused>
Allows the Event Manager to be started in paused state. The Event Manager can be resumed using the Event Manager monitor in the Process Admin Console.
<name>EM instance name</name>
Specifies name of the Event Manager instance. The name is used in Event Manager monitor in the Process Admin Console.