OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Issue - 121 - draft proposal



Hi, all,

Glenn, Muruga and I work together and come with this draft proposal for 
Issue 121 for <finally>.
Feedback are very welcome.

Thanks!


Regards,
Alex Yiu

Title: Issue 121 - proposal

Issue 121: <finally> construct

Last modified: October 27, 2004 - 6PM


Currently there is not a construct allowing developers to define a fragment of BPEL code that needs be executed any time a scope is exited (whether it be a normal exit or due to a fault).

Draft Proposal for Issue 121.


Define an optional "finally" construct as a child of the scope construct. It contains only one activity (finally activity), which will be executed when the scope is being exited in either successful completion of the scope or the case where the scope is faulted. The finally activity has access to all the local partnerLinks and variables of the scope it's attached to. The finally activity can be a sequence, scope or flow itself which can contain nested activities.

<scope>
     <partnerLinks> ... </partnerLinks>?
     ...
     <faultHandlers> ... </faultHandler>?
     <finally> activity </finally>?
     <compensationHandler> activity </compensationHandler>?
     ...
<scope>


Faults that happened inside finally construct will bubble up out of the scope the finally construct is attached to.

A scope with finally construct can be compensated as usual. Compensation happens after a scope has succesfully exited, at which time the finally activity, if defined, was already exeucted. Therefore finally construct has no effect on the bpel compensation mechanism.



More elaboration of <finally> semantics


Rationale:

This proposal defines a way to let user to do clean-up jobs at the end of the scope, no matter how the scope finishes. This is very simiar to the java "finally" constrct, except for that the java "finally" doesn't have access to the local variables of the block.





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]