ws-rx message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: [ws-rx] i0019 - a formal proposal - take 3
- From: Doug Davis <dug@us.ibm.com>
- To: ws-rx@lists.oasis-open.org
- Date: Tue, 30 Aug 2005 21:24:24 -0400
As promised, another round of edits - mainly
editoral based on the feedback on the mailing list.
Changed "Close" to "CloseSequence"
and "Closed" to "CloseSequenceResponse" to be consistent
with CreateSequence and TerminateSequence. When/if we do Chris' optimizations
we can shorten these if we want to.
thanks,
-Doug
__________________
Using the pdf file at http://www.oasis-open.org/apps/org/workgroup/ws-rx/download.php/13493/WS-ReliableMessaging-v1.0-wd-01.pdf
here's the proposal:
Change lines 340-347, the SeqAck syntax,
to:
<wsrm:SequenceAcknowledgement ...>
<wsrm:Identifier ...> xs:anyURI
</wsrm:Identifier>
[ [<wsrm:AcknowledgementRange
...
Upper="xs:unsignedLong"
Lower="xs:unsignedLong"/>
+
<wsrm:Final/>
? ]
| <wsrm:Nack> xs:unsignedLong
</wsrm:Nack> + ]
...
</wsrm:SequenceAcknowledgement>
After line 378, add to the description
of the SeqAck elements:
/wsrm:SequenceAcknowledgement/wsrm:Final
This optional element, if present,
indicates that the RM
Destination is not accepting new
messages for the
specified Sequence. The RM
Source can be assured that
the ranges of messages acknowledged
by this
SequenceAcknowledgement header block
will not change in the
future. Any attempt to deliver
additional messages to this
sequence MUST generate a SequenceClosed
fault by the RM
Destination. This element
MUST be present when the Sequence
is no longer accepting new message.
Note: this element MUST NOT be used
when sending a Nack, it
can only be used when sending AcknowledgementRanges.
On lines 569 and 570 change:
After an RM Source receives the
<SequenceAcknowledgement>
acknowledging the complete range
of messages in a Sequence, it
sends a ...
to
When the RM Source has completed
its use of the Sequence, it
sends a ...
To the end of that para, at the end of
line 574, add:
Note, under normal usage the RM
source will complete its use of
the sequence when all of the messages
in the Sequence have been
acknowledged. However, the
RM Source is free to Terminate
or Close a Sequence at any time
regardless of the acknowledgement
state of the messages.
Change lines 581 and 582 from:
This element is sent by an RM Source
after it has received the
final <SequenceAcknowledgement>
covering the full range of a Sequence.
to
This element is sent by an RM Source
to indicate it has completed
its use of the Sequence, i.e. it
will not attempt to send any
additional application messages
to the RM Destination. RM protocol
messages, e.g. AckRequested, CloseSequence
and TerminateSequence
may still be sent.
After line 396, add a new section about
closing a Sequence:
3.6 Closing A Sequence
There may be times during the use
of an RM Sequence that the RM
Source will wish to discontinue
using a Sequence even if some of the
messages have not been successfully
delivered to the RM Destination.
While the RM Source can send a TerminateSequence
to the RM Destination,
since this is a one-way message
and due to the possibility of late
arriving (or lost) messages and
Acknowledgements, this would leave
the RM Source unsure of the final
ranges of messages that were
successfully delivered to the RM
Destination.
To alleviate this, the RM Source
can send a <wsrm:CloseSequence> element,
in the body of a message, to the
RM Destination to indicate that
RM Destination MUST NOT accept any
new application messages for the
specified sequence, other than those
already received at the time
the <wsrm:CloseSequence> element is interpreted by the RMD.
Upon receipt
of this message the RM Destination
MUST send a SequenceAcknowledgement
to the RM Source. Note, this
SequenceAcknowledgement MUST include the
<wsrm:Final> element indicating
that the RM Destination will not accept
any new messages for this sequence.
While the RM Destination MUST NOT
accept any new application messages
it MUST still accept and process
RM protocol messages. For example,
it MUST accept and respond to AckRequested,
TerminateSequence as well as
CloseSequence messages. Note,
subsequent CloseSequence messages have no
effect on the state of the sequence.
When a Sequence is closed and there
are messages at the RM Destination
that are waiting for lower-numbered
messages to arrive (such as the
case when InOrder and ExactlyOnce
delivery assurance is being enforced)
before they can be delivered to
the RM Destination's application, the RM
Destination MUST NOT deliver those
messages.
The following exemplar defines the
CloseSequence syntax:
<wsrm:CloseSequence wsrm:Identifier="xs:anyURI"/>
/wsrm:CloseSequence
This element is sent by an RM Source
to indicate that the RM
Destination MUST NOT accept any
new messages for this sequence.
Any attempt to deliver additional
messages to this sequence
MUST generate a SequenceClosed fault
by the RM Destination.
/wsrm:CloseSequence@Identifier
This required attribute contains
an absolute URI conformant
with RFC2396 that uniquely identifies
the sequence.
/wsrm:CloseSequence/{any}
This is an extensibility mechanism
to allow different (extensible)
types of information, based on a
schema, to be passed.
/wsrm:CloseSequence@{any}
This is an extensibility mechanism
to allow additional attributes,
based on schemas, to be added to
the element.
A <wsrm:CloseSequenceResponse>
is sent in the body of a response message by
an RM Destination in response to
receipt of a <wsrm:CloseSequence> request
message. It indicates that
the RM Destination has closed the
sequence.
The following exemplar defines the
<wsrm:Closed> syntax:
/wsrm:CloseSequenceResponse
The element is sent in the body
of a response message by
an RM Destination in response to
receipt of a <wsrm:CloseSequence> request
message. It indicates that
the RM Destination has closed the
sequence.
/wsrm:CloseSequenceResponse/{any}
This is an extensibility mechanism
to allow different (extensible)
types of information, based on a
schema, to be passed.
/wsrm:CloseSequenceResponse@{any}
This is an extensibility mechanism
to allow additional attributes,
based on schemas, to be added to
the element.
On lines 735 and 746 make these faults
non-terminating by removing:
It is an unrecoverable error and
terminates the Sequence.
After line 760, add a new fault:
4.8 Sequence Closed
This fault is sent by an RM Destination
to indicate that it has
received a message for a sequence
that is closed.
Properties:
[Code] Sender
[Subcode] wsrm:SequenceClosed
[Reason] The sequence is closed
and can not accept new messages.
[Detail] empty.
Add the proper XML to the schema and WSDL....
thanks,
-Doug
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]