Hello,

we are using an activeMQ server here, as a standalone application and
used by tomcat, which connects to server using tcp:// protocol.
Sometimes, the tomcat client is stalled trying to connect to a queue,
and i have no idea why. Here is a stack dump from tomcat jvm when this
happen

   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <3f543bf8> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1889)
        at
java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
        at
org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40)
        at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:80)
        at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1233)
        at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1659)
        - locked <3f5425b8> (a java.lang.Object)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:227)
        at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
        at be.rmi.shark.JMSEventManager.sendEvent(JMSEventManager.java:146)

It seems that client is waiting forever to receive and answer from MQ
server. I have several threads in this situation and the only way to
unlock de situation is to kill and restart the activeMQ server. However,
the server itself does not loag any error. It looks like the srver
"forgot" to send response and client is waiting forever. Any idea what
can cause this? In current situation, we have noticed this happens when
another client is making bad connection (it connect to activeMQ queues,
receive an item but neither close connection, nor acknowledge or reject
the message). Could it be that activeMQ is stalled waiting for
acknoledge befor allowing other client to add items to queue. Should
those 2 operations be desynchronzed?

-- 
David Delbecq
ICT
Institut Royal Météorologique
Ext:557


Reply via email to