[jboss-user] [JBoss Messaging] - Failed to get a server session

imaeses do-not-reply at jboss.com
Mon Mar 26 08:19:26 EDT 2007


Hello all,

We are using JBoss Messaging 1.0.1.SP4 with JBoss Remoting 2.2.0 in JBoss 4.0.5.GA. We have a series of MDB's which answer to queues. The queues are deployed on a remote machine from the JBoss instance hosting the MDB's.

We have already noticed that sometimes when shutting down JBoss, the server hangs on undeployment of MDB's. 

Today we were investigating the fact that certain queues were populated with messages that were not being delivered to their target MDB's. Using the JMX console, we noticed that the number of messages in MessageCount was not the same as that from querying the database directly for these queues. Sometimes it was more; sometimes it was less. When we tried to undeploy one of the MDB's affected, we saw the following stracktrace:

2007-03-26 13:48:00,227 WARN  [org.jboss.tm.TransactionImpl] Transaction TransactionImpl:XidImpl[FormatId=257, GlobalId=Franco/39484616, BranchQual=, localId=39484616] timed out. status=STATUS_COMMITING
2007-03-26 13:48:11,364 WARN  [org.jboss.jms.client.JBossConnectionConsumer] Connection consumer closing due to error in listening thread JBossConnectionConsumer[-2147480495, 44]
javax.jms.JMSException: Failed to get a server session: javax.jms.JMSException: Cannot get session after pool has been closed down.
        at org.jboss.jms.asf.StdServerSessionPool.getServerSession(StdServerSessionPool.java:206)
        at org.jboss.jms.client.JBossConnectionConsumer.run(JBossConnectionConsumer.java:291)
        at java.lang.Thread.run(Thread.java:595)

After this, we cannot undeploy anything, even applications that have nothing to do with MDB's. The only way to terminate the server is to send it a kill -9, which is very bad.

Looking in the JBoss code, it seems that the server session pool is empty and is never refilled. When we perform the undeployment, my guess is a notify() is sent to this thread. Seeing that the pool is closing, it throws the JMSException "cannot get session after pool has been closed".

The question I have is, why isn't the session pool being refilled and why does this hang the undeployment thread?

Many thanks,
Adam

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4031559#4031559

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4031559



More information about the jboss-user mailing list