Timer doesn't survive after BPMS 6.0.3 reboot
Environment
- Red Hat JBoss BPM Suite
- 6.0.3
Issue
- After I reboot BPMS server, some process instances got stuck at Timer Node. Timer is not fired any longer.
Resolution
In BPMS 6.0.3, Timer surviving behaviour differs depending on RuntimeManager strategy.
- With Singleton, Timer will be fired even after BPMS server reboots.
- With PerRequest, Timer will be lost when BPMS server reboots.
- With PerProcesssInstance, Timer CAN be fired even after BPMS server reboots. But the Timer will be activated only after the correspond KieSession is loaded.
So in case of PerProcesssInstance, you need to explicitly load KieSessions for active process instances.
Attached an example(jBPM6Ex110_rest_initTimer_PerProcessInstance.zip) which demonstrates "load KieSessions for active process instances". See README.md for details.
Root Cause
BPMS 6.0.3
Timer surviving behaviour differs depending on RuntimeManager strategy.
- With Singleton, Timer will be fired even after BPMS server reboots.
- With PerRequest, Timer will be lost when BPMS server reboots.
- With PerProcesssInstance, Timer CAN be fired even after BPMS server reboots. But the Timer will be activated only after the correspond KieSession is loaded.
So you need to explicitly load KieSessions for active process instances.
since BPMS 6.1
Even with PerProcesssInstance, Timer will be automatically activated on BPMS boot (unless you explicitly set system property "org.jbpm.rm.init.timer" to 'false').
Attachments
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
