activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <>
Subject [jira] [Resolved] (AMQ-3894) Add support for Broker based redelivery
Date Fri, 22 Jun 2012 15:34:42 GMT


Gary Tully resolved AMQ-3894.

       Resolution: Fixed
    Fix Version/s: 5.7.0

Implementation of per destination broker redelivery using per destination redelivery policy
via redeliveryPlugin and schedulerSupport.
Relevant xml config:{code}

    <broker xmlns=""    schedulerSupport="true" >

            <redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true">
                            <!-- a destination specific policy -->
                            <redeliveryPolicy queue="SpecialQueue" maximumRedeliveries="4"
redeliveryDelay="10000" />
                        <!-- the fallback policy for all other destinations -->
                            <redeliveryPolicy maximumRedeliveries="4" initialRedeliveryDelay="5000"
redeliveryDelay="10000" />
> Add support for Broker based redelivery
> ---------------------------------------
>                 Key: AMQ-3894
>                 URL:
>             Project: ActiveMQ
>          Issue Type: New Feature
>          Components: Broker
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.7.0
> redelivery is handled by the consumer, so client side. messages pending redelivery are
seen as inflight by the broker and not available to other consumers. It is possible to break
the order constraint and receive messages backed up behind a message pending redelivery, but
this is all local to the client consumer.
> When redelivery is exhausted, the message is returned to the broker with a poison ack,
which the broker responds by removing the message and doing Dead letter queue processing (DLQ).
> This enhancement will allow a replacement of DLQ handling that will handle redelivery.
It is based on the ideas outlined and implemented by a camel route in

> The idea is a BrokerPlugin will override sendToDeadLetterQueue and resend the message
to the original destination in accordance with a matching RedeliveryPolicy. The resend will
use the broker schedular to implement the delayed send after the message has been acked as
poison by the consumer.
> So the message will essentially be enqueued at the tail of the queue and dispatched again
to any available consumer.
> If retries are exceeded or there is no matching redelivery policy for a destination,
normal DLQ processing will take place.
> This will work in conjunction with consumer/client redelivery exhaustion or using a redelivery
policy in the url query of jms.redeliveryPolicy.maximumRedeliveries=0

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message