Hi everyone,

I explain our servers architecture:

-  Apache load balancer with mod_proxy_balancer and all dependencies modules

-  A cluster composed by 4 nodes on Weblogic application server

-  Session replication enabled on WebLogic on all cluster nodes

-  StickySession enabled on the load balancer



Below the Apache load balancer configuration:



   Header add Set-Cookie: "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/"
env=BALANCER_ROUTE_CHANGED

    <Proxy balancer://shopcluster>

        BalancerMember http://NODE01:7003 route=node1 disablereuse=on
retry=1 Keepalive=On

        BalancerMember http://NODE02:7012 route=node2 disablereuse=on
retry=1 Keepalive=On

        BalancerMember http://NODE03:7013 route=node3 disablereuse=on
retry=1 Keepalive=On

        BalancerMember http://NODE04:7014 route=node4 disablereuse=on
retry=1 Keepalive=On

    </Proxy>

    ProxyPass /static !

    ProxyPass / balancer://shopcluster/ stickysession=ROUTEID

    ProxyPassReverse / balancer://shopcluster/



The load balancer is working fine when all is ok. Also we tried to log in
 the application (with cookie ROUTEID=node1) and shutdown the node1. The
next request is successfully handled with another available node (for
example ROUTEID=node4). Also thanks to the session replication all session
data are kept (the user is logged also in the node4).

However we are faced with some issue when the current node (cookie ROUTEID)
is not down, but is simply overloaded or it is in OutOfMemory. In this case
the load balancer does not recognize that the node is not available or
overloaded, so it will continue to redirect the user to the current ROUTEID
cookie node, even if it does not return a response.

The question is: How to handle this case?  Is there an option where I can
specify something like: if request takes more time, than redirect to
another node. Maybe this issue is caused by the stickysession.

Any feedback on that?

Thanks a lot,

Giuseppe.

Reply via email to