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