SLSB Transaction rollback due to java.io.IOException: Client is not connected
niefeng Feb 15, 2011 1:59 AMDear all,
We have encountered the following transaction rollback error when the JTA manager was about to commit the transaction. A close look on the stack trace suggested that the root cause of the transaction rollback error is due to the java.io.IOException: Client is not connected thrown by the MQ Connection class.
Our environment setup is as follow
A cluster of two Jboss AS 405 CP10 instance with HA JMS
Solaris 10
Oracle 10
JRE150_10
Our application flow is as followed
A timer thread invoking a method in SLSB. The SLSB will delegate a jms message to a jms destination. The issue (lost connection to the JMS server, java.io.IOException: Client is not connected) happened when the JTA manager trying to commit the transaction. The error was happened on the main node in the cluster.
Could we know that what is the possible cause of such losing connection to the JMS service? Could it be possible that the JMS service (The HA JMS) running on the main node is temporary unavailable and causing the connection of the client to the jms server lost?
The detail of the stack trace is as below
Header 1 |
---|
[06:02:11-08:18:16,528] [ERROR:org.jboss.ejb.plugins.LogInterceptor] [Timer-6] TransactionRolledbackException in method: public abstract void base.time.facade.ejb.IiCalTimeMgrObj.alarmTriggered(base.time.entities.ejb.IiCalAlarmObj,java.util.Date) throws java.rmi.RemoteException, causedBy: org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=p01/12390653, BranchQual=, localId=12390653] status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.mq.SpyXAException: Resource manager error during prepare; - nested throwable: (org.jboss.mq.SpyJMSException: Cannot process a transaction; - nested throwable: (java.io.IOException: Client is not connected))) at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:372) at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:501) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:361) at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136) at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648) at org.jboss.ejb.Container.invoke(Container.java:954) at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169) at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118) at org.jboss.invocation.InvokerInterceptor.invokeLocalMarshalled(InvokerInterceptor.java:295) at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:61) at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70) at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100) at $Proxy1261.alarmTriggered(Unknown Source) at base.time.facade.util.Alarm$AlarmTask.run(Alarm.java:294) at java.util.TimerThread.mainLoop(Unknown Source) at java.util.TimerThread.run(Unknown Source) Caused by: org.jboss.mq.SpyXAException: Resource manager error during prepare; - nested throwable: (org.jboss.mq.SpyJMSException: Cannot process a transaction; - nested throwable: (java.io.IOException: Client is not connected)) at org.jboss.mq.SpyXAException.getAsXAException(SpyXAException.java:72) at org.jboss.mq.SpyXAResource.prepare(SpyXAResource.java:151) at org.jboss.tm.TransactionImpl$Resource.prepare(TransactionImpl.java:2212) at org.jboss.tm.TransactionImpl.prepareResources(TransactionImpl.java:1660) at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:347) ... 28 more Caused by: org.jboss.mq.SpyJMSException: Cannot process a transaction; - nested throwable: (java.io.IOException: Client is not connected) at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:72) at org.jboss.mq.SpyJMSException.rethrowAsJMSException(SpyJMSException.java:57) at org.jboss.mq.Connection.send(Connection.java:1116) at org.jboss.mq.SpyXAResourceManager.prepare(SpyXAResourceManager.java:255) at org.jboss.mq.SpyXAResource.prepare(SpyXAResource.java:147) ... 31 more Caused by: java.io.IOException: Client is not connected at org.jboss.mq.il.uil2.SocketManager.internalSendMessage(SocketManager.java:264) at org.jboss.mq.il.uil2.SocketManager.sendMessage(SocketManager.java:220) at org.jboss.mq.il.uil2.UILServerIL.transact(UILServerIL.java:368) at org.jboss.mq.Connection.send(Connection.java:1112) ... 33 more |
Regards
Niefeng