3.1.1 Abstract Data Model
This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This specification does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this specification.
Note that the abstract data model can be implemented in a variety of ways. This protocol does not prescribe or advocate any specific implementation technique.
Protocol participants MUST be able to use MSDTC Connection Manager: OleTx Multiplexing Protocol [MS-CMP] connections as a transport protocol for sending messages. Section 2.1 defines the mechanisms by which this protocol initializes and makes use of the MSDTC Connection Manager: OleTx Multiplexing Protocol.
A protocol participant MUST extend the definition of a connection object, as specified in [MS-CMP] section 3.1.1.1, to include the following data element.
State: A state enumeration that represents the current state of the connection.
A state enumeration MUST contain a set of values that represent specific states in a logical state machine. For a connection type, these values represent the different states to which the connection's logical state machine is set during the lifetime of the connection.
When a protocol participant initiates or accepts a connection, the State field of the connection MUST be set initially to the Idle state. When the connection is disconnected, the Connection state MUST be set to the Ended state.
When an instance of a state machine enters the Ended state, the connection that is associated with the state machine MUST be disconnected, if it is not already disconnected, as specified in [MS-CMP] section 3.1.5.1.
A protocol participant MUST support both initiating and accepting multiple concurrent connections of any type inside the same MSDTC Connection Manager: OleTx Transports Protocol session or different MSDTC Connection Manager: OleTx Transports Protocol [MS-CMPO] sessions. Consequently, a protocol participant MUST support the existence of multiple instances of a single connection of the same type (sharing the same Connection ID and related to the same Session object). A protocol participant MUST also support initiating multiple concurrent sessions to a number of different endpoints.