<?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 Re: how to resolve ActivitiOptimisticLockingException in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82038#M54969</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Most certainly not &lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://connect.hyland.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If we do that, we loose synchronization at the parallel join.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 12 Jan 2012 14:32:38 GMT</pubDate>
    <dc:creator>meyerd</dc:creator>
    <dc:date>2012-01-12T14:32:38Z</dc:date>
    <item>
      <title>how to resolve ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82037#M54968</link>
      <description>[attachment=0]temp.jpg[/attachment]you should modify ParallelGatewayActivityBehavior class, comment out following line:execution.inactivate();//lockConcurrentRoot(execution);</description>
      <pubDate>Thu, 12 Jan 2012 14:00:28 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82037#M54968</guid>
      <dc:creator>lxjchengcu</dc:creator>
      <dc:date>2012-01-12T14:00:28Z</dc:date>
    </item>
    <item>
      <title>Re: how to resolve ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82038#M54969</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Most certainly not &lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://connect.hyland.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If we do that, we loose synchronization at the parallel join.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Jan 2012 14:32:38 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82038#M54969</guid>
      <dc:creator>meyerd</dc:creator>
      <dc:date>2012-01-12T14:32:38Z</dc:date>
    </item>
    <item>
      <title>Re: how to resolve ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82039#M54970</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;No, I&amp;nbsp; don't think so, in fact, when multiple concurrent executions run to same join node, one of the execution will update the parent execution even though there is no changes for any fields in parent execution, so I think that is an issue.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Jan 2012 01:51:19 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82039#M54970</guid>
      <dc:creator>lxjchengcu</dc:creator>
      <dc:date>2012-01-13T01:51:19Z</dc:date>
    </item>
    <item>
      <title>Re: how to resolve ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82040#M54971</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;select * from ACT_RU_HIST_EXECUTION order by seq;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;create table ACT_RU_HIST_EXECUTION as select * from ACT_RU_EXECUTION where 1=2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;alter table ACT_RU_HIST_EXECUTION add SEQ NUMBER(19) not null;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;create sequence ACT_RU_HIST_EXECUTION_SEQ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CREATE OR REPLACE TRIGGER ACT_RU_EXECUTION_AFTER_UPDATE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; AFTER INSERT OR UPDATE ON ACT_RU_EXECUTION&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; FOR EACH ROW&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DECLARE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;BEGIN&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; INSERT INTO ACT_RU_HIST_EXECUTION&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SEQ,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REV_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROC_INST_ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUSINESS_KEY_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PARENT_ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROC_DEF_ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUPER_EXEC_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACT_ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IS_ACTIVE_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IS_CONCURRENT_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IS_SCOPE_)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT ACT_RU_HIST_EXECUTION_SEQ.NEXTVAL,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.REV_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.PROC_INST_ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.BUSINESS_KEY_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.PARENT_ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.PROC_DEF_ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.SUPER_EXEC_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.ACT_ID_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.IS_ACTIVE_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.IS_CONCURRENT_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :NEW.IS_SCOPE_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM DUAL;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;END;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;when you create a trigger in Activiti database, check the entries in ACT_RU_HIST_EXECUTION, you will find my theory is right.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Jan 2012 01:53:16 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82040#M54971</guid>
      <dc:creator>lxjchengcu</dc:creator>
      <dc:date>2012-01-13T01:53:16Z</dc:date>
    </item>
    <item>
      <title>Re: how to resolve ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82041#M54972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi lxjchengcu,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;we use optimistic locking on the parent execution to make sure only one execution continues after the parallel join. That is what I meant by "synchronization".&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Jan 2012 11:11:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82041#M54972</guid>
      <dc:creator>meyerd</dc:creator>
      <dc:date>2012-01-13T11:11:29Z</dc:date>
    </item>
    <item>
      <title>Re: how to resolve ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82042#M54973</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;why not allow multiple sub executions to pass the join node? we do have such requirement in our business, if one execution fails to pass the join node due to the optimistic locking mechanism, user has to clear the lock info and exception info fields to enable job executor to run it again, if the last service task needs to cost multiple hours, but we have to run it again due to the optimistic locking, that is not easily explained.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jan 2012 02:16:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82042#M54973</guid>
      <dc:creator>lxjchengcu</dc:creator>
      <dc:date>2012-01-16T02:16:35Z</dc:date>
    </item>
    <item>
      <title>Re: how to resolve ActivitiOptimisticLockingException</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82043#M54974</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi meyerd,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I understand what you mean, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;A and B are parallel executions, C is the parent, it is process instance,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;so after A runs the last service task on its branch, the activity will be updated to join activity, and the version of C will be increased.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then B runs the last service task on its branch, Activiti engine will get the latest A and C from DB for B, so B and C will be deleted, and the activity in C will be updated to next activity just right after the join activity, when both A and B will update C, the ActivitiOptimisticLockingException occurs, that is the case.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In general, there is no problem, but we may forget one thing, if in the last service task of B, runs following code piece&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;public void execute(DelegateExecution execution) throws Exception {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ExecutionEntity executionEntity = (ExecutionEntity) execution;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, Object&amp;gt; variables = execution.getVariables();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;since we want to get all the variables including the variables from process instance C, so the execution C object will be got from DB and put to cache at this time, so that after B completes the run of last service task, it will not query C from DB again, instead, it will get it from cache, but the C has been updated by A, so that is the conflict.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jan 2012 02:48:53 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-resolve-activitioptimisticlockingexception/m-p/82043#M54974</guid>
      <dc:creator>lxjchengcu</dc:creator>
      <dc:date>2012-01-16T02:48:53Z</dc:date>
    </item>
  </channel>
</rss>

