Next in thread → Next in month →

RE: [wsbpel] Issue - 274 - orphaned IMA in compensationHandler

From
Mark Ford <>
Date
2006-05-05T15:13:32+00:00
ID
Thread
RE: [wsbpel] Issue - 274 - orphaned IMA in compensationHandler
These are all of the bullet points from that section with a new bullet to 
describe the compensation handler handling without the "calling fault handler" 
terminology Danny pointed out. 

 

•  If the contained primary activity and the event handlers of the 
scope have completed without any unhandled fault then a check for orphaned IMA’s 
MUST be made. If one or more orphaned IMA’s are detected then a 
bpel:missingReply fault is thrown to the completing <scope> itself. When 
the bpel:missingReply fault is thrown, all the orphaned IMA's are encompassed by 
the fault and are no longer considered orphaned.
•  If a fault handler 
has completed without any unhandled fault then a check for orphaned IMA’s MUST 
be made. If any orphaned IMA is detected then a new bpel:missingReply is thrown 
to the parent scope (similar to throwing or rethrowing other faults from a fault 
handler). However, if the fault handler is handling a bpel:missingReply fault 
and no new IMA's were created and left open by the fault handler, the new fault 
MUST NOT be generated and thrown. The newly thrown bpel:missingReply fault MUST 
encompass all orphaned IMA's. When the bpel:missingReply fault is thrown, all 
the orphaned IMA's are encompassed by the fault and are no longer considered 
orphaned. 
•  If a fault handler itself throws or rethrows a fault 
different from bpel:missingReply to the parent scope then no check for orphaned 
IMA's is made, and the checking is deferred to the parent <scope>. The 
orphaned IMA's remain as such.
•  The same behavior as in the previous 
bullet applies when a termination handler is executed.
•  No checks for orphaned IMA's are made when a compensation handler completes. The 
compensation handler's execution must necessarily start from within a fault 
or termination handler so any orphaned IMA's created by a compensation 
handler will be detected and handled as described in the above 
bullets.

 

From: Danny van der Rijn 
[mailto:] 
Sent: Thursday, May 04, 2006 3:40 
PM
To: Mark Ford
Cc: Alex Yiu; 

Subject: Re: [wsbpel] Issue - 274 - 
orphaned IMA in compensationHandler

Comments without taking a side.  Pros and cons that I 
see:

Alex's version catches the fault as near as possible, but requires 
that a compensation activity do scope-like work.

Mark's proposal would 
require (IMO) defining or replacing the term "the calling fault ... 
handler"

Mark Ford wrote: 

  
  
Hi Alex,

  
 

  
Thanks for your response. I like your proposal but it has a slight 
  difference in the outcome which I think is worth pointing out. I'm CC'ing the 
  list to get any other input.

  
 

  
Consider a faultHandler that has three <compensateScope> 
  activities in it. The first <compensateScope> invokes a compensation 
  handler that for whatever reason (modeling error or some other error 
  condition) fails to close an IMA it opened. In your scenario, this would be 
  detected at the compensationHandler's completion and result in the 
  fault being propagated to the FCT Handler, thereby terminating the handler and 
  not invoking the other compensateScope activities. This is good in the sense 
  that we detect and handle the orphaned reply closer to its source but the side 
  effect is that we will not run the additional compensation 
  activities. In my proposal below these compensation activities would still run 
  since the check for orphaned IMA's wouldn't be done until the originating 
  faultHandler completed. 

  
 

  
Also, the language for any propagation of a fault from a 
  compensationHandler should mention the source compensation activity as 
  its propagation target as opposed to the FCT Handler. I think it is more 
  precise to write compensation activity since this compensation activity could 
  have a scope around it which would catch any faults and allow the FCT Handler 
  to continue execution.

  
 

  
 

  

  
  From: Alex Yiu [mailto:] 
  
Sent: Thursday, May 04, 2006 1:55 AM
To: Mark 
  Ford
Cc: Alex Yiu
Subject: Re: [wsbpel] Issue - 274 - 
  orphaned IMA in compensationHandler

Hi Mark, 
  

+1 to open this issue.
Generally speaking, I would agree with your 
  high level proposal.

How about refining your proposal as 
  follows:
--------------------------
The same checking of orphaned IMA’s 
  is performed, after the activity of a compensation handler have completed 
  without any unhandled fault. If any orphaned IMA’s are detected, a 
  bpel:missingReply fault MUST be propagated to the invoking FCT-handler and 
  those IMA’s are no longer considered orphaned.

If a unhandled fault 
  different from bpel:missingReply occurs during the execution of the 
  compensation handler, that fault is propagated to the invoking FCT-handler. 
  The checking for orphaned IMA's is deferred to the invoking FCT-handler. The 
  orphaned IMA's, if any resulted from the execution of the compensation 
  handler, remain as such. 
--------------------------

A longer 
  proposal than yours, but at the same time, it allows us to have a finer grain 
  control missing replies. 

What do you think? 
  

Regards,
Alex Yiu

ws-bpel issues list editor wrote: 
  
This issue has been added to the wsbpel issue list with a 
    status of "received". The status will be changed to "open" if a motion to 
    open the issue is proposed and that motion is approved by the TC. A motion 
    could also be proposed to close it without further consideration. Otherwise 
    it will remain as "received". 

    
The issues list is posted as a Technical Committee document to the OASIS WSBPEL TC 
    pages on a regular basis. The current edition, as a TC document, is the 
    most recent version of the document entitled in the "Issues" folder of the 
    WSBPEL 
    TC document list - the next posting as a TC document will include this 
    issue. The list editor's working copy, which will normally include an issue 
    when it is announced, is available at this 
    constant URL. 

    Issue - 274 - orphaned IMA in compensationHandlerStatus: 
    received
Date added: 2 May 2006
Date submitted: 02 May 
    2006
Submitter: Mark 
    Ford
Description: Section 12 outlines four scenarios for 
    handling the detection and reporting of errors for orphaned IMA's 
    
1. Normal scope completion - scope activity and event handlers complete 
    normally. The engine MUST check for orphaned IMA's within the completing 
    scope and fault itself with a bpel:missingReply if found. 

    
2. Fault handler completion without fault or rethrow. The engine MUST 
    check for ophaned IMA's within the completing scope and fault its parent 
    scope with a bpel:missingReply if orphaned IMA's found. 

    
3. Fault handler completion with fault or rethrow. The engine MUST NOT 
    check for orphaned IMA's. It is the responsibility of the parent scope to 
    check for the orphaned IMA's and report them. 

    
4. Termination handler completion. Same as scenario 3. 

    
The above scenarios do not address a compensationHandler that completes 
    with orphaned IMA's. In this scenario, a compensation handler opens an IMA 
    as part of its execution using a partnerLink or messageExchange declared 
    within its associated scope. At the time the compensationHandler completes 
    it fails to reply to the open IMA which makes the IMA an 
    orphan.
Submitter's proposal: My proposed resolution is to have 
    the fault handler or termination handler that started the compensation 
    routine responsible for handling the orphaned IMA's as outlined in the 
    existing bullets. This could be made explicit as a new bullet or as a 
    clarifying statement following the bullets. I propose adding a 5th bullet as 
    follows. 

    
      
        
orphaned IMA's created by the execution of a compensation handler 
        are detected or processed by the compensation handler's calling fault 
        handler or termination handler as outlined above. 
    

Changes: 2 May 2006 - new issue

    

    
To comment on this issue (including whether it should be accepted), 
    please follow-up to this announcement on the  
    list (replying to this message should automatically send your message to 
    that list), or ensure the subject line as you send it starts "Issue - 
    274 - [anything]" or is a reply to such a message. If you want to formally 
    propose a resolution to an open issue, please start the subject line "Issue 
    - 274 - Proposed resolution", without any Re: or similar. 

    
To add a new issue, see the issues procedures document (but the address 
    for new issue submission is the sender of this announcement). 

    
--------------------------------------------------------------------- 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 
    

--------------------------------------------------------------------- 
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
Next in thread → Next in month →