You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Jason Dillon <ja...@planet57.com> on 2006/02/03 09:45:27 UTC

Oracle XA RAR for G1.0?

I've been digging around the net for a while, found some pages that  
indicate that there is support for Oracle XA, some that say there is  
a a TranQL RAR for it... and others that list that the only XA RAR is  
the one for Derby.

Anyone know definitively what the story is?

And if possible know what is needed to get it working?

--jason

Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
Awesome.  I will given 'em a shot.  Thanks :-)

--jason


On 2/3/06, Matt Hogstrom <ma...@hogstrom.org> wrote:
> I think David means that it has not been extensively tested and so there are no
> gurantees that you'll simply be able to drop it in.  I'm currently working on a
> DB2 XA RAR and am still working out some kinks.  It should work well, we're just
> not sure its been testd enough to know that it does.
>
> I looked on CodeHaus and it appears that Jeremy had not previous released a
> SNAPSHOT.  I compiled the connector this morning against the Oracle 10.1.4.0
> classes12.jar.
>
> I've published it and it is called
> tranql/rars/tranql-connector-oracle-xa-1.0-SNAPSHOT.rar
>
> If someone can try this out then that would be excellent.  I have only compiled
> it and not tested it so caveat emptor.
>
> lichtner wrote:
> > On Fri, 3 Feb 2006, David Jencks wrote:
> >
> >
> >>It is likely to work if you build it.  However I don't know that it
> >>has been used in the last year or more, so I won't make any
> >>promises.  Matt might have tried it, I don't know.  We have been a
> >>bit reluctant to publish it without more evidence that it works well.
> >
> >
> > Why would it not work well? When I was in my last job I remember getting
> > that rar to work with mysql xa, so it probably also works with Oracle xa.
> >
> >
> >
>

Re: Oracle XA RAR for G1.0?

Posted by Matt Hogstrom <ma...@hogstrom.org>.
Good point.  Although I suspect it won't matter.  I'll take a look at that and 
update as appropriate.

Thanks

Aaron Mulder wrote:
> If the RAR is specific to the driver, don't we want to compile against
> a JDK 1.4 driver not a JDK 1.2 driver?
> 
> Thanks,
>     Aaron
> 
> On 2/3/06, Matt Hogstrom <ma...@hogstrom.org> wrote:
> 
>>I think David means that it has not been extensively tested and so there are no
>>gurantees that you'll simply be able to drop it in.  I'm currently working on a
>>DB2 XA RAR and am still working out some kinks.  It should work well, we're just
>>not sure its been testd enough to know that it does.
>>
>>I looked on CodeHaus and it appears that Jeremy had not previous released a
>>SNAPSHOT.  I compiled the connector this morning against the Oracle 10.1.4.0
>>classes12.jar.
>>
>>I've published it and it is called
>>tranql/rars/tranql-connector-oracle-xa-1.0-SNAPSHOT.rar
>>
>>If someone can try this out then that would be excellent.  I have only compiled
>>it and not tested it so caveat emptor.
>>
>>lichtner wrote:
>>
>>>On Fri, 3 Feb 2006, David Jencks wrote:
>>>
>>>
>>>
>>>>It is likely to work if you build it.  However I don't know that it
>>>>has been used in the last year or more, so I won't make any
>>>>promises.  Matt might have tried it, I don't know.  We have been a
>>>>bit reluctant to publish it without more evidence that it works well.
>>>
>>>
>>>Why would it not work well? When I was in my last job I remember getting
>>>that rar to work with mysql xa, so it probably also works with Oracle xa.
>>>
>>>
>>>
>>
> 
> 
> 

Re: Oracle XA RAR for G1.0?

Posted by Aaron Mulder <am...@alumni.princeton.edu>.
If the RAR is specific to the driver, don't we want to compile against
a JDK 1.4 driver not a JDK 1.2 driver?

Thanks,
    Aaron

On 2/3/06, Matt Hogstrom <ma...@hogstrom.org> wrote:
> I think David means that it has not been extensively tested and so there are no
> gurantees that you'll simply be able to drop it in.  I'm currently working on a
> DB2 XA RAR and am still working out some kinks.  It should work well, we're just
> not sure its been testd enough to know that it does.
>
> I looked on CodeHaus and it appears that Jeremy had not previous released a
> SNAPSHOT.  I compiled the connector this morning against the Oracle 10.1.4.0
> classes12.jar.
>
> I've published it and it is called
> tranql/rars/tranql-connector-oracle-xa-1.0-SNAPSHOT.rar
>
> If someone can try this out then that would be excellent.  I have only compiled
> it and not tested it so caveat emptor.
>
> lichtner wrote:
> > On Fri, 3 Feb 2006, David Jencks wrote:
> >
> >
> >>It is likely to work if you build it.  However I don't know that it
> >>has been used in the last year or more, so I won't make any
> >>promises.  Matt might have tried it, I don't know.  We have been a
> >>bit reluctant to publish it without more evidence that it works well.
> >
> >
> > Why would it not work well? When I was in my last job I remember getting
> > that rar to work with mysql xa, so it probably also works with Oracle xa.
> >
> >
> >
>

Re: Oracle XA RAR for G1.0?

Posted by lichtner <li...@bway.net>.
On Tue, 7 Feb 2006, Jason Dillon wrote:

> I've got a db looking into fixing that for me...
>
> And created https://issues.apache.org/jira/browse/GERONIMO-1599
>
> I'm not sure how to fix this though :-(

It looks like line 219 is setting a null xidFactory. It looks like
xidFactory is a GBean attribute, so perhaps it is null because the
XidFactory GBean does not start properly. I think G has a log that prints
out all the GBeans as they start up. Maybe you can see some earlier error
messages there. Or maybe it's an ordering problem.

I supposed since this is IOC you could break this if you hacked the
deployment plans, or else it's some kind of oversight.

Who wrote this code?

Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
I've got a db looking into fixing that for me...

And created https://issues.apache.org/jira/browse/GERONIMO-1599

I'm not sure how to fix this though :-(

--jason


On 2/7/06, lichtner <li...@bway.net> wrote:
>
> Since you crashed so many times and then had to delete the log, which
> knows how to clean up the in-doubt transactions, you now have some
> transactions which are waiting to be committed or rolled back and are
> holding locks (as they should.)
>
> If you have a dba I would get him/her involved.
>
> To do it manually you have to do a select on
>
> DBA_2PC_PENDING
>
> http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_3002.htm#sthref1821
>
> and then do ROLLBACK FORCE or COMMIT FORCE as shown here:
>
> http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14231/ds_txnman.htm#i1007905
>
> If you do not privileges for the select, you can try to log in as sys with
> the default Oracle password:
>
> sqlplus sys/CHANGE_ON_INSTALL
>
> Sometimes they don't bother to change it.
>
> If you grant the JDBC user the ability to select on DBA_2PC_PENDING (or
> other appropriate view) then Geronimo (once the NPE is fixed) can settle
> these automatically for you.
>
> Guglielmo
>
> On Tue, 7 Feb 2006, Jason Dillon wrote:
>
> > It finally dawned on my that my connection to ActiveMQ using:
> >
> >     vm://localhost?asyncSend=true
> >
> > Was a bad idea.  So I tired using these:
> >
> >  * vm://localhost
> >  * tcp://localhost:61616
> >
> > Both of which don't hang... but now were back to more Oracle exceptions:
> >
> > <snip>
> > 18:24:47,683 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
> > 18:24:47,683 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
> > in-doubt distributed transaction 6.28.6034
> >
> > 18:24:47,684 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
> > 18:24:47,684 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
> > in-doubt distributed transaction 6.28.6034
> >
> > 18:24:47,686 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
> > 18:24:47,686 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
> > in-doubt distributed transaction 6.28.6034
> >
> > 18:24:47,686 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
> > 18:24:47,686 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
> > in-doubt distributed transaction 6.28.6034
> >
> > 18:24:47,687 ERROR [JDBCExceptionReporter] Could not execute JDBC batch update
> > java.sql.BatchUpdateException: ORA-01591: lock held by in-doubt
> > distributed transaction 6.28.6034
> >
> >         at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:498)
> >         at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:12368)
> >         at org.tranql.connector.jdbc.StatementHandle.executeBatch(StatementHandle.java:157)
> >         at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54)
> >         at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:126)
> >         at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2421)
> >         at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2371)
> >         at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2240)
> >         at org.springframework.orm.hibernate.HibernateTemplate$22.doInHibernate(HibernateTemplate.java:595)
> >         at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:312)
> >         at org.springframework.orm.hibernate.HibernateTemplate.flush(HibernateTemplate.java:593)
> >         at com.solidusnetworks.paycore.util.hibernate.BaseDAOHibernate.save(BaseDAOHibernate.java:176)
> >         at com.solidusnetworks.ach.oltp.dao.impl.ECheckDAOHibernate.saveECheck(ECheckDAOHibernate.java:208)
> >         at com.solidusnetworks.paycore.ach.model.check.service.CheckUpdateServiceBean.addECheck(CheckUpdateServiceBean.java:117)
> >         at com.solidusnetworks.paycore.ach.model.check.service.CheckUpdateServiceBean$$FastClassByCGLIB$$70674c74.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$$d7dd99ce.addECheck(<generated>)
> >         at com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.authorize(POSCheckServiceBean.java:234)
> >         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>
> >
> > And my now good friend ora-code.com says that it means:
> >
> > <snip>
> > ORA-01591:    lock held by in-doubt distributed transaction string
> > Cause:        An attempt was made to access resource that is locked by a dead
> > two-phase commit transaction that is in prepared state.
> > Action:       The database administrator should query the PENDING_TRANS$ and
> > related tables, and attempt to repair network connection(s) to
> > coordinator and commit point. If timely repair is not possible, the
> > database administrator should contact the database administrator at
> > the commit point if known or the end user for correct outcome, or use
> > heuristic default if given to issue a heuristic COMMIT or ABORT
> > command to finalize the local portion of the distributed transaction.
> > </snip>
> >
> > So, I think I've gotten further, but now I have no idea what to try.
> >
> > :-(
> >
> > --jason
> >
>

Re: Oracle XA RAR for G1.0?

Posted by lichtner <li...@bway.net>.
Since you crashed so many times and then had to delete the log, which
knows how to clean up the in-doubt transactions, you now have some
transactions which are waiting to be committed or rolled back and are
holding locks (as they should.)

If you have a dba I would get him/her involved.

To do it manually you have to do a select on

DBA_2PC_PENDING

http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_3002.htm#sthref1821

and then do ROLLBACK FORCE or COMMIT FORCE as shown here:

http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14231/ds_txnman.htm#i1007905

If you do not privileges for the select, you can try to log in as sys with
the default Oracle password:

sqlplus sys/CHANGE_ON_INSTALL

Sometimes they don't bother to change it.

If you grant the JDBC user the ability to select on DBA_2PC_PENDING (or
other appropriate view) then Geronimo (once the NPE is fixed) can settle
these automatically for you.

Guglielmo

On Tue, 7 Feb 2006, Jason Dillon wrote:

> It finally dawned on my that my connection to ActiveMQ using:
>
>     vm://localhost?asyncSend=true
>
> Was a bad idea.  So I tired using these:
>
>  * vm://localhost
>  * tcp://localhost:61616
>
> Both of which don't hang... but now were back to more Oracle exceptions:
>
> <snip>
> 18:24:47,683 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
> 18:24:47,683 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
> in-doubt distributed transaction 6.28.6034
>
> 18:24:47,684 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
> 18:24:47,684 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
> in-doubt distributed transaction 6.28.6034
>
> 18:24:47,686 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
> 18:24:47,686 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
> in-doubt distributed transaction 6.28.6034
>
> 18:24:47,686 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
> 18:24:47,686 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
> in-doubt distributed transaction 6.28.6034
>
> 18:24:47,687 ERROR [JDBCExceptionReporter] Could not execute JDBC batch update
> java.sql.BatchUpdateException: ORA-01591: lock held by in-doubt
> distributed transaction 6.28.6034
>
>         at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:498)
>         at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:12368)
>         at org.tranql.connector.jdbc.StatementHandle.executeBatch(StatementHandle.java:157)
>         at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54)
>         at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:126)
>         at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2421)
>         at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2371)
>         at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2240)
>         at org.springframework.orm.hibernate.HibernateTemplate$22.doInHibernate(HibernateTemplate.java:595)
>         at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:312)
>         at org.springframework.orm.hibernate.HibernateTemplate.flush(HibernateTemplate.java:593)
>         at com.solidusnetworks.paycore.util.hibernate.BaseDAOHibernate.save(BaseDAOHibernate.java:176)
>         at com.solidusnetworks.ach.oltp.dao.impl.ECheckDAOHibernate.saveECheck(ECheckDAOHibernate.java:208)
>         at com.solidusnetworks.paycore.ach.model.check.service.CheckUpdateServiceBean.addECheck(CheckUpdateServiceBean.java:117)
>         at com.solidusnetworks.paycore.ach.model.check.service.CheckUpdateServiceBean$$FastClassByCGLIB$$70674c74.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$$d7dd99ce.addECheck(<generated>)
>         at com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.authorize(POSCheckServiceBean.java:234)
>         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>
>
> And my now good friend ora-code.com says that it means:
>
> <snip>
> ORA-01591:	lock held by in-doubt distributed transaction string
> Cause:	An attempt was made to access resource that is locked by a dead
> two-phase commit transaction that is in prepared state.
> Action:	The database administrator should query the PENDING_TRANS$ and
> related tables, and attempt to repair network connection(s) to
> coordinator and commit point. If timely repair is not possible, the
> database administrator should contact the database administrator at
> the commit point if known or the end user for correct outcome, or use
> heuristic default if given to issue a heuristic COMMIT or ABORT
> command to finalize the local portion of the distributed transaction.
> </snip>
>
> So, I think I've gotten further, but now I have no idea what to try.
>
> :-(
>
> --jason
>

Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
It finally dawned on my that my connection to ActiveMQ using:

    vm://localhost?asyncSend=true

Was a bad idea.  So I tired using these:

 * vm://localhost
 * tcp://localhost:61616

Both of which don't hang... but now were back to more Oracle exceptions:

<snip>
18:24:47,683 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
18:24:47,683 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
in-doubt distributed transaction 6.28.6034

18:24:47,684 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
18:24:47,684 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
in-doubt distributed transaction 6.28.6034

18:24:47,686 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
18:24:47,686 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
in-doubt distributed transaction 6.28.6034

18:24:47,686 WARN  [JDBCExceptionReporter] SQL Error: 1591, SQLState: 72000
18:24:47,686 ERROR [JDBCExceptionReporter] ORA-01591: lock held by
in-doubt distributed transaction 6.28.6034

18:24:47,687 ERROR [JDBCExceptionReporter] Could not execute JDBC batch update
java.sql.BatchUpdateException: ORA-01591: lock held by in-doubt
distributed transaction 6.28.6034

        at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:498)
        at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:12368)
        at org.tranql.connector.jdbc.StatementHandle.executeBatch(StatementHandle.java:157)
        at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54)
        at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:126)
        at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2421)
        at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2371)
        at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2240)
        at org.springframework.orm.hibernate.HibernateTemplate$22.doInHibernate(HibernateTemplate.java:595)
        at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:312)
        at org.springframework.orm.hibernate.HibernateTemplate.flush(HibernateTemplate.java:593)
        at com.solidusnetworks.paycore.util.hibernate.BaseDAOHibernate.save(BaseDAOHibernate.java:176)
        at com.solidusnetworks.ach.oltp.dao.impl.ECheckDAOHibernate.saveECheck(ECheckDAOHibernate.java:208)
        at com.solidusnetworks.paycore.ach.model.check.service.CheckUpdateServiceBean.addECheck(CheckUpdateServiceBean.java:117)
        at com.solidusnetworks.paycore.ach.model.check.service.CheckUpdateServiceBean$$FastClassByCGLIB$$70674c74.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$$d7dd99ce.addECheck(<generated>)
        at com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.authorize(POSCheckServiceBean.java:234)
        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>

And my now good friend ora-code.com says that it means:

<snip>
ORA-01591:	lock held by in-doubt distributed transaction string
Cause:	An attempt was made to access resource that is locked by a dead
two-phase commit transaction that is in prepared state.
Action:	The database administrator should query the PENDING_TRANS$ and
related tables, and attempt to repair network connection(s) to
coordinator and commit point. If timely repair is not possible, the
database administrator should contact the database administrator at
the commit point if known or the end user for correct outcome, or use
heuristic default if given to issue a heuristic COMMIT or ABORT
command to finalize the local portion of the distributed transaction.
</snip>

So, I think I've gotten further, but now I have no idea what to try.

:-(

--jason

Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
I hacked in some code to TransactionImpl so that I can get at the
OracleXAException, and it is this error:

    ORA-24774

Is there a better way that we can expose these problems w/o having to
hack up the impl?  The XA Error code (-3) is logged, but the rest of
the exception detail is eaten, and unfortunately the is no toString()
to add this to the log detail... erg.

Should TransactionImpl be eating this exception?  Or should it rethrow
a SystemException with the XAException details?

Or should the Oracle XA JCA provide a resource wrapper wrapper to
decode the details?

 * * *

Found this related to ORA-24774:

    http://mail-archive.objectweb.org/jotm/2004-09/msg00073.html

This explains the same basic situation I'm seeing... 2 connections to
the same server, different users...

The page above mentions something about an Oracle XA flag for loosely
coupled branches... but I've really got no clue wtf that means.

So, I tried using the same user, and putting all tables into one
schema, but keep 2 datasources, and that hangs for 30s or so, then
pukes with XA error 4, Oracle error 25351, which from ora-code.com is:

<snip>
ORA-25351:	transaction is currently in use
Cause:	The transaction is currently used by a different session.
Action:	Do not switch to a transaction attached to some other session.
</snip>

These all just come across as WARN logs, and eventually I get back to
the hung transaction as I saw before:

<snip>
"DefaultThreadPool 4" daemon prio=5 tid=0x09f4e5b0 nid=0x83ace00 in
Object.wait() [f7971000..f7972ac0]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x6720c3a0> (a java.lang.Object)
        at org.activemq.message.ReceiptHolder.getReceipt(ReceiptHolder.java:68)
        - locked <0x6720c3a0> (a java.lang.Object)
        at org.activemq.transport.TransportChannelSupport.send(TransportChannelSupport.java:146)
        at org.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1377)
        at org.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1362)
        at org.activemq.TransactionContext.commit(TransactionContext.java:215)
        at org.activemq.ra.LocalAndXATransaction.commit(LocalAndXATransaction.java:56)
        at org.apache.geronimo.connector.outbound.LocalXAResource.commit(LocalXAResource.java:56)
        at org.apache.geronimo.transaction.manager.TransactionImpl.commitResources(TransactionImpl.java:590)
        at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:313)
        at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:143)
        at org.apache.geronimo.transaction.manager.TransactionManagerImpl$$FastClassByCGLIB$$14ee5fe0.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.apache.geronimo.transaction.ExtendedTransactionManager$$EnhancerByCGLIB$$19d099e1.commit(<generated>)
        at org.apache.geronimo.transaction.context.InheritableTransactionContext.complete(InheritableTransactionContext.java:196)
        at org.apache.geronimo.transaction.context.InheritableTransactionContext.commit(InheritableTransactionContext.java:146)
        at org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolicy.java:152)
        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>

And finally I tried using 1 JDBC datasource + JMS... and no exceptions
were thrown, but it still hangs just as it did before w/o XA.

--jason

Re: Oracle XA RAR for G1.0?

Posted by li...@bway.net.
It's not supposed to do that. It should scan the recovery log, then call
XAResource.recover() before the data source is first used. Since you are
getting an NPE there may be a bug in the code.

>> What do you mean by "corrupts"? Do you mean that the transaction manager
>> does not perform recovery properly upon boot?
>
> So, at some point the remote EJB call appears to hang (looking into
> that more now), it never times out, just sits there.  So I kill the
> process (not a -9), so the vm shutdown gracefully (or at least tries
> to).
>
> Then if I try to start it up again, I get NPE when the system boots
> (I've posted the exception previously).
>
> Now it might be possible that recovery failed for some reason... but
> it should not NPE, and it should not cause the application server to
> not load.  Or it should just quickly fail with a reasonable error
> message about failure to recover from txlog and explain how to fix it.
>
> But, so far all I can do is `rm var/txlog/*` and then start up the server
> again.
>
> --jason
>



Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
> What do you mean by "corrupts"? Do you mean that the transaction manager
> does not perform recovery properly upon boot?

So, at some point the remote EJB call appears to hang (looking into
that more now), it never times out, just sits there.  So I kill the
process (not a -9), so the vm shutdown gracefully (or at least tries
to).

Then if I try to start it up again, I get NPE when the system boots
(I've posted the exception previously).

Now it might be possible that recovery failed for some reason... but
it should not NPE, and it should not cause the application server to
not load.  Or it should just quickly fail with a reasonable error
message about failure to recover from txlog and explain how to fix it.

But, so far all I can do is `rm var/txlog/*` and then start up the server again.

--jason

Re: Oracle XA RAR for G1.0?

Posted by lichtner <li...@bway.net>.
It just sounds like a bug, I guess.


On Tue, 7 Feb 2006, Jason Dillon wrote:

> I'm not saying it won't work... but its defintetly not happy with
> TranQL with its throwing an exception for a metadata query instead of
> returning false.
>
> --jason
>
>
> On 2/7/06, lichtner@bway.net <li...@bway.net> wrote:
> >
> > 9.2.x.x does work with XA.
> >
> > > I'm going to retest everything with the 10.2.0.1.0_g driver... since
> > > 9.2.* was whack for non-xa I'm not sure that anything would work as
> > > expected.
> > >
> > > --jason
> > >
> > >
> > > On 2/7/06, lichtner@bway.net <li...@bway.net> wrote:
> > >> > I have a feeling that something else is wrong, as I mentioned before I
> > >> > see hanging transactions when using the local adapter in local-tx
> > >> > mode.  And when I ctrl-c G it corrupts the txlog each time... which is
> > >> > very bad IMO.
> > >>
> > >> What do you mean by "corrupts"? Do you mean that the transaction manager
> > >> does not perform recovery properly upon boot?
> > >>
> > >> > I'm starting to think this is a god must hate jason problem more than
> > >> > anything else :-(
> > >>
> > >> Since you are getting an XAException.XA_RMERR error while trying to
> > >> enlist
> > >> a resource manager, maybe Oracle is not set up properly to do XA
> > >> transactions for you.
> > >>
> > >> I do remember that to get XAResource.recover() to work for example you
> > >> have to grant the jdbc user certain database catalog privileges -
> > >> because
> > >> it has to do a select on the in-doubt transaction table. It's not
> > >> impossible that you have to do some configuration in the database server
> > >> to be able to enlist properly.
> > >>
> > >> If I were you I would try to run an xa transaction myself by calling new
> > >> OracleXADataSource(), calling setConnectionURL, setPassword,
> > >> setUserName,
> > >> and then getConnection() and getXAResource(), and then
> > >> start/end/prepare/commit. You can do this from the command line. The
> > >> Oracle driver has an example class that does this so you can cut and
> > >> paste.
> > >>
> > >> That could be a big sanity check.
> > >>
> > >> Guglielmo
> > >>
> > >>
> > >>
> > >
> >
> >
> >
>

Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
I'm not saying it won't work... but its defintetly not happy with
TranQL with its throwing an exception for a metadata query instead of
returning false.

--jason


On 2/7/06, lichtner@bway.net <li...@bway.net> wrote:
>
> 9.2.x.x does work with XA.
>
> > I'm going to retest everything with the 10.2.0.1.0_g driver... since
> > 9.2.* was whack for non-xa I'm not sure that anything would work as
> > expected.
> >
> > --jason
> >
> >
> > On 2/7/06, lichtner@bway.net <li...@bway.net> wrote:
> >> > I have a feeling that something else is wrong, as I mentioned before I
> >> > see hanging transactions when using the local adapter in local-tx
> >> > mode.  And when I ctrl-c G it corrupts the txlog each time... which is
> >> > very bad IMO.
> >>
> >> What do you mean by "corrupts"? Do you mean that the transaction manager
> >> does not perform recovery properly upon boot?
> >>
> >> > I'm starting to think this is a god must hate jason problem more than
> >> > anything else :-(
> >>
> >> Since you are getting an XAException.XA_RMERR error while trying to
> >> enlist
> >> a resource manager, maybe Oracle is not set up properly to do XA
> >> transactions for you.
> >>
> >> I do remember that to get XAResource.recover() to work for example you
> >> have to grant the jdbc user certain database catalog privileges -
> >> because
> >> it has to do a select on the in-doubt transaction table. It's not
> >> impossible that you have to do some configuration in the database server
> >> to be able to enlist properly.
> >>
> >> If I were you I would try to run an xa transaction myself by calling new
> >> OracleXADataSource(), calling setConnectionURL, setPassword,
> >> setUserName,
> >> and then getConnection() and getXAResource(), and then
> >> start/end/prepare/commit. You can do this from the command line. The
> >> Oracle driver has an example class that does this so you can cut and
> >> paste.
> >>
> >> That could be a big sanity check.
> >>
> >> Guglielmo
> >>
> >>
> >>
> >
>
>
>

Re: Oracle XA RAR for G1.0?

Posted by li...@bway.net.
9.2.x.x does work with XA.

> I'm going to retest everything with the 10.2.0.1.0_g driver... since
> 9.2.* was whack for non-xa I'm not sure that anything would work as
> expected.
>
> --jason
>
>
> On 2/7/06, lichtner@bway.net <li...@bway.net> wrote:
>> > I have a feeling that something else is wrong, as I mentioned before I
>> > see hanging transactions when using the local adapter in local-tx
>> > mode.  And when I ctrl-c G it corrupts the txlog each time... which is
>> > very bad IMO.
>>
>> What do you mean by "corrupts"? Do you mean that the transaction manager
>> does not perform recovery properly upon boot?
>>
>> > I'm starting to think this is a god must hate jason problem more than
>> > anything else :-(
>>
>> Since you are getting an XAException.XA_RMERR error while trying to
>> enlist
>> a resource manager, maybe Oracle is not set up properly to do XA
>> transactions for you.
>>
>> I do remember that to get XAResource.recover() to work for example you
>> have to grant the jdbc user certain database catalog privileges -
>> because
>> it has to do a select on the in-doubt transaction table. It's not
>> impossible that you have to do some configuration in the database server
>> to be able to enlist properly.
>>
>> If I were you I would try to run an xa transaction myself by calling new
>> OracleXADataSource(), calling setConnectionURL, setPassword,
>> setUserName,
>> and then getConnection() and getXAResource(), and then
>> start/end/prepare/commit. You can do this from the command line. The
>> Oracle driver has an example class that does this so you can cut and
>> paste.
>>
>> That could be a big sanity check.
>>
>> Guglielmo
>>
>>
>>
>



Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
I'm going to retest everything with the 10.2.0.1.0_g driver... since
9.2.* was whack for non-xa I'm not sure that anything would work as
expected.

--jason


On 2/7/06, lichtner@bway.net <li...@bway.net> wrote:
> > I have a feeling that something else is wrong, as I mentioned before I
> > see hanging transactions when using the local adapter in local-tx
> > mode.  And when I ctrl-c G it corrupts the txlog each time... which is
> > very bad IMO.
>
> What do you mean by "corrupts"? Do you mean that the transaction manager
> does not perform recovery properly upon boot?
>
> > I'm starting to think this is a god must hate jason problem more than
> > anything else :-(
>
> Since you are getting an XAException.XA_RMERR error while trying to enlist
> a resource manager, maybe Oracle is not set up properly to do XA
> transactions for you.
>
> I do remember that to get XAResource.recover() to work for example you
> have to grant the jdbc user certain database catalog privileges - because
> it has to do a select on the in-doubt transaction table. It's not
> impossible that you have to do some configuration in the database server
> to be able to enlist properly.
>
> If I were you I would try to run an xa transaction myself by calling new
> OracleXADataSource(), calling setConnectionURL, setPassword, setUserName,
> and then getConnection() and getXAResource(), and then
> start/end/prepare/commit. You can do this from the command line. The
> Oracle driver has an example class that does this so you can cut and
> paste.
>
> That could be a big sanity check.
>
> Guglielmo
>
>
>

Re: Oracle XA RAR for G1.0?

Posted by li...@bway.net.
> I have a feeling that something else is wrong, as I mentioned before I
> see hanging transactions when using the local adapter in local-tx
> mode.  And when I ctrl-c G it corrupts the txlog each time... which is
> very bad IMO.

What do you mean by "corrupts"? Do you mean that the transaction manager
does not perform recovery properly upon boot?

> I'm starting to think this is a god must hate jason problem more than
> anything else :-(

Since you are getting an XAException.XA_RMERR error while trying to enlist
a resource manager, maybe Oracle is not set up properly to do XA
transactions for you.

I do remember that to get XAResource.recover() to work for example you
have to grant the jdbc user certain database catalog privileges - because
it has to do a select on the in-doubt transaction table. It's not
impossible that you have to do some configuration in the database server
to be able to enlist properly.

If I were you I would try to run an xa transaction myself by calling new
OracleXADataSource(), calling setConnectionURL, setPassword, setUserName,
and then getConnection() and getXAResource(), and then
start/end/prepare/commit. You can do this from the command line. The
Oracle driver has an example class that does this so you can cut and
paste.

That could be a big sanity check.

Guglielmo



Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
Using the ojdbc14-9.2.0.5.jar driver, connecting to a "Oracle9i
Enterprise Edition Release 9.2.0.6.0 - Production" instance.

I have a feeling that something else is wrong, as I mentioned before I
see hanging transactions when using the local adapter in local-tx
mode.  And when I ctrl-c G it corrupts the txlog each time... which is
very bad IMO.

I'm gonna turn up debug for everything, and get a threaddump...

Weird thing is that I was able to get all local adapter in local-tx
mode working yesterday... not sure how, but it did work, with no
hanging remote calls... but then I tried the exact same configuration
on my laptop at home, and it did nothing but hang.

I'm starting to think this is a god must hate jason problem more than
anything else :-(

--jason


On 2/6/06, lichtner <li...@bway.net> wrote:
>
> -3 should be javax.transaction.xa.XAException.XA_RMERR:
>
> http://java.sun.com/j2ee/1.4/docs/api/constant-values.html#javax.transaction
>
> Anyhow, you are not actually enlisting the oracle resource manager, so
> that's a step in the right direction.
>
> I think that Geronimo is not printing the stack trace. If you can, maybe
> add a printStackTrace() and recompile.
>
> What version of Oracle server and driver are you using?
>
> On Mon, 6 Feb 2006, Jason Dillon wrote:
>
> > And the plot thickens... this warning is issued before the exceptions
> > are dumped:
> >
> > <snip>
> > 21:21:23,050 WARN  [Transaction] Unable to enlist XAResource
> > org.apache.geronimo.transaction.manager.WrapperNamedXAResource@9bb03e, e
> > rrorCode: -3
> > oracle.jdbc.xa.OracleXAException
> >          at oracle.jdbc.xa.OracleXAResource.checkError
> > (OracleXAResource.java:1190)
> >          at oracle.jdbc.xa.client.OracleXAResource.start
> > (OracleXAResource.java:311)
> >          at
> > org.apache.geronimo.transaction.manager.WrapperNamedXAResource.start
> > (WrapperNamedXAResource.java:86)
> >          at
> > org.apache.geronimo.transaction.manager.TransactionImpl.enlistResource
> > (TransactionImpl.java:166)
> >          at
> > org.apache.geronimo.transaction.context.InheritableTransactionContext.en
> > listResource(InheritableTransactionContext.java:92)
> >          at
> > org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.g
> > etConnection(TransactionEnlistingInterceptor.java:53)
> >          at
> > org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.get
> > Connection(TransactionCachingInterceptor.java:81)
> >          at
> > org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getCo
> > nnection(ConnectionHandleInterceptor.java:43)
> >          at
> > org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection
> > (TCCLInterceptor.java:39)
> >          at
> > org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.get
> > Connection(ConnectionTrackingInterceptor.java:66)
> >          at
> > org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocat
> > eConnection(AbstractConnectionManager.java:57)
> >          at org.tranql.connector.jdbc.DataSource.getConnection
> > (DataSource.java:56)
> >          at $javax.sql.DataSource$$FastClassByCGLIB$$6525cafd.invoke
> > (<generated>)
> >          at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
> >          at
> > org.apache.geronimo.connector.ConnectorMethodInterceptor.intercept
> > (ConnectorMethodInterceptor.java:53)
> >          at $javax.sql.DataSource$$EnhancerByCGLIB$
> > $4e89d0c0.getConnection(<generated>)
> >          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >          at sun.reflect.NativeMethodAccessorImpl.invoke
> > (NativeMethodAccessorImpl.java:39)
> >          at sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> >          at java.lang.reflect.Method.invoke(Method.java:324)
> >          at
> > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(
> > AopUtils.java:282)
> >          at
> > org.springframework.aop.framework.JdkDynamicAopProxy.invoke
> > (JdkDynamicAopProxy.java:163)
> >          at $Proxy1.getConnection(Unknown Source)
> >          at
> > org.springframework.orm.hibernate.LocalDataSourceConnectionProvider.getC
> > onnection(LocalDataSourceConnectionProvider.java:75)
> >          at net.sf.hibernate.cfg.SettingsFactory.buildSettings
> > (SettingsFactory.java:73)
> >          at net.sf.hibernate.cfg.Configuration.buildSettings
> > (Configuration.java:1155)
> >          at net.sf.hibernate.cfg.Configuration.buildSessionFactory
> > (Configuration.java:789)
> >          at
> > org.springframework.orm.hibernate.LocalSessionFactoryBean.newSessionFact
> > ory(LocalSessionFactoryBean.java:535)
> >          at
> > org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertie
> > sSet(LocalSessionFactoryBean.java:470)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1065)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.createBean(AbstractAutowireCapableBeanFactory.java:343)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.createBean(AbstractAutowireCapableBeanFactory.java:260)
> >          at
> > org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> > (AbstractBeanFactory.java:221)
> >          at
> > org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> > (AbstractBeanFactory.java:145)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.resolveReference(AbstractAutowireCapableBeanFactory.java:973)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:
> > 911)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:852)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.populateBean(AbstractAutowireCapableBeanFactory.java:680)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.createBean(AbstractAutowireCapableBeanFactory.java:325)
> >          at
> > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> > tory.createBean(AbstractAutowireCapableBeanFactory.java:260)
> >          at
> > org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> > (AbstractBeanFactory.java:221)
> >          at
> > org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> > (AbstractBeanFactory.java:145)
> >          at
> > org.springframework.beans.factory.support.DefaultListableBeanFactory.pre
> > InstantiateSingletons(DefaultListableBeanFactory.java:282)
> >          at
> > org.springframework.context.support.AbstractApplicationContext.refresh
> > (AbstractApplicationContext.java:317)
> >          at
> > org.springframework.context.support.ClassPathXmlApplicationContext.<init
> >  >(ClassPathXmlApplicationContext.java:80)
> >          at
> > org.springframework.context.support.ClassPathXmlApplicationContext.<init
> >  >(ClassPathXmlApplicationContext.java:65)
> >          at
> > org.springframework.context.access.ContextJndiBeanFactoryLocator.createB
> > eanFactory(ContextJndiBeanFactoryLocator.java:40)
> >          at
> > org.springframework.beans.factory.access.JndiBeanFactoryLocator.useBeanF
> > actory(JndiBeanFactoryLocator.java:68)
> >          at
> > org.springframework.ejb.support.AbstractEnterpriseBean.loadBeanFactory
> > (AbstractEnterpriseBean.java:115)
> >          at
> > org.springframework.ejb.support.AbstractStatelessSessionBean.ejbCreate
> > (AbstractStatelessSessionBean.java:63)
> >          at
> > com.solidusnetworks.paycore.ach.model.merchant.service.MerchantViewServi
> > ceBean$$FastClassByCGLIB$$e322b03a.invoke(<generated>)
> >          at org.openejb.slsb.EJBCreateMethod.execute
> > (EJBCreateMethod.java:94)
> >          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.slsb.StatelessInstanceContext.ejbCreate
> > (StatelessInstanceContext.java:168)
> >        at org.openejb.slsb.StatelessInstanceFactory.createInstance
> > (StatelessInstanceFactory.java:74)
> >          at org.openejb.util.SoftLimitedInstancePool.acquire
> > (SoftLimitedInstancePool.java:81)
> >          at org.openejb.slsb.StatelessInstanceInterceptor.invoke
> > (StatelessInstanceInterceptor.java:84)
> >          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.SessionEJBLocalHome$$EnhancerByCGLIB$
> > $8d17d4ce.create(<generated>)
> >          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >          at sun.reflect.NativeMethodAccessorImpl.invoke
> > (NativeMethodAccessorImpl.java:39)
> >          at sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> >          at java.lang.reflect.Method.invoke(Method.java:324)
> >          at
> > com.solidusnetworks.paycore.ach.system.J2EEUtils.getLocalInstance
> > (J2EEUtils.java:133)
> >          at
> > com.solidusnetworks.paycore.ach.system.J2EEUtils.getMerchantViewServiceL
> > ocal(J2EEUtils.java:248)
> >          at
> > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.ejbCrea
> > te(POSCheckServiceBean.java:90)
> >          at
> > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean$
> > $FastClassByCGLIB$$ac29a8c5.invoke(<generated>)
> >          at org.openejb.slsb.EJBCreateMethod.execute
> > (EJBCreateMethod.java:94)
> >          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.slsb.StatelessInstanceContext.ejbCreate
> > (StatelessInstanceContext.java:168)
> >          at org.openejb.slsb.StatelessInstanceFactory.createInstance
> > (StatelessInstanceFactory.java:74)
> >          at org.openejb.util.SoftLimitedInstancePool.acquire
> > (SoftLimitedInstancePool.java:81)
> >          at org.openejb.slsb.StatelessInstanceInterceptor.invoke
> > (StatelessInstanceInterceptor.java:84)
> >          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.doEjbHome_CREATE
> > (EjbRequestHandler.java:342)
> >          at org.openejb.server.ejbd.EjbRequestHandler.processRequest
> > (EjbRequestHandler.java:205)
> >          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>
> >
> > I found this related to -3:
> >
> > http://bugs.caucho.com/view.php?id=180
> >
> > Unfortunately its hard to search for "-3", and that is all the
> > context I have to go from :-(
> >
> > --jason
> >
> >
> > On Feb 6, 2006, at 5:17 PM, 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.findAct
> > > iveNegativeFiles(NegativeFileDAOHibernate.java:394)
> > >         at
> > > com.solidusnetworks.paycore.ach.model.negativefile.service.NegativeFil
> > > eViewServiceBean.retrieveActiveGlobalAndMerchantNegativeFiles
> > > (NegativeFileViewServiceBean.java:87)
> > >         at
> > > com.solidusnetworks.paycore.ach.model.negativefile.service.NegativeFil
> > > eViewServiceBean$$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.retri
> > > eveNegativeFileData(POSCheckServiceBean.java:414)
> > >         at
> > > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.check
> > > ForNegativeFileAndDollarLimit(POSCheckServiceBean.java:300)
> > >         at
> > > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.autho
> > > rize(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
> >
> >
>

Re: Oracle XA RAR for G1.0?

Posted by lichtner <li...@bway.net>.
-3 should be javax.transaction.xa.XAException.XA_RMERR:

http://java.sun.com/j2ee/1.4/docs/api/constant-values.html#javax.transaction

Anyhow, you are not actually enlisting the oracle resource manager, so
that's a step in the right direction.

I think that Geronimo is not printing the stack trace. If you can, maybe
add a printStackTrace() and recompile.

What version of Oracle server and driver are you using?

On Mon, 6 Feb 2006, Jason Dillon wrote:

> And the plot thickens... this warning is issued before the exceptions
> are dumped:
>
> <snip>
> 21:21:23,050 WARN  [Transaction] Unable to enlist XAResource
> org.apache.geronimo.transaction.manager.WrapperNamedXAResource@9bb03e, e
> rrorCode: -3
> oracle.jdbc.xa.OracleXAException
>          at oracle.jdbc.xa.OracleXAResource.checkError
> (OracleXAResource.java:1190)
>          at oracle.jdbc.xa.client.OracleXAResource.start
> (OracleXAResource.java:311)
>          at
> org.apache.geronimo.transaction.manager.WrapperNamedXAResource.start
> (WrapperNamedXAResource.java:86)
>          at
> org.apache.geronimo.transaction.manager.TransactionImpl.enlistResource
> (TransactionImpl.java:166)
>          at
> org.apache.geronimo.transaction.context.InheritableTransactionContext.en
> listResource(InheritableTransactionContext.java:92)
>          at
> org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.g
> etConnection(TransactionEnlistingInterceptor.java:53)
>          at
> org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.get
> Connection(TransactionCachingInterceptor.java:81)
>          at
> org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getCo
> nnection(ConnectionHandleInterceptor.java:43)
>          at
> org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection
> (TCCLInterceptor.java:39)
>          at
> org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.get
> Connection(ConnectionTrackingInterceptor.java:66)
>          at
> org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocat
> eConnection(AbstractConnectionManager.java:57)
>          at org.tranql.connector.jdbc.DataSource.getConnection
> (DataSource.java:56)
>          at $javax.sql.DataSource$$FastClassByCGLIB$$6525cafd.invoke
> (<generated>)
>          at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
>          at
> org.apache.geronimo.connector.ConnectorMethodInterceptor.intercept
> (ConnectorMethodInterceptor.java:53)
>          at $javax.sql.DataSource$$EnhancerByCGLIB$
> $4e89d0c0.getConnection(<generated>)
>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>          at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
>          at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
>          at java.lang.reflect.Method.invoke(Method.java:324)
>          at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(
> AopUtils.java:282)
>          at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke
> (JdkDynamicAopProxy.java:163)
>          at $Proxy1.getConnection(Unknown Source)
>          at
> org.springframework.orm.hibernate.LocalDataSourceConnectionProvider.getC
> onnection(LocalDataSourceConnectionProvider.java:75)
>          at net.sf.hibernate.cfg.SettingsFactory.buildSettings
> (SettingsFactory.java:73)
>          at net.sf.hibernate.cfg.Configuration.buildSettings
> (Configuration.java:1155)
>          at net.sf.hibernate.cfg.Configuration.buildSessionFactory
> (Configuration.java:789)
>          at
> org.springframework.orm.hibernate.LocalSessionFactoryBean.newSessionFact
> ory(LocalSessionFactoryBean.java:535)
>          at
> org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertie
> sSet(LocalSessionFactoryBean.java:470)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1065)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.createBean(AbstractAutowireCapableBeanFactory.java:343)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.createBean(AbstractAutowireCapableBeanFactory.java:260)
>          at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:221)
>          at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:145)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.resolveReference(AbstractAutowireCapableBeanFactory.java:973)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:
> 911)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:852)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.populateBean(AbstractAutowireCapableBeanFactory.java:680)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.createBean(AbstractAutowireCapableBeanFactory.java:325)
>          at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
> tory.createBean(AbstractAutowireCapableBeanFactory.java:260)
>          at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:221)
>          at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:145)
>          at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.pre
> InstantiateSingletons(DefaultListableBeanFactory.java:282)
>          at
> org.springframework.context.support.AbstractApplicationContext.refresh
> (AbstractApplicationContext.java:317)
>          at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init
>  >(ClassPathXmlApplicationContext.java:80)
>          at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init
>  >(ClassPathXmlApplicationContext.java:65)
>          at
> org.springframework.context.access.ContextJndiBeanFactoryLocator.createB
> eanFactory(ContextJndiBeanFactoryLocator.java:40)
>          at
> org.springframework.beans.factory.access.JndiBeanFactoryLocator.useBeanF
> actory(JndiBeanFactoryLocator.java:68)
>          at
> org.springframework.ejb.support.AbstractEnterpriseBean.loadBeanFactory
> (AbstractEnterpriseBean.java:115)
>          at
> org.springframework.ejb.support.AbstractStatelessSessionBean.ejbCreate
> (AbstractStatelessSessionBean.java:63)
>          at
> com.solidusnetworks.paycore.ach.model.merchant.service.MerchantViewServi
> ceBean$$FastClassByCGLIB$$e322b03a.invoke(<generated>)
>          at org.openejb.slsb.EJBCreateMethod.execute
> (EJBCreateMethod.java:94)
>          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.slsb.StatelessInstanceContext.ejbCreate
> (StatelessInstanceContext.java:168)
>        at org.openejb.slsb.StatelessInstanceFactory.createInstance
> (StatelessInstanceFactory.java:74)
>          at org.openejb.util.SoftLimitedInstancePool.acquire
> (SoftLimitedInstancePool.java:81)
>          at org.openejb.slsb.StatelessInstanceInterceptor.invoke
> (StatelessInstanceInterceptor.java:84)
>          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.SessionEJBLocalHome$$EnhancerByCGLIB$
> $8d17d4ce.create(<generated>)
>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>          at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
>          at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
>          at java.lang.reflect.Method.invoke(Method.java:324)
>          at
> com.solidusnetworks.paycore.ach.system.J2EEUtils.getLocalInstance
> (J2EEUtils.java:133)
>          at
> com.solidusnetworks.paycore.ach.system.J2EEUtils.getMerchantViewServiceL
> ocal(J2EEUtils.java:248)
>          at
> com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.ejbCrea
> te(POSCheckServiceBean.java:90)
>          at
> com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean$
> $FastClassByCGLIB$$ac29a8c5.invoke(<generated>)
>          at org.openejb.slsb.EJBCreateMethod.execute
> (EJBCreateMethod.java:94)
>          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.slsb.StatelessInstanceContext.ejbCreate
> (StatelessInstanceContext.java:168)
>          at org.openejb.slsb.StatelessInstanceFactory.createInstance
> (StatelessInstanceFactory.java:74)
>          at org.openejb.util.SoftLimitedInstancePool.acquire
> (SoftLimitedInstancePool.java:81)
>          at org.openejb.slsb.StatelessInstanceInterceptor.invoke
> (StatelessInstanceInterceptor.java:84)
>          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.doEjbHome_CREATE
> (EjbRequestHandler.java:342)
>          at org.openejb.server.ejbd.EjbRequestHandler.processRequest
> (EjbRequestHandler.java:205)
>          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>
>
> I found this related to -3:
>
> http://bugs.caucho.com/view.php?id=180
>
> Unfortunately its hard to search for "-3", and that is all the
> context I have to go from :-(
>
> --jason
>
>
> On Feb 6, 2006, at 5:17 PM, 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.findAct
> > iveNegativeFiles(NegativeFileDAOHibernate.java:394)
> >         at
> > com.solidusnetworks.paycore.ach.model.negativefile.service.NegativeFil
> > eViewServiceBean.retrieveActiveGlobalAndMerchantNegativeFiles
> > (NegativeFileViewServiceBean.java:87)
> >         at
> > com.solidusnetworks.paycore.ach.model.negativefile.service.NegativeFil
> > eViewServiceBean$$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.retri
> > eveNegativeFileData(POSCheckServiceBean.java:414)
> >         at
> > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.check
> > ForNegativeFileAndDollarLimit(POSCheckServiceBean.java:300)
> >         at
> > com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.autho
> > rize(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
>
>

Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
And the plot thickens... this warning is issued before the exceptions  
are dumped:

<snip>
21:21:23,050 WARN  [Transaction] Unable to enlist XAResource  
org.apache.geronimo.transaction.manager.WrapperNamedXAResource@9bb03e, e 
rrorCode: -3
oracle.jdbc.xa.OracleXAException
         at oracle.jdbc.xa.OracleXAResource.checkError 
(OracleXAResource.java:1190)
         at oracle.jdbc.xa.client.OracleXAResource.start 
(OracleXAResource.java:311)
         at  
org.apache.geronimo.transaction.manager.WrapperNamedXAResource.start 
(WrapperNamedXAResource.java:86)
         at  
org.apache.geronimo.transaction.manager.TransactionImpl.enlistResource 
(TransactionImpl.java:166)
         at  
org.apache.geronimo.transaction.context.InheritableTransactionContext.en 
listResource(InheritableTransactionContext.java:92)
         at  
org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.g 
etConnection(TransactionEnlistingInterceptor.java:53)
         at  
org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.get 
Connection(TransactionCachingInterceptor.java:81)
         at  
org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getCo 
nnection(ConnectionHandleInterceptor.java:43)
         at  
org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection 
(TCCLInterceptor.java:39)
         at  
org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.get 
Connection(ConnectionTrackingInterceptor.java:66)
         at  
org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocat 
eConnection(AbstractConnectionManager.java:57)
         at org.tranql.connector.jdbc.DataSource.getConnection 
(DataSource.java:56)
         at $javax.sql.DataSource$$FastClassByCGLIB$$6525cafd.invoke 
(<generated>)
         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
         at  
org.apache.geronimo.connector.ConnectorMethodInterceptor.intercept 
(ConnectorMethodInterceptor.java:53)
         at $javax.sql.DataSource$$EnhancerByCGLIB$ 
$4e89d0c0.getConnection(<generated>)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at  
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection( 
AopUtils.java:282)
         at  
org.springframework.aop.framework.JdkDynamicAopProxy.invoke 
(JdkDynamicAopProxy.java:163)
         at $Proxy1.getConnection(Unknown Source)
         at  
org.springframework.orm.hibernate.LocalDataSourceConnectionProvider.getC 
onnection(LocalDataSourceConnectionProvider.java:75)
         at net.sf.hibernate.cfg.SettingsFactory.buildSettings 
(SettingsFactory.java:73)
         at net.sf.hibernate.cfg.Configuration.buildSettings 
(Configuration.java:1155)
         at net.sf.hibernate.cfg.Configuration.buildSessionFactory 
(Configuration.java:789)
         at  
org.springframework.orm.hibernate.LocalSessionFactoryBean.newSessionFact 
ory(LocalSessionFactoryBean.java:535)
         at  
org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertie 
sSet(LocalSessionFactoryBean.java:470)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1065)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.createBean(AbstractAutowireCapableBeanFactory.java:343)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.createBean(AbstractAutowireCapableBeanFactory.java:260)
         at  
org.springframework.beans.factory.support.AbstractBeanFactory.getBean 
(AbstractBeanFactory.java:221)
         at  
org.springframework.beans.factory.support.AbstractBeanFactory.getBean 
(AbstractBeanFactory.java:145)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.resolveReference(AbstractAutowireCapableBeanFactory.java:973)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java: 
911)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:852)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.populateBean(AbstractAutowireCapableBeanFactory.java:680)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.createBean(AbstractAutowireCapableBeanFactory.java:325)
         at  
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac 
tory.createBean(AbstractAutowireCapableBeanFactory.java:260)
         at  
org.springframework.beans.factory.support.AbstractBeanFactory.getBean 
(AbstractBeanFactory.java:221)
         at  
org.springframework.beans.factory.support.AbstractBeanFactory.getBean 
(AbstractBeanFactory.java:145)
         at  
org.springframework.beans.factory.support.DefaultListableBeanFactory.pre 
InstantiateSingletons(DefaultListableBeanFactory.java:282)
         at  
org.springframework.context.support.AbstractApplicationContext.refresh 
(AbstractApplicationContext.java:317)
         at  
org.springframework.context.support.ClassPathXmlApplicationContext.<init 
 >(ClassPathXmlApplicationContext.java:80)
         at  
org.springframework.context.support.ClassPathXmlApplicationContext.<init 
 >(ClassPathXmlApplicationContext.java:65)
         at  
org.springframework.context.access.ContextJndiBeanFactoryLocator.createB 
eanFactory(ContextJndiBeanFactoryLocator.java:40)
         at  
org.springframework.beans.factory.access.JndiBeanFactoryLocator.useBeanF 
actory(JndiBeanFactoryLocator.java:68)
         at  
org.springframework.ejb.support.AbstractEnterpriseBean.loadBeanFactory 
(AbstractEnterpriseBean.java:115)
         at  
org.springframework.ejb.support.AbstractStatelessSessionBean.ejbCreate 
(AbstractStatelessSessionBean.java:63)
         at  
com.solidusnetworks.paycore.ach.model.merchant.service.MerchantViewServi 
ceBean$$FastClassByCGLIB$$e322b03a.invoke(<generated>)
         at org.openejb.slsb.EJBCreateMethod.execute 
(EJBCreateMethod.java:94)
         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.slsb.StatelessInstanceContext.ejbCreate 
(StatelessInstanceContext.java:168)
       at org.openejb.slsb.StatelessInstanceFactory.createInstance 
(StatelessInstanceFactory.java:74)
         at org.openejb.util.SoftLimitedInstancePool.acquire 
(SoftLimitedInstancePool.java:81)
         at org.openejb.slsb.StatelessInstanceInterceptor.invoke 
(StatelessInstanceInterceptor.java:84)
         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.SessionEJBLocalHome$$EnhancerByCGLIB$ 
$8d17d4ce.create(<generated>)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at  
com.solidusnetworks.paycore.ach.system.J2EEUtils.getLocalInstance 
(J2EEUtils.java:133)
         at  
com.solidusnetworks.paycore.ach.system.J2EEUtils.getMerchantViewServiceL 
ocal(J2EEUtils.java:248)
         at  
com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.ejbCrea 
te(POSCheckServiceBean.java:90)
         at  
com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean$ 
$FastClassByCGLIB$$ac29a8c5.invoke(<generated>)
         at org.openejb.slsb.EJBCreateMethod.execute 
(EJBCreateMethod.java:94)
         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.slsb.StatelessInstanceContext.ejbCreate 
(StatelessInstanceContext.java:168)
         at org.openejb.slsb.StatelessInstanceFactory.createInstance 
(StatelessInstanceFactory.java:74)
         at org.openejb.util.SoftLimitedInstancePool.acquire 
(SoftLimitedInstancePool.java:81)
         at org.openejb.slsb.StatelessInstanceInterceptor.invoke 
(StatelessInstanceInterceptor.java:84)
         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.doEjbHome_CREATE 
(EjbRequestHandler.java:342)
         at org.openejb.server.ejbd.EjbRequestHandler.processRequest 
(EjbRequestHandler.java:205)
         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>

I found this related to -3:

http://bugs.caucho.com/view.php?id=180

Unfortunately its hard to search for "-3", and that is all the  
context I have to go from :-(

--jason


On Feb 6, 2006, at 5:17 PM, 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.findAct 
> iveNegativeFiles(NegativeFileDAOHibernate.java:394)
>         at  
> com.solidusnetworks.paycore.ach.model.negativefile.service.NegativeFil 
> eViewServiceBean.retrieveActiveGlobalAndMerchantNegativeFiles 
> (NegativeFileViewServiceBean.java:87)
>         at  
> com.solidusnetworks.paycore.ach.model.negativefile.service.NegativeFil 
> eViewServiceBean$$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.retri 
> eveNegativeFileData(POSCheckServiceBean.java:414)
>         at  
> com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.check 
> ForNegativeFileAndDollarLimit(POSCheckServiceBean.java:300)
>         at  
> com.solidusnetworks.paycore.ach.business.pos.POSCheckServiceBean.autho 
> rize(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


Re: Oracle XA RAR for G1.0?

Posted by lichtner <li...@bway.net>.
It's my sanskrit-only support contract.

Here on dejanews you can see other people suffering from a similar
problem:

http://groups.google.com/groups?q=COMMIT+is+not+allowed+in+a+subordinate+session&hl=en

On Mon, 6 Feb 2006, Aaron Mulder wrote:

> That's about as helpful as Sanskrit.
>
> Aaron
>
> On 2/6/06, lichtner <li...@bway.net> wrote:
> >
> > 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.

Re: Oracle XA RAR for G1.0?

Posted by Aaron Mulder <am...@alumni.princeton.edu>.
That's about as helpful as Sanskrit.

Aaron

On 2/6/06, lichtner <li...@bway.net> wrote:
>
> 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
> >
>

Re: Oracle XA RAR for G1.0?

Posted by lichtner <li...@bway.net>.
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
>

Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
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

Re: Oracle XA RAR for G1.0?

Posted by lichtner <li...@bway.net>.
I think the properties were ConnectionURL, UserName and Password,
but don't spend a lot of time on these because I could be wrong ..

On Sun, 5 Feb 2006, Jason Dillon wrote:

> Any clue on the required config to get the rar deployed?
>
> I'm trying to convert this URL to the params for the RAR:
>
>      jdbc:oracle:thin:@mydbhost:1621:devdb
>
> Unfortunately the Oracle XA RAR does not take a URL, but wants
> granular configuration.  Some obvious stuff I get (like the port
> number), but what to use for protocol and type, etc have me
> scratching my head.
>
> I also looked for the Javadocs for
> oracle.jdbc.xa.client.OracleXADataSource with no luck to see what
> properties it exposed.  The only docs I can find are to expose the
> XAResource, but there must be more since the TranQL RAR is calling
> some of them.
>
> Any ideas?
>
> --jason
>
>
> On Feb 3, 2006, at 5:44 AM, Matt Hogstrom wrote:
>
> > I think David means that it has not been extensively tested and so
> > there are no gurantees that you'll simply be able to drop it in.
> > I'm currently working on a DB2 XA RAR and am still working out some
> > kinks.  It should work well, we're just not sure its been testd
> > enough to know that it does.
> >
> > I looked on CodeHaus and it appears that Jeremy had not previous
> > released a SNAPSHOT.  I compiled the connector this morning against
> > the Oracle 10.1.4.0 classes12.jar.
> >
> > I've published it and it is called tranql/rars/tranql-connector-
> > oracle-xa-1.0-SNAPSHOT.rar
> >
> > If someone can try this out then that would be excellent.  I have
> > only compiled it and not tested it so caveat emptor.
> >
> > lichtner wrote:
> >> On Fri, 3 Feb 2006, David Jencks wrote:
> >>> It is likely to work if you build it.  However I don't know that it
> >>> has been used in the last year or more, so I won't make any
> >>> promises.  Matt might have tried it, I don't know.  We have been a
> >>> bit reluctant to publish it without more evidence that it works
> >>> well.
> >> Why would it not work well? When I was in my last job I remember
> >> getting
> >> that rar to work with mysql xa, so it probably also works with
> >> Oracle xa.
>
>

Re: Oracle XA RAR for G1.0?

Posted by Jason Dillon <ja...@planet57.com>.
Any clue on the required config to get the rar deployed?

I'm trying to convert this URL to the params for the RAR:

     jdbc:oracle:thin:@mydbhost:1621:devdb

Unfortunately the Oracle XA RAR does not take a URL, but wants  
granular configuration.  Some obvious stuff I get (like the port  
number), but what to use for protocol and type, etc have me  
scratching my head.

I also looked for the Javadocs for  
oracle.jdbc.xa.client.OracleXADataSource with no luck to see what  
properties it exposed.  The only docs I can find are to expose the  
XAResource, but there must be more since the TranQL RAR is calling  
some of them.

Any ideas?

--jason


On Feb 3, 2006, at 5:44 AM, Matt Hogstrom wrote:

> I think David means that it has not been extensively tested and so  
> there are no gurantees that you'll simply be able to drop it in.   
> I'm currently working on a DB2 XA RAR and am still working out some  
> kinks.  It should work well, we're just not sure its been testd  
> enough to know that it does.
>
> I looked on CodeHaus and it appears that Jeremy had not previous  
> released a SNAPSHOT.  I compiled the connector this morning against  
> the Oracle 10.1.4.0 classes12.jar.
>
> I've published it and it is called tranql/rars/tranql-connector- 
> oracle-xa-1.0-SNAPSHOT.rar
>
> If someone can try this out then that would be excellent.  I have  
> only compiled it and not tested it so caveat emptor.
>
> lichtner wrote:
>> On Fri, 3 Feb 2006, David Jencks wrote:
>>> It is likely to work if you build it.  However I don't know that it
>>> has been used in the last year or more, so I won't make any
>>> promises.  Matt might have tried it, I don't know.  We have been a
>>> bit reluctant to publish it without more evidence that it works  
>>> well.
>> Why would it not work well? When I was in my last job I remember  
>> getting
>> that rar to work with mysql xa, so it probably also works with  
>> Oracle xa.


Re: Oracle XA RAR for G1.0?

Posted by Matt Hogstrom <ma...@hogstrom.org>.
I think David means that it has not been extensively tested and so there are no 
gurantees that you'll simply be able to drop it in.  I'm currently working on a 
DB2 XA RAR and am still working out some kinks.  It should work well, we're just 
not sure its been testd enough to know that it does.

I looked on CodeHaus and it appears that Jeremy had not previous released a 
SNAPSHOT.  I compiled the connector this morning against the Oracle 10.1.4.0 
classes12.jar.

I've published it and it is called 
tranql/rars/tranql-connector-oracle-xa-1.0-SNAPSHOT.rar

If someone can try this out then that would be excellent.  I have only compiled 
it and not tested it so caveat emptor.

lichtner wrote:
> On Fri, 3 Feb 2006, David Jencks wrote:
> 
> 
>>It is likely to work if you build it.  However I don't know that it
>>has been used in the last year or more, so I won't make any
>>promises.  Matt might have tried it, I don't know.  We have been a
>>bit reluctant to publish it without more evidence that it works well.
> 
> 
> Why would it not work well? When I was in my last job I remember getting
> that rar to work with mysql xa, so it probably also works with Oracle xa.
> 
> 
> 

Re: Oracle XA RAR for G1.0?

Posted by lichtner <li...@bway.net>.
On Fri, 3 Feb 2006, David Jencks wrote:

> It is likely to work if you build it.  However I don't know that it
> has been used in the last year or more, so I won't make any
> promises.  Matt might have tried it, I don't know.  We have been a
> bit reluctant to publish it without more evidence that it works well.

Why would it not work well? When I was in my last job I remember getting
that rar to work with mysql xa, so it probably also works with Oracle xa.

Re: Oracle XA RAR for G1.0?

Posted by David Jencks <da...@yahoo.com>.
On Feb 3, 2006, at 12:45 AM, Jason Dillon wrote:

> I've been digging around the net for a while, found some pages that  
> indicate that there is support for Oracle XA, some that say there  
> is a a TranQL RAR for it... and others that list that the only XA  
> RAR is the one for Derby.
>
> Anyone know definitively what the story is?

There is definitely an oracle xa rar in tranql/vendors/oracle/xa

>
> And if possible know what is needed to get it working?

It is likely to work if you build it.  However I don't know that it  
has been used in the last year or more, so I won't make any  
promises.  Matt might have tried it, I don't know.  We have been a  
bit reluctant to publish it without more evidence that it works well.

thanks
david jencks

>
> --jason