Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-2336

Redeliveried messages stops consumers from going on consuming the rest of messages in the queue

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 5.2.0, 5.3.0
    • 5.5.0
    • Broker
    • None
    • Windows XP, Java 1.5.0_11
      Spring 2.5.6 DefaultMessageListenerContainer

    Description

      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

      Attachments

        Activity

          People

            Unassigned Unassigned
            drodriguez Diego Rodriguez
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: