OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Fault in Compensation Handler


Hello,

I'm currently trying to figure out what's the inteded behaviour of a  
compensation handler that faults. In chapter 12.4.4.3 "Compensation  
within Compensation Handlers" (page 126 in the PDF version) of the  
BPEL 2.0 specification (http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html 
) it is stated that a faulted compensation handler "will undo its  
partial work by compensating all scopes immediately enclosed by the  
root scope according to the fault handler of the root scope. If such a  
fault handler is not specified explicitly, partial work will be  
compensated in the default order [...]."
The problem is that I'm unsure what the term "root scope" denotes in  
that context. In the beginning of chapter 12.4.1 (page 118) it is  
stated that a compensation handler is a wrapper of an activity. So in  
principle that activity could be a sequence of scopes or just a basic  
activity like an invoke. I'm wondering what the root scope in that  
cases would be ?
In the same chapter (12.4.4.3, p. 126) it is also stated that a root  
scope enclosed by a compensation handler may not have a compensation  
handler. But in the case of a compensation handler containing a  
sequence of scopes I'm unsure how an "all-or-nothing" semantics could  
be established. No scope of the sequence contained in the compensation  
handler may  have a compensation handler. Consequently if e.g. the  
third scope of the sequence faults its work will be compensated by its  
fault handler and the fault will be forwarded to the caller of the  
compensation hanler. But still the overall compensation will then only  
be undone partially because the work of the first two scopes of the  
sequence wouldn't be reverted.
Another topic in respect to this behavior (12.4.4.3, p. 126) is that a  
fault that occurs inside such a root scope enclosed in a compensation  
handler must be propagated up to the caller of the compensation  
handler. So assuming that this root scope itself consists of several  
nested scopes and the fault occurs in the inner most scope the fault  
would usually be caught by the fault handler of that inner most scope.  
But in order to guarantee the mentioned behaviour those fault handlers  
would have to rethrow the fault up to the compensation handler which  
also has to rethrow the fault in order to propagate the fault up to  
the caller of the compensation handler. That would mean that the  
behaviour of those fault handlers contained in those nested scope  
would have to be restricted to that behaviour.

I'd be grateful for any information.

Best regards,
David Spieler


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]