You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by James Harrison <ja...@yahoo.co.uk> on 2011/01/20 15:28:42 UTC

[users@httpd] How to make apache httpd load balancer sends to a member that is in Err.

Hello.

This is quite an urgent plea for help.

I am using apache httpd 2.2.17 on Windows 2008 server as a gateway to our 
backend systems. The backend are two IBM's Websphere Message Broker (v7) system, 
that uses SOAP messages to send information back and forth. There are two hosts 
(machines) running the Broker software inan active-active configuration.

There are two ports that are available for communication from the httpd to the 
Broker (7803 and 7805), however, the actual services are URL based, so to 
communicate to a service, I would use: https://{hostname}:7803/url/path and I 
wouldget a response.


I have four major problems:
1. Broker services can switch from one machine to another at any time and httpd 
doesn't know this until a request is sent and httpd returns error code 404 and 
the SOAP request is lost.

2. I have the two Broker communication ports in a load balancer configuration 
and I use (failonstatus) to check for backend errors. httpd still sends SOAP 
requests to load balancer members in "Err"!

3. The first request to a member in Err results in return code 404,  from that 
point the load balancer will not use that member, however this  means that the 
initial request is lost.

4. When requests stop coming into the httpd server, after a timeout occurs and 
the above problem (3) occurs again.

Here is my configuration for the load balancer and one of the services:


# ------------------------------------------------------------

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

<Proxy balancer://mycluster nofailover=Off stickysession=ROUTEID 
failonstatus=404,301,500>
       BalancerMember https://256.XX.57.181:7805route=191_181_7805 
redirect=191_180_7803 keepalive=on timeout=1200
       BalancerMember https://256.XX.57.180:7803route=191_180_7803 status=+H 
keepalive=on timeout=1200
       ProxySet lbmethod=byrequests timeout=600
</Proxy>

#  https://256.xx.xx.191/balancer-manager
ProxyPass /balancer-manager !

ProxyPass / balancer://mycluster/

# GeoSupportService service
<location /GeographyServices/ GeoSupportService_v1_0>
       ProxyPass balancer://mycluster/
</Location>

<Location /balancer-manager> 
       SetHandler balancer-manager
       Order Allow,Deny
       Allow from all
</Location>

ErrorLog logs/VirtualHosterror.log 
LogLevel error
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i
\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/VirtualHostaccess.log common
 

# ------------------------------------------------------------

I hope someone can help.

Many thanks,
James Harrison


      

Re: [users@httpd] How to make apache httpd load balancer sends to a member that is in Err.

Posted by Szász Csaba <sz...@gmail.com>.
Hi,

I don't know if the Message Broker has Web server plug-in or not. This
is very useful to use between WAS and various HTTP servers.
http://www.ibm.com/developerworks/websphere/library/techarticles/0310_cocasse/cocasse.html
It handles overloaded or hanging backend systems.


2011/1/20 James Harrison <ja...@yahoo.co.uk>:
> Hello.
>
> Does anyone have an idea what I need to do to fix my problems?
>
> I'm completely clueless how to fix my problems.
>
> Thanks,
> James Harrison
>
> ________________________________
> From: James Harrison <ja...@yahoo.co.uk>
> To: users@httpd.apache.org
> Sent: Thu, January 20, 2011 9:28:42 AM
> Subject: [users@httpd] How to make apache httpd load balancer sends to a
> member that is in Err.
>
> Hello.
>
> This is quite an urgent plea for help.
>
> I am using apache httpd 2.2.17 on Windows 2008 server as a gateway to our
> backend systems. The backend are two IBM's Websphere Message Broker (v7)
> system, that uses SOAP messages to send information back and forth. There
> are two hosts (machines) running the Broker software in an active-active
> configuration.
>
> There are two ports that are available for communication from the httpd to
> the Broker (7803 and 7805), however, the actual services are URL based, so
> to communicate to a service, I would use: https://{hostname}:7803/url/path
> and I wouldget a response.
>
> I have four major problems:
> 1. Broker services can switch from one machine to another at any time and
> httpd doesn't know this until a request is sent and httpd returns error code
> 404 and the SOAP request is lost.
>
> 2. I have the two Broker communication ports in a load balancer
> configuration and I use (failonstatus) to check for backend errors. httpd
> still sends SOAP requests to load balancer members in "Err"!
>
> 3. The first request to a member in Err results in return code 404, from
> that point the load balancer will not use that member, however this means
> that the initial request is lost.
>
> 4. When requests stop coming into the httpd server, after a timeout occurs
> and the above problem (3) occurs again.
>
> Here is my configuration for the load balancer and one of the services:
>
>
> # ------------------------------------------------------------
>
> Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/"
> env=BALANCER_ROUTE_CHANGED
>
> <Proxy balancer://mycluster nofailover=Off stickysession=ROUTEID
> failonstatus=404,301,500>
>        BalancerMember https://256.XX.57.181:7805 route=191_181_7805
> redirect=191_180_7803 keepalive=on timeout=1200
>        BalancerMember https://256.XX.57.180:7803 route=191_180_7803
> status=+H keepalive=on timeout=1200
>        ProxySet lbmethod=byrequests timeout=600
> </Proxy>
>
> # https://256.xx.xx.191/ balancer-manager
> ProxyPass /balancer-manager !
>
> ProxyPass / balancer://mycluster/
>
> # GeoSupportService service
> <location /GeographyServices/ GeoSupportService_v1_0>
>        ProxyPass balancer://mycluster/
> </Location>
>
> <Location /balancer-manager>
>        SetHandler balancer-manager
>        Order Allow,Deny
>        Allow from all
> </Location>
>
> ErrorLog logs/VirtualHosterror.log
> LogLevel error
> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i
> \"" combined
> LogFormat "%h %l %u %t \"%r\" %>s %b" common
> LogFormat "%{Referer}i -> %U" referer
> LogFormat "%{User-agent}i" agent
> CustomLog logs/VirtualHostaccess.log common
>
>
> # ------------------------------------------------------------
>
> I hope someone can help.
>
> Many thanks,
> James Harrison
>
>



-- 
Üdvözlettel / Best Regards / Mit freundlichen Grüßen
Tsaby


  ()()      (\__/)     (\__/)
 ( '.' )     (O.o )    (='.'=)
(")_(")    (> < )    (")_(")

These are three Bunnies.
Copy Bunnies into your signature to help them on theirs way to world domination!

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] How to make apache httpd load balancer sends to a member that is in Err.

Posted by James Harrison <ja...@yahoo.co.uk>.
Hello.

Does anyone have an idea what I need to do to fix my problems? 

I'm completely clueless how to fix my problems.

Thanks,
James Harrison




________________________________
From: James Harrison <ja...@yahoo.co.uk>
To: users@httpd.apache.org
Sent: Thu, January 20, 2011 9:28:42 AM
Subject: [users@httpd] How to make apache httpd load balancer sends to a member 
that is in Err.


Hello.

This is quite an urgent plea for help.

I am using apache httpd 2.2.17 on Windows 2008 server as a gateway to our 
backend systems. The backend are two IBM's Websphere Message Broker (v7) system, 
that uses SOAP messages to send information back and forth. There are two hosts 
(machines) running the Broker software in an active-active configuration.

There are two ports that are available for communication from the httpd to the 
Broker (7803 and 7805), however, the actual services are URL based, so to 
communicate to a service, I would use: https://{hostname}:7803/url/path and I 
wouldget a response.


I have four major problems:
1. Broker services can switch from one machine to another at any time and httpd 
doesn't know this until a request is sent and httpd returns error code 404 and 
the SOAP request is lost.

2. I have the two Broker communication ports in a load balancer configuration 
and I use (failonstatus) to check for backend errors. httpd still sends SOAP 
requests to load balancer members in "Err"!

3. The first request to a member in Err results in return code 404,  from that 
point the load balancer will not use that member, however this  means that the 
initial request is lost.

4. When requests stop coming into the httpd server, after a timeout occurs and 
the above problem (3) occurs again.

Here is my configuration for the load balancer and one of the services:


# ------------------------------------------------------------

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

<Proxy balancer://mycluster nofailover=Off stickysession=ROUTEID 
failonstatus=404,301,500>
       BalancerMember https://256.XX.57.181:7805route=191_181_7805 
redirect=191_180_7803 keepalive=on timeout=1200
       BalancerMember https://256.XX.57.180:7803route=191_180_7803 status=+H 
keepalive=on timeout=1200
       ProxySet lbmethod=byrequests timeout=600
</Proxy>

#  https://256.xx.xx.191/ balancer-manager
ProxyPass /balancer-manager !

ProxyPass / balancer://mycluster/

# GeoSupportService service
<location /GeographyServices/ GeoSupportService_v1_0>
       ProxyPass balancer://mycluster/
</Location>

<Location /balancer-manager> 
       SetHandler balancer-manager
       Order Allow,Deny
       Allow from all
</Location>

ErrorLog logs/VirtualHosterror.log 
LogLevel error
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i
\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/VirtualHostaccess.log common
 

# ------------------------------------------------------------

I hope someone can help.

Many thanks,
James Harrison