<?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 Transaction Deadlock in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/transaction-deadlock/m-p/133911#M94031</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I get the following exception wenn I run two workflows at the same time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;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.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:213) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:388) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:338) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5574) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1734) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:320) ~[sqljdbc4.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) ~[org.apache.commons.dbcp_1.4.0.jar:1.4]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) ~[org.apache.commons.dbcp_1.4.0.jar:1.4]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:41) ~[mybatis-3.1.1.jar:3.1.1]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:66) ~[mybatis-3.1.1.jar:3.1.1]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:45) ~[mybatis-3.1.1.jar:3.1.1]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:108) ~[mybatis-3.1.1.jar:3.1.1]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75) ~[mybatis-3.1.1.jar:3.1.1]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:145) ~[mybatis-3.1.1.jar:3.1.1]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.ibatis.session.defaults.DefaultSqlSession.delete(DefaultSqlSession.java:158) ~[mybatis-3.1.1.jar:3.1.1]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession$DeleteById.execute(DbSqlSession.java:146) ~[activiti-engine-5.10.jar:5.10]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.flushDeletes(DbSqlSession.java:483) ~[activiti-engine-5.10.jar:5.10]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:371) ~[activiti-engine-5.10.jar:5.10]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:157) ~[activiti-engine-5.10.jar:5.10]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:109) ~[activiti-engine-5.10.jar:5.10]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49) ~[activiti-engine-5.10.jar:5.10]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42) ~[activiti-spring-5.10.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) ~[org.springframework.transaction_3.0.5.RELEASE.jar:3.0.5.RELEASE]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40) ~[activiti-spring-5.10.jar:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) ~[activiti-engine-5.10.jar:5.10]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.RuntimeServiceImpl.signal(RuntimeServiceImpl.java:137) ~[activiti-engine-5.10.jar:5.10]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.softmodeler.workflow.service.impl.WorkflowService.start(WorkflowService.java:221) ~[com.softmodeler.workflow/:na]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at com.softmodeler.workflow.service.impl.WorkflowService.startWorkflow(WorkflowService.java:186) ~[com.softmodeler.workflow/:na]&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;I found out (&lt;/SPAN&gt;&lt;A href="http://stackoverflow.com/questions/6662504/activiti-deadlock-occurs-under-jmeter-performance-test" rel="nofollow noopener noreferrer"&gt;http://stackoverflow.com/questions/6662504/activiti-deadlock-occurs-under-jmeter-performance-test&lt;/A&gt;&lt;SPAN&gt;) that I have to remove the "receiveTask" that I added.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem is that I added this "receiveTask" only for the reason that activiti stores its workflow into the db (&lt;/SPAN&gt;&lt;A href="http://forums.activiti.org/en/viewtopic.php?f=6&amp;amp;t=2375&amp;amp;start=0" rel="nofollow noopener noreferrer"&gt;http://forums.activiti.org/en/viewtopic.php?f=6&amp;amp;t=2375&amp;amp;start=0&lt;/A&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the workflow definition part: &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;sequenceFlow id="startToWait" sourceRef="start" targetRef="wait"/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;receiveTask id="wait" name="wait"/&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;sequenceFlow id="waitToTranslate" sourceRef="wait" targetRef="translate"/&amp;gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;On the code side I then to this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;identiyService.setAuthenticatedUserId(creator);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey, variables);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;processInstanceId = instance.getId();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (Throwable e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw ServerUtil.createServerException(e);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} finally {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;identiyService.setAuthenticatedUserId(null);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Execution execution = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).activityId("wait") //$NON-NLS-1$&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;.singleResult();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (execution != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;identiyService.setAuthenticatedUserId(null);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;runtimeService.signal(execution.getId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;This whole hack is done that I can access workflow data durring the workflow, using the following code in a workflow, the currently running process is not listed. &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey, variables);&lt;BR /&gt;for (ProcessInstance in : runtimeService.createProcessInstanceQuery().list()) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; System.out.println("RUNNING&amp;gt;: " + in.getId() + " " + in.getProcessDefinitionId());&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I was wondering is there a better solution? Workaround?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Should I report a bug?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;greets and thanks for any help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Flavio&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 09 Apr 2013 14:56:50 GMT</pubDate>
    <dc:creator>flavio_donze</dc:creator>
    <dc:date>2013-04-09T14:56:50Z</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>

