[ 
https://issues.apache.org/activemq/browse/CAMEL-683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-683.
-------------------------------

    Fix Version/s:     (was: 1.5.0)
       Resolution: Won't Fix

Hi Claus.

Meanwhile I've realized that the problem is a misunderstanding on my side what 
camel is supposed to do.
I thought I can configure the redelivery behavior of ActiveMQ within the 
camelContext as part of the acivemq.xml configuration on a per destination 
basis. What I haven't mentioned is, that my listener/consumer for the queue 
isn't configured within camel or activemq but in a separate spring baked 
application. What I now have realized is, that I have to consume a message via 
camel to get it's routing/mediation support (including redelivery
features) - now it's crystal clear to me (or not?). So I configured 
redeliveryPolicy on a ActiveMQConnectionFactory on my spring baked application 
and the settings are working fine now.

Sorry for mixing things up.

Thanks for you help.

Regards,
Veit


> 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.4.0
>         Environment: Linux, ActiveMQ 5.1, Spring 2.5.x with transacted 
> DefaultMessageListenerContainer
>            Reporter: Veit Guna
>            Assignee: Claus Ibsen
>             Fix For: 1.4.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.

Reply via email to