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 - 20 - installing compensation handlers for faulted scopes


Following up on the conversation at the F2F meeting last week,

Normally, a control flow is short-circuited when a fault occurs. The 
application may trap the fault and perform corrective actions { undo or redo }, 
and may decide to suppress the fault or rethrow the fault, depending on whether 
it is able to recover fully.

(a) Fault suppression upon redo

In the case of a successful redo, the application may choose not to rethrow the 
fault and hence allow normal forward progress.

But, as observed earlier, attempting redo or alternative normal completion may 
be hard to implement in most cases, due to the relative complexity in 
implementing an appropriate compensation logic that accounts for such alternate 
successful completions.

(b) Fault rethrow upon undo: The application may perform cleanup, undo, etc., 
and rethrow the fault, thereby short-circuiting the normal control flow. No issues.

(c) Fault suppression upon undo: This is a bit problematic, since the control 
flows forward, just as normally as it would have otherwise, in spite of the 
fact that a full recovery was not performed.

While this is a valid usage pattern, it is hard to program a sequential control 
flow, since each forward step may now have to adapt its behavior according to 
the outcome of previous completion or completions.

Summary:

1. It may serve to warn against the potential anomalies of usage pattern (c).

2. Regarding usage pattern (a): It is possible applications may want to perform 
alternate normal completions in simple cases. Enabling such an usage would mean 
installing a compensation handler for a faulted scope, upon *explicit* 
application request. That is, a fault handler may explicity request that a 
compensation handler be installed for the faulted scope, since it was able to 
perform an alternate normal completion for the faulted scope. Providing for 
such explicit enablement of compensation handlers may serve applications that 
attempt alternative normal completions in simple cases.



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