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.