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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ws-rx message

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


Subject: NEW ISSUE: design: Implications of Sequence Expiration not specified


In the June 26 version of WD 15 there exist definitions of wsrm:Expires in Section 3.1 “Sequence Creation” in portions describing CreateSequence, CreateSequenceResponse, and CreateSequence/Offer .  Nowhere, however is there a description of what happens upon Sequence expiry.

Also, it is not clear to what base the specified duration is relative.

Since there are three identical definitions of the wsrm:Expires child element, it may be a “good thing”[1] to factor all three to one location

 

There are three alternatives:

1) Upon expiry, Sequence closes

2) Upon expiry RMS or RMS transmit a fault

3) Upon expiry, the sequence simply terminates

 

Argument:

Since both sides of the protocol are aware of the value of wsrm:Expires  they are likely to have a roughly similar understanding other than skew due to the effects of transit time and processing delay.  It is expected, although not stated, that the duration specified by wsrm:Expires will be relatively large and set to a value greater than the duration of the expected time for transfer of the complete sequence.

If this is the case, and if the sole purpose of wsrm:Expires is intended to be a garbage collection hint with no other protocol purpose, then it can be argued that the Sequence may be simply and silently terminated by either RMS or RMD upon Sequence expiration.  Attempts made to transmit messages related to the expired Sequence will be met with an UnknownSequence fault since in termination all state may be recovered related to the sequence.  I thus favor option 3 above.

 

Proposal:

Add a sub-section 3.9, without mucking up the references contained in the State Tables J entitles “Sequence Expiration”

The lifetime of a Sequence is limited to a calculated time derived from the duration specified in the wsrm:Expires child element of the wsrm:CreateSequence, wsrm:CreateSequenceResponse, and wsrm:CreateSequence/wsrm:Offer elements. 

 

wsrm:Expires

 

This child element, if present, of type xs:duration specifies the duration for the lifetime of a Sequence. A value of 'PT0S' indicates that the Sequence will never expire. Absence of the element indicates an implied value of 'PT0S'.

 

The RM Destination SHALL consider the Sequence to be expired at a time determined from the value of the local clock at the time of processing the wsrm:CreateSequence added to the smaller of the duration contained in the received wsrm:CreateSequence/wsrm:Expires and some locally defined constrained duration.

 

The RM Destination SHALL insert a wsrm:Expires element as a child of the wsrm:CreateSequenceResponse produced in response to wsrm:CreateSequence if the RM Destination asserts a wsrm:Expires value smaller than unlimited.  The value of wsrm:CreateSequenceResponse/wsrm:Expires shall be the smaller of the value wsrm:CreateSequence/wsrm:Expires and some locally defined constrained duration asserted by the RM Destination.

 

The RM Source SHALL consider the Sequence to be expired at a time determined from the value of the local clock at the time of processing the wsrm:CreateSequenceResponse added to the value of wsrm:CreateSequenceResponse/wsrm:Expires.

 

Both the RM Source and RM Destination SHALL terminate the Sequence at the end of the Sequence lifetime.

 

Modify text in definitions of wsrm:Expires elsewhere to point to this new section 3.9

 

State table implications:

RMS:

Row:Expires exceeded[int]{3.9} | N/A | N/A | No Action[None]{3.9} | No Action[None]{3.9} | No Action[None]{3.9} | No Action[None]{3.9} | No Action[None]{3.9}

 

RMD:

Row: Expires exceeded[int]{3.9} | N/A |  No Action[None]{3.9} | No Action[None]{3.9}

 

 

 

 

 

 

 

 

 

 

 

 

[1] TM, Martha Stewart Omnimedia



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