ws-rx message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: i019 - Proposal #5
- From: Doug Davis <dug@us.ibm.com>
- To: ws-rx@lists.oasis-open.org
- Date: Mon, 5 Sep 2005 20:05:16 -0400
DougB proposed some good editoral fixes. Picked
up the change about when Close should be used, removed the bit about InOrder+ExactlyOne
DA, and the typo he noticed.
thanks
-DougD
__________________
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 or RM Destination will wish to discontinue
using a Sequence
even if some of the messages have not been
successfully delivered
to the RM Destination.
In the case where the RM Source wishes to discontinue
use of a
sequence, while it 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.
In the case where the RM Destination wishes
to discontinue use of a
sequence it may 'close' the sequence itself. Please see wsrm:Final
above and the Sequence Closed fault below. Note the SequenceClosed
Fault SHOULD be used in place of the SequenceTerminated Fault,
whenever possible, to allow the RM Source to still receive
Acknowledgements.
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:CloseSequenceResponse>
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 the
specified sequence has been closed.
Properties:
[Code] Sender
[Subcode] wsrm:SequenceClosed
[Reason] The sequence is closed and can not
accept new messages.
[Detail] <wsrm:Identifier...> xs:anyURI
</wsrm:Identifier>
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]