BPMN Timer does not persist between restart in BRMS 5.3
Issue
- This scenario involves a process definition which has a catching timer event whose having a delay of 5 min. Each process instance runs in it's own
StatefulKnowledgeSession(i.e.ksession). When the process execution reaches the catching event timer, a timer is created, and the process instance is persisted into the database. This is expected behaviour, as the timer node acts as a wait state. Then theksessionis disposed. When the process is signalled, theksessionis reloaded from the database, using similar code as shown in this KCS How to reconnect a StatefulKnowledgeSession to a process and continue the flow using jBPM5 and BRMS ?.
This pattern seems to be incompatible with the usage of timers, as it would need timers to be able to be fired even if the session has been disposed. However, the timer is never triggered, even when theksession(which was used to create the process instance) is reloaded from the database, the timer does not triggered.
Is this the expected behaviour? - If it is an expected behaviour, it make the whole concept of timers unusable as timers would not be able to survive server restarts, even if the same knowledge session that created the timer is reloaded from the database. Whereas, according to Jira JBPM-3170, timers should be persistent, but it does not seem to be happening in this case. How to make timers truly persist between server restarts?
Environment
- Red Hat JBoss BRMS (BRMS)
- 5.3.0
- jBPM
- 5.2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
