Automatic message expiration may not occur on a queue with no (or slow) 
consumers.
----------------------------------------------------------------------------------

                 Key: AMQ-2552
                 URL: https://issues.apache.org/activemq/browse/AMQ-2552
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.3.1
         Environment: ActiveMQ 5.3.1 Snapshot r893661
            Reporter: Stirling Chow


Symptom
========
If a queue is loaded with 400+ messages that never expire, and then a message 
that does expire is added to the end of the queue, the added message will not 
be processed by the Broker's expiration logic until some of the 400+ unexpired 
messages are consumed.  A unit test is provided to demonstrate this issue.

These test cases worked for AMQ 5.3, but not for AMQ 5.3.1-SNAPSHOT r893661.

Motivation
========
Our application uses message expiration to trigger actions when messages are 
left in a queue for too long a period.  In many cases, there are no consumers 
on the queue containing the messages that might expire.  Prior versions of AMQ 
only expired messages when an attempt was made to dispatch them to a consumer, 
but AMQ-1112 introduce the notion of periodic, automatic expiration of pending 
messages (see the expireMessagesPeriod policy).  With this periodic expiration, 
our expectation is that expired messages will be detacted and processed in a 
timely fashion, regardless of the presence of consumers on the queue.

Cause
======
AMQ-2481 removed forced paging from the periodically-called expireMessages() 
method:

Resolution
=========



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to