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

Reply via email to