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
>

Reply via email to