04-09-2013 10:56 AM
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.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:213) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:388) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:338) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5574) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1734) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:320) ~[sqljdbc4.jar:na]
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) ~[org.apache.commons.dbcp_1.4.0.jar:1.4]
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) ~[org.apache.commons.dbcp_1.4.0.jar:1.4]
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:41) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:66) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:45) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:108) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:145) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.session.defaults.DefaultSqlSession.delete(DefaultSqlSession.java:158) ~[mybatis-3.1.1.jar:3.1.1]
at org.activiti.engine.impl.db.DbSqlSession$DeleteById.execute(DbSqlSession.java:146) ~[activiti-engine-5.10.jar:5.10]
at org.activiti.engine.impl.db.DbSqlSession.flushDeletes(DbSqlSession.java:483) ~[activiti-engine-5.10.jar:5.10]
at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:371) ~[activiti-engine-5.10.jar:5.10]
at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:157) ~[activiti-engine-5.10.jar:5.10]
at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:109) ~[activiti-engine-5.10.jar:5.10]
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49) ~[activiti-engine-5.10.jar:5.10]
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42) ~[activiti-spring-5.10.jar:na]
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) ~[org.springframework.transaction_3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40) ~[activiti-spring-5.10.jar:na]
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) ~[activiti-engine-5.10.jar:5.10]
at org.activiti.engine.impl.RuntimeServiceImpl.signal(RuntimeServiceImpl.java:137) ~[activiti-engine-5.10.jar:5.10]
at com.softmodeler.workflow.service.impl.WorkflowService.start(WorkflowService.java:221) ~[com.softmodeler.workflow/:na]
at com.softmodeler.workflow.service.impl.WorkflowService.startWorkflow(WorkflowService.java:186) ~[com.softmodeler.workflow/:na]
<sequenceFlow id="startToWait" sourceRef="start" targetRef="wait"/>
<receiveTask id="wait" name="wait"/>
<sequenceFlow id="waitToTranslate" sourceRef="wait" targetRef="translate"/>
try {
identiyService.setAuthenticatedUserId(creator);
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey, variables);
processInstanceId = instance.getId();
} catch (Throwable e) {
throw ServerUtil.createServerException(e);
} finally {
identiyService.setAuthenticatedUserId(null);
}
Execution execution = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).activityId("wait") //$NON-NLS-1$
.singleResult();
if (execution != null) {
identiyService.setAuthenticatedUserId(null);
runtimeService.signal(execution.getId());
}
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey, variables);
for (ProcessInstance in : runtimeService.createProcessInstanceQuery().list()) {
System.out.println("RUNNING>: " + in.getId() + " " + in.getProcessDefinitionId());
}
04-09-2013 11:10 AM
04-10-2013 04:46 AM
04-10-2013 05:42 AM
04-12-2013 07:52 AM
04-16-2013 04:43 AM
<?xml version="1.0" encoding="UTF-8"?>
<definitions id="definitions"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti="http://activiti.org/bpmn"
targetNamespace="http://www.activiti.org/bpmn2.0">
<process id="SimpleCommit" isExecutable="true">
<startEvent id="start"/>
<sequenceFlow id="startToWait" sourceRef="start" targetRef="wait"/>
<receiveTask id="wait" name="wait"/>
<sequenceFlow id="waitToSleepTask" sourceRef="wait" targetRef="sleepTask"/>
<serviceTask id="sleepTask" activiti:class="com.softmodeler.workflow.SleepTask">
</serviceTask>
<sequenceFlow id="sleepTaskToEnd" sourceRef="sleepTask" targetRef="end"/>
<endEvent id="end"/>
</process>
</definitions>
package com.softmodeler.workflow;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.JavaDelegate;
/**
* @author created by Author: fdo, last update by $Author: $
* @version $Revision: $, $Date: $
*/
public class SleepTask implements JavaDelegate {
@Override
public void execute(DelegateExecution execution) throws Exception {
Thread.sleep(5000);
}
}
public void startTest() {
try {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println("start 1");
start("testuser1", "SimpleCommit");
System.out.println("end 1");
} catch (ServerException e) {
e.printStackTrace();
}
}
});
thread1.start();
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println("start 2");
start("testuser2", "SimpleCommit");
System.out.println("end 2");
} catch (ServerException e) {
e.printStackTrace();
}
}
});
thread2.start();
} catch (Exception e) {
e.printStackTrace();
}
}
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
protected String start(String initiator, String processKey) throws ServerException {
String processInstanceId = null;
try {
identiyService.setAuthenticatedUserId(initiator);
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey);
processInstanceId = instance.getId();
} catch (Throwable e) {
throw ServerUtil.createServerException(e);
} finally {
identiyService.setAuthenticatedUserId(null);
}
Execution execution = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).activityId("wait") //$NON-NLS-1$
.singleResult();
if (execution != null) {
// remove current user otherwise subprocesses are also listed (remove as well)
identiyService.setAuthenticatedUserId(null);
runtimeService.signal(execution.getId());
}
return processInstanceId;
}
04-16-2013 07:25 AM
04-17-2013 03:17 AM
04-17-2013 05:03 AM
04-19-2013 08:39 AM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.