JBoss Community

JTA Problem with multiple sessions

created by Gareth Edwards in jBPM - View the full discussion

Hello.

 

I am writing a system which will allow my to start instances of work-flows using a rest api as well as managing all the human tasks.

For now I am using one instance of a KnowlegeBase which uses an EntityManagerFactory like this:

 

if (emf == null){

                              emf = Persistence.createEntityManagerFactory( "org.jbpm.persistence.jpa" );

                              Environment env = KnowledgeBaseFactory.newEnvironment();

                              env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf );

                    }

 

I am using a Stateful knowledge session per work-flow instance.

 

 

JPAWorkingMemoryDbLogger logger = new JPAWorkingMemoryDbLogger(ksession);

                  String connectorName = "Hornet" + UUID.randomUUID().toString();

           

                  AsyncHornetQHTWorkItemHandler workItemHandler = new AsyncHornetQHTWorkItemHandler(new AsyncHornetQTaskClient(connectorName), ksession, OnErrorAction.LOG);

                  workItemHandler.setIpAddress("192.168.1.90");

                              ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);

                              ksession.startProcess(workflowSession.getWorkflowName(),workflowSession.getWorkFlowData());

                              try {

                                        Thread.sleep(2000);

                              } catch (InterruptedException e) {

  // TODO Auto-generated catch block

                                        e.printStackTrace();

                              }

 

With a clean postgres database the first completion of the human task (and end of the work-flow) I get no problems:

 

 

15:12:54,302 INFO  [stdout] (workflowExecutor-1) Workflow Instance Variables

15:12:54,303 INFO  [stdout] (workflowExecutor-1) agent:krisv

15:12:54,305 INFO  [stdout] (workflowExecutor-1) test_id:TZ001A0001

15:13:56,128 INFO  [stdout] (Thread-76) test_id is correct

15:13:56,128 INFO  [stdout] (Thread-76) test_id:TZ001A0001

15:13:56,128 INFO  [stdout] (Thread-76) submitted_test_id:TZ001A0001

 

But then running the work-flow again (new session) I almost always get problems:

 

15:14:33,869 INFO  [stdout] (workflowExecutor-2) Workflow Instance Variables

15:14:33,870 INFO  [stdout] (workflowExecutor-2) agent:krisv

15:14:33,870 INFO  [stdout] (workflowExecutor-2) test_id:TZ001A0001

15:14:54,675 INFO  [stdout] (Thread-76) test_id is correct

15:14:54,675 INFO  [stdout] (Thread-76) test_id:TZ001A0001

15:14:54,675 INFO  [stdout] (Thread-76) submitted_test_id:TZ001A0001

15:14:54,692 INFO  [stdout] (Thread-77) test_id is correct

15:14:54,692 INFO  [stdout] (Thread-77) test_id:TZ001A0001

15:14:54,693 INFO  [stdout] (Thread-77) submitted_test_id:TZ001A0001


15:14:54,719 WARN  [com.arjuna.ats.arjuna] (Thread-77) ARJUNA012125: TwoPhaseCoordinator.beforeCompletion - failed for SynchronizationImple< 0:ffff7f000101:-62cc4985:510a8991:60, org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization@339ec220 >: javax.persistence.OptimisticLockException: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#11]

          at org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:1394) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1308) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1289) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1295) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl$CallbackExceptionMapperImpl.mapManagedFlushFailure(AbstractEntityManagerImpl.java:1481) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:109) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:53) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:76)

          at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:273)

          at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:93)

          at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:164)

          at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1165)

          at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:117)

          at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)

          at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:167)

          at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:376) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150) [drools-core-5.5.0.Final.jar:5.5.0.Final]

          at org.jbpm.process.workitem.wsht.AsyncGenericHTWorkItemHandler$GetResultContentResponseHandler.execute(AsyncGenericHTWorkItemHandler.java:302) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at java.lang.Thread.run(Thread.java:636) [rt.jar:1.6.0_18]

Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#11]

          at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:2359) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3127) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3327) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:91) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:272) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:264) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:191) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1081) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:104) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          ... 17 more

15:14:54,732 WARN  [org.drools.persistence.jta.JtaTransactionManager] (Thread-77) Unable to commit transaction: javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction.

          at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1177)

          at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:117)

          at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)

          at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:167)

          at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:376) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150) [drools-core-5.5.0.Final.jar:5.5.0.Final]

          at org.jbpm.process.workitem.wsht.AsyncGenericHTWorkItemHandler$GetResultContentResponseHandler.execute(AsyncGenericHTWorkItemHandler.java:302) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at java.lang.Thread.run(Thread.java:636) [rt.jar:1.6.0_18]

Caused by: javax.persistence.OptimisticLockException: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#11]

          at org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:1394) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1308) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1289) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1295) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl$CallbackExceptionMapperImpl.mapManagedFlushFailure(AbstractEntityManagerImpl.java:1481) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

 

 

          at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:109) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:53) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:76)

          at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:273)

          at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:93)

          at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:164)

          at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1165)

          ... 11 more

Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#11]

          at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:2359) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3127) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3327) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:91) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:272) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:264) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:191) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1081) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:104) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          ... 17 more

 

 

 

15:14:54,737 ERROR [org.drools.persistence.SingleSessionCommandService] (Thread-77) Could not commit session: java.lang.RuntimeException: Unable to commit transaction

          at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:182) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:376) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150) [drools-core-5.5.0.Final.jar:5.5.0.Final]

          at org.jbpm.process.workitem.wsht.AsyncGenericHTWorkItemHandler$GetResultContentResponseHandler.execute(AsyncGenericHTWorkItemHandler.java:302) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at java.lang.Thread.run(Thread.java:636) [rt.jar:1.6.0_18]

Caused by: javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction.

          at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1177)

          at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:117)

          at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)

          at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:167)

          at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          ... 7 more

Caused by: javax.persistence.OptimisticLockException: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#11]

          at org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:1394) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1308) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1289) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1295) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.ejb.AbstractEntityManagerImpl$CallbackExceptionMapperImpl.mapManagedFlushFailure(AbstractEntityManagerImpl.java:1481) [hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:109) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

 

 

          at org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:53) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:76)

          at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:273)

          at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:93)

          at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:164)

          at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1165)

          ... 11 more

Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#11]

          at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:2359) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3127) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3327) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:91) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:272) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:264) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:191) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1081) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:104) [hibernate-core-4.0.1.Final.jar:4.0.1.Final]

          ... 17 more

 

 

15:14:54,748 WARN  [org.drools.persistence.jta.JtaTransactionManager] (Thread-77) Unable to rollback transaction: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!

 

 

          at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:130)

          at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.rollback(BaseTransactionManagerDelegate.java:114)

          at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.rollback(ServerVMClientUserTransaction.java:175)

          at org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:191) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.persistence.SingleSessionCommandService.rollbackTransaction(SingleSessionCommandService.java:402) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:381) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150) [drools-core-5.5.0.Final.jar:5.5.0.Final]

          at org.jbpm.process.workitem.wsht.AsyncGenericHTWorkItemHandler$GetResultContentResponseHandler.execute(AsyncGenericHTWorkItemHandler.java:302) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at java.lang.Thread.run(Thread.java:636) [rt.jar:1.6.0_18]

 

 

15:14:54,751 ERROR [org.drools.persistence.SingleSessionCommandService] (Thread-77) Could not rollback: java.lang.RuntimeException: Unable to rollback transaction

          at org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:197) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.persistence.SingleSessionCommandService.rollbackTransaction(SingleSessionCommandService.java:402) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:381) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

          at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150) [drools-core-5.5.0.Final.jar:5.5.0.Final]

          at org.jbpm.process.workitem.wsht.AsyncGenericHTWorkItemHandler$GetResultContentResponseHandler.execute(AsyncGenericHTWorkItemHandler.java:302) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

          at java.lang.Thread.run(Thread.java:636) [rt.jar:1.6.0_18]

Caused by: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!

          at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:130)


at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.rollback(BaseTransactionManagerDelegate.java:114)

at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.rollback(ServerVMClientUserTransaction.java:175)

at org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:191) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

... 8 more

 

 

15:14:54,754 ERROR [org.jbpm.task.service.hornetq.HornetQTaskClientConnector] (Thread-77) Client Exception with class class org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1 using port 5153: java.lang.RuntimeException: Could not commit session or rollback


at org.drools.persistence.SingleSessionCommandService.rollbackTransaction(SingleSessionCommandService.java:406) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:381) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150) [drools-core-5.5.0.Final.jar:5.5.0.Final]

at org.jbpm.process.workitem.wsht.AsyncGenericHTWorkItemHandler$GetResultContentResponseHandler.execute(AsyncGenericHTWorkItemHandler.java:302) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153) [jbpm-human-task-core-5.4.0.Final.jar:5.4.0.Final]

at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122) [jbpm-human-task-hornetq-5.4.0.Final.jar:5.4.0.Final]

at java.lang.Thread.run(Thread.java:636) [rt.jar:1.6.0_18]

Caused by: java.lang.RuntimeException: Unable to rollback transaction


at org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:197) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

at org.drools.persistence.SingleSessionCommandService.rollbackTransaction(SingleSessionCommandService.java:402) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

... 7 more

Caused by: java.lang.IllegalStateException: BaseTransaction.rollback - ARJUNA016074: no transaction!


at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:130)

at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.rollback(BaseTransactionManagerDelegate.java:114)

at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.rollback(ServerVMClientUserTransaction.java:175)

at org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:191) [drools-persistence-jpa-5.5.0.Final.jar:5.5.0.Final]

... 8 more

 

 

I'm using the bundled human-task-war.war application to handle human tasks.

 

The persistence for my EntityManagerFactory is configured using the following persistence.xml

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<persistence version="2.0"

  xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="

        http://java.sun.com/xml/ns/persistence

        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

  <persistence-unit name="org.jbpm.persistence.jpa"

  transaction-type="JTA">

                    <provider>org.hibernate.ejb.HibernatePersistence</provider>

                    <jta-data-source>java:jboss/datasources/jbpmDS</jta-data-source>

                    <mapping-file>META-INF/JBPMorm-JPA2.xml</mapping-file>

                    <mapping-file>META-INF/ProcessInstanceInfoMapping-JPA2.xml</mapping-file>

 

                    <class>org.drools.persistence.info.SessionInfo</class>

                    <class>org.drools.persistence.info.WorkItemInfo</class>

                    <class>org.jbpm.process.audit.ProcessInstanceLog</class>

                    <class>org.jbpm.process.audit.NodeInstanceLog</class>

                    <class>org.jbpm.process.audit.VariableInstanceLog</class>

 

  <properties>

  <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />

  <property name="hibernate.max_fetch_depth" value="3" />

  <!-- property name="hibernate.hbm2ddl.auto" value="update" /-->

  <property name="hibernate.show_sql" value="false" />

  <!--property name="hibernate.transaction.manager_lookup_class"

                                        value="org.hibernate.transaction.JBossTransactionManagerLookup" /-->

 

  <property name="hibernate.transaction.jta.platform"

  value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />

 

  <!-- BZ 841786: AS7/EAP 6/Hib 4 uses new (sequence) generators which seem

                                        to cause problems -->

  <property name="hibernate.id.new_generator_mappings" value="false" />

  </properties>

 

  </persistence-unit>

</persistence>


I tried the change below as it was suggested by another user with similar problems with Postgres

 

  <!--property name="hibernate.transaction.manager_lookup_class"

  value="org.hibernate.transaction.JBossTransactionManagerLookup" /-->

 

  <property name="hibernate.transaction.jta.platform"

  value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />

 

But that didn't seem to help.

 

I hope somebody can help

 

Thanks in advance,

 

Gareth.

Reply to this message by going to Community

Start a new discussion in jBPM at Community