Found another issue with DayTrader in Geronimo 2.0. It looks like there is some issue with MDBs involved in XA transactions. If I deploy DayTrader 1.2 or 2.0 and run in Direct mode with Async order processing enabled (which uses MDBs to handle the complete order operations), the following exception is thrown to the logs.

If I deploy DT 1.2 in Geronimo 1.1.1, everything runs smoothly. Any thoughts, comments or suggestions?

22:59:18,421 ERROR [Transaction] Please correct the integration and supply a NamedXAResource
java.lang.IllegalStateException : Cannot log transactions as org.apache.activemq.ra.LocalAndXATransaction@1de21de2 is not a NamedXAResource.
    at org.apache.geronimo.transaction.manager.TransactionImpl$TransactionBranch.getResourceName(TransactionImpl.java :697)
    at org.apache.geronimo.transaction.log.HOWLLog.prepare(HOWLLog.java:254)
    at org.apache.geronimo.transaction.log.HOWLLog$$FastClassByCGLIB$$7315be2e.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:124)
    at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:830)
    at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
    at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
    at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept (ProxyMethodInterceptor.java:96)
    at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$ba0af455.prepare(<generated>)
    at org.apache.geronimo.transaction.manager.TransactionImpl.internalPrepare(TransactionImpl.java :444)
    at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:316)
    at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238)
    at org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:139)
    at org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:75)
    at org.apache.openejb.core.mdb.MdbContainer.afterDelivery (MdbContainer.java:375)
    at org.apache.openejb.core.mdb.EndpointHandler.afterDelivery(EndpointHandler.java:274)
    at org.apache.openejb.core.mdb.EndpointHandler.invoke(EndpointHandler.java:164)
    at $Proxy36.afterDelivery(Unknown Source)
    at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:126)
    at org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:65)
    at org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:216)
    at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:751)
    at org.apache.activemq.ra.ServerSessionImpl.run( ServerSessionImpl.java:165)
    at org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:290)
    at org.apache.geronimo.connector.work.pool.NamedRunnable.run(NamedRunnable.java:32)
    at org.apache.geronimo.pool.ThreadPool$1.run (ThreadPool.java:201)
    at org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:331)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
    at java.lang.Thread.run(Thread.java:801)

--
"I say never be complete, I say stop being perfect, I say let... lets evolve, let the chips fall where they may." - Tyler Durden