Next in thread →
Next in month →
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:]
Sent: Thursday, May 04, 2006 3:40
PM
To: Mark Ford
Cc: Alex Yiu;
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:]
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 compensationHandlerStatus:
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
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
Next in thread →
Next in month →