Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following diagram shows the sequence of events for reliable messaging with TCP as the transport.
Figure 18: Reliable messaging with TCP as transport
The RM Source (RMS) sends a CreateSequence message, as specified in [WSRM1-1] section 3.4, to the RM Destination (RMD).
The RMD sends a CreateSequenceResponse message, as specified in [WSRM1-1] section 3.4, to the RMS.
The RMS sends the first message to the RMD with MessageNumber = 1 and an <AckRequested> element header block in the header to signal to the RMD that the RMS is requesting a <SequenceAcknowledgement> element to be returned, as specified in [WSRM1-1] section 3.3.
<r:AckRequested> <r:Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</r:Identifier> </r:AckRequested> <r:Sequence s:mustUnderstand="1"> <r:Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</r:Identifier> <r:MessageNumber>1</r:MessageNumber> </r:Sequence>
The RMD responds with acknowledgement range = 1, 1 in a <SequenceAcknowledgement> element header block, as specified in [WSRM1-1] section 3.2.
<r:SequenceAcknowledgement> <r:Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</r:Identifier> <r:AcknowledgementRange Lower="1" Upper="1"/> </r:SequenceAcknowledgement>
The RMS sends a second message to the RMD with MessageNumber = 2 and an <AckRequested> element header block in the header to signal to the RMD that the RMS is requesting that a <SequenceAcknowledgement> element be returned, as specified in [WSRM1-1] section 3.3.
<r:AckRequested> <r:Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</r:Identifier> </r:AckRequested> <r:Sequence s:mustUnderstand="1"> <r:Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</r:Identifier> <r:MessageNumber>2</r:MessageNumber> </r:Sequence>
The RMD responds with acknowledgement range = 1, 2 in <SequenceAcknowledgement> element header block, as specified in [WSRM1-1] section 3.2.
<r:SequenceAcknowledgement> <r:Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</r:Identifier> <r:AcknowledgementRange Lower="1" Upper="2"/> </r:SequenceAcknowledgement>
The RMS sends the last message to RMD with MessageNumber = 3 and an <AckRequested> element header block in the header to signal to the RMD that the RMS is requesting that a <SequenceAcknowledgement> element be returned, as in [WSRM1-1] section 3.3. It adds a <LastMessage> element in the sequence block to indicate to the RMD that this message is the last message in the sequence.
<s:Envelope> <s:Header> <!-- ... --> <r:Sequence s:mustUnderstand="1"> <r:Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</r:Identifier> <r:MessageNumber>3</r:MessageNumber> <r:LastMessage /> </r:Sequence> <a:Action s:mustUnderstand="1"> http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage </a:Action> <a:To s:mustUnderstand="1"> net.tcp://10.185.189.61:9000/servicemodelsamples/service </a:To> </s:Header> <s:Body /> </s:Envelope>
The RMD responds with an acknowledgement range = 1, 3 in the <SequenceAcknowledgement> element header block, as specified in [WSRM1-1] section 3.2.
<r:SequenceAcknowledgement> <r:Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</r:Identifier> <r:AcknowledgementRange Lower="1" Upper="3"/> </r:SequenceAcknowledgement>
After receiving acknowledgement of the last message, RMS sends a <TerminateSequence> element, as specified in [WSRM1-1] section 3.5.
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"> <s:Header> <a:Action s:mustUnderstand="1"> http://schemas.xmlsoap.org/ws/2005/02/rm/TerminateSequence </a:Action> <a:To s:mustUnderstand="1"> net.tcp://10.185.189.61:9000/servicemodelsamples/service </a:To> </s:Header> <s:Body> <TerminateSequence xmlns="http://schemas.xmlsoap.org/ws/2005/02/rm"> <Identifier>urn:uuid:cd8ea5a2-4867-45ed-bb39-46c4cab2213f</Identifier> </TerminateSequence> </s:Body> </s:Envelope>