3.1.1.1.5 SRMPState

The SRMPState data element is a private data element that is used for maintaining SRMP protocol-specific state. There is exactly one instance of SRMPState per queue manager.

The SRMPState data element contains the following attributes:

MessageIdOrdinal: A monotonically increasing value that is used in SRMPMessage.Identifier. This value is incremented by 1 for each message that the protocol sends. This value MUST be saved to persistent storage.

StreamIdOrdinal: A monotonically increasing value that is used in Stream.Id. This value is incremented by 1 for each stream sequence that the protocol sends. This value MUST be saved to persistent storage.

MessageIdHistoryTable: This table contains a history of SRMPMessage.Identifier values from messages that the protocol host has received. This table provides a lightweight duplicate elimination mechanism. When a message arrives, the SRMPMessage.Identifier value is checked against this table. If the value exists, the packet MUST be rejected as a duplicate. The length of history that this table maintains is implementation-dependent. This value SHOULD<16> be saved to persistent storage.

ResendTimerTable: A table that contains the duration of the resend times for stream messages.<17>

RetransmissionTimeout: The time, in milliseconds, that the protocol waits before retransmitting messages that have not received a positive or negative HTTP response from the remote QM.

StreamCollection: A reference to a collection of stream data elements. This attribute represents the currently active streams that the protocol is maintaining. Only a single stream is active at any time for a given OutgoingQueue on a sending QM. However, multiple streams can be active between a single sender and multiple receiving QMs or a single sender and multiple destination queues on a single QM.