activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Maharaj (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-2373) Expired Messages appear through policy entry on the DLQ and are also processed from the main Queue
Date Thu, 03 Sep 2009 12:29:12 GMT
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


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.


Mime
View raw message