eFix (APAR): PQ57425 Status: TestFix For Release: WebSphere 3.5.5 For Operating System: Solaris Supercedes eFixes: PQ46910, PQ51372 CMVC defect: PQ57425 Byte size of APAR: Date: March 13, 2002 Abstract: Enables timeouts on the webserver IO with plugins. Sypmtoms of problem: Network problems between the webserver and some of the web clients can reduce or disable the processing of requests by the appserver. For connections where there is a network problem between the webserver and web client, the time it takes to determine that the connection is bad is measured in minutes, from two minutes up depending on the platform, and the nature of the network problem. When this happens, on the webserver side, some of the webserver threads/processes will block reading/writing from/to the web client for this amount of time. The appserver's worker thread will also block on the read and write calls when this happens. The appserver may appear to hang, and javacores of the hung system will show a lot (or all) of the threads to be spending a lot of time in "nativeRead" or "nativeWrite" methods. This efix allows the customer to specify how long the webserver should wait on a single read or write to complete before deciding that the connection is bad, freeing up the webserver thead/process and the appserver worker thread to handle other requests. Keep in mind that this is _not_ guaranteed to prevent problems in the event of any scale of network problem - for any timeout that you can set, there is a rate of incoming connections and network problems that can cause the system to cease to handle requests. What it does do is extend the point of failure so it takes a fairly substantial problem to effect request processing, rather than the relatively small network problems that are normal in the day to day running of a web site on the internet. Platform note: For users running IHS under WinNT/2000, this efix won't make a difference unless the customer is running IHS 1.3.12.3 or above. Directions to apply efix: 1) Unpack the efix file into a directory. 2) Make a backup copy of all of the shared libraries in WAS_ROOT/bin that the efix replaces. 3) Shutdown the web server. 4) Copy the efix shared libraries into WAS_ROOT/bin 5) Set the timeout value: For IHS and Apache: Edit the httpd.conf, and set the Timeout directive to the number of seconds you want wait on reads and writes to complete. 6) Start the server back up. Notes: Timeout Values The length of the timeout depends on the conditions the webserver is under, so there isn't any one recommended value that will work for any site. As a general guideline, we recommend setting the initial value to 30 seconds, and adjusting it from there if necessary. We also recommend keeping the timeout above 5 seconds - if you drop below that, it's more likely a valid connection may be aborted - especially on a busy system. On IHS/Apache, you can determine how often the timeout is being triggered by setting the LogLevel directive in the IHS/Apache httpd.conf to "info". Every time a request is aborted due to a read/write timeout, you'll see a message saying as much in the IHS/Apache error log.