Ravish Mody

This is a post where I would like to share some of my experience working with Apache web server, the reason behind writing this post is because during some test we and some of customers of WLS faced this similar issue and during solving this issue got a good set of information which would be helpful for others to understand how Apache, WLS plugin and WLS works to-gather and whose fault was it to show 404 error.

Let me give you some background information about the issue, by default dynamic server list is ON hence if any of the servers goes down or if that server is only allowed to server admin requests then the list should get updated and sent back by removing that particular server, so that client would not get 404 error. This was not happing and client were getting 404 error again and again.

The reason behind this with the a solution is given below which would give you an idea how things works and hope this would help you however this information is applied to any platform and version of Oracle Weblogic Server

Issue:

When any managed server is put in “Suspended” state the Apache server continues to deliver requests to the suspended server instance which leads to a 404 http error on the client side.

Reason behind this issue?

Apache is a multi-processed and multi-threaded, which means that every process maintains it’s own server list.

So, if a response comes back from WLS with a new server list which excludes the non working servers is sent back to the process which had sent the request will update it’s own server list ONLY and will NOT share the new server list with the other processes, until a request is served by them explicitly and each of them gets there own new server list in the response.

This is how Apache is been design, hence its an Apache issue and weblogic plugin plays no part in it.

How to Solve this?

The solution is to use “worker mpm” instead of “prefork mpm” and set both StartServers and ServerLimit to 1, and then tune the number of threads within the process which might help in resolving this issue.

More details can be found in the link below:
http://httpd.apache.org/docs/2.0/mod/worker.html

Do share your experience’s with us also so that others can get benefits out of it and help them learn new stuff 🙂

Regards,

Ravish Mody