You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Miguel Ruiz Velasco Sobrino <mi...@fcm.com.mx> on 2012/07/17 02:17:29 UTC
Question about loadbalancing failover
Hello,
I'm fairly new to camel, and I have a problem.
I already have a camel configuration with loadbalancing and failover,
and it works wonders when at least one of the processors succeeds.
I have an scenario maybe all processors fail, and camel loops infinitely
doing the failover.
I need to know when all failover attempts failed to send an error
message to the service's clients, because I don't want it to rollback
and to loop forever.
I think I may need to catch somewhere an exception... but which exception?
My [simplified] test config is as follows:
<camel:camelContext id="camelContext" >
<camel:errorHandler id="miguelErrorHandler"
type="DefaultErrorHandler"
redeliveryPolicyRef="generalRedeliveryPolicy"
useOriginalMessage="false"
>
</camel:errorHandler>
<camel:redeliveryPolicyProfile id="generalRedeliveryPolicy"
redeliveryDelay="200" maximumRedeliveries="1" />
<camel:redeliveryPolicyProfile id="redeliveryPolicy"
redeliveryDelay="500" maximumRedeliveries="1"/>
<camel:route errorHandlerRef="miguelErrorHandler">
<camel:from uri="file:data/inbox" />
<camel:onException redeliveryPolicyRef="redeliveryPolicy" >
<camel:exception>java.lang.NoSuchMethodException</camel:exception>
<camel:handled><camel:constant>true</camel:constant></camel:handled>
<camel:to uri="seda:err"/>
</camel:onException>
<camel:loadBalance inheritErrorHandler="true" >
<camel:failover maximumFailoverAttempts="2" roundRobin="true"/>
<camel:process ref="failProcessor1"></camel:process>
<camel:process ref="failProcessor2"></camel:process>
</camel:loadBalance>
<camel:wireTap uri="stream:out" processorRef="downloadLogger"/> <!--
processorRef="downloadLogger" -->
<camel:to uri="file:data/output" />
</camel:route>
</camel:camelContext>
<bean id="failProcessor1" class="com.fcm.camel.test.FailProcessor"/>
The class FailProcessor only returns an exception to force the failover.
The log is as follows:
2012-07-16 19:05:15,505 [Camel (camelContext) thread #1 -
file://data/inbox] TRACE
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer - Failover
starting with endpoint index 0
2012-07-16 19:05:15,507 [Camel (camelContext) thread #1 -
file://data/inbox] DEBUG
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
Processing failover at attempt 0 for Exchange[null]
2012-07-16 19:05:20,383 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR com.fcm.camel.test.FailedConnectProcessor -
failedConnectProcessor Falla intencional al conectar: Mensaje 1
2012-07-16 19:05:20,593 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR com.fcm.camel.test.FailedConnectProcessor -
failedConnectProcessor Falla intencional al conectar: Mensaje 1
2012-07-16 19:05:20,595 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR org.apache.camel.processor.DefaultErrorHandler
- Failed delivery for (MessageId: ID-miguel-thnk-58270-1342483504051-0-4
on ExchangeId: ID-miguel-thnk-58270-1342483504051-0-2). Exhausted after
delivery attempt: 2 caught: java.net.ConnectException: Falla intencional
al conectar Ex: failedConnectProcessor
java.net.ConnectException: Falla intencional al conectar Ex:
failedConnectProcessor
at
com.fcm.camel.test.FailedConnectProcessor.process(FailedConnectProcessor.java:26)
at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.processExchange(FailOverLoadBalancer.java:247)
at
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.process(FailOverLoadBalancer.java:205)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:336)
at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:189)
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:155)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:139)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:91)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown
Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2012-07-16 19:05:20,596 [Camel (camelContext) thread #1 -
file://data/inbox] TRACE
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
Processing exchangeId: ID-miguel-thnk-58270-1342483504051-0-2 is
continued being processed synchronously
2012-07-16 19:05:20,596 [Camel (camelContext) thread #1 -
file://data/inbox] TRACE
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer - Should
failover: true for exchangeId: ID-miguel-thnk-58270-1342483504051-0-2
2012-07-16 19:05:20,597 [Camel (camelContext) thread #1 -
file://data/inbox] DEBUG
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
Processing failover at attempt 1 for Exchange[null]
2012-07-16 19:05:20,597 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR com.fcm.camel.test.FailedConnectProcessor -
failedConnectProcessor Falla intencional al conectar: Mensaje 1
2012-07-16 19:05:20,799 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR com.fcm.camel.test.FailedConnectProcessor -
failedConnectProcessor Falla intencional al conectar: Mensaje 1
2012-07-16 19:05:20,800 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR org.apache.camel.processor.DefaultErrorHandler
- Failed delivery for (MessageId: ID-miguel-thnk-58270-1342483504051-0-6
on ExchangeId: ID-miguel-thnk-58270-1342483504051-0-2). Exhausted after
delivery attempt: 2 caught: java.net.ConnectException: Falla intencional
al conectar Ex: failedConnectProcessor
java.net.ConnectException: Falla intencional al conectar Ex:
failedConnectProcessor
at
com.fcm.camel.test.FailedConnectProcessor.process(FailedConnectProcessor.java:26)
at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.processExchange(FailOverLoadBalancer.java:247)
at
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.process(FailOverLoadBalancer.java:205)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:336)
at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:189)
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:155)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:139)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:91)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown
Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2012-07-16 19:05:20,802 [Camel (camelContext) thread #1 -
file://data/inbox] TRACE
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
Processing exchangeId: ID-miguel-thnk-58270-1342483504051-0-2 is
continued being processed synchronously
2012-07-16 19:05:20,802 [Camel (camelContext) thread #1 -
file://data/inbox] TRACE
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer - Should
failover: true for exchangeId: ID-miguel-thnk-58270-1342483504051-0-2
2012-07-16 19:05:20,802 [Camel (camelContext) thread #1 -
file://data/inbox] DEBUG
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
Processing failover at attempt 2 for Exchange[null]
2012-07-16 19:05:20,804 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR com.fcm.camel.test.FailProcessor -
failProcessor1 falla: Mensaje 1
2012-07-16 19:05:21,013 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR com.fcm.camel.test.FailProcessor -
failProcessor1 falla: Mensaje 1
2012-07-16 19:05:21,015 [Camel (camelContext) thread #1 -
file://data/inbox] ERROR org.apache.camel.processor.DefaultErrorHandler
- Failed delivery for (MessageId: ID-miguel-thnk-58270-1342483504051-0-8
on ExchangeId: ID-miguel-thnk-58270-1342483504051-0-2). Exhausted after
delivery attempt: 2 caught: java.lang.NoSuchMethodException: Falla
intencional failProcessor1
java.lang.NoSuchMethodException: Falla intencional failProcessor1
at com.fcm.camel.test.FailProcessor.process(FailProcessor.java:24)
at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.processExchange(FailOverLoadBalancer.java:247)
at
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.process(FailOverLoadBalancer.java:205)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:336)
at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:189)
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:155)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:139)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:91)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown
Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2012-07-16 19:05:21,016 [Camel (camelContext) thread #1 -
file://data/inbox] TRACE
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
Processing exchangeId: ID-miguel-thnk-58270-1342483504051-0-2 is
continued being processed synchronously
2012-07-16 19:05:21,016 [Camel (camelContext) thread #1 -
file://data/inbox] TRACE
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer - Should
failover: true for exchangeId: ID-miguel-thnk-58270-1342483504051-0-2
2012-07-16 19:05:21,016 [Camel (camelContext) thread #1 -
file://data/inbox] DEBUG
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
*Breaking out of failover after 3 failover attempts*
2012-07-16 19:05:33,362 [Camel (camelContext) thread #1 -
file://data/inbox] DEBUG
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
*Failover complete for exchangeId*:
ID-miguel-thnk-58270-1342483504051-0-2 >>> Exchange[null]
2012-07-16 19:05:57,457 [Camel (camelContext) thread #1 -
file://data/inbox] WARN
*org.apache.camel.component.file.GenericFileOnCompletion - Rollback
file strategy:
org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy*@43036651
for file: GenericFile[content]
Thanks
--
Miguel Ruiz Velasco Sobrino
FCM Computacion Mexicana SAPI de CV
Re: Question about loadbalancing failover
Posted by Claus Ibsen <cl...@gmail.com>.
On Tue, Jul 17, 2012 at 2:17 AM, Miguel Ruiz Velasco Sobrino
<mi...@fcm.com.mx> wrote:
> Hello,
>
> I'm fairly new to camel, and I have a problem.
> I already have a camel configuration with loadbalancing and failover, and it
> works wonders when at least one of the processors succeeds.
> I have an scenario maybe all processors fail, and camel loops infinitely
> doing the failover.
> I need to know when all failover attempts failed to send an error message to
> the service's clients, because I don't want it to rollback and to loop
> forever.
> I think I may need to catch somewhere an exception... but which exception?
>
Whatever exception causes the problem in the failover, is being
rethrown when all attempts failed from the failover.
> My [simplified] test config is as follows:
>
> <camel:camelContext id="camelContext" >
> <camel:errorHandler id="miguelErrorHandler"
> type="DefaultErrorHandler"
> redeliveryPolicyRef="generalRedeliveryPolicy"
> useOriginalMessage="false"
>>
>
> </camel:errorHandler>
>
> <camel:redeliveryPolicyProfile id="generalRedeliveryPolicy"
> redeliveryDelay="200" maximumRedeliveries="1" />
> <camel:redeliveryPolicyProfile id="redeliveryPolicy" redeliveryDelay="500"
> maximumRedeliveries="1"/>
>
> <camel:route errorHandlerRef="miguelErrorHandler">
> <camel:from uri="file:data/inbox" />
>
> <camel:onException redeliveryPolicyRef="redeliveryPolicy" >
> <camel:exception>java.lang.NoSuchMethodException</camel:exception>
> <camel:handled><camel:constant>true</camel:constant></camel:handled>
> <camel:to uri="seda:err"/>
> </camel:onException>
>
> <camel:loadBalance inheritErrorHandler="true" >
> <camel:failover maximumFailoverAttempts="2" roundRobin="true"/>
> <camel:process ref="failProcessor1"></camel:process>
> <camel:process ref="failProcessor2"></camel:process>
> </camel:loadBalance>
>
> <camel:wireTap uri="stream:out" processorRef="downloadLogger"/> <!--
> processorRef="downloadLogger" -->
> <camel:to uri="file:data/output" />
> </camel:route>
>
> </camel:camelContext>
> <bean id="failProcessor1" class="com.fcm.camel.test.FailProcessor"/>
>
>
> The class FailProcessor only returns an exception to force the failover.
>
> The log is as follows:
>
> 2012-07-16 19:05:15,505 [Camel (camelContext) thread #1 - file://data/inbox]
> TRACE org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> Failover starting with endpoint index 0
> 2012-07-16 19:05:15,507 [Camel (camelContext) thread #1 - file://data/inbox]
> DEBUG org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> Processing failover at attempt 0 for Exchange[null]
> 2012-07-16 19:05:20,383 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR com.fcm.camel.test.FailedConnectProcessor - failedConnectProcessor
> Falla intencional al conectar: Mensaje 1
>
> 2012-07-16 19:05:20,593 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR com.fcm.camel.test.FailedConnectProcessor - failedConnectProcessor
> Falla intencional al conectar: Mensaje 1
>
> 2012-07-16 19:05:20,595 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR org.apache.camel.processor.DefaultErrorHandler - Failed delivery for
> (MessageId: ID-miguel-thnk-58270-1342483504051-0-4 on ExchangeId:
> ID-miguel-thnk-58270-1342483504051-0-2). Exhausted after delivery attempt: 2
> caught: java.net.ConnectException: Falla intencional al conectar Ex:
> failedConnectProcessor
> java.net.ConnectException: Falla intencional al conectar Ex:
> failedConnectProcessor
> at
> com.fcm.camel.test.FailedConnectProcessor.process(FailedConnectProcessor.java:26)
> at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.processExchange(FailOverLoadBalancer.java:247)
> at
> org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.process(FailOverLoadBalancer.java:205)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
> at
> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:336)
> at
> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:189)
> at
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:155)
> at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:139)
> at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:91)
> at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
> at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
> at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
> Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
> Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> 2012-07-16 19:05:20,596 [Camel (camelContext) thread #1 - file://data/inbox]
> TRACE org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> Processing exchangeId: ID-miguel-thnk-58270-1342483504051-0-2 is continued
> being processed synchronously
> 2012-07-16 19:05:20,596 [Camel (camelContext) thread #1 - file://data/inbox]
> TRACE org.apache.camel.processor.loadbalancer.FailOverLoadBalancer - Should
> failover: true for exchangeId: ID-miguel-thnk-58270-1342483504051-0-2
> 2012-07-16 19:05:20,597 [Camel (camelContext) thread #1 - file://data/inbox]
> DEBUG org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> Processing failover at attempt 1 for Exchange[null]
> 2012-07-16 19:05:20,597 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR com.fcm.camel.test.FailedConnectProcessor - failedConnectProcessor
> Falla intencional al conectar: Mensaje 1
>
> 2012-07-16 19:05:20,799 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR com.fcm.camel.test.FailedConnectProcessor - failedConnectProcessor
> Falla intencional al conectar: Mensaje 1
>
> 2012-07-16 19:05:20,800 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR org.apache.camel.processor.DefaultErrorHandler - Failed delivery for
> (MessageId: ID-miguel-thnk-58270-1342483504051-0-6 on ExchangeId:
> ID-miguel-thnk-58270-1342483504051-0-2). Exhausted after delivery attempt: 2
> caught: java.net.ConnectException: Falla intencional al conectar Ex:
> failedConnectProcessor
> java.net.ConnectException: Falla intencional al conectar Ex:
> failedConnectProcessor
> at
> com.fcm.camel.test.FailedConnectProcessor.process(FailedConnectProcessor.java:26)
> at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.processExchange(FailOverLoadBalancer.java:247)
> at
> org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.process(FailOverLoadBalancer.java:205)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
> at
> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:336)
> at
> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:189)
> at
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:155)
> at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:139)
> at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:91)
> at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
> at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
> at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
> Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
> Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> 2012-07-16 19:05:20,802 [Camel (camelContext) thread #1 - file://data/inbox]
> TRACE org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> Processing exchangeId: ID-miguel-thnk-58270-1342483504051-0-2 is continued
> being processed synchronously
> 2012-07-16 19:05:20,802 [Camel (camelContext) thread #1 - file://data/inbox]
> TRACE org.apache.camel.processor.loadbalancer.FailOverLoadBalancer - Should
> failover: true for exchangeId: ID-miguel-thnk-58270-1342483504051-0-2
> 2012-07-16 19:05:20,802 [Camel (camelContext) thread #1 - file://data/inbox]
> DEBUG org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> Processing failover at attempt 2 for Exchange[null]
> 2012-07-16 19:05:20,804 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR com.fcm.camel.test.FailProcessor - failProcessor1 falla: Mensaje 1
>
> 2012-07-16 19:05:21,013 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR com.fcm.camel.test.FailProcessor - failProcessor1 falla: Mensaje 1
>
> 2012-07-16 19:05:21,015 [Camel (camelContext) thread #1 - file://data/inbox]
> ERROR org.apache.camel.processor.DefaultErrorHandler - Failed delivery for
> (MessageId: ID-miguel-thnk-58270-1342483504051-0-8 on ExchangeId:
> ID-miguel-thnk-58270-1342483504051-0-2). Exhausted after delivery attempt: 2
> caught: java.lang.NoSuchMethodException: Falla intencional failProcessor1
> java.lang.NoSuchMethodException: Falla intencional failProcessor1
> at com.fcm.camel.test.FailProcessor.process(FailProcessor.java:24)
> at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.processExchange(FailOverLoadBalancer.java:247)
> at
> org.apache.camel.processor.loadbalancer.FailOverLoadBalancer.process(FailOverLoadBalancer.java:205)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
> at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
> at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
> at
> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> at
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:336)
> at
> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:189)
> at
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:155)
> at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:139)
> at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:91)
> at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
> at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
> at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
> Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
> Source)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> 2012-07-16 19:05:21,016 [Camel (camelContext) thread #1 - file://data/inbox]
> TRACE org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> Processing exchangeId: ID-miguel-thnk-58270-1342483504051-0-2 is continued
> being processed synchronously
> 2012-07-16 19:05:21,016 [Camel (camelContext) thread #1 - file://data/inbox]
> TRACE org.apache.camel.processor.loadbalancer.FailOverLoadBalancer - Should
> failover: true for exchangeId: ID-miguel-thnk-58270-1342483504051-0-2
> 2012-07-16 19:05:21,016 [Camel (camelContext) thread #1 - file://data/inbox]
> DEBUG org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> *Breaking out of failover after 3 failover attempts*
> 2012-07-16 19:05:33,362 [Camel (camelContext) thread #1 - file://data/inbox]
> DEBUG org.apache.camel.processor.loadbalancer.FailOverLoadBalancer -
> *Failover complete for exchangeId*: ID-miguel-thnk-58270-1342483504051-0-2
>>>> Exchange[null]
> 2012-07-16 19:05:57,457 [Camel (camelContext) thread #1 - file://data/inbox]
> WARN *org.apache.camel.component.file.GenericFileOnCompletion - Rollback
> file strategy:
> org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy*@43036651
> for file: GenericFile[content]
>
>
> Thanks
>
> --
> Miguel Ruiz Velasco Sobrino
> FCM Computacion Mexicana SAPI de CV
>
--
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen