[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [wsbpel] Issue - R27 - Faults and Parallelism in TerminationHandlers
I read Dieter's proposal into two halves:
"If a custom termination handler contains parallel activities and one of these activities propagates a fault then all concurrent activities in the termination handler MUST be terminated."
The semantics of terminating concurrent activities is generally covered in section 12.6:
" ... For a parallel <forEach>, termination MUST be applied to all parallel executing branches. ... The <sequence> and <flow> constructs MUST be terminated by terminating their behavior and applying termination to all nested activities currently active within them. "
That also address Example #1 in the issue description.
"Likewise, if a default termination handler compensates a compensation handler instance group and one of the compensation handler instances propagates a fault then the other compensation handler instances of the compensation handler instance group MUST be terminated."
I think that is not specific to termination handler, it just covers any FCT-handlers. I think it is already cover in the general discussion Compensation Handler Instance Groups.
At the end of "188.8.131.52. Compensation Handler Instance Groups":
If an uncaught fault occurs while executing any compensation handler instance of the group, or if compensation activities are terminated, then all running instances MUST be terminated following standard WS-BPEL activity termination semantics. All compensation handler instances of the group and compensation handler instance groups of immediately enclosed scopes are uninstalled. Completed compensation handler instances within a Compensation Handler Instance Group are not subject to further compensation.That also address Example #2 in the issue description.
About Danny's question: "... can't find any such thing, but it seems "obvious" to me that we should have said it. ...", I found something similar (not sure whether it is precise and board enough to cover):
Under "184.108.40.206. Compensation within FCT-Handlers":
Danny van der Rijn wrote:
Does this need to be generalized to not just parallel constructs? Do we ever say, for instance, that a fault reaching a FCT-Handler MUST terminate all running activities in the termination handler? I can't find any such thing, but it seems "obvious" to me that we should have said it.