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