Hi all, I'm trying to invoke multiple instances on two ODE engines.
I deployed the two engines in two tomcat servers of different ports in the same 
computer. Then invoked 15 same process instances on each ODE engine, and the 
two process definitions for the two engines are not the same. When I invoked 
them all, the first engine went well, but the instances on the second engine 
sometimes worked well, sometimes it threw exception like below:

16:28:01,939 WARN  [Transaction] Unexpected exception from beforeCompletion; 
transaction will roll back
<openjpa-1.2.1-r752877:753278 nonfatal user error> 
org.apache.openjpa.persistence.InvalidStateException: Attempt to commit a null 
javax.transaction.Transaction.  Some application servers set the transaction to 
null if a rollback occurs.
    at 
org.apache.openjpa.kernel.BrokerImpl.setRollbackOnlyInternal(BrokerImpl.java:1490)
    at 
org.apache.openjpa.kernel.BrokerImpl.setRollbackOnly(BrokerImpl.java:1476)
    at 
org.apache.openjpa.kernel.DelegatingBroker.setRollbackOnly(DelegatingBroker.java:925)
    at 
org.apache.openjpa.persistence.EntityManagerImpl.setRollbackOnly(EntityManagerImpl.java:560)
    at 
org.apache.openjpa.persistence.PersistenceExceptions$2.translate(PersistenceExceptions.java:71)
    at 
org.apache.openjpa.kernel.BrokerImpl.translateManagedCompletionException(BrokerImpl.java:1896)
    at 
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1830)
    at 
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)
    at 
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:498)
    at 
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400)
    at 
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257)
    at 
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238)
    at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:291)
    at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
    at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
    at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

BTW after the error the instances can still go on to the normal end. Maybe the 
rollback saved the instance.
It seems that something went wrong with the transaction manager. Could you help 
me figure out how this error came out?
Best,
Vito

Reply via email to