Maintaining and monitoring IBM Business Process Manager Event Manager

The Event Manager monitor, included in the Process Admin Console, is useful for troubleshooting processes that are supposed to run automatically (through an undercover agent, for example) but fail to start. You can use the Event Manager monitor to identify underlying problems as well as to control various aspects of Event Manager processing.

The Event Manager is the part of the Process Server that handles event scheduling and queuing. For example, when an event is received by Process Server, that event becomes a job in the Event Manager. Each job in the Event Manager is routed through a Scheduler, which schedules and tracks the execution of its assigned jobs.

For inbound integrations, where an external system or application calls into IBM® BPM to kick off a service, developers in IBM Process Designer can create an undercover agent (UCA) and a web service to start the necessary IBM BPM service. The Event Manager processes all incoming requests as described in the following table:
For... Event Manager...
Incoming message events from external applications Queues incoming messages and then kicks off the appropriate UCA.
Schedules set in UCAs Looks to find the next UCA to run, calculates the time until the next UCA is due to run, and is dormant for the time between.
Incoming subscription events from external ECM systems (through the RESTFul API send ECM event) Queues an asynchronous message and initiates the appropriate event subscription and attached service.

The following diagram shows how the Event Manager receives and processes incoming requests:

This diagram shows the event manager incoming request receive and process workflow

The scheduling and driving of the work is accomplished with Event Manager tasks. When an exception occurs, such as a queue-full condition of the monitor event queue, re-execution of the tasks starts, which attempts to overcome the exception. The re-execute-limit property that is specified in the Event Manager configuration settings determines the number of times to try again (set to 5 by default). After that limit is reached for an Event Manager task, it is not tried again. To prevent a situation where reaching the limit result in a BPD instance that is not continuing its navigation anymore, and it stops responding, 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. If an Event Manager task fails often enough to be put on hold, the failure indicates a possible infrastructure problem. Either a resource is unavailable for some time or the system configuration has a problem (for example, too few connections or the like). If an Event Manager task is put on hold, the process instance might stop responding. Use the BPMReplayOnHoldEMTasks command to find the on hold tasks and restart them.