3.1.6.3 Stream Receipt Coalescing Timer
This event MUST be generated with the following arguments:
None
Return Values:
None
This event indicates a time-out of the Stream Receipt Coalescing Timer (section 3.1.2.3). To process this event, the protocol MUST perform the following actions:
The protocol MUST stop the Stream Receipt Coalescing Timer.
The protocol MUST find the largest subset of messages within Stream.UnacknowledgedStreamMessages such that the smallest sequence number of the subset equals Stream.LastAcknowledgedStreamMessage+1 and there are no gaps in sequence numbers within the subset.
The protocol MUST set Stream.LastAcknowledgedStreamMessage to the highest sequence number of the subset that was computed above.
The protocol MUST create a stream receipt message that acknowledges the stream message with the sequence number Stream.LastAcknowledgedStreamMessage. The <streamId> element in the <streamReceipt> element MUST be set to Stream.IncomingId, and the <lastOrdinal> element MUST be set to Stream.LastAcknowledgedStreamMessage.
The stream receipt message MUST be addressed to the order queue of the sender of the stream messages to be acknowledged by setting the <to> element of the <path> element to Stream.SendReceiptsTo. The stream receipt message MUST be sent to the remote host as specified in section 3.1.7.2.5.
The protocol MUST remove the subset computed above from the Stream.UnacknowledgedStreamMessages collection.