<?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: startProcessInstanceByKey: Unique Key violation on DB in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68762#M44136</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That's what I do at the moment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But my workflow is quite long running (about 200ms) because I call a EJB within the workflow:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt; &amp;lt;process id="wfTest" name="Test"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;startEvent id="start" name="Start" /&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="sequenceflow1" sourceRef="start" targetRef="masterDataService" /&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;serviceTask id="masterDataService" name="MD Service"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; activiti:class="test.EjbWorkflowTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="ejbJNDIName" stringValue="ejblocal:MasterDataService/local" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="ejbMethod" stringValue="handleMessage" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="sequenceflow2" sourceRef="masterDataService" targetRef="endOK"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[${WorkflowData.nodeResult == WorkflowData.nodeResultOK}]]&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="sequenceflow3" sourceRef="masterDataService" targetRef="endError"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[${WorkflowData.nodeResult == WorkflowData.nodeResultERROR}]]&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;endEvent id="endOK" name="End" /&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;endEvent id="endError" name="End mit Fehler" /&amp;gt;&lt;BR /&gt; &amp;lt;/process&amp;gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;test.EjbWorkflowTask is a helper class that looks up the EJB and calls it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thomas&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 18 May 2011 14:25:03 GMT</pubDate>
    <dc:creator>thomas1</dc:creator>
    <dc:date>2011-05-18T14:25:03Z</dc:date>
    <item>
      <title>startProcessInstanceByKey: Unique Key violation on DB</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68758#M44132</link>
      <description>Hi,I upgraded to 5.5 and get the following exception now after running same dozen workflows&lt;IMG id="smileysurprised" class="emoticon emoticon-smileysurprised" src="https://migration33.stage.lithium.com/i/smilies/16x16_smiley-surprised.png" alt="Smiley Surprised" title="Smiley Surprised" /&gt;rg.apache.ibatis.exceptions.PersistenceException:### Error updating database.&amp;nbsp; Cause: com.ibm.websphere.ce.cm.DuplicateKeyException: ORA-00001: unique constraint (SWT1CO.SYS_C0041136) violated### The error m</description>
      <pubDate>Tue, 17 May 2011 15:35:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68758#M44132</guid>
      <dc:creator>thomas1</dc:creator>
      <dc:date>2011-05-17T15:35:36Z</dc:date>
    </item>
    <item>
      <title>Re: startProcessInstanceByKey: Unique Key violation on DB</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68759#M44133</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I believe it might. You are managing the transactions yourself, so potentially getting the next id from the db happens concurrently. Where do you commit the transactions? See if setting auto-commit on your db makes a difference (just for testing).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 May 2011 09:14:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68759#M44133</guid>
      <dc:creator>walterjs</dc:creator>
      <dc:date>2011-05-18T09:14:35Z</dc:date>
    </item>
    <item>
      <title>Re: startProcessInstanceByKey: Unique Key violation on DB</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68760#M44134</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This will be quite difficult because we use Container Managed Persistence for our EJBs.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mean while I have two new exceptions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;### Error updating database.&amp;nbsp; Cause: com.ibm.websphere.ce.cm.DuplicateKeyException: ORA-00001: unique constraint (SWT1CO.SYS_C0093358) violated&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;### The error may involve org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.insertHistoricProcessInstance-Inline&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;### The error occurred while setting parameters&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;### Cause: com.ibm.websphere.ce.cm.DuplicateKeyException: ORA-00001: unique constraint (SWT1CO.SYS_C0093358) violated&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The second one is what you expected for this one I guess?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;org.activiti.engine.ActivitiOptimisticLockingException: PropertyEntity[next.dbid] was updated by another transaction concurrently&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I created a new post for this one: &lt;/SPAN&gt;&lt;A href="http://forums.activiti.org/en/viewtopic.php?f=6&amp;amp;t=1697" rel="nofollow noopener noreferrer"&gt;http://forums.activiti.org/en/viewtopic.php?f=6&amp;amp;t=1697&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 May 2011 10:58:47 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68760#M44134</guid>
      <dc:creator>thomas1</dc:creator>
      <dc:date>2011-05-18T10:58:47Z</dc:date>
    </item>
    <item>
      <title>Re: startProcessInstanceByKey: Unique Key violation on DB</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68761#M44135</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What happens when you wrap a transaction around each "start" call?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 May 2011 11:04:56 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68761#M44135</guid>
      <dc:creator>walterjs</dc:creator>
      <dc:date>2011-05-18T11:04:56Z</dc:date>
    </item>
    <item>
      <title>Re: startProcessInstanceByKey: Unique Key violation on DB</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68762#M44136</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That's what I do at the moment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But my workflow is quite long running (about 200ms) because I call a EJB within the workflow:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt; &amp;lt;process id="wfTest" name="Test"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;startEvent id="start" name="Start" /&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="sequenceflow1" sourceRef="start" targetRef="masterDataService" /&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;serviceTask id="masterDataService" name="MD Service"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; activiti:class="test.EjbWorkflowTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="ejbJNDIName" stringValue="ejblocal:MasterDataService/local" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="ejbMethod" stringValue="handleMessage" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="sequenceflow2" sourceRef="masterDataService" targetRef="endOK"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[${WorkflowData.nodeResult == WorkflowData.nodeResultOK}]]&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="sequenceflow3" sourceRef="masterDataService" targetRef="endError"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[${WorkflowData.nodeResult == WorkflowData.nodeResultERROR}]]&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;endEvent id="endOK" name="End" /&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;endEvent id="endError" name="End mit Fehler" /&amp;gt;&lt;BR /&gt; &amp;lt;/process&amp;gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;test.EjbWorkflowTask is a helper class that looks up the EJB and calls it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thomas&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 May 2011 14:25:03 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68762#M44136</guid>
      <dc:creator>thomas1</dc:creator>
      <dc:date>2011-05-18T14:25:03Z</dc:date>
    </item>
    <item>
      <title>Re: startProcessInstanceByKey: Unique Key violation on DB</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68763#M44137</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So you do this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;for (String key : processes) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; startTransaction();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.startProcessInstanceByKey(key, variables);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; commitTransaction();&lt;BR /&gt;}&lt;BR /&gt;&lt;/CODE&gt;&lt;SPAN&gt;It would be usful to see your code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Walter&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 May 2011 14:56:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68763#M44137</guid>
      <dc:creator>walterjs</dc:creator>
      <dc:date>2011-05-18T14:56:08Z</dc:date>
    </item>
    <item>
      <title>Re: startProcessInstanceByKey: Unique Key violation on DB</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68764#M44138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;No that would execute the workflows in a sequence - the startProcessInstanceByKey command is synchronous?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a MDB that leads to the parallel execution. 20 MDBs are allowed to run in parallel, for this test 1.000 messages are loaded into the message queue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The call hierarchy (a bit simplified because some more EJBs are involved but that should not matter):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MDB -&amp;gt; WorkflowEngine EJB does startProcessInstanceByKey -&amp;gt; Worker EJB access some database&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The MDB begins a transaction, calls the stateless WorkflowEngine EJB (uses CMT) that holds a process engine and calls startProcessInstanceByKey. The Activiti workflow calls another EJB that uses CMT as well. Finally the MDB commits the transaction.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This way I have 20 MDBs, 20 WorkflowEngine EJBs (20 ProcessEngines accessing the same database in parallel!) and 20 Worker EJBs.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it allowed to let several ProcessEngines access the same database?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am on vacation next week, after that I can provide some stripped down code if necessary.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 May 2011 18:06:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68764#M44138</guid>
      <dc:creator>thomas1</dc:creator>
      <dc:date>2011-05-19T18:06:29Z</dc:date>
    </item>
    <item>
      <title>Re: startProcessInstanceByKey: Unique Key violation on DB</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68765#M44139</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The only thing I can think of&amp;nbsp; is that the process engine is not using the transaction that the MDB starts. I don't see where you associate the transaction manager with the process engine. Have a look at the JtaProcessEngineConfiguration.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 May 2011 08:18:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/startprocessinstancebykey-unique-key-violation-on-db/m-p/68765#M44139</guid>
      <dc:creator>walterjs</dc:creator>
      <dc:date>2011-05-20T08:18:21Z</dc:date>
    </item>
  </channel>
</rss>

