0 votes
16 views
ago by (30.6k points)
Our timers fire late during peak hours and UCA-driven starts pile up. Which Event Manager settings exist, where are they configured, and how do we find the right values?

1 Answer

0 votes
ago by (30.6k points)

The Event Manager (EM) is the scheduler that executes timers, UCA invocations, asynchronous system tasks and BPD navigation work. It runs in every cluster member; its capacity is a thread pool per member and its behaviour is configured in 100Custom.xml (Process Server) and partially in Process Admin.

<properties>
  <server merge="mergeChildren">
    <event-manager merge="mergeChildren">
      <thread-pool merge="mergeChildren">
        <max-threads merge="replace">30</max-threads>          <!-- default 10; raise when tasks queue up but CPU / DB are idle -->
        <min-threads merge="replace">10</min-threads>
      </thread-pool>
      <loader-long-period merge="replace">15000</loader-long-period>   <!-- ms between scheduler polls when idle (default 15 s) -->
      <loader-short-period merge="replace">2000</loader-short-period>  <!-- ms between polls when work exists -->
      <loader-advance-window merge="replace">60000</loader-advance-window>   <!-- ms: how far ahead tasks are loaded -->
      <sync-queue-capacity merge="replace">200</sync-queue-capacity>
      <async-queue-capacity merge="replace">200</async-queue-capacity>
      <task-blackout merge="mergeChildren">                  <!-- no EM execution during backups -->
        <daily merge="replace">02:00-02:30</daily>
      </task-blackout>
    </event-manager>
  </server>
</properties>

How to find values: Process Admin > Event Manager > Monitor shows queued vs executing tasks per scheduler (or GET /ops/std/bpm/event_manager/monitor) - a growing "scheduled in the past" backlog with idle threads means the loader period / advance window is too slow; all threads busy means the pool is too small or the tasks are slow (look at the tasks: a slow UCA service or a system task calling a slow API - fix that first, more threads only move the bottleneck to the database). Every EM thread needs a JDBC connection - size the data source pool accordingly (question on JVM settings). Blackout periods stop timers during backups so that no half-written work exists. Timer accuracy is bounded by the loader period (a 15 s poll means timers fire up to 15 s late); keep it ≥ 2 s to avoid database load. On CP4BA the same XML goes into the custom 100Custom.xml secret and applies to every replica; the number of replicas multiplies the EM capacity.

References

Related questions

0 votes
1 answer 20 views

723 questions

807 answers

98 comments

4.8k users

Join BPM Community Discord Channel

Welcome to BPM Tips Q&A, Community wiki/forum where you can ask questions and receive answers from other IBM BPM experts and members of the community. Users with 2000 points will automatically be promoted to expert level.
Created by Dosvak LLC
Our Youtube Channel
...