Thanks Claus for your quick answer. I downloaded the source of camel 2.0 and I looked at the FailOverLoadBalancer class. I think that this could answer to my question. I've tried to adapt the code to my requirement but I have some questions about the list of processors used in this class :
1. I don't know How to create or initialize the processors used for balancing user requests ? 2. Shall I create a camel Processor for each HTTP URL ? 3. Whait is the syntaxe (maybe something like new Processor(myHttpURL)) Thanks for help On Thu, May 14, 2009 at 11:59 AM, Claus Ibsen <[email protected]> wrote: > Hi > > There are load balancers with Camel > http://camel.apache.org/load-balancer.html > > And there is a failover load balancer as well that can do a simple try > the next endpoint until success kinda style. > Its a bit primitive at the moment and we would like to improve that in > the future. > > But it allows you to implement your own load balancer and do your > strategy how you like it. > > Any feedback for features that could be needed for a more advanced > failover loadbalancer is much welcome. > > Ah the failover loadbalancer is not part of Camel 1.x. But you can > check the source code for 2.0 and create your own kinda to use in 1.x. > > https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/ > > > > On Thu, May 14, 2009 at 11:45 AM, Nasim Anza <[email protected]> > wrote: > > Hi, > > > > I would like to implement the following route with Camel 1.6 : > > > > from("direct:endpointA") > > .setHeader(HttpProducer.HTTP_URI).simple("http://myAddressA") > > .to("http://xxxxxx") > > .to("direct:endPointB") > > > > from("direct:endpointB") > > .setHeader(HttpProducer.HTTP_URI).simple("http://myAddressB") > > .to("http://xxxxxx") > > .to("direct:endPointC") > > > > from("direct:endPointC") > > .to("xquery:response.xml"); > > > > This route works fine if both URLs : http://myAddressA and > > http://myAddressBare accessible and no error occurs during the > > invocation. > > Unfortunately, sometimes these services become unreachable and I would > like > > to try other URLs until getting valid answer: > > > > If an exception happens when calling the URL http:/:myAddressA, I would > like > > to attempt other URLs : myAddressA1, myAddressA2, ...until getting valid > > HTTP response. > > The same thing with myAddressB ==> myAddressB1, myAddressB2, ... > > > > With java this could be simply coded like following : > > > > try > > { > > call_http(myAddressA) > > } > > catch(Throwable th) > > { > > try > > { > > call_http(myAddressA1) > > } > > catch(Exception x) > > { > > //Call addressA2 > > .... > > } > > } > > > > I've tried the onException() mechanism and the deadLetterChannel > processor > > but I never get working my route. > > > > > > -- > Claus Ibsen > Apache Camel Committer > > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus >
