IBM Support

DFHPI0404 DFHPI0400 DFHPI0504 DFHPI0997 when CICS requests web service

Question & Answer


Question

Why would I get a CICS pipeline HTTP transport mechanism error when CICS Transaction Server for z/OS (CICS TS) is attempting to request a web service running on an open systems platform?

The following error messages are in the CICS log:

 DFHPI0404 A failure occurred in the CICS pipeline HTTP transport
            mechanism for PIPELINE pppppppp WEBSERVICE wwwwwwww.
 DFHPI0400 The CICS pipeline HTTP transport mechanism failed to 
           send a request because the connection was closed. 
           Problem occurred for URI https://hostname:port#/path name/webservice name.
 DFHPI0504 The CICS Pipeline Manager has failed to communicate with a
           service provider due to an error in the underlying transport.
           TRANSPORT: HTTP, PIPELINE: pppppppp.
 DFHPI0997 The CICS pipeline manager has encountered an error: target 
           program unavailable or abended.

Answer

In the CICS auxiliary trace, I can see the following INVOKE Service and Operation has been specified,

 AP E160 EXEC ENTRY INVOKE 
      SERVICE('<webservice name>            ' AT X'1051D558')  
      CHANNEL('WSC-CHANNEL     ' AT X'1051D796')
      URI('https://<hostname>:port# 
           /<pathname>/<webservice name>
           ' AT
            X'1051D578')

Then, I see LOCATE_URIMAP failed with NOT_FOUND

 WB 0901 WBUR  EXIT - FUNCTION(LOCATE_URIMAP)
      RESPONSE(EXCEPTION) REASON(NOT_FOUND)  
      USAGE() URIMAP() HOST(10515150 , 00000018 , 
                 00000018)
      PATH(1051516D , 00000023 , 00000023)                       

Then, later, I see the connection was closed by the remote site because CICS is the client and the server is requiring the client certificate to be sent and it could not find one, it simply closed the connection to terminate the handshake.

  SO 080C SOSE  *EXC* - SYSTEM_SSL_ERROR
                           GSK_RESPONSE(GSK_ERR_SOCKET_CLOSED) 
                           FUNCTION(SECURE_SOC_INIT) 
                           RESPONSE(EXCEPTION)
                           REASON(CONNECTION_CLOSED)
                           GSK_RETURN_CODE(1A4)
                           CERTIFICATE_USERID() CIPHER_SELECTED()  

You need do an inquire on the URMAP definition (CEMT INQUIRE URIMAP) to see what the hostname or IP address, port number and certificate label have been using.

 Urimap( uuuuuuuu   )                                      
 Group          : <group name>                                
 HOST           : <hostaname or IP addrss>:<port number>                   
 PAth           : /<path name>/<webservice name>    
 CErtificate    : <certificate label name>     

Then you should make sure the hostname or IP address and port number matches what you see in the INVOKE Service in auxtrace.

If you define a URIMAP that matches, then I would expect the correct certificate to get picked up and everything to work.

Sharon Yang
IBM CICS Level2 support

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Platform":[{"code":"PF035","label":"z\/OS"}],"Component":"Web Services","Version":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Product Synonym

CICS/TS CICSTS CICS TS CICS Transaction Server

Document Information

Modified date:
06 June 2018

UID

dwa1315899