IBM Support

Diagnosing DFHPI0602 messages and PlisaxaRC SOAP Fault messages

Troubleshooting


Problem

You send a SOAP message to CICS. As a result, CICS issues a SOAP Fault message with a PlisaxaRC and message DFHPI0602 to report a problem parsing the XML. But, you have difficulty knowing how to fix the problem.

Cause

The CICS SOAP handler program uses the Enterprise PL/I XML parser in order to process the contents of the SOAP message. If something goes wrong during this process then DFHPI0602 is issued:

DFHPI0602 The CICS SOAP handler failed to parse a message. The parser error code is error_code. The DFHPIEP return code is return_code. The error was found at offset offset into the message.

CICS also builds a SOAP Fault message to report the problem. If CICS is the Web service provider then this Fault message is returned to the requester. If CICS is the Web service requester then this Fault message replaces the invalid message returned from the remote Web service provider.

The Fault message will look something like the following:

<SOAP-ENV:Fault xmlns="">

    <faultcode>SOAP-ENV:Client</faultcode>
    <faultstring>Malformed SOAP message</faultstring>
    <detail>
      <cics:FaultDetail xmlns:cics="http://www.ibm.com/software/htp/cics/fault">
        <cics:SoapParsing>
          <cics:PlisaxaRC>error_code</cics:PlisaxaRC>
          <cics:Offset>offset</cics:Offset>
          <cics:PiepRC>return_code</cics:PiepRC>
        </cics:SoapParsing>
      </cics:FaultDetail>
    </detail>
</SOAP-ENV:Fault>


DFHPIEP error codes are formatted out properly in the CICS Transaction Server for z/OS (CICS TS) V4.1 and V4.2 DFHPI0602 message. Also, most scenarios that used to result in message DFHPI0602 now result in a different message so this document is less necessary. However, DFHPI0602 is still used in some places.

Resolving The Problem

As documented in the user response for message DFHPI0602, you can look up the parser error code in the Enterprise PL/I Programming Guide. This is available at:

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/Shelves/IBMSH312

This book contains sections that list Continuable exception codes and Terminating exception codes. Between these two sections all of the relevant codes that the XML parser can return are listed. For example, if you see message:


    DFHPI0602 The CICS SOAP handler failed to parse a message. The parser error code is 317. The DFHPIEP return code is 10. The error was found at offset 0 into the message.

Code 317 can be resolved to mean: The parser cannot determine the document encoding. The      
document may be damaged.

If the error code is '0' then the XML Parser has not reported a problem. DFHPIEP has encountered a problem whilst processing the output from the XML Parser. This usually implies that the SOAP message does not conform to the SOAP protocol, even though it is valid XML. Following are the possible return codes issued by DFHPIEP:

    1  fc_out_of_memory
       a GETMAIN failure occurred whilst processing the
       SOAP message

    2  fc_null_pointer
       a logic error in DFHPIEP
    3  fc_invalid_child
       a tag other than a SOAP Body or Header tag was
       found within the SOAP envelope

    4  fc_dtd_found
       an in-line DTD was found within the SOAP message
    5  fc_no_envelope
        currently unused
    6  fc_versionmismatch
       the namespace for the SOAP envelope tag is not
       recognized

    7  fc_process_instr
       an XML processing instruction was found within
       the SOAP message

    8  fc_invalid_msg
       there is a problem with the structure of the
       SOAP envelope

    9  fc_unqualified_attr
       an unqualified attribute was found on a SOAP tag
    10 fc_fatal_parse
       the XML parser returned a fatal error code
    11 fc_filler
        currently unused
    12 fc_tag_null_pointer
       a logic error in DFHPIEP
    13 fc_attr_null_pointer
       a logic error in DFHPIEP

    The offset in the DFHPI0602 message indicates the position within the SOAP message at which the problem was found. You can view the XML in either the DFHREQUEST or the DFHRESPONSE containers, though there are some scenarios where this offset can be misleading. For example, the SOAP message is parsed by CICS in UTF-8 encoding, but the data may be converted to EBCDIC before it is logged. This code page conversion could cause the offset of the problem to move. Another problem is that the contents of the container may change before they are logged.

    A problem to be aware of is that in requester mode, if there is a problem with the SOAP message returned to CICS by a remote Web service provider application, CICS might issue the DFHPI0602 message and then replace the contents of the DFHRESPONSE container with a new Fault message. In which case, it will be necessary for you to take a trace of the problem in order to see the contents of the DFHRESPONSE container as it was when CICS issued the DFHPI0602 message.

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

    Product Synonym

    CICS/TS CICS TS CICS Transaction Server

    Document Information

    Modified date:
    15 June 2018

    UID

    swg21264885