[prev in list] [next in list] [prev in thread] [next in thread]
List: activemq-dev
Subject: [jira] Created: (AMQ-2336) Redeliveried messages stops consumers
From: "Diego Rodriguez (JIRA)" <jira () apache ! org>
Date: 2009-07-31 11:27:33
Message-ID: 1582646174.1249039653790.JavaMail.jira () brutus
[Download RAW message or body]
Redeliveried messages stops consumers from going on consuming the rest of messages in \
the queue
-----------------------------------------------------------------------------------------------
Key: AMQ-2336
URL: https://issues.apache.org/activemq/browse/AMQ-2336
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.2.0, 5.3.0
Environment: Windows XP, Java 1.5.0_11
Spring 2.5.6 DefaultMessageListenerContainer
Reporter: Diego Rodriguez
Here are the steps to reproduce de problem:
- redeliveryPolicy configured in ActiveMQConnectionFactory as \
initialRedeliveryDelay 10000, maximumRedeliveries 6, useExponentialBackOff true, \
backOffMultiplier 3. With these settings, messages, in case of error, stays in the \
queue several minutes.
- DefaultMessageListenerContainer with concurrentConsumers, maxConcurrentConsumers \
set to 1, sessionTransacted=true, and cacheLevel CACHE_CONSUMER
- We introduce a "bad" message in a queue (configured to cause a RuntimeException \
in the MDP associated with the queue). The message waits in the queue to be \
redelivered again (seen in jconsole)
- We introduce a "good" message in a queue. The MDP associated with the queue \
should process this message inmediatly with no exception, but instead, the message is \
not been processed until last redelivery of the "bad" message, and it happens several \
minutes later. When this happens, message is processed Ok.
This problem can cause queues to grow unnecessarily if few messages are waiting to \
be redelivered. What I expected to happen is messages being processed as they arrive \
if there is a consumer available, but it seems consumers with a rollback in a \
transaction are not available until the rollbacked message is processed again and \
finally sent to DLQ.
In addition, in Activemq version 5.2.0, when I remove consumers while waiting for \
next redelivery of the message, broker throws this exception (this not happens with \
5.3-SNAPSHOT):
30 jul 2009 14:17:45,140 ERROR [ActiveMQ Transport: tcp:///127.0.0.1:3656] \
org.apache.activemq.broker.TransportConnection.Service - sync error \
occurred:
javax.jms.JMSException: Transaction 'TX:ID:mymachine-4579-1248953104078-0:5207:52' \
has not been started.
javax.jms.JMSException: Transaction 'TX:ID:mymachine-4579-1248953104078-0:5207:52' \
has not been started.
at org.apache.activemq.broker.TransactionBroker.getTransaction(TransactionBroker.java:270)
at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:190)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:456)
at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
at java.lang.Thread.run(Thread.java:595
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic