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