[ 
https://issues.apache.org/activemq/browse/AMQ-2373?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bruce Snyder updated AMQ-2373:
------------------------------

    Fix Version/s: 5.5.0
                       (was: 5.4.1)

> Expired Messages appear through policy entry on the DLQ and are also 
> processed from the main Queue
> --------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2373
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2373
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.2.0
>            Reporter: Andrew Maharaj
>             Fix For: 5.5.0
>
>
> Hi,
> We have a policy entry like this:
> <destinationPolicy>
>                 <policyMap>
>                                  <policyEntries>
>                                                   <policyEntry queue=">" 
> memoryLimit="10mb">
>                                                                   
> <deadLetterStrategy>     
>                                                                               
>   <individualDeadLetterStrategy queuePrefix="DLQ." 
> useQueueForQueueMessages="true" />     
>                                                                 
> </deadLetterStrategy>     
>                                                   </policyEntry>
>                                                   <policyEntry topic=">" 
> memoryLimit="10mb">
>                                                   </policyEntry>
>                                  </policyEntries>
>                 </policyMap>
> </destinationPolicy>
> Messages sent with an expiry time of 10 seconds appear on the Dead Letter 
> Queue.
> However, if a Message Driven Bean ultimately picks up the message from the 
> main queue in a transaction and the transaction is slow, the message can 
> expire while the transaction is in progress.
> This leads to a situation where the message is processed twice, implying that 
> the queue processing is not atomic.
>                         - The main MDB completes processing, 
>                         - The expired message is moved to the DLQ 
>                         - The MDB listening to the Dead Letter Queue also 
> processes a response.
> Utlimately, responses for the expired message and for the in flight message 
> are both generated.  Neither operation reports any exceptions.
> The MDB's are simple, vanilla MDB's using Apache Geronimo 2.1.4 and referring 
> to a separate ActiveMQ 5.2 installation (not the 4.1 shipped with Geronimo).

-- 
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