You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by David Delbecq <de...@oma.be> on 2009/12/11 14:19:56 UTC
activeMQ seems stalled
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
Re: activeMQ seems stalled
Posted by Gary Tully <ga...@gmail.com>.
sounds like http://activemq.apache.org/producer-flow-control.html - increase
your q usage limits or decrease the system usage to ensure pending message
references are paged to disk. see also :
http://activemq.apache.org/message-cursors.html
2009/12/11 David Delbecq <de...@oma.be>
> 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
>
>
>
--
http://blog.garytully.com
Open Source Integration
http://fusesource.com