AnsweredAssumed Answered

Understanding JobEntity  was updated by another transaction concurrently

Question asked by dmill on Oct 13, 2016
Latest reply on Oct 28, 2016 by cjose
Hey guys,

I'm really confused by this error :

org.activiti.engine.ActivitiOptimisticLockingException: JobEntity [id=132558] was updated by another transaction concurrently
   at org.activiti.engine.impl.db.DbSqlSession$CheckedDeleteOperation.execute(DbSqlSession.java:286)
   at org.activiti.engine.impl.db.DbSqlSession.flushRegularDeletes(DbSqlSession.java:834)
   at org.activiti.engine.impl.db.DbSqlSession.flushDeletes(DbSqlSession.java:798)
   at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:595)
   at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:211)
   at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:137)
   at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:66)
   at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
   at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
   at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
   at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31)
   at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40)
   at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35)
   at org.activiti.engine.impl.asyncexecutor.ExecuteAsyncRunnable.run(ExecuteAsyncRunnable.java:73)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)


I'm using activiti-rest and activiti-explorer. These are stock 5.17.x and we deploy our bpmn20 to these via REST.
Our process has an async=true subprocess that contains a timer event and I'm guessing this is where the issue arrises but I'm not sure why? Can someone explain how this could result in concurrent transactions?

Is there a way to raise the retry count directly from the process xml?

Thanks guys.

Outcomes