activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-1847) Redelivery on a failure doesn't respect the initialRedeliveryDelay on the first attempt.
Date Fri, 06 Aug 2010 01:37:30 GMT

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

Gary Tully commented on AMQ-1847:
---------------------------------

additional clarification. There is indeed an immediate retry with the redelivery flag set,
this allows an app to immediately deal with a redelivered message (one having the redelivered
flag set) if it needs to. For subsequent redeliveries the delay semantics kick in. This was
implemented in https://issues.apache.org/activemq/browse/AMQ-1032
hence this is working as designed

> Redelivery on a failure doesn't respect the initialRedeliveryDelay on the first attempt.
> ----------------------------------------------------------------------------------------
>
>                 Key: AMQ-1847
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1847
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0
>         Environment: Linux, ActiveMQ 5.1, Spring 2.5.x with transacted DefaultMessageListenerContainer
>            Reporter: Veit Guna
>             Fix For: 5.3.0
>
>
> 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.


Mime
View raw message