SOA 11g: BPEL Standard Faults

BPEL Fault Categories

Business Faults

* Application specific faults.
* Thrown or rethrown by application.
* Specified in WSDL.
* Can be caught with:

<catch faultName="ns1:faultName" faultVariable="varName">

Runtime Faults

* System errors (thrown by system).
* messageType:

<?xml version="1.0" encoding="UTF-8" ?> 
<definitions name="RuntimeFault"
  targetNamespace="http://schemas.oracle.com/bpel/extension"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns="http://schemas.xmlsoap.org/wsdl/">
 
  <message name="RuntimeFaultMessage">
   <part name="code" type="xsd:string" /> 
   <part name="summary" type="xsd:string" /> 
   <part name="detail" type="xsd:string" /> 
  </message>
 
</definitions>

* Examples:
– bindingFault: thrown inside an activity if the preparation of the invocation fails. For example, the WSDL of the process fails to load. A bindingFault is not retryable. This type of fault usually must be fixed by human intervention.
– remoteFault: thrown inside an activity because the invocation fails. For example, a SOAP fault is returned by the remote service.
– replayFault: A replayFault replays the activity inside a scope. At any point inside a scope, this fault is migrated up to the scope. The server then re-executes the scope from the beginning.

BPEL Standard Faults

BPEL 1.1 Standard Faults

* Standard faults are defined as follows:
– Typeless, meaning they do not have associated messageTypes
– Not associated with any Web Services Description Language (WSDL) message
– Caught without a fault variable:

<catch faultName="bpws:selectionFailure">

* Name space: http://schemas.xmlsoap.org/ws/2003/03/business-process/
* Standard faults:
– bindingFault (BPEL extension fault defined in http://schemas.oracle.com/bpel/extension)
– conflictingReceive
– conflictingRequest
– correlationViolation
– forcedTermination
– invalidReply
– joinFailure
– mismatchedAssignmentFailure
– remoteFault (BPEL extension fault defined in http://schemas.oracle.com/bpel/extension)
– repeatedCompensation
– selectionFailure
– uninitializedVariable

BPEL 2.0 Standard Faults

* See spec appendix A.
* Namespace is: http://docs.oasis-open.org/wsbpel/2.0/process/executable
* Standard faults:
– ambiguousReceive
– completionConditionFailure
– conflictingReceive
– conflictingRequest
– correlationViolation
– invalidBranchCondition
– invalidExpressionValue
– invalidVariables
– joinFailure
– mismatchedAssignmentFailure
– missingReply
– missingRequest
– scopeInitializationFailure
– selectionFailure
– subLanguageExecutionFault
– uninitializedPartnerRole
– uninitializedVariable
– unsupportedReference
– xsltInvalidSource
– xsltStylesheetNotFound

Fault Catch Activity Precedence

* Catching precedence for faults without associated data:
-> Catch activity with matching faultName
-> catchAll activity
-> Default fault handler
* Catching precedence for faults with associated data:
-> Catch activity with a matching faultName:
–> has a defined faultVariable: faultVariable initialized to the fault part element value.
–> no faultVariable defined
-> Catch activity without faultName attribute
-> catchAll activity
-> Default fault handler

References

* Using Fault Handling in a BPEL Process

This entry was posted in soa11g. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

This site uses Akismet to reduce spam. Learn how your comment data is processed.