The WebSphere Application Server Web server plug-ins are used to
establish and maintain persistent HTTP and HTTPS connections to Application
Servers .
When the plug-in is ready to send a request to the application server,
it first checks its connection pool for existing connections. If an existing
connection is available the plug-in checks its connection status. If the status
is still good, the plug-in uses that connection to send the request. If a
connection does not exist, the plug-in creates one. If a connection exists
but has been closed by the application server, the plug-in closes that connection
and opens a new one.
After a connection is established between a plug-in and an application
server, it will not be closed unless the application server closes it for
one of the following reasons:
- If the Use Keep-Alive property is selected and the time limit specified
on the Read timeout or Write timeout property for the HTTP inbound
channel has expired.
- The maximum number of persistent requests which can be processed on an
HTTP inbound channel has been exceeded. (This number is set using the HTTP
inbound channel's Maximum persistent requests property.)
- The Application Server is shutting down.
Even if the application server closes a connection, the plug-in will not
know that it has been closed until it tries to use it again. The connection
will be closed if one of the following events occur:
- The plug-in receives a new HTTP request and tries to reuse the existing
connection.
- The number of httpd processes drop because the Web server is not
receiving any new HTTP requests. (For the IBM HTTP Server, the number of httpd processes
that are kept alive depends on the value specified on the Web server's MinSpareServers
directive.)
- The Web server is stopped and all httpd processes are terminated,
and their corresponding sockets are closed.
Important: Sometimes, if a heavy request load is
stopped or decreased abruptly on a particular application server, a lot of
the plug-in's connections to that application server will be in CLOSE_WAIT
state. Because these connections will be closed the first time the plug-in
tries to reuse them, having a large number of connections in CLOSE-WAIT state
should not affect performance