Redelivery on a failure doesn't respect the initialRedeliveryDelay on the first 
attempt.
----------------------------------------------------------------------------------------

                 Key: CAMEL-683
                 URL: https://issues.apache.org/activemq/browse/CAMEL-683
             Project: Apache Camel
          Issue Type: Improvement
          Components: camel-jms
    Affects Versions: 1.3.0
         Environment: Linux, ActiveMQ 5.1, Spring 2.5.x with transacted 
DefaultMessageListenerContainer
            Reporter: Veit Guna


Hi.

I'm using ActiveMQ 5.1 together with Spring's DefaultMessageListenerContainer 
to enable MDPs. I'm using the redeliveryPolicy to enable redelivery on failures 
during consumption of a message. ActiveMQ configuration looks like this:

    <camelContext id="camel" 
xmlns="http://activemq.apache.org/camel/schema/spring";>

        <route errorHandlerRef="deadLetterErrorHandler">
                <from uri="activemq:NEW" />
        </route>
    </camelContext>


<bean id="deadLetterErrorHandler" 
class="org.apache.camel.builder.DeadLetterChannelBuilder">
    <property name="redeliveryPolicy" ref="redeliveryPolicyConfig"/>
</bean>

<bean id="redeliveryPolicyConfig" 
class="org.apache.camel.processor.RedeliveryPolicy">
    <property name="maximumRedeliveries" value="4"/>
    <property name="initialRedeliveryDelay" value="30000"/>
    <property name="useExponentialBackOff" value="true"/>
    <property name="backOffMultiplier" value="2" />
</bean>


Now if a failure occurs, the configured delay isn't used on the first 
redelivery attempt. Instead redelivery takes place immediately after the 
failure occured. This sounds odd to me, since the property is even called 
initialRedeliveryDelay :). I know that maybe this was caused due to the 
following issue:

https://issues.apache.org/activemq/browse/AMQ-1032

In my opinion immediately redelivery isn't very useful in most cases. If a 
failure occurs, it won't be fixed some ms later :). So my suggestion is (in 
respect to AMQ-1032) to have two options:

initialRedeliveryDelay
redeliveryDelay

So both configurations would be possible. For AMQ-1032 just configure 
initialRedeliveryDelay to 0. Otherwise just take the redeliveryDelay as 
initialRedeliveryDelay to get what I want :).

Does this make sense?


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