activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: Message queue getting blocked
Date Fri, 02 Mar 2007 19:42:33 GMT
I've added an entry to the FAQ on this one...

http://cwiki.apache.org/ACTIVEMQ/my-producer-blocks.html



On 3/2/07, Po Cheung <pocheung@yahoo.com> wrote:
>
> 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.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Mime
View raw message