Thank you very much, Rainer!
Yes. My node accept the request first, then it will return 500 if the called
web service is not available ...So mod_jk can not fail over the request in
this situation. Do you have some suggestion for this situation? I really
hope none of the calling to my web service in my cluster will be lost.

Thanks!
Zeke


2008/12/9 Rainer Jung <[EMAIL PROTECTED]>

> Zeke schrieb:
> > Hi, all:
> >     I configure a Apache with mod_jk as HTTP load balancer for a JBoss
> > cluster. My cluster provide some web services. Of course, the URL in the
> web
> > serice call by client is the URL of the load balancer's. If for some
> reason,
> > the web service on a node is unavailable, client call on it will get a
> 500
> > error response which should be handled by mod_jk using fail_on_status
> > directive. I tried it but found that the fail over seems not work. For
> > example, I have two nodes in a cluster, web serivce on node 1 is
> available
> > but web service on node 2 is not available. I send 10 call through load
> > balancer, but found that 9 calls succeeded, but one still get exception.
> It
> > seems that after the first call is dispatched to node 2, node 2 will
> return
> > 500 error and inform load balancer to mark it as in an error state. Then
> the
> > next calls will not be dispatched to node 2 again. It is good. But the
> first
> > call itself does not fail over to node 1. So only 9 call succeed.
> >    Do I forget some other configuration to make the first call fail over?
> My
> > workers.properties is like below. Any suggestion from you will be very
> > appreciated!
>
> I guess the calls are POST requests with a not very small body. We can't
> repost a big POST, because we don't buffer all the body. The whole thing
> is a streaming architecture, so we can replay one body packet if we
> detect a communication problem early, but if we sent a huge body and
> only after processing we get a 500 from the backend, we don't have the
> full body around to repost to another failover backend.
>
> If the backend doesn't accept the request, failover should work.
>
> Regards,
>
> Rainer
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to