atom feed23 messages in org.oasis-open.lists.wsbpelRE: [wsbpel] Issue - 221 - Proposal v...
FromSent OnAttachments
Dieter Koenig1Jan 25, 2006 9:04 am 
Danny van der RijnJan 25, 2006 1:34 pm 
Dieter Koenig1Jan 26, 2006 1:34 am 
Danny van der RijnJan 30, 2006 10:09 am 
Alexandre AlvesJan 30, 2006 11:53 am 
Danny van der RijnJan 30, 2006 4:36 pm 
Chris KellerJan 31, 2006 4:47 am 
Danny van der RijnJan 31, 2006 10:03 am 
Chris KellerJan 31, 2006 3:57 pm 
Danny van der RijnJan 31, 2006 4:03 pm 
Chris KellerJan 31, 2006 6:28 pm 
Alexandre AlvesFeb 1, 2006 6:58 am 
Dieter Koenig1Feb 13, 2006 2:13 am 
Danny van der RijnFeb 13, 2006 10:47 am 
Dieter Koenig1Feb 14, 2006 2:03 am 
Danny van der RijnFeb 15, 2006 11:01 am 
Alex YiuFeb 15, 2006 12:27 pm 
Danny van der RijnFeb 15, 2006 1:25 pm 
Alex YiuFeb 15, 2006 1:49 pm 
Danny van der RijnFeb 15, 2006 2:07 pm 
Alex YiuFeb 15, 2006 7:00 pm 
Danny van der RijnFeb 15, 2006 9:28 pm 
Alex YiuFeb 16, 2006 11:47 am 
Subject:RE: [wsbpel] Issue - 221 - Proposal vor Vote
From:Alexandre Alves (aal@bea.com)
Date:Feb 1, 2006 6:58:04 am
List:org.oasis-open.lists.wsbpel

Hi Chris, Danny,

I generally agree with Danny, now that I understood his example, I think the user would find it strange that a 'throw foo' is executed, causing a 'missingReply' to be raised... I understand we do swallow faults, but missingReply in particular seems like an extreme case as it is being activated by a 'throw' (which terminated the scope).

Rgds,

------------------------------------------------------------------------------------

From: Chris Keller [mailto:chri@active-endpoints.com] Sent: Tuesday, January 31, 2006 6:32 PM To: 'Danny van der Rijn'; wsb@lists.oasis-open.org Subject: RE: [wsbpel] Issue - 221 - Proposal vor Vote

Hi Danny,

I think at the parent scope point the fault should and would have been swallowed. So given an option of having a parent throw the missingReply, after handling some other fault, I'd leave things as they are. Of course that is just my opinion. I'm am still open to my other stated options if you or others care to consider them J.

- Chris

------------------------------------------------------------------------------------

From: Danny van der Rijn [mailto:dan@tibco.com] Sent: Tuesday, January 31, 2006 7:03 PM To: wsb@lists.oasis-open.org Subject: Re: [wsbpel] Issue - 221 - Proposal vor Vote

But now you're losing the other fault, which can't ever be "regenerated" like a missingReply can. This isn't what I was suggesting. I was suggesting that we leave Dieter's semantic alone for when a different fault is thrown (i.e. it takes precedence). I was merely pointing out that there's still a missingReply, and it can be detected later.

Chris Keller wrote:

Hi Danny,

I think I would prefer a wording more like "if a fault handler completes normally or abnormally (i.e. itself faults, throws or rethrows) a missingReply is thrown if an open IMA is present. This happens regardless of whether there was an attempt to throw or rethrow another fault". I think we can make this happen by describing the scope state diagram in such a way that the check for the open IMA happens before the throw or rethrow of any other fault. All this is a mouthful and needs cleaning up, but my reasoning is that it is nicer if the point of the throw is the scope causing the missingReply under all circumstances. One use case that comes to mind is exception handling procedures that allow manual intervention, something that is outside the scope of the spec, but could be a useful feature of a product.

- Chris

------------------------------------------------------------------------------------

From: Danny van der Rijn [mailto:dan@tibco.com] Sent: Tuesday, January 31, 2006 1:04 PM To: [1]wsb@lists.oasis-open.org Subject: Re: [wsbpel] Issue - 221 - Proposal vor Vote

Chris -

I see missingReply as somewhat of a special case because it isn't triggered anywhere near any web service activity, yet it's a web-service fault. I understand that there's no fault stack, yet on the other hand, this fault is triggered by a stack unwind of sorts, when something on the lexical stack goes out of scope. All that would have to be done is a small wording change to achieve the behavior I'm talking about. Saying that when a scope completes, a missingReply is thrown if an open IMA is contained within whose partnerLink or messageExchange definition is contained in the scope *or a scope that is nested within*

Danny

Chris Keller wrote:

Hi Danny,

Although what has been proposed may not be perfect it is consistent with BPEL fault behavior in general. BPEL doesn't maintain a stack of faults, so if more than one fault is generated at any given point then only one fault is propagated to the fault handling. However the point you bring up is a good one. In that if you have a standard fault queued at the same time as a user defined fault, should we choose the standard fault in preference to the user defined fault? This may be logical given that the standard fault when using the exit option is much more severe and typically standard faults are not easily recoverable from as they are modeling errors. If we applied that prioritization to your example then Scope B would throw missingReply in preference to bar. It would have no effect on fault foo as the scope is still active during that processing. Any thoughts on this treatment? Alternatively we could specifically call out missingReply and have it be thrown in preference to another fault when completing a fault handler.

- Chris

------------------------------------------------------------------------------------

From: Danny van der Rijn [mailto:dan@tibco.com] Sent: Monday, January 30, 2006 7:35 PM To: Alexandre Alves Cc: [2]wsb@lists.oasis-open.org Subject: Re: [wsbpel] Issue - 221 - Proposal vor Vote

Alexandre -

I see you're interpreting things differently than I am. I can see both interpretations.

You interpret that missingReply is "thrown and lost". I interpret that it was never thrown. "The throwing was lost."

In any case, I would point out that to any external observer, (like the one who opened the IMA), no reply of any kind has happened, so the IMA is still open.

As far as the process goes, the activity's scope may be lost, which brings up interesting issues, but nevertheless, the activity has never been replied to.

Danny

Alexandre Alves wrote:

Hi Danny,

You seem to bring up an important point, but I am having problems understanding your example.

When scope B completes (with fault foo), then the IMA goes out of scope and hence a missing reply fault is thrown and lost. Why would the IMA still be open in scope A? When the (first) missing reply is raised it signifies the closing of the IMA... What did I miss from your example?

Rgds

------------------------------------------------------------------------------------

From: Danny van der Rijn [mailto:dan@tibco.com] Sent: Monday, January 30, 2006 10:10 AM To: [3]wsb@lists.oasis-open.org Subject: Re: [wsbpel] Issue - 221 - Proposal vor Vote

I don't think that your intention for (2) is clear in the language.

Something along the lines of:

(2) If a fault handler has completed then a check

for missing replies MUST be made. If any missing reply other than the exact one that

caused a missingReply fault to be thrown initially is detected then a

bpws:missingReply is thrown to the parent scope (similar to throwing or

rethrowing other faults from a fault handler).

As for (1), I am troubled that a fault that is serious enough to exit the engine could be lost so easily. But let's deal with a specific case:

Scope A catch bar empty Scope B catch foo throw bar sequence receive (create open IMA) throw foo

Scope B receives a message, creating an open IMA, and then throws foo. Its fault handler catches foo, and throws bar, thus losing the missingReply fault. Scope A catches bar, and suppresses it. When "catch bar" completes, the IMA is still open. Does Scope A throw a missingReply? Or is the fact that B ":lost" it mean that it's lost forever? I would vote for the former (A throwing), but the text isn't clear to me as to what happens.

Danny

Dieter Koenig1 wrote:

If more than one fault is thrown then only one is handled by a fault

handler, either in the same or in an enclosing scope. All other faults are

lost. This rule applies to bpws:missingReply as well.

In (2), the check allows to throw bpws:missingReply to an enclosing scope

after a different fault has been handled in the scope that completes

unsuccessfully. The "different fault" may be a different "instance" of a

bpws:missingReply fault as well.

Do you still see an issue w.r.t this behavior, or can you suggest better

language for 221 that would not trouble you :-) ?

Kind Regards

DK

Danny van der

Rijn

[4]<dan@tibco.com To

> [5]wsb@lists.oasis-open.org

cc

25.01.2006 22:35

Subject

Re: [wsbpel] Issue - 221 - Proposal

vor Vote

I had sent this question to the irc during the meeting before I had to

go. Don't know if it got discussed or not.

point (2) - why is this only "(for a different fault)"?

more specifically:

- if there is more than one IMA that caused the fault to be thrown, and

there is still at least one open (but less than before) at the end of

the <catch missingReply>, what happens?

- if the <catch missingReply> opens a new IMA that it doesn't close

before it's done, what happens?

the inconsistent nature of dealing with these, especially since they can

exitOnStandardFault, truly troubles me.

Danny

Dieter Koenig1 wrote:

Two additional changes to the 221 resolution (friendly amendments):

(A) First sentence: Drop "during termination of a scope, "

(B) Appendix A (missingReply standard fault):

Result:

(A) Add to the end of 14.4:

--------

The standard fault bpws:missingReply can also be detected if one or more

receive operations using a partner link or message exchange defined in

the

scope remain open.

(1) If the contained activity and the event handlers of the scope have

completed then a check for missing replies MUST be made. If one is

detected

then a bpws:missingReply is thrown. The scope itself can catch it as this

is still inside of the scope.

(2) If a fault handler (for a different fault) has completed then a check

for missing replies MUST be made. If one is detected then a

bpws:missingReply is thrown to the parent scope (similar to throwing or

rethrowing other faults from a fault handler).

(3) If a fault handler itself throws or rethrows a different fault to the

parent scope then no check for missing replies is made, so a

bpws:missingReply is potentially lost (similar to a case where multiple

faults have been detected and only one gets propagated).

(4) If the termination handler is executed then no check for missing

replies is made, so a bpws:missingReply is potentially lost (like any

other

fault thrown in the termination handler).

--------

(B) Change Appendix A (missingReply standard fault) from:

--------

Thrown when a receive has been executed, and the process instance

reaches

the end of its execution without a corresponding reply having been

executed.

--------

To:

--------

Thrown when a receive has been executed, and the process instance or a

scope reaches the end of its execution without a corresponding reply

having

been executed.

--------

Kind Regards

DK

----- Forwarded by Dieter Koenig1/Germany/IBM on 25.01.2006 17:39 -----

Dieter

Koenig1/Germany/I

BM

To

[6]wsb@lists.oasis-open.org

19.01.2006 17:58

cc

Subject

[wsbpel] Issue - 221 - Proposal

vor

Vote

The last paragraph of section 14.4. "Web Service Operations" (starting

with

"The fourth extension ...") introduces the standard fault

"bpws:missingReply".

Add the following text to the end of the paragraph:

--------

The standard fault bpws:missingReply can also be detected during

termination of a scope, if one or more receive operations using a partner

link or message exchange defined in the scope remain open.

(1) If the contained activity and the event handlers of the scope have

completed then a check for missing replies MUST be made. If one is

detected

then a bpws:missingReply is thrown. The scope itself can catch it as this

is still inside of the scope.

(2) If a fault handler (for a different fault) has completed then a check

for missing replies MUST be made. If one is detected then a

bpws:missingReply is thrown to the parent scope (similar to throwing or

rethrowing other faults from a fault handler).

(3) If a fault handler itself throws or rethrows a different fault to the

parent scope then no check for missing replies is made, so a

bpws:missingReply is potentially lost (similar to a case where multiple

faults have been detected and only one gets propagated).

(4) If the termination handler is executed then no check for missing

replies is made, so a bpws:missingReply is potentially lost (like any

other

fault thrown in the termination handler).

--------

Kind Regards

DK

---------------------------------------------------------------------

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:

[7]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:

[8]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: [9]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: [10]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: [11]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

References

Visible links 1. mailto:wsb@lists.oasis-open.org 2. mailto:wsb@lists.oasis-open.org 3. mailto:wsb@lists.oasis-open.org 4. mailto:dannyv@tibco.comto 5. mailto:wsb@lists.oasis-open.org 6. mailto:wsb@lists.oasis-open.org 7. https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 8. https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 9. https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 10. https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 11. https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php