10-21-2011 05:43 AM
<bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager" />
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="jobExecutorActivate" value="false" />
<property name="transactionManager" ref="transactionManager" />
</bean>
conf.setJobExecutorActivate(true);
conf.setDataSource(dataSource);
conf.setHistory(ProcessEngineConfiguration.HISTORY_ACTIVITY);
conf.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
final ProcessInstance instance
= engine.getRuntimeService().startProcessInstanceByKey("IntermediateTimerTest");
final ProcessInstance instance2
= engine.getRuntimeService().startProcessInstanceByKey("IntermediateTimerTest");
[21.10.11 11:40:09:084 CEST] 00000026 CommandContex E Error while closing command context
org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[311] was updated by another transaction concurrently
at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)
at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)
at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)
at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
at org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter.run(WebSphereUowTransactionManager.java:337)
at com.ibm.ws.uow.EmbeddableUOWManagerImpl.runUnderNewUOW(EmbeddableUOWManagerImpl.java:786)
at com.ibm.ws.uow.EmbeddableUOWManagerImpl.runUnderUOW(EmbeddableUOWManagerImpl.java:365)
at org.springframework.transaction.jta.WebSphereUowTransactionManager.execute(WebSphereUowTransactionManager.java:281)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:124)
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)
10-22-2011 10:04 AM
protected void flushUpdates(List<PersistentObject> updatedObjects) {
// … left out code
int updatedRecords = sqlSession.update(updateStatement, updatedObject);
if (updatedRecords!=1) {
throw new ActivitiOptimisticLockingException(toString(updatedObject)+" was updated by another transaction concurrently");
}
}
updatedObjects.clear();
}
10-25-2011 04:57 AM
Oct 25, 2011 10:32:29 AM org.activiti.engine.impl.interceptor.CommandContext close
SEVERE: Error while closing command context
org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[174] was updated by another transaction concurrently
at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)
at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)
at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)
at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)
Oct 25, 2011 10:32:29 AM org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run
SEVERE: exception during job acquisition: TimerEntity[174] was updated by another transaction concurrently
org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[174] was updated by another transaction concurrently
at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:435)
at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:348)
at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)
at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)
10-25-2011 05:04 AM
10-26-2011 10:01 AM
10-27-2011 02:46 AM
10-27-2011 05:14 AM
10-28-2011 04:12 AM
public class TimerTest extends PluggableActivitiTestCase {
public void testTimer() throws Exception {
// Set the clock fixed
Date startTime = new Date();
String deploymentId = repositoryService.createDeployment()
.addClasspathResource("diagrams/timer.bpmn20.xml")
.name("timer")
.deploy()
.getId();
// prepare stuff and start process instance
for(int i = 0; i < 100; i++) {
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey("helloworld");
assertNotNull(processInstance.getId());
System.out.println("id " + processInstance.getId() + " "
+ processInstance.getProcessDefinitionId());
}
ClockUtil.setCurrentTime(new Date(startTime.getTime() + 12000));
waitForJobExecutorToProcessAllJobs(5000L, 25L);
// and the job is done
assertEquals(0, managementService.createJobQuery().count());
System.out.println("all jobs finished");
processEngine.getRepositoryService().deleteDeployment(deploymentId, true);
}
}
10-28-2011 05:08 PM
10-29-2011 06:01 AM
In my case i have a 3 applications running in a single tomcat instance and so i have fixed this issue by switching to false the 'jobExecutorActivate' property in 2 applications :
<property name="jobExecutorActivate" value="false" />
So if i have well understand, we must have only one jobExecutorActivate.
BR,
Meditel
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.