ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tammo van Lessen <tvanles...@gmail.com>
Subject Re: TransactionManager error when invoking multiple instances on two ODE engines
Date Tue, 11 Mar 2014 12:35:29 GMT
Hi Vito,

do both instances share the same database schema?

ODE is currently not able to run in a cluster. Actually it is in general
ready for clustering but two pieces of glue code are missing. 1) the load
balance, 2) the master slave management that is needed for the scheduler
and the process store. Thus, without a not-too-small amount of developer
work its currently not possible to setup a cluster based on open source
ODE. Also, ODE then assumes that the process definitions are the same
across all instances within the cluster.

Or did I get your question wrong?


On Tue, Mar 11, 2014 at 9:44 AM, Vito <testforvln@163.com> wrote:

>  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

Tammo van Lessen - http://www.taval.de

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message