Web server plug-in connections

The 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.

For transitioning users: In Version 8.5.5.0 and later, if the web server plug-in receives an HTTPS request but cannot create an HTTPS transport to the application server, no connection is made. If you want to enable the web server plug-in to create an HTTP connection if an HTTPS connection cannot be made, specify the UseInsecure custom property. Creating an HTTP connection if an HTTPS connection cannot be made is less secure than creating no connection because the user might be unaware that their connection is no longer secure. By default in previous versions of WebSphere Application Server, if the web server plug-in receives an HTTPS request but cannot create an HTTPS transport to the application server, it creates an HTTP transport if one is defined. If an HTTP transport is not defined, no connection is made.

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 Maximum persistent requests property that is specified for the HTTP inbound channel.
  • 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.
Avoid trouble: 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