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: <SOAP-ENV:Fault xmlns="">
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:
<faultcode>SOAP-ENV:Client</faultcode>
</SOAP-ENV:Fault>
<faultstring>Malformed SOAP message</faultstring>
<detail>
<cics:FaultDetail xmlns:cics="http://www.ibm.com/software/htp/cics/fault">
</detail><cics:SoapParsing>
</cics:FaultDetail><cics:PlisaxaRC>error_code</cics:PlisaxaRC>
</cics:SoapParsing>
<cics:Offset>offset</cics:Offset>
<cics:PiepRC>return_code</cics:PiepRC>
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 Synonym
CICS/TS CICS TS CICS Transaction Server
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21264885