[jboss-user] [Clustering/JBoss] - Re: HA JMS & message selector
niefeng
do-not-reply at jboss.com
Sun Jun 24 06:43:11 EDT 2007
here is the exception i got in node1
| org.jboss.mq.SpyXAException: Resource manager error during prepare; - nested throwable: (javax.jms.IllegalStateException: The connection is closed)
| 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)
| at org.jboss.tm.TxManager.commit(TxManager.java:240)
| at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:351)
| at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:905)
| at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
| at org.jboss.mq.SpySession.run(SpySession.java:323)
| at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
| at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
| at java.lang.Thread.run(Unknown Source)
| Caused by: javax.jms.IllegalStateException: The connection is closed
| at org.jboss.mq.Connection.checkClosed(Connection.java:1244)
| at org.jboss.mq.Connection.send(Connection.java:1104)
| at org.jboss.mq.SpyXAResourceManager.prepare(SpyXAResourceManager.java:255)
| at org.jboss.mq.SpyXAResource.prepare(SpyXAResource.java:147)
| ... 11 more
| [14:06:07-22:24:39,779] [ WARN:org.jboss.tm.TransactionImpl] [JMS SessionPool Worker-6] XAException: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=asterix/809, BranchQual=, localId=809] errorCode=XAER_RMERR
| org.jboss.mq.SpyXAException: Resource manager error during rollback; - nested throwable: (javax.jms.IllegalStateException: The connection is closed)
| at org.jboss.mq.SpyXAException.getAsXAException(SpyXAException.java:72)
| at org.jboss.mq.SpyXAResource.rollback(SpyXAResource.java:182)
| at org.jboss.tm.TransactionImpl$Resource.rollback(TransactionImpl.java:2277)
| at org.jboss.tm.TransactionImpl.rollbackResources(TransactionImpl.java:1837)
| at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:368)
| at org.jboss.tm.TxManager.commit(TxManager.java:240)
| at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:351)
| at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:905)
| at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
| at org.jboss.mq.SpySession.run(SpySession.java:323)
| at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
| at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
| at java.lang.Thread.run(Unknown Source)
| Caused by: javax.jms.IllegalStateException: The connection is closed
| at org.jboss.mq.Connection.checkClosed(Connection.java:1244)
| at org.jboss.mq.Connection.send(Connection.java:1104)
| at org.jboss.mq.SpyXAResourceManager.rollback(SpyXAResourceManager.java:308)
| at org.jboss.mq.SpyXAResource.rollback(SpyXAResource.java:178)
| ... 11 more
| [14:06:07-22:24:39,788] [ERROR:org.jboss.jms.asf.StdServerSession] [JMS SessionPool Worker-6] failed to commit/rollback
| org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=asterix/809, BranchQual=, localId=809] status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.mq.SpyXAException: Resource manager error during prepare; - nested throwable: (javax.jms.IllegalStateException: The connection is closed))
| at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:372)
| at org.jboss.tm.TxManager.commit(TxManager.java:240)
| at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:351)
| at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:905)
| at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
| at org.jboss.mq.SpySession.run(SpySession.java:323)
| at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
| at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
| at java.lang.Thread.run(Unknown Source)
| Caused by: org.jboss.mq.SpyXAException: Resource manager error during prepare; - nested throwable: (javax.jms.IllegalStateException: The connection is closed)
| 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)
| ... 8 more
| Caused by: javax.jms.IllegalStateException: The connection is closed
| at org.jboss.mq.Connection.checkClosed(Connection.java:1244)
| at org.jboss.mq.Connection.send(Connection.java:1104)
| at org.jboss.mq.SpyXAResourceManager.prepare(SpyXAResourceManager.java:255)
| at org.jboss.mq.SpyXAResource.prepare(SpyXAResource.java:147)
And I also realize that the jms msg has been moved to DLQ due to too many resend, that's why I can't find the msg neither in node1 and node2.
Below is the pseudo code on how i initiating the sending of jms msg:
| private void initArchive()
| {
| //delegate to other component using jms
| sendArchiveRequest();
|
| //start archive: the execution time can be more than 10 minutes and
| //is an intensive operation
| archive();
| }
|
|
The caller of this method is an MDBean, and this method is resided under a nomal java class. The sending of the jms is not involved any session bean.
I managed to resolved it by delegating the sending of the jms msg to a SLSB with transaction attr "RequiresNew".
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057178#4057178
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057178
More information about the jboss-user
mailing list