"Connection failure has been detected" message
nbhatia Jul 5, 2009 11:31 PMI am having trouble receiving messages reliably using JBM 2.0.0.BETA3 deployed in JBoss AS 5. Every once in a while I am getting a "Connection failure has been detected" message and then I start loosing messages. Can someone help me identify the issue?
I have simplified my web application down to the bare bones. At this point I can send 1000 messages as fast as I can and then see if I receive all of them. Few times I have gotten all 1000, but several times I get much less, say about 600. I get the following warnings in between:
22:58:26.968 WARNING [Thread-44 (group:JBM-client-global-threads-27401341)] [org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl] Connection failure has been detected Did not receive ping from server:3 ... 23:02:56.984 WARNING [Thread-3 (group:JBM-scheduled-threads-10153586)] [org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl] Connection failure has been detected Did not receive ping from client. It is likely a client has exited or crashed without closing its connection, or the network between the server and client has failed. The connection will now be closed.:3 23:02:56.984 WARNING [Thread-3 (group:JBM-scheduled-threads-10153586)] [org.jboss.messaging.core.server.impl.ServerSessionImpl] Client connection failed, clearing up resources for session ceb2cc8d-69d8-11de-9025-0016d433fcb5 23:02:57.000 WARNING [Thread-3 (group:JBM-scheduled-threads-10153586)] [org.jboss.messaging.core.server.impl.ServerSessionImpl] Cleared up resources for session ceb2cc8d-69d8-11de-9025-0016d433fcb5
The message listener code is as simple as this:
@MessageDriven(activationConfig={ @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"), @ActivationConfigProperty(propertyName="destination", propertyValue="queue/jmstest") }) public class TestMessageListener implements MessageListener { private static final Logger logger = LoggerFactory.getLogger(TestMessageListener.class); @Override public void onMessage(Message message) { if (message instanceof TextMessage) { String messageText = null; try { messageText = ((TextMessage)message).getText(); logger.debug("Received message: {}", messageText); } catch (JMSException e) { throw new RuntimeException(e); } } } }
I can send my small Maven project if someone could try it out.
Thanks.
Naresh