Tuesday, February 16, 2016

ws_common: websphereHandleRequest: Failed to handle request rc=4

Following error is seen in WAS 8.5.5:

[15/Feb/2016:23:30:06.56633] 0011dbd46 ads3asd00 - ERROR: ESI: getResponse: failed to get response: rc = 4
[15/Feb/2016:23:30:06.56636] 0011dbd46 asdfdsaf - ERROR: [hostname://url] ws_common: websphereHandleRequest: Failed to handle request rc=4
[15/Feb/2016:23:30:07.3555539] 0000db46 1adsf789 - ERROR: ws_common: websphereFindTransport: Nosecure transports available
[15/Feb/2016:23:30:07.344546] 0000db46 1sdf9f8700 - ERROR: ws_common: websphereWriteRequestReadResponse: Failed to find a transport


Analysis:

This error is seen when you are using both the http and https, i.e, Both the secure and non secure transports in your plugin-cfg.xml file as following. By default, This configuration is seen.

         <Transport Hostname="hostname" Port="9080" Protocol="http"/>
         <Transport Hostname="hostname" Port="9443" Protocol="https">

In the above situation, When the incoming traffic is secure then the webserver chooses secure transport(https) to connect to the backend application server. However, If the incoming traffic is not secure, Then the webserver chooses unsecure transport (http) to establish a connection to the backend server.

Now, If the plugin receives secure connection request (https) and if it is not able to create a secure connection to the backend application server, It would use the non secure connection to the backend application server. and If the http transport is not defined then the request will fail.

However, In WAS 8.5.5, If the plugin is unable to establish a secure connection to the backend applcation server, It will not create a non secure connection to backend and is treated as security threat and the above error marked in red will be displayed in the http_plugin.log file.

Solution: 

To solve this issue, Navigate to Webserver-> instance name -> Plug-in properties -> custom properties.


and create the variable Unsecure and value as true. Save in custom properties.

Generate and propagate the plugin and restart the webservers.

Or

You can remove the http transport from the plugin-cfg.xml file and propagate it and restart the webservers.

2 comments:

  1. Thank you for the Post, it helped me solve my problem. I think the property value is UseInsecure which worked for me, but I didnt try Unsecure. UseInsecure was provided in IBM technote.

    ReplyDelete
  2. Very useful. It helped me to figure out what was going old with an old WAS8 Implementation.

    System administrators for legacy systems like to use this kind of blogs a lot. Thx.

    ReplyDelete