A colleague of mine just held a presentation about the fault management framework in Oracle SOA Suite 11g. With her permission, I publish the essential points here.
Oracle SOA Suite 11g provides a fault framework for handling errors in composites and BPEL processes. With this feature a consistent error handling for SCA components is possible.
Structure of fault-policies.xml
The policy file fault-policies.xml has an XML structure and contains conditions for errors (error names an XPath functions for the content) and actions, which can be executed. These are: retry, human intervention, replay scope, rethrow fault, abort, custom Java action.
<faultPolicies>
<faultPolicy>
<Conditions>
<faultName>
<condition>
<test>
<action>
<Actions>
<Action>
<retry>
<humanIntervention>
<rethrowFault>
….
Furthermore process instances can be accessed during runtime. For example, if an action results in a user intervention, recovery actions can be initiated in the EM console.
Examples of a fault-policies.xml file
In this example the action “ora-retry” is allocated to all BPEL errors
The actions tries a repitition 2 times with an interval of 5 seconds. In case of error the “Human Intervention” will be executed afterwards.
<?xml version="1.0" encoding="UTF-8" ?>
<faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
<faultPolicy version="2.0.2"
id="ProcessingFaults"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Conditions>
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">
<condition>
<action ref="ora-retry"/>
</condition>
</faultName>
</Conditions>
<Actions>
<Action id="ora-retry">
<retry>
<retryCount>2</retryCount>
<retryInterval>5</retryInterval>
<exponentialBackoff/>
<retryFailureAction ref="ora-human-intervention"/>
</retry>
</Action>
<Action id="ora-rethrow-fault">
<rethrowFault/>
</Action>
<Action id="ora-human-intervention">
<humanIntervention/>
</Action>
</Actions>
</faultPolicy>
</faultPolicies>
Part 2 will follow...
Keine Kommentare:
Kommentar veröffentlichen