Your answers match with my recollection, Alex.
Alex Yiu wrote:
Hi Yuzo,
This question falls into Issue 226 domain.
The resolution of Issue 226 needs to be able to answer your question
clearly.
(I will forward this email to issue 226 thread later.)
My current interpretation:
Q1: No there will not be the second invocation of CH1. Once
the
compensation handler of a completed scope got faulted, the whole scope
also considered faulted (maybe we can come up with a more specialized
term for that). (We need a life cycle diagram of "scope" here in the
spec) The CH of such a scope should be uninstalled. (Because, if not
uninstalled, the CH may be in a strange inconsistent state, where the
CH logic may executed incorrectly, if it got executed twice.)
Q2: Yes, the T1 should be propagated to S2 and handled by F2.
Dieter and Satish, if my interpretation is different from yours and
your collection of the preliminary direction discussed in Redmond F2F,
please let me know.
Thanks!
Regards,
Alex Yiu
Yuzo Fujishima wrote:
Hi,
I have yet other questions regarding compensation.
Could someone help me answer to them?
Suppose we have a process as below:
process P1
faultHandler F0 to catch T1
flow
scope S1
faultHandler F1 to catch T2
scope S2
faultHandler F2 to catch T1
compensate CA1
sequence
while
scope S3
compensationHandler CH1
throw T1
throw T2
scope S4
Further suppose that
S3 is successfully completed two times,
T2 throws a fault,
F1 catches the fault, and then
CA1 is executed.
What is expected to happen next is that CH1 is called twice,
once for each successful completion.
But what will happen if T1 throws a fault in the first
invocation of CH1?
Q1: Will there be the second invocation of CH1?
Q2: Will the fault be propagated to CA1 then to S2?
Or S3, S1 (FH uninstalled), then to P1?
In other words, which will catch T1, F2 or F0?
Yuzo Fujishima
NEC Corporation
---------------------------------------------------------------------
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
|