Description
The
RM Destination imperatively terminates a sequence due to one of these unrecoverable
errors:
- wsrm:SequenceTerminated - wsrm:MessageNumberRollover - wsrm:LastMessageNumberExceeded
The
semantics of sequence termination due to a fault occurrence are not clearly
specified.
This uses the reworded
issue
Justification
Unless
an accurate and final acknowledgement status was sent back at the time the
sequence is closed, the Source will not know if some non-acknowledged messages
were actually received before the termination occurs. This gives the source
two unpleasant options: (a) resend all non-acknowledged message in a new
sequence, with the risk of causing undetectable duplicates, (b) not resend
any, and these will be lost.
Origin
Jacques
Durand
Proposal
12005-07-15
Two
options need be discussed: Option (1): At the time a Destination-controlled
termination gets into effect, a final and accurate Acknowledgement for the
entire sequence is sent back. Option (2): After the fault was notified to
Source, simply rely on regular termination procedure (either
expiration-based, or under Source control, so that the Source can complete
its resending of pending messages and get the final acks), meanwhile reject
any message for this sequence that exceeds the ending number in case of
MessageNumberRollover or LastMessageNumberExceeded.
|