[ 
https://issues.apache.org/jira/browse/AMQ-3894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13399382#comment-13399382
 ] 

Gary Tully edited comment on AMQ-3894 at 3/6/13 12:01 PM:
----------------------------------------------------------

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

    <broker xmlns="http://activemq.apache.org/schema/core";    
schedulerSupport="true" >

        <plugins>
            <redeliveryPlugin fallbackToDeadLetter="true" 
sendToDlqIfMaxRetriesExceeded="true">
                <redeliveryPolicyMap>
                    <redeliveryPolicyMap>
                        <redeliveryPolicyEntries>
                            <!-- a destination specific policy -->
                            <redeliveryPolicy queue="SpecialQueue" 
maximumRedeliveries="4" redeliveryDelay="10000" />
                        </redeliveryPolicyEntries>
                        <!-- the fallback policy for all other destinations -->
                        <defaultEntry>
                            <redeliveryPolicy maximumRedeliveries="4" 
initialRedeliveryDelay="5000" redeliveryDelay="10000" />
                        </defaultEntry>
                    </redeliveryPolicyMap>
                </redeliveryPolicyMap>
            </redeliveryPlugin>
        </plugins>
{code}

http://svn.apache.org/viewvc?rev=1352902&view=rev
                
      was (Author: gtully):
    Implementation of per destination broker redelivery using per destination 
redelivery policy via redeliveryPlugin and schedulerSupport.
Relevant xml config:{code}

    <broker xmlns="http://activemq.apache.org/schema/core";    
schedulerSupport="true" >

        <plugins>
            <redeliveryPlugin fallbackToDeadLetter="true" 
sendToDlqIfMaxRetriesExceeded="true">
                <redeliveryPolicyMap>
                    <redeliveryPolicyMap>
                        <setRedeliveryPolicyEntries>
                            <!-- a destination specific policy -->
                            <redeliveryPolicy queue="SpecialQueue" 
maximumRedeliveries="4" redeliveryDelay="10000" />
                        </setRedeliveryPolicyEntries>
                        <!-- the fallback policy for all other destinations -->
                        <defaultEntry>
                            <redeliveryPolicy maximumRedeliveries="4" 
initialRedeliveryDelay="5000" redeliveryDelay="10000" />
                        </defaultEntry>
                    </redeliveryPolicyMap>
                </redeliveryPolicyMap>
            </redeliveryPlugin>
        </plugins>
{code}

http://svn.apache.org/viewvc?rev=1352902&view=rev
                  
> Add support for Broker based redelivery
> ---------------------------------------
>
>                 Key: AMQ-3894
>                 URL: https://issues.apache.org/jira/browse/AMQ-3894
>             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 https://issues.apache.org/jira/browse/AMQ-2710 
> 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
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to