RE: [ws-rx] NEW ISSUE: Sequence termination on Fault

From
Patil, Sanjay <>
Date
2005-07-19T01:06:14+00:00
ID
Thread
RE: [ws-rx] NEW ISSUE: Sequence termination on Fault
Hi Jacques,

 

Just to clarify - do you have a requirement for 
cross-sequence ordering? If yes, could you please post an issue 
using Marc's template and include your solution proposal in 
there.

 

So far the 
following three issues have been proposed that are related to max 
message number handling, but none of these explicitly state the requirement for 
cross-sequence ordering:

a> RM policy for max message number - Doug 
Davis

b> Conformance when max message number is smaller - Doug 
Bunting

c> Graceful sequence termination on fault - Jacques 
Durand

 

Thanks,

Sanjay 

  

  
  From: Jacques Durand 
  [mailto:] 
Sent: Monday, Jul 18, 2005 16:41 
  PM
To: 'Doug Davis'; Duane Nickull
Cc: 
  
Subject: RE: [ws-rx] NEW ISSUE: Sequence 
  termination on Fault

  

  

  
Looking at this from 
  the "requirement" perspective:

  
 

  
- there 
  probably isn't a need to require that an RM Destination takes care of 
  cross-sequence Ordering (that is not such a benign requirement: would affect 
  the protocol: e.g. require associating somehow a new sequence ID with a 
  previous one.)

  
 

  
- but 
  there may be a requirement that an RM Source be able to order two sequences if 
  it wishes to do so (even if a RollOver or other fault occurred on first 
  sequence.)  And for this I believe that all what is needed is again to 
  provide the same control on the sequence termination to the Source as in 
  normal cases, so that a Source can decide to initiate the new sequence only 
  after getting all the Acks it was waiting for (and if not getting these, 
  knowing which messages are lost).

  
 

  
Assuming that the 
  second point is what we are shooting for, I believe a little more is needed 
  actually:

  
 

  
The spec says 
  (section 3.5)

  
"...After an RM Source receives 
  the <SequenceAcknowledgement> 
  acknowledging 
  the

  
complete range of messages in a 
  Sequence, it sends a <TerminateSequence> 
  element,..."

  
 

  
A corner case here, 
  is when the (few) last message(s) of a sequence appear to be lost. At some 
  point the RM Source will stop asking for their Acks, and stop resending, and 
  will consider these as not received. To ensure there is no chance that a tardy 
  message (e.g. delayed by some intermediary) makes it to the Destination after 
  the last Ack was sent by the latter and before the TerminateSequence takes 
  effect, a final Ack for the entire sequence could be sent *at the time it was terminated* That would 
  help deal with sequence transition issues.

  
 

  
 

  
Jacques

  
 

  

  

  
  

  
From: Doug 
  Davis [mailto:] 
Sent: Monday, July 18, 2005 12:30 
  PM
To: Duane 
  Nickull
Cc: Christopher B 
  Ferris; ; Jacques Durand; Paul Fremantle; 'Patil, 
  Sanjay'; 
Subject: Re: [ws-rx] NEW ISSUE: Sequence 
  termination on Fault

  
 

  

Duane, 
  
  I believe Paul is 
  talking about a new, second, sequence that is used as a 
  
rollover for the first 
  sequence - not reusing the original sequence.  If the 
  
second sequence could 
  preserve the InOrder-ness (assuming that is the DA 
needed) across sequences then 
  I believe it should work.  The question is 
whether or not this type of 
  logic is something the spec should help support 
or leave it up to the source 
  to deal with it on its own. 
thanks, 
  
-Doug 
  

  
    
    

      
        
Duane 
        Nickull <> 
        

        
07/18/2005 11:35 
        AM 

      
        
          
          

            
              
To

            
              
Paul Fremantle 
              <> 

          

            
              
cc

            
              
Jacques 
              Durand 
              <>, "'Patil, Sanjay'" 
              <>, , Christopher B 
              Ferris/Waltham/IBM@IBMUS, Doug Davis/Raleigh/IBM@IBMUS, 
               

          

            
              
Subject

            
              
Re: [ws-rx] NEW 
              ISSUE: Sequence termination on 
            Fault

        
 

        
          
          

            
              
 

            
              
 

        

  

Paul:

I am a bit confused.  Rolling over a message sequence 
  number and 
preserving the 
  original sequence does absolutely nothing to reclaim 
resources or mitigate the problem of superseding the 
  destinations 
capabilities. 
  

Assume for example that the 
  rollover was at 1000 and message 1001 is now 
the new 0001.  In order to facilitate reliable 
  messaging, the 
destination still 
  has to preserve all 1000 of the original message plus 
  
reconcile message 0001 as message 
  1001, not have duplicate message 
0001's in the sequence.  Since the messaging component 
  of the stack is 
relatively dumb 
  and will get its instructions for things like rolling 
  
back transactions form the 
  application/business layer, it cannot release 
the first 1000 messages since the upper stack logic may 
  dictate that if 
message 1003 is 
  not received in XX minutes, the entire sequence should 
  
roll back to message 934. 
   Accordingly, it must persist all messages in 
the sequence or throw an unrecoverable 
  fault.

The rollover is 
  currently an unrecoverable fault and nothing more.   
  
That is how it is written in the 
  current draft.

Did I miss 
  something?  Please correct me if I did.

Thanks

Duane Nickull

Paul Fremantle wrote:

>I think Jacques' points about handling the rollover 
  problem "smoothly" are
>key. I 
  would like to see an explicit sequence take-over model that can 
  be
>used to preserve ordering 
  across sequences where one sequence has ended -
>prematurely from the RM sources 
  perspective.
>
>
> 
   
>