Effective October 27, 2012, online and email support for FuseSource products will move to Red Hat support channels. For more information, please see the JIRA Migration to Red Hat FAQ.
As of October 27th, please open all new issues in the Red Hat Customer Portal .
Issue Details (XML | Word | Printable)

Key: MB-985
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Gary Tully
Reporter: Joe Luo
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
FUSE Message Broker

TimeStampingBrokerPlugin causes messages to expire in DLQ queue

Created: 14/Oct/11 08:54 AM   Updated: 14/Nov/11 11:32 AM
Component/s: None
Affects Version/s: None
Fix Version/s: 5.6.0-fuse-00-00, 5.5.1-fuse-01-11

External Issue URL: https://issues.apache.org/jira/browse/AMQ-3541


 Description  « Hide
Here is steps to reproduce the issue:

1. Set the plugin to use a low value timeout like this:

<timeStampingBrokerPlugin ttlCeiling="60000" zeroExpirationOverride="60000" />

and individual deadLetterStrategy as following

<policyEntry queue=">" producerFlowControl="true" memoryLimit="5mb">
    <deadLetterStrategy>
        <individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true" />
    </deadLetterStrategy>
 </policyEntry>

2. Produce 10 messages either via or shipped ProducerTool example or the web console to TEST.IN queue (use persistent delivery mode);
3. Wait 1 minute for messages to expire and then propagate to DLQ.TEST.IN;
4. Confirm 10 messages arrived into DLQ.TEST.IN queue;
5. Open one message, and you'll see that the timeStampingBrokerPlugin has added a timestamp to the message. (Usually expired messages have expiration field cleared when going into the DLQ)
6. Wait one minute, and messages are expired from the DLQ.TEST.IN. The messages are not consumable or browsable any more (does not exist) although the webconsole still shows 10 messages pending.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Joe Luo added a comment - 14/Oct/11 09:06 AM - edited
The key problem of this issue is that the TimeStampingBrokerPlugin will try to reset timestamp and expiration properties on the messages when they are moved to DLQ queue, thus causing these messages to expire which is not suppose to happen.

Gary Tully added a comment - 28/Oct/11 12:18 PM
fix on fuse trunk for 5.6 release

Dave Stanley added a comment - 03/Nov/11 05:25 PM
Reopen as want to see if we can get backported to 5.5.1.x

Gary Tully added a comment - 14/Nov/11 11:32 AM
fix on 5.5.x and 5.5.1 fuse branches.