IBM BPM, V8.0.1, All platforms > Programming IBM BPM > Enterprise Service Bus programming > Error handling in the mediation flow component
Error flow
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