0 votes
910 views
in Interview Questions by (30.6k points)

1 Answer

0 votes
by (30.6k points)

Messages (UCA events, timers, asynchronous steps) are processed by the Event Manager: a scheduler per cluster member picks tasks from the event manager tables (LSW_EM_TASK and related) and runs them. When "messages are not processed":

  1. Is the event manager running? Process Admin > Event Manager > Monitor: every scheduler must show running; a paused scheduler (someone paused it for maintenance) or a member that is down keeps its queue. Resume it. The Operations REST GET /ops/std/bpm/event_manager/monitor shows the same on BAW 20+.
  2. Are the tasks on hold? Process Admin > Event Manager > Tasks (or GET /ops/std/bpm/event_manager_tasks?states=on_hold): tasks go on hold after repeated failures - open one, read the error, fix the cause (usually the UCA's service throws), then replay or delete.
  3. Did the message reach BAW? For JMS: the queue depth in MQ / the SIBus (admin console > Buses > ... > Queue points), the message driven bean / activation spec started, the eventmsg XML well-formed with the right processApp acronym and ucaname; wrong names end in SystemOut.log as CWLLG0xxx "no UCA found".
  4. Correlation: the message arrived and the UCA ran, but no instance was waiting with a matching key - check the UCA's output mapping and the intermediate message event's correlation variable; a message that arrives before the instance reaches the event is kept only when the message event is configured as durable subscription (BAW 8.6+), otherwise it is lost.
  5. Load: the EM thread pool is exhausted (a few long-running UCAs block the rest) - PMI / thread dump; increase Event Manager thread pool (100Custom.xml <event-manager><thread-pool>) or fix the slow service.
  6. Clock and database: tasks scheduled in the future because of clock skew between members / database; lock waits on the EM tables (long transactions).
-- quick look at the event manager backlog (BPMDB)
select task_status, count(*) from lsw_em_task group by task_status;                 -- status codes: scheduled / on hold / executing
select task_id, task_status, task_group, next_execution_time from lsw_em_task where task_status = 4 order by next_execution_time;   -- 4 = on hold on most levels

References

Related questions

0 votes
1 answer 1.3k views
0 votes
1 answer 1.1k views
0 votes
1 answer 3.3k views
+1 vote
1 answer 2.3k views
0 votes
1 answer 843 views
0 votes
1 answer 1.1k views

723 questions

807 answers

98 comments

4.9k 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
...