<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic org.activiti.engine.ActivitiOptimisticLockingException in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8955#M3042</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Given exception is thrown when two executions try to update their state at the same time. Please download attached activiti file and run simple test on it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Engine revision 5.3, databases checked: mysql, h2&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2011-03-25 14:51:20 org.activiti.engine.impl.interceptor.CommandContext close&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SEVERE: Error while closing command context&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;org.activiti.engine.ActivitiOptimisticLockingException: ExecutionEntity[5] was updated by another transaction concurrently&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:407)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:320)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:135)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:91)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.jobexecutor.ExecuteJobsRunnable.run(ExecuteJobsRunnable.java:36)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.lang.Thread.run(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Exception in thread "pool-1-thread-1" org.activiti.engine.ActivitiOptimisticLockingException: ExecutionEntity[5] was updated by another transaction concurrently&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:407)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:320)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:135)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:91)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.jobexecutor.ExecuteJobsRunnable.run(ExecuteJobsRunnable.java:36)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at java.lang.Thread.run(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2011-03-25 14:52:12 org.springframework.context.support.AbstractApplicationContext doClose&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;INFO: Closing org.springframework.context.support.GenericApplicationContext@19efb05: startup date [Fri Mar 25 14:51:13 CET 2011]; root of context hierarchy&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 25 Mar 2011 14:00:45 GMT</pubDate>
    <dc:creator>mlisiewicz</dc:creator>
    <dc:date>2011-03-25T14:00:45Z</dc:date>
    <item>
      <title>org.activiti.engine.ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8955#M3042</link>
      <description>Given exception is thrown when two executions try to update their state at the same time. Please download attached activiti file and run simple test on it.Engine revision 5.3, databases checked: mysql, h22011-03-25 14:51:20 org.activiti.engine.impl.interceptor.CommandContext closeSEVERE: Error while</description>
      <pubDate>Fri, 25 Mar 2011 14:00:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8955#M3042</guid>
      <dc:creator>mlisiewicz</dc:creator>
      <dc:date>2011-03-25T14:00:45Z</dc:date>
    </item>
    <item>
      <title>Re: org.activiti.engine.ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8956#M3043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That is the expected behavior: in you case, the two tasks are trying to do something at the same time with the same process instance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The engine can't possibly know how those must be merged in the generic case (in this case, you can just see it), so one transaction 'wins', and the other is rolled back.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So if you want to deal with this, you will need to catch this exception and implement a reload or retry (depending on your use case)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Mar 2011 09:07:44 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8956#M3043</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-03-28T09:07:44Z</dc:date>
    </item>
    <item>
      <title>Re: org.activiti.engine.ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8957#M3044</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm trying to understand this situation and am at a loss.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Why and how does the code identify above scenario as an 'optimistic lock exception'?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are 2 receive tasks and each task has a boundary timer (3 secs) attached.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Both timers fire and then the process ends. There's no variables to merge.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Sep 2011 11:49:25 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8957#M3044</guid>
      <dc:creator>lichtin</dc:creator>
      <dc:date>2011-09-09T11:49:25Z</dc:date>
    </item>
    <item>
      <title>Re: org.activiti.engine.ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8958#M3045</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;but there is a proccess to end&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Sep 2011 13:23:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8958#M3045</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2011-09-09T13:23:45Z</dc:date>
    </item>
    <item>
      <title>Re: org.activiti.engine.ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8959#M3046</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;That is the expected behavior: …&lt;BR /&gt;The engine can't possibly know how those must be merged in the generic case (in this case, you can just see it), so one transaction 'wins', and the other is rolled back.&lt;BR /&gt;&lt;BR /&gt;So if you want to deal with this, you will need to catch this exception and implement a reload or retry (depending on your use case)&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;How "big" are those transactions (i.e what is covered by one transaction? Execution of a single task, entire execution till it reaches a receive-task/end?) And is there a way to influence the size of such a transaction (even if you are using Spring in an EJB (with user-managed transactions))? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;"OptimisticLocking" sounds like first Activiti tries to do something and only then to check if it was allowed to do it. If that's correct and if I have a service-task starting an asynchronous external process followed by a receive-task waiting for the asynch process to continue - this should mean that the external process is already started when Activiti realizes that it would have been better not to do so and rolls back - which in consequence means that the process can't signal that it has terminated. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This behaviour would be a "no-go" and should be corrected ASAP - Ideally there would be a configuration-option that Activiti checks before each step if it is allowed to perform it - even if it comes at the cost of performance-loss.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Franz&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Oct 2011 06:52:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/org-activiti-engine-activitioptimisticlockingexception/m-p/8959#M3046</guid>
      <dc:creator>franz1</dc:creator>
      <dc:date>2011-10-06T06:52:35Z</dc:date>
    </item>
  </channel>
</rss>

