Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 56603 invoked from network); 14 Jan 2008 16:49:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Jan 2008 16:49:38 -0000 Received: (qmail 52814 invoked by uid 500); 14 Jan 2008 16:49:26 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 52786 invoked by uid 500); 14 Jan 2008 16:49:26 -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 52777 invoked by uid 99); 14 Jan 2008 16:49:26 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Jan 2008 08:49:26 -0800 X-ASF-Spam-Status: No, hits=3.7 required=10.0 tests=DNS_FROM_OPENWHOIS,FORGED_HOTMAIL_RCVD2,SPF_HELO_PASS,SPF_PASS,WHOIS_MYPRIVREG X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of lists@nabble.com designates 216.139.236.158 as permitted sender) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Jan 2008 16:49:01 +0000 Received: from isper.nabble.com ([192.168.236.156]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1JESUk-00077Q-KQ for users@activemq.apache.org; Mon, 14 Jan 2008 08:49:06 -0800 Message-ID: <14805901.post@talk.nabble.com> Date: Mon, 14 Jan 2008 08:49:06 -0800 (PST) From: Wilson Luong To: users@activemq.apache.org Subject: ActiveMQ 5.0.0 AMQ Message Store fails when using with Spring DefaultMessageListenerContainer with more than 1 concurrentConsumers to dispatch JMS messages from Queue MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: wilson_luong@hotmail.com X-Virus-Checked: Checked by ClamAV on apache.org Hi, I am seeing a problem in using ActiveMQ5.0.0 (AMQ Message Store) with Spring's DefaultMessageListenerContainer. Whenever I set the DefaultMessageListenerContainer currentConsumer value to more than 1 (i.e. multiple concurrent consumers), it causes activeMQ broker to produce error shown below: ERROR RecoveryListenerAdapter - Message id xxxxxx could not be recovered from the data store! After this point, no further messages will be dispatched from the ActiveMQ JMS queue, and new messages send to the JMS queue seems to disappear and are not logged into the persistence store. The error seem to indicate problem with the persistence store. I am making use of the new activemq5.0.0 AMQ Message Store. I have included a test program (packaged in TestCase.zip) that will re-produce the issue. The testcase contains the following content: * activemq.xml : contains the config to start the ActiveMQ broker used by the test program. It contains a basic stripped down configuration (using default config settings on AMQ Message Store). * JmsQueueSender.java : util class making use of Spring's JmsTemplate to send JMS messages. * ActiveMQTestClass.java : main class that needs to be started. It loads the sender class via spring, and also starts up the Spring's DefaultMessageListenerContainer to dispatch messages. It will use the sender class JmsQueueSender to send 100 messages every 10sec. * DefaultMessageListener.java : JMS Pojo class that will be called to handle the messages dispatched from the configured Spring's DefaultMessageListenerContainer class. It currently just prints the message content and sleeps for 200 millisec. The sleep is intentional, as it simulate the time it takes in our real application to process the message content. It also somehow (along with the printing of the message content) seem to make the error/program to occur more quickly. * testSpring.xml : Spring configuration used by the test program. One main thing to note is the DefaultMessageListenerContainer class is configured with 10 concurrentConsumers. When setting this value to 1, the problem doesn't seem to happen, but as soon as this value is set beyond 1, it causes problem in the ActiveMQ broker, relating to problem in unable to recover from datastore. I have included the ActiveMQ broker logfile (activemq.log) which has debug turned on (to provide more info). As soon as the error shown below is logged, the consumer is unable to dispatch any more messages from the ActiveMQ queue. The errors reported are: 2008-01-10 16:37:24,474 [/127.0.0.1:3432] ERROR RecoveryListenerAdapter - Message id ID:B00118579B7DA-3430-1199983032693-0:1:1:1:99 could not be recovered from the data store! 2008-01-10 16:37:24,474 [/127.0.0.1:3432] ERROR RecoveryListenerAdapter - Message id ID:B00118579B7DA-3430-1199983032693-0:1:1:1:99 could not be recovered from the data store! 2008-01-10 16:37:24,474 [/127.0.0.1:3432] ERROR RecoveryListenerAdapter - Message id ID:B00118579B7DA-3430-1199983032693-0:1:1:1:99 could not be recovered from the data store! The error doesn't seem to happen at predictable fixed points, which is why the test program will send 100 message every 10sec, and over a number of iterations, it will eventually show the problem in the broker. Anyone know what could be causing this or have experienced the same problem? I would really like to get the Spring concurrent consumer to dispatch the messages, in order to reduce the time it takes to process multiple burst of messages. Any help would be great. Thanks http://www.nabble.com/file/p14805901/activemq.log activemq.log http://www.nabble.com/file/p14805901/TestCase.zip TestCase.zip -- View this message in context: http://www.nabble.com/ActiveMQ-5.0.0-AMQ-Message-Store-fails-when-using-with-Spring-DefaultMessageListenerContainer-with-more-than-1-concurrentConsumers-to-dispatch-JMS-messages-from-Queue-tp14805901s2354p14805901.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.