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: "successful" completion of scopes


Hello,
 
I would like to clarify the notion of "successfully completed scopes" as specified in the "Web Services Business Process Execution Language Version 2.0" specification.
 
The specification defines in section 12.5. (Fault Handlers): 
"A process or scope IN WHICH a fault occurred is considered to have ended abnormally (i.e. completed unsuccessfully), whether or not the fault was caught and handled without rethrowing the original fault or throwing a new fault."
 
My question would be, whether "in which" has to be understand in a transitive way. Imagine a scope S1 which contains another scope S2 and a fault that is thrown in S2. Further on, the fault is caught in S2 and it is not rethrown in the fault handler. That means S2 completed unsuccessfully.
 
Does that mean, that the parent scope S1 also completes unsuccessfully as a result of the unsuccessful completion of S2 even if the fault has not been rethrown?
 
In particular, this question is of importance w.r.t. semantics of the attribute successfulBranchesOnly of the foreach activity. Please find an example below.
 
Thanks in advance for any comments.
 
Kind regards,
Matthias Weidlich

----------------------------------------------------------
 
<foreach>
  <branches successfulBranchesOnly="yes">
    expression
  </branches>
   <scope name="S1">
     <scope name="S2">
       <throw name="F" />
       <faultHandlers>
         <catchAll>
           <empty />
         </catchAll>
       </faultHandlers>
     </scope>
   </scope>
</foreach>
 
Basically, there are two nested scopes inside the foreach activity and the inner scope S2 contains a throw activity. The thrown fault is caught by the fault handler of S2, which does nothing. In particular, the fault is NOT rethrown. However, S2 ended "unsuccessfully" according to the WS-BPEL 2.0 specification. What about the state of S1?

 


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