XAException javax.jms.IllegalStateException: The connection
hannibalus Aug 11, 2008 10:10 AMWe're using JBoss 4.03SP1 with JBossMQ under Linux. An application with EJBs and an MDB waits for incoming messages from a queue and sends out messages on other queues and works on database's data.
From time to time we get following warning in the log file. Currently in test environment a restart is needed for further testability.
11:34:39,063 TRACE [TransactionImpl ] [JMS SessionPool Worker-0] Committing resource org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource@9d3079 state=5 11:34:39,067 TRACE [TransactionImpl ] [JMS SessionPool Worker-0] Committing resource SpyXAResource[session=SpySession@10724997[tx=true txid=null XA RUNNING CLOSED connection=Connection@2555167[token=ConnectionToken:ID:188/ac387145ff7cf1a282110c035c3461ef CLOSED rcvstate=STOPPED]]] state=5 11:34:39,067 TRACE [SpyXAResource ] [JMS SessionPool Worker-0] Commit xid=XidImpl[FormatId=257, GlobalId=batchfb01/36634, BranchQual=2, localId=36634], onePhase=false SpyXAResource[session=SpySession@10724997[tx=true txid=null XA RUNNING CLOSED connection=Connection@2555167[token=ConnectionToken:ID:188/ac387145ff7cf1a282110c035c3461ef CLOSED rcvstate=STOPPED]]] 11:34:39,067 WARN [TransactionImpl ] [JMS SessionPool Worker-0] XAException: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=batchfb01/36634, BranchQual=, localId=36634] errorCode=XAER_RMERR org.jboss.mq.SpyXAException: - nested throwable: (javax.jms.IllegalStateException: The connection is closed) at org.jboss.mq.SpyXAResource.commit(SpyXAResource.java:87) at org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2233) at org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1764) at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:340) at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:396) at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) at org.jboss.ejb.Container.invoke(Container.java:873) at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:415) at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:88) at $Proxy54.start(Unknown Source) at com.company.ejb.ReceiverMdb.process(ReceiverMdb.java:190) at com.company.ejb.ReceiverMdb.onMessage(ReceiverMdb.java:130) at sun.reflect.GeneratedMethodAccessor239.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.invocation.Invocation.performCall(Invocation.java:345) at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:475) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149) at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:101) at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:335) at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166) at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:94) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389) at org.jboss.ejb.Container.invoke(Container.java:873) at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1077) at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1379) at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256) at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904) at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160) at org.jboss.mq.SpySession.run(SpySession.java:333) at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748) at java.lang.Thread.run(Thread.java:595) Caused by: javax.jms.IllegalStateException: The connection is closed at org.jboss.mq.Connection.send(Connection.java:1156) at org.jboss.mq.SpyXAResourceManager.commit(SpyXAResourceManager.java:158) at org.jboss.mq.SpyXAResource.commit(SpyXAResource.java:83) ... 43 more 11:34:39,068 TRACE [TransactionImpl ] [JMS SessionPool Worker-0] Committed OK, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=batchfb01/36634, BranchQual=, localId=36634] 11:34:39,069 TRACE [StdServerSession ] [JMS SessionPool Worker-0] Commiting the JMS transaction 11:34:39,069 TRACE [TransactionImpl ] [JMS SessionPool Worker-0] Committing, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=batchfb01/36633, BranchQual=, localId=36633], status=STATUS_ACTIVE
What causes this exception and how severe is it?