cancel
Showing results for 
Search instead for 
Did you mean: 

Understanding JobEntity was updated by another transaction concurrently

dmill
Champ in-the-making
Champ in-the-making
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.
3 REPLIES 3

dmill
Champ in-the-making
Champ in-the-making
Anyone ? Smiley Happy

dmill
Champ in-the-making
Champ in-the-making
sorry to insist but this has become a real issue. I can provide any necessary information

cjose
Elite Collaborator
Elite Collaborator
Could you please share your bpmn diagram/xml and a little explanation of your process flow? Is it a multi-instance sub process call?