[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [wsbpel] Issue 135 - Rough draft of a proposal for vote
|
From: Alex Yiu [mailto:alex.yiu@
[
[
[
+ 1. - Edwin-----Original Message-----From: Sent: Thursday, To: Alex Yiu; ygoland@bea.comCc: wsbpeltcSubject: RE: [wsbpel] Issue 135 - Rough draft of a proposal for voteThere is no reason to allow catchall to also handle the forcedTermination"fault" since the latter is in fact an external "cancel" signal rather thanan internal fault that may be optionally rethrown. We should insist that inorder to capture and handle forcedTermination you must have a specifichandler, and we shouldn't even need to call it a faultHandler -- call it acancelHandler instead. The whole forcedTermination "fault" notion is afalse economy of concept that causes unnecessary confusion. Didn't Petermake some such proposal at some point?________________________________From: Alex Yiu [mailto:alex.yiu@oracle.com]Sent: Thu To: ygoland@bea.comCc: wsbpeltc; Alex YiuSubject: Re: [wsbpel] Issue 135 - Rough draft of a proposal for voteHi, Yaron,[ I know you are on vacation now ... Still, I would like to reply thisthread. :-) ]Thanks for clarification. Few points to add:* +1 to the part of rename <teminate> activity to <halt> activity.Because, I got a similar confusion between "forcedTermination" fault and<terminate> activity, when I first read the spec. Also, the term "terminate"is used everywhere in the spec. But, the usage of "terminate" has norelation with <terminate> activity. * Regarding to the fault handler part of proposal, * Default fault handler: For clarity, we may want to changethe description of default fault handler in Section 13.4.1 as well.Currently, it said: "Rethrow the fault to the next enclosing scope.". Ithink it should say: "Rethrow the fault to the next enclosing scope, if thefault is not bpws:forcedTermination". * In the case of <catch faultName="bpws:forcedTermination">:We may want to enforce the prohibition <throw> or <rethrow> within thisparticular kind of <catch> construct by static analysis. * In the case of <catchAll>: I think users should be able touse <catchAll> to catch "bpws:forcedTermination" fault. Because usersshould be able to specify an explicit fault handler to perform any partialundo operation, no matter which fault is causing the problem. In order toobserve "bpws:forcedTermination", I have two alternative proposals to refinecatchAll semantics. [A] If a <catchAll> handler exists without a <catchfaultName="bpws:forcedTermination"> handler in the same scope, <throw> or<rethrow> will be disallowed in the <catchAll> handler. This restriction canbe enforced by static analysis. This restriction will essentially force BPELdevelopers to have two fault handlers when then want to throw fault in<catchAll>. [Better code clarity; more burden on users] [B] If a <catchAll> get a "bpws:forcedTermination", any<throw> or <rethrow> activity within that <catchAll> fault handler instancewill become an NO-OP. [Less code clarity; less burden on users]Thoughts ... ? Particularly for the last item.Thanks!Regards,Alex YiuYaron Y. Goland wrote: I am not proposing any functional changes, I am just proposingchanging the name of "terminate" to "halt" so as to prevent confusion withthe completely unrelated bpws:forcedTermination fault. Thanks, Yaron Alex Yiu wrote: Hi, Yaron, Do you mean to introduce a new activity "halt"? If so, could you highlight again what is the differencebetween "halt" and "terminate"? Thanks! Regards, Alex Yiu Yaron Y. Goland wrote: Below is a first attempt to creating a proposal forvote for issue 135. Thoughts? Comments? Yaron Proposal Summary: * Change the name of the terminate activity to theHalt activity. * Specify that the bpws:forcedTermination faultcannot be caught by catchAll handlers. Proposed Language Changes: Change all instances of the Terminate activity nameto Halt. Change section 14.6 to read: The halt activity can be used to immediately haltthe business process instance within which the halt activity is performed.All currently running activities MUST be halted as soon as possible withoutany fault handling or compensation behavior. <halt standard-attributes> standard-elements </halt> Section 13.4: Current Language: A catchAll clause can be added tocatch any fault not caught by a more specific catch handler. Proposed Language: A catchAll clause can be added tocatch faults not caught by a more specific catch handler, with the exceptionof the bpws:forcedTermination fault. Delete the following sentence, it appears twice:Otherwise, the default catchAll handler is selected if present. Add an extra bullet after the existing two bulletsin section 13.4 that reads: If the fault is not caught by any of thehandler's catch clauses per the previous two rules, the fault is not abpws:forcedTermination fault, and there is a catchAll handler then the faultMUST be caught by the catchAll handler. Insert the following sentence after the previousbullet: The bpws:forcedTermination fault cannot be caught by the catchAllhandler because the environment in which bpws:forcedTermination faults arehandled is different than the normal BPEL fault environment and so adedicated fault handler is needed. If a dedicated bpws:forcedTerminationfault handler is not provided then bpws:forcedTermination fault is dropped. Current Language: If there is fault data associatedwith the fault, the third catch will be selected if and only if the type ofthe fault's data matches the type of variable "bar", otherwise the defaultcatchall handler will be selected. Finally, a fault with a fault variablewhose type matches the type of "bar" and whose name is not "x:foo" will beprocessed by the second catch. All other faults will be processed by thedefault catchall handler. Proposed Language: If there is fault data associatedwith the fault, the third catch will be selected if and only if the type ofthe fault's data matches the type of variable "bar". Finally, a fault with afault variable whose type matches the type of "bar" and whose name is not"x:foo" will be processed by the second catch. All other faults, other thanthe bpws:forcedTermination fault, will be caught by the catchall handler anddiscarded. To unsubscribe from this mailing list (and beremoved from the roster of the OASIS TC), go tohttp://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php. To unsubscribe from this mailing list (and be removed from the roster of theOASIS TC), go tohttp://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php.
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]