4.3.4 Handling Fault Messages in an Oracle Tuxedo Outbound Application

All rules listed inthe WSDL file are used to map WSDL input/output message into Oracle Tuxedo Metadata inbuf/outbuf definition. WSDL file default message can also be mapped into Oracle Tuxedo Metadata errbuf with some amendments to the rules:

Rules for fault mapping:

There are two modes for mapping Metadata errbuf into SOAP Fault messages: Tux Mode and XSD Mode.

  • Tux Mode is used to convert Oracle Tuxedo original error buffers returned with TPFAIL. The error buffers are converted intothe XML payload in the SOAP fault <detail> element.
  • XSD Mode is used to represent SOAP fault and WSDL file fault messages defined with Oracle Tuxedo buffers. The mapping rule includes:
    • Each service in XSD mode (servicemode=webservice), always has an errbuf in Metadata with type=FML32
    • errbuf is a FML32 buffer. It is a complete description of the SOAP:Fault message that may appear in correspondence (which is different for SOAP 1.1 and 1.2). The errbuf definition content is determined by both the SOAP version and WSDL fault message.
    • Parameter detail/Detail (1.1/1.2) is an FML32 field that represents the wsdl:part defined in a wsdl:fault message (when wsdl:fault is present). Each part is defined as a param(field) in the FML32 field. The mapping rules are the same as for input/output buffer. The difference is that each param requiredcount is 0 (which means it may not appear in the SOAP fault message).
    • Other elements that appear in soap:fault message are always defined as a file in errbuf, with requiredcount equal to 1 or 0 (depending on whether the element is required or optional).
    • Each part definition in the metadata controls converting a <detail> element in the soap fault message into a field in the error buffer.

Table 4-3 Outbound SOAP Fault Errbuf Definition

Meta Parameter SOAP Version Type Required Memo
faultcode 1.1 string Yes -
faultstring 1.1 string Yes -
faultactor 1.1 string No -
detail 1.1 fml32 No If no wsdl:fault is defined, this field contains an XML field.
Code 1.2 fml32 Yes Contains value and optional Subcode
Reason 1.2 fml32 Yes Contains multiple text
Node 1.2 string No -
Role 1.2 string No -
Detail 1.2 fml32 No same as detail field