In order to overcome this issue, there should be a custom fault policy for the synchronous processes, which rethrows back the fault, and the CatchAll branch catches it and sends it to the invoking asynchronous process. This becomes a partnerlink error for the invoking process and goes to default fault policy. In this way resubmission can be done from the asynchronous process.
Illustration:
In the synchronous process’ bpel.xml, define fault policy binding:
<faultPolicyBindings>
<process faultPolicy=”customFaultPolicy”/>
</faultPolicyBindings>
In the SOA_ORACLE_HOME\bpel\domains\domain_name\config\fault-policies\ create customFaultPolicy.xml file, and define the fault policy:
<faultName>
<condition>
<action ref=”ora-rethrow-fault”/>
</condition>
</faultName>
</Conditions>
<Actions>
<Action id=”ora-rethrow-fault:>
<rethrowFault/>
</Action>
<Actions>
0 comments:
Post a Comment