You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Dejan Bosanac (JIRA)" <ji...@apache.org> on 2010/12/02 14:11:15 UTC

[jira] Updated: (AMQ-2373) Expired Messages appear through policy entry on the DLQ and are also processed from the main Queue

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

Dejan Bosanac updated AMQ-2373:
-------------------------------

    Fix Version/s:     (was: 5.4.2)
                   5.5.0

> 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/jira/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.