A mediation flow component has an error flow for each source operation. The error flow
acts as a catch-all for messages that are propagated from any unwired fail terminal on any primitive
or node, in either a request or a response flow.
By default, an error flow consists of:
An Error Input node, which has a catchAll terminal, with the type set to anyType. The Error
Input node propagates the Service Message Object (SMO) from the unwired terminal, that contains the
error information.
An Input Response node for (request and response) operations. You can use this node to return a
message from the source operation.
An Input Fault node, created when a source operation has a WSDL fault message defined. The Input
Fault node has an input terminal for each fault message type that is defined in the source
operation. Any message that is sent to an Input Fault node results in a WSDL fault error message
being returned from the source operation.
You can wire mediation primitives to the Error Input node to capture error information. For
example, a Message Logger mediation primitive is wired to log the SMO. You can also put your error
handling logic in a subflow, so that it can be reused in multiple error flows.
You can use an error flow to audit any unhandled errors that may occur in the operation request
or response flows. For example, you can use a Message Logger mediation primitive to capture the SMO,
and then wire the Log mediation primitive to a Fail primitive.
An error flow can use the information available in the failInfo element of the SMO and return a
modeled fault message. To do this, within the error flow, you can map the failureString from the
failInfo to the modeled fault message and wire it to the Input Fault node. This is shown in Figure 1.Figure 1. An example error flow to return a modelled fault