3.2.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 the behavior that is described in this document.

An LU 6.2 Implementation MUST maintain all the data elements that are specified in section 3.1.1.

An LU 6.2 Implementation MUST also maintain the following data elements:

  • Transaction Manager Name: A Name object that identifies the transaction manager that is associated with the LU 6.2 Implementation.

  • Recovery Sequence Number Table: A table of recovery sequence numbers, keyed by LU Name Pair.

    • Recovery Sequence Number: A sequence number that is used to demarcate sequences of Recovery protocol messages and therefore, to make it possible to detect obsolete Recovery protocol messages. The recovery sequence number is initialized to 0.

  • The connection object of type CONNTYPE_TXUSER_DTCLURECOVERY (section 2.2.3.2) MUST be extended to include the following data field:

    • LU Name Pair: Specifies a reference to the LU Pair object that is associated with the connection.

  • The connection object of type CONNTYPE_TXUSER_DTCLURECOVERYINITIATEDBYDTC MUST be extended to include the following data fields:

    • Early Compare States Check Done: This flag is used to indicate whether the Compare States check query was processed during Warm XLN.

    • Transaction Found To Recover: This flag is used to indicate whether there are transactions that require recovery work to be performed.

  • The connection object of type CONNTYPE_TXUSER_DTCLURECOVERYINITIATEDBYLU MUST be extended to include the following data fields:

    • LU Pair: Specifies a reference to the LU Pair object that is associated with the connection.

    • LUW To Recover: Specifies a reference to the LUW object that is associated with the connection.

An LU 6.2 Implementation MUST provide the states that are defined in the following sections for its supported connection types.

An LU 6.2 Implementation MAY<4> also maintain the following data element:

  • LU Transactions Enabled: This flag specifies whether a transaction manager has enabled this protocol. This flag is used to disable or enable all functionality of this protocol.

The LU Transactions Enabled flag is initialized based on the value of the Allow LUTransactions flag in the transaction manager, as specified in section 3.2.3.