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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

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


Subject: Re: [wsbpel] Issue - R27 - Faults and Parallelism in TerminationHandlers



Hi,

[a]
I read Dieter's proposal into two halves:
(a1)
"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.

(a2)
"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 "12.4.4.1. 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.

[b]
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 "12.4.4.3. Compensation within FCT-Handlers":
...

A fault in a fault handler MUST cause all running contained activities to be terminated. ...

...

A compensation handler that faults (“internal fault”) 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 (see section 12.5.2. Default Compensation Order). This approach can be used to provide all or nothing semantics for compensation handlers. After the partial work is undone, the compensation handler MUST be uninstalled. The fault MUST be propagated to the caller of the compensation handler. This caller is a default FCT-handler of the enclosing scope or a compensation activity contained within a user-defined handler.

...

A fault inside a termination handler MUST NOT be not propagated to the enclosing scope (see section 12.6 Termination Handlers). Other than that, all of the statements about fault handlers apply to termination handlers as well.



Thanks!



Regards,
Alex Yiu


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. 

That would take care of your cases, too, wouldn't it?

ws-bpel issues list editor wrote:

This issue has been added to the wsbpel issue list with a status of "received". The status will be changed to "open" if a motion to open the issue is proposed and that motion is approved by the TC. A motion could also be proposed to close it without further consideration. Otherwise it will remain as "received".

The issues list is posted as a Technical Committee document to the OASIS WSBPEL TC pages on a regular basis. The current edition, as a TC document, is the most recent version of the document entitled in the "Issues" folder of the WSBPEL TC document list - the next posting as a TC document will include this issue. The list editor's working copy, which will normally include an issue when it is announced, is available at this constant URL.

Issue - R27 - Faults and Parallelism in Termination Handlers

Status: received
Date added: 30 Oct 2006
Date submitted: 27 October 2006
Submitter: Dieter Koenig
Description: Consider the following examples of parallelism inside of termination handlers.

Example 1. Assume that a custom termination handler contains a parallel forEach activity or a flow activity. In either case, assume that multiple concurrent branches are active. If one branch faults, the specification does not tell whether the other branches are allowed to complete or terminated.

Example 2. Assume that a default termination handler that compensates a compensation handler instance group. If one compensation handler instance faults, the specification does not tell whether the other compensation handler instances are allowed to complete or terminated.
Submitter's proposal: Add the following to the end of section 12.6.:

"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. 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."

Changes: 30 Oct 2006 - new issue

To comment on this issue (including whether it should be accepted), please follow-up to this announcement on the wsbpel@lists.oasis-open.org list (replying to this message should automatically send your message to that list), or ensure the subject line as you send it starts "Issue - R27 - [anything]" or is a reply to such a message. If you want to formally propose a resolution to an open issue, please start the subject line "Issue - R27 - Proposed resolution", without any Re: or similar.

To add a new issue, see the issues procedures document




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