activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Po Cheung <poche...@yahoo.com>
Subject Message queue getting blocked
Date Fri, 02 Mar 2007 19:02:46 GMT

I am seeing a queue being blocked in both ActiveMQMessageProducer.send() and
ActiveMQMessageConsumer.close() and no more messages can be produced or
consumed.  The test case involved a client sending a single message to a
queue every 10 minutes.  Another client consumed the message and produced a
new message on another queue, to be consumed by the first client. 
Everything worked fine for a few hours without any problems and then the
clients would get blocked. 

If useAsyncSend is false, both producer.send and consumer.close were
blocked.  If useAsyncSend is false, only consumer.close was blocked.

Environment:
- ActiveMQ 4.1.0 on Linux RedHat
- Persistent transacted messages
- JournaledJDBC with Derby
- Mule 1.3.1

This problem is readily reproducible on ActiveMQ 4.1.0 but cannot be
reproduced on ActiveMQ 3.2.2.

Thread dump of the first client with useAsyncSend=false:

"jmsConnector.jms.setTag.queue.receiver.1" prio=1 tid=0xada123f8
nid=0xac76dbb0 t@-1401496656 in Object.wait() [ac76c000..ac76d170]
      at java.lang.Object.wait(Native Method)
      - waiting on <0xd105d2b0> (a
edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar)
      at java.lang.Object.wait(Object.java:429)
      at
edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar.await(CondVar.java:76)
      - locked <0xd105d2b0> (a
edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar)
      at
edu.emory.mathcs.backport.java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:319)
      at
org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:42)
      at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:75)
      at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1171)
      at
org.apache.activemq.ActiveMQSession.syncSendPacket(ActiveMQSession.java:1660)
      at
org.apache.activemq.ActiveMQMessageConsumer.close(ActiveMQMessageConsumer.java:541)
      at org.mule.providers.jms.JmsConnector.close(JmsConnector.java:792)
      at
org.mule.providers.jms.JmsConnector.closeQuietly(JmsConnector.java:803)
      at
org.mule.providers.jms.TransactedJmsMessageReceiver.closeConsumer(TransactedJmsMessageReceiver.java:247)
      at
org.mule.providers.jms.TransactedJmsMessageReceiver.poll(TransactedJmsMessageReceiver.java:157)
      at
org.mule.providers.PollingMessageReceiver.run(PollingMessageReceiver.java:71)
      at org.mule.impl.work.WorkerContext.run(WorkerContext.java:301)
      at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
      at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
      at java.lang.Thread.run(Thread.java:534)


"jmsConnector.jms.setTag.queue.receiver.8" prio=1 tid=0xbf9554a0
nid=0xac0f5bb0 t@-1408279632 in Object.wait() [ac0f4000..ac0f5170]
     at java.lang.Object.wait(Native Method)
     - waiting on <0xd120f0c8> (a
edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar)
     at java.lang.Object.wait(Object.java:429)
     at
edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar.await(CondVar.java:76)
     - locked <0xd120f0c8> (a
edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar)
     at
edu.emory.mathcs.backport.java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:319)
     at
org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:42)
     at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:73)
     at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1115)
     at
org.apache.activemq.ActiveMQSession.syncSendPacket(ActiveMQSession.java:1669)
     at
org.apache.activemq.ActiveMQMessageConsumer.close(ActiveMQMessageConsumer.java:518)
     at org.mule.providers.jms.JmsConnector.close(JmsConnector.java:792)
     at
org.mule.providers.jms.JmsConnector.closeQuietly(JmsConnector.java:803)
     at
org.mule.providers.jms.TransactedJmsMessageReceiver.closeConsumer(TransactedJmsMessageReceiver.java:247)
     at
org.mule.providers.jms.TransactedJmsMessageReceiver.poll(TransactedJmsMessageReceiver.java:157)
     at
org.mule.providers.PollingMessageReceiver.run(PollingMessageReceiver.java:71)
     at org.mule.impl.work.WorkerContext.run(WorkerContext.java:301)
     at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
     at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
     at java.lang.Thread.run(Thread.java:534)

Thread dump of ActiveMQ Transport:

"ActiveMQ Transport: tcp:///127.0.0.1:32874" daemon prio=1 tid=0x084c1980
nid=0x1314 in Object.wait() [0xcb17d000..0xcb17e1b0]
      at java.lang.Object.wait(Native Method)
      - waiting on <0xd15b88e8> (a java.lang.Object)
      at java.lang.Object.wait(Object.java:474)
      at
org.apache.activemq.memory.UsageManager.waitForSpace(UsageManager.java:91)
      - locked <0xd15b88e8> (a java.lang.Object)
      at
org.apache.activemq.memory.UsageManager.waitForSpace(UsageManager.java:88)
      at org.apache.activemq.broker.region.Queue.send(Queue.java:278)
      at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:292)
      at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:377)
      at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193)
      at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126)
      at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98)
      at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:136)
      at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:480)
      at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:604)
      at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:284)
      at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:177)
      at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
      at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133)
      at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
      at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
      at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
      at java.lang.Thread.run(Thread.java:595)





-- 
View this message in context: http://www.nabble.com/Message-queue-getting-blocked-tf3335305s2354.html#a9275428
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message