<?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: Transaction Deadlock in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133916#M94036</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I created a little test to reproduce this deadlock issue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried to upload an attachment, but it does not seem to work "Could not upload attachment to ./files/387_8192b0846287b030284985893c1b7563.".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So here the code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SimpleCommit.bpmn20.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;definitions id="definitions"&lt;BR /&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; xmlns="&lt;A href="http://www.omg.org/spec/BPMN/20100524/MODEL" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/MODEL&lt;/A&gt;"&lt;BR /&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; xmlns:activiti="&lt;A href="http://activiti.org/bpmn" rel="nofollow noopener noreferrer"&gt;http://activiti.org/bpmn&lt;/A&gt;"&lt;BR /&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; targetNamespace="&lt;A href="http://www.activiti.org/bpmn2.0" rel="nofollow noopener noreferrer"&gt;http://www.activiti.org/bpmn2.0&lt;/A&gt;"&amp;gt;&lt;BR /&gt;&lt;BR /&gt; &amp;lt;process id="SimpleCommit" isExecutable="true"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;startEvent id="start"/&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="startToWait" sourceRef="start" targetRef="wait"/&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;receiveTask id="wait" name="wait"/&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="waitToSleepTask" sourceRef="wait" targetRef="sleepTask"/&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;serviceTask id="sleepTask" activiti:class="com.softmodeler.workflow.SleepTask"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="sleepTaskToEnd" sourceRef="sleepTask" targetRef="end"/&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;endEvent id="end"/&amp;gt;&lt;BR /&gt; &amp;lt;/process&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;/definitions&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;SleepTask.java&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;package com.softmodeler.workflow;&lt;BR /&gt;&lt;BR /&gt;import org.activiti.engine.delegate.DelegateExecution;&lt;BR /&gt;import org.activiti.engine.delegate.JavaDelegate;&lt;BR /&gt;&lt;BR /&gt;/**&lt;BR /&gt; * @author created by Author: fdo, last update by $Author: $&lt;BR /&gt; * @version $Revision: $, $Date: $&lt;BR /&gt; */&lt;BR /&gt;public class SleepTask implements JavaDelegate {&lt;BR /&gt;&lt;BR /&gt; @Override&lt;BR /&gt; public void execute(DelegateExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp; Thread.sleep(5000);&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Excecution Code&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt; public void startTest() {&lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Thread thread1 = new Thread(new Runnable() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("start 1");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start("testuser1", "SimpleCommit");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("end 1");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (ServerException e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; });&lt;BR /&gt;&amp;nbsp;&amp;nbsp; thread1.start();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Thread thread2 = new Thread(new Runnable() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("start 2");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start("testuser2", "SimpleCommit");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("end 2");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (ServerException e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; });&lt;BR /&gt;&amp;nbsp;&amp;nbsp; thread2.start();&lt;BR /&gt;&amp;nbsp; } catch (Exception e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)&lt;BR /&gt; protected String start(String initiator, String processKey) throws ServerException {&lt;BR /&gt;&amp;nbsp; String processInstanceId = null;&lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; identiyService.setAuthenticatedUserId(initiator);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; processInstanceId = instance.getId();&lt;BR /&gt;&amp;nbsp; } catch (Throwable e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; throw ServerUtil.createServerException(e);&lt;BR /&gt;&amp;nbsp; } finally {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; identiyService.setAuthenticatedUserId(null);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Execution execution = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).activityId("wait") //$NON-NLS-1$&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .singleResult();&lt;BR /&gt;&amp;nbsp; if (execution != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; // remove current user otherwise subprocesses are also listed (remove as well)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; identiyService.setAuthenticatedUserId(null);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; runtimeService.signal(execution.getId());&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; return processInstanceId;&lt;BR /&gt; }&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe this can be added as a test?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;greets&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Flavio&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 16 Apr 2013 08:43:48 GMT</pubDate>
    <dc:creator>flavio_donze</dc:creator>
    <dc:date>2013-04-16T08:43:48Z</dc:date>
    <item>
      <title>Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133911#M94031</link>
      <description>I get the following exception wenn I run two workflows at the same time.com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 55) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.j</description>
      <pubDate>Tue, 09 Apr 2013 14:56:50 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133911#M94031</guid>
      <dc:creator>flavio_donze</dc:creator>
      <dc:date>2013-04-09T14:56:50Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133912#M94032</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Flavio,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For your use case, using the async attribute would make much more sense then introducing this receive task.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you try and test it with the async="true" attribute?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Apr 2013 15:10:03 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133912#M94032</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2013-04-09T15:10:03Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133913#M94033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi trademak&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your quick reply!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The async="true" does solve the transaction problem and I can remove the hack!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem that I got now is the exception handling.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The workflow that causes the deadlocks does not have any user interaction, it consists of a bunch of serviceTasks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Before adding the async="true", in case one of the serviceTasks threw an exception it was caught by the client and displayed in a message box.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Using the async="true", the client does not get notified if something went wrong, since the workflow is running asynchronous on the server.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I would like to catch the exception in the workflow and maybe create a user task or send a mail.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I studied the Activiti User Guide, but I can't find anything that fits, e.g. a listener or "catch" task.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any idea how I can accomplish this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;greets and thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Flavio&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Apr 2013 08:46:53 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133913#M94033</guid>
      <dc:creator>flavio_donze</dc:creator>
      <dc:date>2013-04-10T08:46:53Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133914#M94034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It is better to post new questions in new topics with a specific subject. That way they are easier to find for others with a similar issue.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Apr 2013 09:42:33 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133914#M94034</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2013-04-10T09:42:33Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133915#M94035</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Done that: &lt;/SPAN&gt;&lt;A href="http://forums.activiti.org/en/viewtopic.php?f=6&amp;amp;t=6349" rel="nofollow noopener noreferrer"&gt;http://forums.activiti.org/en/viewtopic.php?f=6&amp;amp;t=6349&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Apr 2013 11:52:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133915#M94035</guid>
      <dc:creator>flavio_donze</dc:creator>
      <dc:date>2013-04-12T11:52:55Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133916#M94036</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I created a little test to reproduce this deadlock issue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried to upload an attachment, but it does not seem to work "Could not upload attachment to ./files/387_8192b0846287b030284985893c1b7563.".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So here the code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SimpleCommit.bpmn20.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;definitions id="definitions"&lt;BR /&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; xmlns="&lt;A href="http://www.omg.org/spec/BPMN/20100524/MODEL" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/MODEL&lt;/A&gt;"&lt;BR /&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; xmlns:activiti="&lt;A href="http://activiti.org/bpmn" rel="nofollow noopener noreferrer"&gt;http://activiti.org/bpmn&lt;/A&gt;"&lt;BR /&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; targetNamespace="&lt;A href="http://www.activiti.org/bpmn2.0" rel="nofollow noopener noreferrer"&gt;http://www.activiti.org/bpmn2.0&lt;/A&gt;"&amp;gt;&lt;BR /&gt;&lt;BR /&gt; &amp;lt;process id="SimpleCommit" isExecutable="true"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;startEvent id="start"/&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="startToWait" sourceRef="start" targetRef="wait"/&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;receiveTask id="wait" name="wait"/&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="waitToSleepTask" sourceRef="wait" targetRef="sleepTask"/&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;serviceTask id="sleepTask" activiti:class="com.softmodeler.workflow.SleepTask"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;sequenceFlow id="sleepTaskToEnd" sourceRef="sleepTask" targetRef="end"/&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;endEvent id="end"/&amp;gt;&lt;BR /&gt; &amp;lt;/process&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;/definitions&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;SleepTask.java&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;package com.softmodeler.workflow;&lt;BR /&gt;&lt;BR /&gt;import org.activiti.engine.delegate.DelegateExecution;&lt;BR /&gt;import org.activiti.engine.delegate.JavaDelegate;&lt;BR /&gt;&lt;BR /&gt;/**&lt;BR /&gt; * @author created by Author: fdo, last update by $Author: $&lt;BR /&gt; * @version $Revision: $, $Date: $&lt;BR /&gt; */&lt;BR /&gt;public class SleepTask implements JavaDelegate {&lt;BR /&gt;&lt;BR /&gt; @Override&lt;BR /&gt; public void execute(DelegateExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp; Thread.sleep(5000);&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Excecution Code&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt; public void startTest() {&lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Thread thread1 = new Thread(new Runnable() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("start 1");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start("testuser1", "SimpleCommit");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("end 1");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (ServerException e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; });&lt;BR /&gt;&amp;nbsp;&amp;nbsp; thread1.start();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Thread thread2 = new Thread(new Runnable() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("start 2");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start("testuser2", "SimpleCommit");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("end 2");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (ServerException e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; });&lt;BR /&gt;&amp;nbsp;&amp;nbsp; thread2.start();&lt;BR /&gt;&amp;nbsp; } catch (Exception e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)&lt;BR /&gt; protected String start(String initiator, String processKey) throws ServerException {&lt;BR /&gt;&amp;nbsp; String processInstanceId = null;&lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; identiyService.setAuthenticatedUserId(initiator);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; processInstanceId = instance.getId();&lt;BR /&gt;&amp;nbsp; } catch (Throwable e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; throw ServerUtil.createServerException(e);&lt;BR /&gt;&amp;nbsp; } finally {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; identiyService.setAuthenticatedUserId(null);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Execution execution = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).activityId("wait") //$NON-NLS-1$&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .singleResult();&lt;BR /&gt;&amp;nbsp; if (execution != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; // remove current user otherwise subprocesses are also listed (remove as well)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; identiyService.setAuthenticatedUserId(null);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; runtimeService.signal(execution.getId());&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; return processInstanceId;&lt;BR /&gt; }&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe this can be added as a test?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;greets&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Flavio&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Apr 2013 08:43:48 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133916#M94036</guid>
      <dc:creator>flavio_donze</dc:creator>
      <dc:date>2013-04-16T08:43:48Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133917#M94037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Does this happen on every database or only on sql server?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Apr 2013 11:25:16 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133917#M94037</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2013-04-16T11:25:16Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133918#M94038</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Right now I'm using MSSQL 2008 R2.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I will try to setup a postgresql environment.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Apr 2013 07:17:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133918#M94038</guid>
      <dc:creator>flavio_donze</dc:creator>
      <dc:date>2013-04-17T07:17:45Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133919#M94039</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Might be related to an interesting mssql 'feature', lock escalation&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://www.sqlhacks.com/FAQs/Lock-Escalation" rel="nofollow noopener noreferrer"&gt;http://www.sqlhacks.com/FAQs/Lock-Escalation&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Apr 2013 09:03:49 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133919#M94039</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2013-04-17T09:03:49Z</dc:date>
    </item>
    <item>
      <title>Re: Transaction Deadlock</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133920#M94040</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I tested it with postgresql and there was no deadlock.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I will have a lock at the lock-escalation, thanks for the hint Ronald. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Apr 2013 12:39:43 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133920#M94040</guid>
      <dc:creator>flavio_donze</dc:creator>
      <dc:date>2013-04-19T12:39:43Z</dc:date>
    </item>
  </channel>
</rss>

