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 - 274 - orphaned IMA in compensationHandler


These are all of the bullet points from that section with a new bullet to describe the compensation handler handling without the "calling fault handler" terminology Danny pointed out.
 
•  If the contained primary activity and the event handlers of the scope have completed without any unhandled fault then a check for orphaned IMA’s MUST be made. If one or more orphaned IMA’s are detected then a bpel:missingReply fault is thrown to the completing <scope> itself. When the bpel:missingReply fault is thrown, all the orphaned IMA's are encompassed by the fault and are no longer considered orphaned.
•  If a fault handler has completed without any unhandled fault then a check for orphaned IMA’s MUST be made. If any orphaned IMA is detected then a new bpel:missingReply is thrown to the parent scope (similar to throwing or rethrowing other faults from a fault handler). However, if the fault handler is handling a bpel:missingReply fault and no new IMA's were created and left open by the fault handler, the new fault MUST NOT be generated and thrown. The newly thrown bpel:missingReply fault MUST encompass all orphaned IMA's. When the bpel:missingReply fault is thrown, all the orphaned IMA's are encompassed by the fault and are no longer considered orphaned.
•  If a fault handler itself throws or rethrows a fault different from bpel:missingReply to the parent scope then no check for orphaned IMA's is made, and the checking is deferred to the parent <scope>. The orphaned IMA's remain as such.
•  The same behavior as in the previous bullet applies when a termination handler is executed.
•  No checks for orphaned IMA's are made when a compensation handler completes. The compensation handler's execution must necessarily start from within a fault or termination handler so any orphaned IMA's created by a compensation handler will be detected and handled as described in the above bullets.
 


From: Danny van der Rijn [mailto:dannyv@tibco.com]
Sent: Thursday, May 04, 2006 3:40 PM
To: Mark Ford
Cc: Alex Yiu; wsbpel@lists.oasis-open.org
Subject: Re: [wsbpel] Issue - 274 - orphaned IMA in compensationHandler

Comments without taking a side.  Pros and cons that I see:

Alex's version catches the fault as near as possible, but requires that a compensation activity do scope-like work.

Mark's proposal would require (IMO) defining or replacing the term "the calling fault ... handler"



Mark Ford wrote:
Hi Alex,
 
Thanks for your response. I like your proposal but it has a slight difference in the outcome which I think is worth pointing out. I'm CC'ing the list to get any other input.
 
Consider a faultHandler that has three <compensateScope> activities in it. The first <compensateScope> invokes a compensation handler that for whatever reason (modeling error or some other error condition) fails to close an IMA it opened. In your scenario, this would be detected at the compensationHandler's completion and result in the fault being propagated to the FCT Handler, thereby terminating the handler and not invoking the other compensateScope activities. This is good in the sense that we detect and handle the orphaned reply closer to its source but the side effect is that we will not run the additional compensation activities. In my proposal below these compensation activities would still run since the check for orphaned IMA's wouldn't be done until the originating faultHandler completed.
 
Also, the language for any propagation of a fault from a compensationHandler should mention the source compensation activity as its propagation target as opposed to the FCT Handler. I think it is more precise to write compensation activity since this compensation activity could have a scope around it which would catch any faults and allow the FCT Handler to continue execution.
 
 


From: Alex Yiu [mailto:alex.yiu@oracle.com]
Sent: Thursday, May 04, 2006 1:55 AM
To: Mark Ford
Cc: Alex Yiu
Subject: Re: [wsbpel] Issue - 274 - orphaned IMA in compensationHandler


Hi Mark,

+1 to open this issue.
Generally speaking, I would agree with your high level proposal.

How about refining your proposal as follows:
--------------------------
The same checking of orphaned IMA’s is performed, after the activity of a compensation handler have completed without any unhandled fault. If any orphaned IMA’s are detected, a bpel:missingReply fault MUST be propagated to the invoking FCT-handler and those IMA’s are no longer considered orphaned.

If a unhandled fault different from bpel:missingReply occurs during the execution of the compensation handler, that fault is propagated to the invoking FCT-handler. The checking for orphaned IMA's is deferred to the invoking FCT-handler. The orphaned IMA's, if any resulted from the execution of the compensation handler, remain as such.
--------------------------

A longer proposal than yours, but at the same time, it allows us to have a finer grain control missing replies.


What do you think?


Regards,
Alex Yiu


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 - 274 - orphaned IMA in compensationHandler

Status: received
Date added: 2 May 2006
Date submitted: 02 May 2006
Submitter: Mark Ford
Description: Section 12 outlines four scenarios for handling the detection and reporting of errors for orphaned IMA's

1. Normal scope completion - scope activity and event handlers complete normally. The engine MUST check for orphaned IMA's within the completing scope and fault itself with a bpel:missingReply if found.

2. Fault handler completion without fault or rethrow. The engine MUST check for ophaned IMA's within the completing scope and fault its parent scope with a bpel:missingReply if orphaned IMA's found.

3. Fault handler completion with fault or rethrow. The engine MUST NOT check for orphaned IMA's. It is the responsibility of the parent scope to check for the orphaned IMA's and report them.

4. Termination handler completion. Same as scenario 3.

The above scenarios do not address a compensationHandler that completes with orphaned IMA's. In this scenario, a compensation handler opens an IMA as part of its execution using a partnerLink or messageExchange declared within its associated scope. At the time the compensationHandler completes it fails to reply to the open IMA which makes the IMA an orphan.
Submitter's proposal: My proposed resolution is to have the fault handler or termination handler that started the compensation routine responsible for handling the orphaned IMA's as outlined in the existing bullets. This could be made explicit as a new bullet or as a clarifying statement following the bullets. I propose adding a 5th bullet as follows.

  • orphaned IMA's created by the execution of a compensation handler are detected or processed by the compensation handler's calling fault handler or termination handler as outlined above.

Changes: 2 May 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 - 274 - [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 - 274 - Proposed resolution", without any Re: or similar.

To add a new issue, see the issues procedures document (but the address for new issue submission is the sender of this announcement).

--------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. You may a link to this group and all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php


--------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. You may a link to this group and all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php


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