Claus, I found that the route that main route that contains multicast will stop routing after "direct:a" hits exception handler. So I want to know how I can make the route continue routing even if "direct:a" hits exception and does its retries and stops.
from("timer:reload-config?delay=" + reloadInterval + "&fixedRate=true&period=" + reloadInterval) .multicast().parallelProcessing() .to("direct:a", "direct:b") .end() .log("route is done") // Note: it will never hit the log if "direct:a" hits the exception handler. On Tue, Oct 10, 2017 at 2:51 PM, LiQiang Ye <liqiang.w...@gmail.com> wrote: > Hi camel friends > > I have routes designed as below. I wonder how I can make onCompletion() > block to execute route "c" even though route "a" or route "b" has exception > occurs. Currently when a processing route "a" or "b" encounters exception > and retries, the route will stop routing further and onCompletion block > never gets executed. > > > from("timer:reload-config?delay=" + reloadInterval + > "&fixedRate=true&period=" + reloadInterval) > .multicast().parallelProcessing() > .to("direct:a", "direct:b") > .end() > .onCompletion() > .log("parallel processing is done").setBody(constant(null)).to("direct:c") > > ------ > > from("direct:a") > .onException(Exception.class) > .maximumRedeliveries(3) > .redeliveryDelay(1000) > .backOffMultiplier(2) > .retryAttemptedLogLevel(LoggingLevel.WARN) > .handled(true) > .end() > .to("bean:aBean?method=setData") > > Thanks >