Hi guys,

   We have an application built around long running JBPM processes with a large user base and high concurrency ... early on we began to have issues with transactions in JBPM and nowadays are watching lots of different realizations of transaction managing problems that lead to dead human tasks ( state: ERROR ), errors running processes and so on  ( different exceptions follows ):

13:22:48,261 WARN  [org.drools.persistence.jta.JtaTransactionManager] (pool-11-thread-1) Unable to commit transaction: javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction
Caused by: javax.persistence.PersistenceException: error during managed flush




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-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT]




Caused by: javax.persistence.PersistenceException: org.hibernate.HibernateException: Flush during cascade is dangerous
        at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1361) [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]




11:46:23,754 ERROR [stderr] (schedulerVT_Worker-8) javax.persistence.PersistenceException: org.hibernate.HibernateException: proxy handle is no longer valid
11:46:23,754 ERROR [stderr] (schedulerVT_Worker-8)      at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1361)
11:46:23,755 ERROR [stderr] (schedulerVT_Worker-8)      at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1289)
11:46:23,756 ERROR [stderr] (schedulerVT_Worker-8)      at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:261)
11:46:23,756 ERROR [stderr] (schedulerVT_Worker-8)      at



So, we're running this installation by the manual. Are using JBoss 7 as application server, it's transaction manager, Hibernate 4.x as entity manager, our connection pool delivers READ_COMMITED connections ( so does hibernate ) ...

Is there anything else we should be doing to avoid this transactional problems?    Has anyone ever tested JBPM in such concurrent scenario? Any experiences?


Alberto R. Galdo
argaldo@gmail.com