Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 18055 invoked from network); 2 Mar 2007 19:11:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Mar 2007 19:11:28 -0000 Received: (qmail 55352 invoked by uid 500); 2 Mar 2007 19:11:36 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 55334 invoked by uid 500); 2 Mar 2007 19:11:36 -0000 Mailing-List: contact users-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@activemq.apache.org Delivered-To: mailing list users@activemq.apache.org Received: (qmail 55325 invoked by uid 99); 2 Mar 2007 19:11:36 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Mar 2007 11:11:36 -0800 X-ASF-Spam-Status: No, hits=0.9 required=10.0 tests=FORGED_YAHOO_RCVD,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of lists@nabble.com designates 72.21.53.35 as permitted sender) Received: from [72.21.53.35] (HELO talk.nabble.com) (72.21.53.35) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Mar 2007 11:11:24 -0800 Received: from [72.21.53.38] (helo=jubjub.nabble.com) by talk.nabble.com with esmtp (Exim 4.50) id 1HND9k-00033F-9L for users@activemq.apache.org; Fri, 02 Mar 2007 11:11:04 -0800 Message-ID: <9275536.post@talk.nabble.com> Date: Fri, 2 Mar 2007 11:11:04 -0800 (PST) From: Po Cheung To: users@activemq.apache.org Subject: Message queue getting blocked in both ActiveMQMessageProducer and ActiveMQMessageConsumer MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: pocheung@yahoo.com X-Virus-Checked: Checked by ClamAV on apache.org 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. 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.jmsConnector.dispatchers.dispatcher.8" prio=1 tid=0xbf91bcc0 nid=0xab156bb0 t@-1424659536 in Object.wait() [ab155000..ab156170] at java.lang.Object.wait(Native Method) - waiting on <0xd1225bd8> (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 <0xd1225bd8> (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.send(ActiveMQSession.java:1557) at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:463) at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:385) at org.mule.providers.jms.Jms11Support.send(Jms11Support.java:186) at org.mule.providers.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:242) at org.mule.providers.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:71) at org.mule.providers.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:488) 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) If useAsyncSend is false, both the producer and consumer are blocked. If useAsyncSend is true, only the consumer is blocked. 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-in-both-ActiveMQMessageProducer-and-ActiveMQMessageConsumer-tf3335338s2354.html#a9275536 Sent from the ActiveMQ - User mailing list archive at Nabble.com.