PQ96915; 5.1.1.3: PLGN007 ERROR. HTTP TRANSPORT HAS
A PROBLEM OF NOT IMMEDIATELY
Downloadable files
Abstract
An "OSEListenerDi E PLGN0007E: Engine Throwable" error can
be seen if the plugin does not send a valid request within the connection
time out period after sending an Extended Hands
Download Description
PQ96915 resolves the following problem:
ERROR DESCRIPTION:
The webserver/plugin is opening a connection to the application server,
sending the extended handshake msg to the http transport, and then closing
the connection after it receives an HTTP OK response. This causes an
exception to occur in the HTTP Transport while trying to read the request.
There is an error in the transport in that it should immediately halt
processing on the connection, but it does not do that. Instead it hands
the NULL request off to the servlet engine to handle and that leads to the
PLGN007 error.
PROBLEM SUMMARY:
USERS AFFECTED:
WebSphere Application Server users of the Extended Handshake feature for
the plugin.
PROBLEM DESCRIPTION:
An "OSEListenerDi E PLGN0007E: Engine Throwable" error can be seen if the
plugin does not send a valid request within the connection time out period
after sending an Extended Handshake request.
RECOMMENDATION:
The plugin sends an "Extended Handshake" request to the Application Server
to check if it is alive.
HttpConnection.readAndHandleRequest() responds to the request and then
invokes HttpRequest.readRequest() to read the real request, which it
assumes will be sent next. If a request is
not received within the time out period, HttpRequest.readRequest() returns
an error code to
HttpConnection.readAndHandleRequest().
The "Extended Handshake" processing fails to check for an
error from HttpRequest.readRequest and calls the engine code to handle the
request. Since no request had been received, the request information is
NULL and the engine will encounter the PLGN007 error.
PROBLEM CONCLUSION:
HttpConnection.readAndHandleRequest() had been changed to treat the
Extended Handshake as a separate request. This allows the normal KeepAlive
processing to handle the process of waiting for the next request and
handling a time out if no request is sent.