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.