Databases Reference
In-Depth Information
For example, in the previous screenshot, we've mapped the fault invalidUserDetails
returned by the UserRegistration BPEL process to the equivalent fault that will
be returned by the Mediator. Once we have defined our fault routing, we use the
standard transformation tool to map the content of the service's fault to that returned
by the Mediator.
If the invoked operation defines multiple faults, we should define a fault routing for
each of them. To do this, just click on Add another fault routing (the green plus sign
in the Faults section) and define as appropriate.
System faults
In the case of a system fault, the Mediator service will return the fault without
modification directly to the client, and let it work out how to handle it. This is
typically the desired behavior. The only potential problem with this is it doesn't
provide us with the opportunity to transform the system fault.
The reason this can be an issue is that it often makes sense to define a standard
set of system faults within our architecture that we map all other system faults to,
as this can simplify the implementation of standardized error handling across
our applications.
As faults originating from within the SOA infrastructure already conform to a
standardized set of faults, the issue is more significant for system faults returned by
external services. One solution to this is to invoke all such external services via the
Oracle Service Bus and use this to map a nonstandardized system fault to one of our
standardized faults (we look at how to do that later in this chapter).
Asynchronous Mediators
With asynchronous services, as we have already discussed, we don't have the
concepts of business faults; rather the approach is to define additional callbacks, with
each callback being the equivalent to a corresponding business fault returned by a
synchronous service.
However, the Mediator component doesn't support multiple callbacks for a single
operation. For scenarios where this functionality is required, an alternative approach
is to use a BPEL process in place of the Mediator (see the section Creating a proxy
process in Chapter 16 , Message Interaction Patterns for details on how to do this).
 
Search WWH ::




Custom Search