Hi > Matthieu's comments are valid if you deploy Ode as a webapp > (Axis2 IL).
I'm using Ode within ServiceMix (JBI deployment). Not as a webapp. > However, when Ode is deployed inside a JBI container, it obtains its > TransactionManager instance through the ComponentContext, not by > lookup as is the case for webapp deployment. > > So if I understood correctly your deployment configuration, you should > double-check your ServixeMix configuration. This should be ok. ;-) The Geronimo Transaction Manager is set on the JBIContainer (ServiceMixGBean which is deployed within Geronimo). Is there any possibility to trace that i bit more? If I turn off persistence everything works great. Kristian > > alex > > On 11/5/07, Matthieu Riou <[EMAIL PROTECTED]> wrote: > > Hi, > > > > You shouldn't try to set the OpenJPA transaction manager > independently, we > > set it to the same one configured on ODE. The problem you > probably have is > > that ODE, when set to use Geronimo, uses the Geronimo 1.1 > GBean transaction > > manager instead of the global JNDI lookup that they've > implemented in 1.1. > > So that's the origin of your ClasscastException. > > > > What I would do is revert your changes for OpenJPA and > configure ODE to use > > the JBoss transaction factory. I know, that last part is > probably confusing > > but that's a little trick. Actually the JBossFactory uses a > standard JNDI > > lookup for java:/TransactionManager which didn't work with > Geronimo 1.1 but > > should work just fine with Geronimo 2.0 now that they have > a global JNDI. We > > should just rename JBossFactory to StandardFactory in the > next release so > > that it's less confusing. So something like this should do > the trick: > > > > ode-jbi.db.mode=EXTERNAL > > ode-jbi.db.ext.dataSource=java:db/OdeDatasource > > ode-jbi.tx.factory.class=org.apache.ode.axis2.util.JBossFactory > > > > Let us know how it goes and thanks for the good work on GASwerk! > > > > Matthieu > > > > > > On Nov 5, 2007 12:53 AM, Kristian Köhler > <[EMAIL PROTECTED]> wrote: > > > > > Hi > > > > > > > > > > Is there a way to configure the Transaction Manager lookup > > > > from Ode. I like to use the TM used from the DataSource... > > > > > > I added the following properties to the persistence.xml > file within > > > bpel-store and dao-jpa. > > > > > > -- 8< (start) -- > > > > > > <properties> > > > <property name="openjpa.ManagedRuntime" > > > value="jndi(TransactionManagerName=java:/TransactionManager)"/> > > > </properties> > > > > > > -- 8< (end) -- > > > > > > This works fine with 1 thread. When I test my sample with > 3 thrads the > > > following error arise (Invalid Xid): > > > > > > -- 8< (start) -- > > > > > > 09:47:11,851 ERROR [SimpleScheduler] Error while > executing transaction > > > javax.transaction.RollbackException: Unable to commit: > transaction marked > > > for rollback > > > at > org.apache.geronimo.transaction.manager.TransactionImpl.commit( > > > TransactionImpl.java:271) > > > at > > > > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit( > > > TransactionManagerImpl.java:238) > > > at > org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction( > > > SimpleScheduler.java:180) > > > at org.apache.ode.scheduler.simple.SimpleScheduler$4.call( > > > SimpleScheduler.java:333) > > > at org.apache.ode.scheduler.simple.SimpleScheduler$4.call( > > > SimpleScheduler.java:330) > > > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java > > > :269) > > > at java.util.concurrent.FutureTask.run(FutureTask.java:123) > > > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask( > > > ThreadPoolExecutor.java:650) > > > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > > > ThreadPoolExecutor.java:675) > > > at java.lang.Thread.run(Thread.java:595) > > > 09:47:11,976 ERROR [SimpleScheduler] Error while > executing transaction > > > javax.transaction.RollbackException: Error during one-phase commit > > > at > org.apache.geronimo.transaction.manager.TransactionImpl.commit( > > > TransactionImpl.java:311) > > > at > > > > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit( > > > TransactionManagerImpl.java:238) > > > at > org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction( > > > SimpleScheduler.java:180) > > > at org.apache.ode.scheduler.simple.SimpleScheduler$4.call( > > > SimpleScheduler.java:333) > > > at org.apache.ode.scheduler.simple.SimpleScheduler$4.call( > > > SimpleScheduler.java:330) > > > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java > > > :269) > > > at java.util.concurrent.FutureTask.run(FutureTask.java:123) > > > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask( > > > ThreadPoolExecutor.java:650) > > > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > > > ThreadPoolExecutor.java:675) > > > at java.lang.Thread.run(Thread.java:595) > > > Caused by: javax.transaction.xa.XAException: Invalid Xid > > > at > org.apache.geronimo.connector.outbound.LocalXAResource.commit( > > > LocalXAResource.java:53) > > > at > org.apache.geronimo.transaction.manager.TransactionImpl.commit( > > > TransactionImpl.java:302) > > > ... 9 more > > > > > > -- 8< (end) -- > > > > > > Any ideas? > > > > > > Kristian > > > > > > > Hope this helps... ;-) > > > > > > > > Kristian > > > > > > > > --- > > > > http://gaswerk.sourceforge.net > > > > > > > > > > > > > > alex > > > > > > > > > > > > > > > On 11/2/07, Kristian Köhler <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > > You're right this was with ode_trunk. My first test was > > > > > with version 1.1which resulted in the following error. I will > > > > > now test with the sendSynch > > > > > > property. > > > > > > > > > > > > Thanks! > > > > > > > > > > > > Kristian > > > > > > > > > > > > --- 8< --- > > > > > > > > > > > > 14:51:19,018 ERROR [JacobVPU] Method "run" in class " > > > > > > org.apache.ode.bpel.runtime.INVOKE" threw an > unexpected exception. > > > > > > org.apache.ode.bpel.iapi.ContextException: Unable > to register > > > > > > synchronizer. > > > > > > at > > > > > > > > > > > > > > > > org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer( > > > > > > SimpleScheduler.java:200) > > > > > > at > > > > > org.apache.ode.jbi.OdeConsumer.invokePartner(OdeConsumer.java > > > > > > :119) > > > > > > at > > > > > org.apache.ode.jbi.MessageExchangeContextImpl.invokePartner( > > > > > > MessageExchangeContextImpl.java:60) > > > > > > at > > > > org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke( > > > > > > BpelRuntimeContextImpl.java:794) > > > > > > at > org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:96) > > > > > > at > > > > > sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source) > > > > > > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > > > > > > DelegatingMethodAccessorImpl.java:25) > > > > > > at java.lang.reflect.Method.invoke(Method.java:585) > > > > > > at > org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run( > > > > > > JacobVPU.java:451) > > > > > > at > > > > > org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139) > > > > > > at > > > > > org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute( > > > > > > BpelRuntimeContextImpl.java:836) > > > > > > at > > > > > org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeMyRole( > > > > > > PartnerLinkMyRoleImpl.java:193) > > > > > > at > org.apache.ode.bpel.engine.BpelProcess.invokeProcess( > > > > > > BpelProcess.java:169) > > > > > > at > org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent( > > > > > > BpelProcess.java:306) > > > > > > at > > > > org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob( > > > > > > BpelEngineImpl.java:318) > > > > > > at > > > > org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob( > > > > > > BpelServerImpl.java:364) > > > > > > at > > > > org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call( > > > > > > SimpleScheduler.java:335) > > > > > > at > > > > org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call( > > > > > > SimpleScheduler.java:334) > > > > > > at > > > > > > org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction > > > > > > (SimpleScheduler.java:173) > > > > > > at > org.apache.ode.scheduler.simple.SimpleScheduler$4.call( > > > > > > SimpleScheduler.java:333) > > > > > > at > org.apache.ode.scheduler.simple.SimpleScheduler$4.call( > > > > > > SimpleScheduler.java:330) > > > > > > at > > > > > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java > > > > > > :269) > > > > > > at > > > > java.util.concurrent.FutureTask.run(FutureTask.java:123) > > > > > > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask( > > > > > > ThreadPoolExecutor.java:650) > > > > > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run( > > > > > > ThreadPoolExecutor.java:675) > > > > > > at java.lang.Thread.run(Thread.java:595) > > > > > > Caused by: java.lang.NullPointerException > > > > > > at > > > > > > > > > > > > > > > > org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer( > > > > > > SimpleScheduler.java:188) > > > > > > ... 25 more > > > > > > > > > > > > > > > > > > > > > > > > > > >
