SOA Suite 12c: Bulk Fault Recovery
In earlier versions of the Enterprise Manager it was already possible to recover faulted instances of web services. Like for instance when a service that the instance depends on is down, the instance will throw a fault and stop processing. When the underlying service is up again, you could go back to the faulted instance and use recovery to have it continue from the step it faulted on.
Now with the introduction of 12c the Error Hospital in the Enterprise Manager supports Bulk Recovery.
This means that it is possible to recover a whole batch of faulted instances with just one click.
A scenario where this can be very powerful is when an underlying service that is used by a lot of other services goes down. For instance a service that calculates foreign exchange rates in a financial system. Or an example I have used in the Oracle SOA Suite Bootcamp in which we built an order system that relies on another service to validate payments.
When I shutdown the ValidatePayment service, the ProcessOrder service will go into fault and needs recovery.
After I have created some extra faults by running the ProcessOrder a few times, I get to see a list of errors in the Error Hospital.
When I have enough Faults to test this, I restart the ValidatePayment service and try to recover the Faulted instances.
After selecting the recoverable instances, I can click on the Bulk Recover button at the top of the list and the system will start the recovery.
And afterwards the results will be shown. Because I have created some Faults that have nothing to do with the ValidatePayment being down, I can now see that a portion of the instances has been succesfully recovered.
An extra feature with this is, that it’s possible to use some lightweight queries to select which faults to recover in the Error Hospital. You can select a time period and a set of services that you would like to recover. An example where this may come in handy is again a financial system. You probably don’t want to continue with stock transactions that were beneficial at the time the request was initially started, but not anymore at the time of recovery.
To make the selection, just use the Search in the Error Hospital itself. You can select a time period for instances started, or a time period for instances faulted.Overzicht blogs