3.3.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 document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

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.

The TIP subordinate transaction manager facet MUST extend the definition of the State field of the TIP connection object as specified in section 3.1.1.2 to include the following values:

  • State: An enumeration that indicates what state the TIP connection is in. This field MUST be set to one of the values in the extended enumeration. The following are the extension values:

    • Idle Pull: The TIP connection is waiting for a reply to a PULL TIP command sent while in the Idle state.

    • Idle Query: The TIP connection is waiting for a reply to a QUERY TIP command sent in the Idle state.

    • Enlisted: The TIP connection is associated with a transaction object and will receive TIP commands from its partner transaction manager regarding the transaction's outcome.

    • Enlisted Prepare: The TIP connection is processing the PREPARE TIP command received while in the Enlisted state.

    • Enlisted Commit: The TIP connection is processing the COMMIT TIP command received while in the Enlisted state.

    • Prepared: The transaction associated with the TIP connection has completed Phase 1.

    • Aborted: The TIP connection will send the ABORTED TIP command, because the associated transaction has been unilaterally aborted.