I was wondering if there were any issues with using timers and multi-threaded execution.
I am using JBPM 3.2.6-SP1 and it seems like when I run two threads through my process workflow, I get a database deadlock.
It seems like 1 thread is holding open a transaction for the duration of the entire workflow, and has locked the JBPM_JOB table, and another thread starts and as it tries to transition between stages, it tries to delete from the JBPM_JOB table, and the entire thing gets deadlocked. It appears the problem is with trying to delete the timer at the same node.
org.jbpm.JbpmException: could not delete timers by name 'validate' for Token(/)
at org.jbpm.db.JobSession.deleteTimersByName(JobSession.java:216)
at org.jbpm.scheduler.db.DbSchedulerService.deleteTimersByName(DbSchedulerService.java:64)
at org.jbpm.scheduler.def.CancelTimerAction.execute(CancelTimerAction.java:46)
at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:281)
Is this something that is known, or have other people been able to use JBPM with timers in a multi-threaded environment?