Friday, March 9, 2012

Enterprise Manager showing use of custom fault handler

In a recent project I explained the fault handling mechanism used in our Oracle SOA Suite 11g composites to a new team member. That particular project used a custom fault handler as part of the overall fault handling strategy. Custom fault handlers are "hooks" in SOA Suite 11g that you can use to plugin your own fault-handling code. In some situations this can be useful as substitute or addition to the fault handlers that are provided out-of-the-box such as retry and human intervention.

The new team member wanted to know whether faults were handled by the default actions provided by Oracle SOA Suite, or handed over to the custom Java class that implemented the custom fault handler. Besides including logging in the custom fault handler Java class itself you can also use the Enterprise Manager.

In Enterprise Manager you can inspect what fault handlers are executed, including the custom handlers (and their implementation class) which improves traceability. The figure below shows the instance trail of an errored process instance for which the SOA Suite has invoked a customer fault handler com.odtug.soa.tooling.FaultHandlerJavaAction. (This image was taken from my fault handling presentation at Kaleidoscope.)

Note that fault handling in Oracle SOA Suite 11g itself is covered in some previous blog posts, see part I, part II, part III, and part IV of Fault handling in Oracle SOA Suite 11g. These posts also discuss the use of custom fault handlers. There are some steps involved to create and deploy a custom fault handler. First time around this can be a non-trivial task. The steps required to deploy a custom fault handler are documenten in the Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.