What resource managers are in your transaction? Is it just Geronimo and
one instance of Oracle?

Do you happen to be executing a stored procedure, or are you calling
commit explicitly anywhere except through JTA?

On Tue, 7 Feb 2006, Jason Dillon wrote:

> Thanks.... But I'm still clueless as to why this happens :-(
>
> --jason
>
>
> -----Original Message-----
> From: lichtner <[EMAIL PROTECTED]>
> Date: Mon, 6 Feb 2006 22:06:48
> To:dev@geronimo.apache.org
> Subject: Re: Oracle XA RAR for G1.0?
>
>
> ORA-02089: COMMIT is not allowed in a subordinate session
>     Cause: COMMIT was issued in a session that is not the two-phase commit 
> global coordinator.
>     Action: Issue commit at the global coordinator only.
>
> http://oraclesvca2.oracle.com/docs/cd/B19306_01/server.102/b14219/e1500.htm#sthref32
>
> On Mon, 6 Feb 2006, Jason Dillon wrote:
>
> > No love :-(
> >
> > When I configure both of my datasources to use the oracle xa adapter,
> > and use the xa adapter for activemq, I get exceptions like:
> >
> > <snip>
> > [2/6/06 16:35:17:456 PST]  [ERROR] -
> > org.apache.geronimo.kernel.log.GeronimoLog.error(line:104) -
> > ORA-02089: COMMIT is not allowed in a subordinate session
> >
> > [2/6/06 16:35:17:458 PST]  [ERROR] -
> > org.apache.geronimo.kernel.log.GeronimoLog.error(line:108) - Could not
> > execute query
> > java.sql.SQLException: ORA-02089: COMMIT is not allowed in a subordinate 
> > session
> >
> >         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
> >         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
> >         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
> >         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
> >         at 
> > oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:880)
> >         at 
> > oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2516)
> >         at 
> > oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2850)
> >         at 
> > oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:609)
> >         at 
> > oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:537)
> >         at 
> > org.tranql.connector.jdbc.PreparedStatementHandle.executeQuery(PreparedStatementHandle.java:49)
> >         at 
> > net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:87)
> >         at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:875)
> >         at net.sf.hibernate.loader.Loader.doQuery(Loader.java:269)
> >         at 
> > net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
> >         at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
> >         at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
> >         at 
> > net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
> >         at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1544)
> >         at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
> >         at 
> > org.springframework.orm.hibernate.HibernateTemplate$26.doInHibernate(HibernateTemplate.java:667)
> >         at 
> > org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:312)
> >         at 
> > org.springframework.orm.hibernate.HibernateTemplate.find(HibernateTemplate.java:655)
> >         at 
> > com.solidusnetworks.paycore.util.hibernate.BaseDAOHibernate.find(BaseDAOHibernate.java:423)
> >         at 
> > com.solidusnetworks.ach.oltp.dao.impl.NegativeFileDAOHibernate.findActiveNegativeFiles(NegativeFileDAOHibernate.java:394)
> >         at 
> > com.solidusnetworks.paycore.ach.model.negativefile.service.NegativeFileViewServiceBean.retrieveActiveGlobalAndMerchantNegativeFiles(NegativeFileViewServiceBean.java:87)
> >         at 
> > com.solidusnetworks.paycore.ach.model.negativefile.service.NegativeFileViewServiceBean$$FastClassByCGLIB$$55b05efa.invoke(<generated>)
> >         at 
> > org.openejb.dispatch.AbstractMethodOperation.invoke(AbstractMethodOperation.java:90)
> >         at org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67)
> >         at 
> > org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.java:72)
> >         at 
> > org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(ComponentContextInterceptor.java:56)
> >         at 
> > org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingInterceptor.java:81)
> >         at 
> > org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:119)
> >         at 
> > org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
> >         at 
> > org.openejb.slsb.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:98)
> >         at 
> > org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:119)
> >         at 
> > org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
> >         at 
> > org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor.java:82)
> >         at 
> > org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
> >         at 
> > org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.java:129)
> >         at 
> > org.openejb.proxy.SessionEJBLocalObject$$EnhancerByCGLIB$$c4231b05.retrieveActiveGlobalAndMerchantNegativeFiles(<generated>)
> >         at 
> > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.retrieveNegativeFileData(POSCheckServiceBean.java:414)
> >         at 
> > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.checkForNegativeFileAndDollarLimit(POSCheckServiceBean.java:300)
> >         at 
> > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.authorize(POSCheckServiceBean.java:206)
> >         at 
> > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean$$FastClassByCGLIB$$ac29a8c5.invoke(<generated>)
> >         at 
> > org.openejb.dispatch.AbstractMethodOperation.invoke(AbstractMethodOperation.java:90)
> >         at org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67)
> >         at 
> > org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.java:72)
> >         at 
> > org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(ComponentContextInterceptor.java:56)
> >         at 
> > org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingInterceptor.java:81)
> >         at 
> > org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:119)
> >         at 
> > org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
> >         at 
> > org.openejb.slsb.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:98)
> >         at 
> > org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:140)
> >         at 
> > org.openejb.transaction.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:80)
> >         at 
> > org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor.java:82)
> >         at 
> > org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
> >         at 
> > org.openejb.server.ejbd.EjbRequestHandler.invoke(EjbRequestHandler.java:297)
> >         at 
> > org.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:325)
> >         at 
> > org.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:196)
> >         at org.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:150)
> >         at org.openejb.server.ejbd.EjbServer.service(EjbServer.java:87)
> >         at 
> > org.openejb.server.ejbd.EjbServer$$FastClassByCGLIB$$d379d2ff.invoke(<generated>)
> >         at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
> >         at 
> > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
> >         at 
> > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
> >         at 
> > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:800)
> >         at 
> > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
> >         at 
> > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36)
> >         at 
> > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
> >         at 
> > org.activeio.xnet.ServerService$$EnhancerByCGLIB$$944b9c52.service(<generated>)
> >         at org.activeio.xnet.ServicePool$2.run(ServicePool.java:67)
> >         at org.activeio.xnet.ServicePool$3.run(ServicePool.java:90)
> >         at 
> > org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:138)
> >         at 
> > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
> > Source)
> >         at java.lang.Thread.run(Thread.java:552)
> > </snip>
> >
> > The only way I could get anything to work, was to use the oracle local
> > rars, configure everything (both jdbc ds and jms ds) to use
> > <local-transaction/>, but it appears that the remote call from my
> > client never returns, even though logging suggests that the beans
> > method completed.  I'm guessing the tx is stuck.  I started from
> > stretch (new geronimo dist) and redeployed the plan that was
> > previously sticking and it seems okay.
> >
> > Any idea what is up with this subordinate session muck?
> >
> > --jason
> >
>

Reply via email to