Event Manager configuration settings
To understand how the IBM® Business Automation Workflow 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 Creating a 100Custom.xml configuration file.
Task loader properties
<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 to15000
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
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.
When the server starts, the value of the async-queue-capacity
setting is checked
and compared to the value of the maxConnections
setting for the datasource. The
value of the async-queue-capacity
setting is automatically adjusted if the
condition specified in the following formula is met:
maxConnections < 2 * async-queue-capacity + 5 synchronous queues
If the value of the async-queue-capacity
setting is adjusted, warnings are
written to the server logs. For example:
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'
Use the following guidelines to help calculate or adjust the value of the
async-queue-capacity
setting:
- If the connection pool is large enough, use the values that are currently configured.
- If the connection pool is too small, choose one of the following options:
- If the queue capacity is less than or equal to the specified minimum value, only print a warning.
-
If the queue capacity is greater than the specified minimum value, adjust the queue capacity value but ensure that the value is not less than the minimum specified value.
async-queue-capacity
setting are not written to the
TeamWorksConfiguration.running.xml file. The file would still contain the
original values.Thread pool properties
<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 Automation Workflow 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 ofbpd-queue-capacity
plusasync-queue-capacity
plussystem-queue-capacity
plusnumber 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
<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
<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.