[jboss-jira] [JBoss JIRA] Commented: (JBAS-3791) NPE in org.jboss.mq.server.BasicQueue.setupMessageAcknowledgement()
J?rg von Frantzius (JIRA)
jira-events at jboss.com
Fri Oct 27 09:05:41 EDT 2006
[ http://jira.jboss.com/jira/browse/JBAS-3791?page=comments#action_12345912 ]
J?rg von Frantzius commented on JBAS-3791:
------------------------------------------
Thanks for answering. We had already checked whether we had another JBossMQ node (aka HAJNDI master node?), but the StagePartition messages were all consistent, i.e. all instances had listed the same instance as the first one in their view of the StagePartition.
After we had turned on logging (for which a thorough additional read of http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessagingUser_Enabling_TRACE_logging_on_server was very helpful, BTW), the master node had moved to a different server instance in the cluster. In that configuration, the error did not occur because much fewer message were written to the database as more memory was available on that server instance (i.e. there were comparably few cache misses in the MessageCache).
So at least we have a workaround for the moment, which is to make sure the HAJNDI master node is on an instance with more free memory.
Also we checked that only the instances of the cluster are accessing the database in question, and we have no replication/synchronization of databases here.
I'll try to reproduce the error with logging turned on.
> NPE in org.jboss.mq.server.BasicQueue.setupMessageAcknowledgement()
> -------------------------------------------------------------------
>
> Key: JBAS-3791
> URL: http://jira.jboss.com/jira/browse/JBAS-3791
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JMS service
> Affects Versions: JBossAS-4.0.3 SP1
> Environment: OS: Linux 2.6.9-22.0.2.ELsmp (amd64)
> JVM Version: 1.5.0_08-b03 (Sun Microsystems Inc.)
> JVM Name: Java HotSpot(TM) 64-Bit Server VM
> Reporter: J?rg von Frantzius
>
> In a clustered system with 4 server instances, and after having received a couple of thousand of messages, we got the following exception in our logs. Afterwards, one subscribing MDB won't be called in onMessage() anymore. The stuff I wrote in the forum probably really is just unducated guessing.
> 2006-10-24 18:53:24,187 ERROR [UIL2(SocketManager.MsgPool at a52a72a client=192.168.100.214:53381)#4 SocketManager] Failed to handle: org.jboss.mq.il.uil2.msgs.ReceiveMsg2084258688[msgType: m_receive, msgID: -2147361440, error: null]
> java.lang.NullPointerException
> at org.jboss.mq.server.BasicQueue.setupMessageAcknowledgement(BasicQueue.java:945)
> at org.jboss.mq.server.BasicQueue.receive(BasicQueue.java:516)
> at org.jboss.mq.server.JMSTopic.receive(JMSTopic.java:320)
> at org.jboss.mq.server.ClientConsumer.receive(ClientConsumer.java:222)
> at org.jboss.mq.server.JMSDestinationManager.receive(JMSDestinationManager.java:656)
> at org.jboss.mq.server.JMSServerInvoker.receive(JMSServerInvoker.java:226)
> at org.jboss.mq.il.uil2.ServerSocketManagerHandler.handleMsg(ServerSocketManagerHandler.java:155)
> at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleMsg(SocketManager.java:369)
> at org.jboss.mq.il.uil2.msgs.BaseMsg.run(BaseMsg.java:377)
> at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
> at java.lang.Thread.run(Thread.java:595)
> 2006-10-24 18:53:24,251 WARN [Connection Consumer for dest Subscription[subId=-2147483648connection=ConnectionToken:ID:23/null destination=TOPIC.sgw/MOCacheInvalidationTopic messageSelector=null Local Create] id=12 SpyConnectionConsumer] Connection consumer closing due to error in listening thread SpyConnectionConsumer[sub=Subscription[subId=-2147483648connection=ConnectionToken:ID:23/null destination=TOPIC.sgw/MOCacheInvalidationTopic messageSelector=null Local Create] messages=0 waitingForMessage=false internalThread=Thread[Connection Consumer for dest Subscription[subId=-2147483648connection=ConnectionToken:ID:23/null destination=TOPIC.sgw/MOCacheInvalidationTopic messageSelector=null Local Create] id=12,5,jboss] sessionPool=org.jboss.jms.asf.StdServerSessionPool at 6c6fff7a connection=Connection at 753785396[token=ConnectionToken:ID:23/null rcvstate=STARTED]]
> org.jboss.mq.SpyJMSException: Cannot receive ; - nested throwable: (java.lang.NullPointerException)
> at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:66)
> at org.jboss.mq.SpyJMSException.rethrowAsJMSException(SpyJMSException.java:51)
> at org.jboss.mq.Connection.receive(Connection.java:916)
> at org.jboss.mq.SpyConnectionConsumer.run(SpyConnectionConsumer.java:238)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
> at org.jboss.mq.server.BasicQueue.setupMessageAcknowledgement(BasicQueue.java:945)
> at org.jboss.mq.server.BasicQueue.receive(BasicQueue.java:516)
> at org.jboss.mq.server.JMSTopic.receive(JMSTopic.java:320)
> at org.jboss.mq.server.ClientConsumer.receive(ClientConsumer.java:222)
> at org.jboss.mq.server.JMSDestinationManager.receive(JMSDestinationManager.java:656)
> at org.jboss.mq.server.JMSServerInvoker.receive(JMSServerInvoker.java:226)
> at org.jboss.mq.il.uil2.ServerSocketManagerHandler.handleMsg(ServerSocketManagerHandler.java:155)
> at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleMsg(SocketManager.java:369)
> at org.jboss.mq.il.uil2.msgs.BaseMsg.run(BaseMsg.java:377)
> at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
> ... 1 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list