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: RE: [wsbpel] Issue 190 - BPEL Internal Faults (New Proposed Issue Announcement)


Hi Dieter,

I read over the current draft for the exit activity and it does indicate
that compensation should be skipped.  That seems like a bug to me.  If I get
to a part of a process and I need to cancel the entire process, I will have
to throw a fault and not catch it anywhere to have the rollbacks occur.
Well, the new exit behavior, as is sometimes the case with bugs, may be
desirable sometimes.  I think the following sentence from section 13.4 is
misleading, since it implies that not catching a fault at the process level
is the same as exit.
 
"If the fault occurs in (or is rethrown to) the global process scope, and
there is no matching fault handler for the fault at the global level, the
process terminates abnormally, as though an exit activity had been
performed."

btw - I even feel stronger now that the adjustment to catchAll is far better
than a process level exit flag. Or we should do nothing at all.  Faults are
faults and some of these faults may not reveal themselves until much after
the process is in production.  For example think of the "invalidReply"
fault, where there is a complex logic leading from the receive to the normal
reply and a series of fault replies. I have a condition I didn't find during
testing and my process tries a second reply to a receive that it had already
replied to.  Should the process end silently, with none of the other scopes
given a chance to repair themselves?  

- Chris

-----Original Message-----
From: Dieter Koenig1 [mailto:dieterkoenig@de.ibm.com] 
Sent: Monday, February 21, 2005 6:30 AM
To: chris.keller@active-endpoints.com
Cc: 'Satish Thatte'; wsbpel@lists.oasis-open.org
Subject: RE: [wsbpel] Issue 190 - BPEL Internal Faults (New Proposed Issue
Announcement)

Hi Chris, as far as I understood the exit activity, it does NOT lead to the
execution of a handler, including the terminationHandler. However, as the
spec only talks about immediate termination "without any fault handling or
compensation behavior", more precise language may be needed to clarify
this.
Kind Regards
DK



                                                                           
             "Chris Keller"                                                
             <chris.keller@act                                             
             ive-endpoints.com                                          To 
             >                         "'Satish Thatte'"                   
                                       <satisht@microsoft.com>, Dieter     
             20.02.2005 14:47          Koenig1/Germany/IBM@IBMDE,          
                                       <wsbpel@lists.oasis-open.org>       
                                                                        cc 
             Please respond to                                             
               chris.keller                                        Subject 
                                       RE: [wsbpel] Issue 190 - BPEL       
                                       Internal Faults (New Proposed Issue 
                                       Announcement)                       
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Satish,

I don't think that the expected behavior of a standard fault would be to
immediately and silently exit a process if it were encountered.  Since the
proposed attribute was exitOnStandardFault one would reasonably expect that
the behavior would be the same as if the process executed an "exit"
activity.  The exit activity does kick in the default terminationHandler,
which when not explicitly defined does compensate the completed scopes.  As
you point out this rollback (unraveling) is also what happens when one
doesn't catch a fault, which is why I suggested it had the same effect.

I am in complete agreement on allowing the implementation to do other
interesting things like suspend (freeze) when one of these faults is
encountered.  That is another reason why I don't want to mandate an exit,
which I pointed out in my email.

I have seen people add catchAll when multiple declared faults (WSDL
declared
that happen as the result of invokes in the scope) should end up doing the
same thing (e.g. replying with an error response to an outstanding
request).
Often they don't understand or expect that BPEL standard faults will also
be
sent there.  It would be nice if a user could easily differentiate between
catching declared and runtime failures.  In lieu of a fault hierarchy in
BPEL, I suggested we introduce the idea of standard (runtime faults) faults
being only caught when the user wants to catch them.

- Chris

-----Original Message-----
From: Satish Thatte [mailto:satisht@microsoft.com]
Sent: Saturday, February 19, 2005 8:30 PM
To: chris.keller@active-endpoints.com; Dieter Koenig1;
wsbpel@lists.oasis-open.org
Subject: RE: [wsbpel] Issue 190 - BPEL Internal Faults (New Proposed Issue
Announcement)

Chris,

How would changing catchAll behavior cause the same effect as
exitOnStandardFault?  If catchAll doesn't catch standard fault such faults
would simply unravel the entire instance including default compensation,
rather than freezing the instance so one can (using private means) fix and
continue.

Satish

________________________________

From: Chris Keller [mailto:chris.keller@active-endpoints.com]
Sent: Thu 2/17/2005 7:45 PM
To: 'Dieter Koenig1'; wsbpel@lists.oasis-open.org
Subject: RE: [wsbpel] Issue 190 - BPEL Internal Faults (New Proposed Issue
Announcement)



Hi Dieter,

I think the scope of the proposed attribute is not right.  Instead of this
process level attribute perhaps we could add a flag to the catchAll (imo
the
primary culprit for catching these faults when you don't want or expect
to),
which allows the user to specify that it shouldn't catch standard faults
(similar to the difference between catching Throwable vs. Exception in
java).

<catchAll includeStandardFaults="yes|no"/>

The default could still be no. In many ways this ends up being the same as
the proposal since the behavior would be implicit fault handling which is
terminate. This option gives users more fine grained control of their fault
handling.  It also opens up the ability for engines to have interesting
options like suspend on uncaught standard faults.  Certainly that is out of
the scope of this specification, but could be a nice option as opposed to
saying the default is that an engine MUST terminate a process on standard
faults.

- Chris

-----Original Message-----
From: Dieter Koenig1 [mailto:dieterkoenig@de.ibm.com]
Sent: Thursday, February 17, 2005 6:52 AM
To: wsbpel@lists.oasis-open.org
Subject: [wsbpel] Issue 190 - BPEL Internal Faults (New Proposed Issue
Announcement)

I would like to modify my original Submitter's proposal for 190 by adding a
suggestion for an explicit process/scope attribute (see the last paragraph
below).
Kind Regards
DK

Submitter's proposal: Instead of allowing processes to catch these as
standard faults, we propose that the process instance must *terminate*
immediately when such a situation is encountered.


The behavior of terminate is well-defined in BPEL -- as far as BPEL is
concerned the instance execution ends when terminate is encountered without
any fault handling behavior. Any additional facilities for extended support
for, e.g., repair and continue, is definitely out of scope.


This approach would also create a clear direction for dealing with any
pathological situation within an inlined language (Issue 163) and therefore
also for errors within transition conditions (Issue 169).

In order to support the behavior suggested here and also allow process
modelers to continue using the current behavior, an explicit boolean
attribute can be added to the <process> and <scope> elements:
   <process/scope ... exitOnStandardFault="yes|no" ...>
where the default is "yes".


To unsubscribe from this mailing list (and be removed from the roster of
the
OASIS TC), go to
http://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
the
OASIS TC), go to
http://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
the
OASIS TC), go to
http://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 the
OASIS TC), go to
http://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]