camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Quartz redelivery question
Date Thu, 18 Jun 2009 05:03:17 GMT
Hi
Interesting with a per processor specific redelivery setting.

The onException must come before your processor otherwise this will only be
effect afterwards.
So you should move onException up to right after the from.

You can divide your route into 2 then the 1st route will use the onException
for the gaClient.
And the 2nd route will not have any onException and thus use the global
setting

And use direct to link your 2 routes together like this:

from(quartz) -> onException -> bean(gaClient) -> to ("direct:route2")
from("direct:route2") -> bean(gaImporter)




On Thu, Jun 18, 2009 at 1:23 AM, sriramch <sriram@consortemedia.com> wrote:

>
> I am using camel 1.6.0. I have a quartz end point setup via Spring DSL for
> performing an ETL process step as following:
>
> <camel:route>
> <camel:from uri="quartz://google_analytics/content/0/57/15/*/*/$" />
>                        <camel:bean ref="gaClient">
>                                <camel:onException>
>
>  <camel:exception>java.lang.Exception</camel:exception>
>                                        <camel:redeliveryPolicy
> maximumRedeliveries="3"
>
>  initialRedeliveryDelay="10000" />
>                                        <camel:handled>
>
>  <camel:constant>true</camel:constant>
>                                        </camel:handled>
>                        </camel:onException>
> </camel:bean>
> <camel:bean ref="gaImporter" />
> </camel:route>
>
> I notice that whenever my processor gaClient throws an exception, it
> doesn't
> attempt the retry logic that is defined on the bean using the <onException>
> clause. It goes to the DeadLetterChannel processor. I have the global error
> handler and the redelivery beans defined as following:
>
> <bean id="redeliveryPolicyConfig"
> class="org.apache.camel.processor.RedeliveryPolicy">
>        <property name="maximumRedeliveries" value="0"/>
>    </bean>
>
>    <bean id="globalErrorHandler"
> class="org.apache.camel.builder.DeadLetterChannelBuilder">
>       <property name="defaultDeadLetterEndpointUri" value="sead:error"/>
>       <property name="redeliveryPolicy" ref="redeliveryPolicyConfig"/>
>    </bean>
>
> What am I missing here on the retry for my processor. I wish the retrry
> logic to be applied only for my 1st processor bean 'gaClient' and not the
> 2nd processor bean. Is this even possible using Spring DSL?
>
> Thanks
> Sriram
> --
> View this message in context:
> http://www.nabble.com/Quartz-redelivery-question-tp24083917p24083917.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>


-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message