1.1 Glossary

This document uses the following terms:

application: A participant that is responsible for beginning, propagating, and completing an atomic transaction. An application communicates with a transaction manager in order to begin and complete transactions. An application communicates with a transaction manager in order to marshal transactions to and from other applications. An application also communicates in application-specific ways with a resource manager in order to submit requests for work on resources.

ASCII: The American Standard Code for Information Interchange (ASCII) is an 8-bit character-encoding scheme based on the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that work with text. ASCII refers to a single 8-bit ASCII character or an array of 8-bit ASCII characters with the high bit of each character set to zero.

atomic transaction: A shared activity that provides mechanisms for achieving the atomicity, consistency, isolation, and durability (ACID) properties when state changes occur inside participating resource managers.

branch: See XA Transaction Branch.

child branch: The second or later XA Transaction Branch created on an XA Subordinate Transaction Manager Facet for a given XA Global Transaction Identifier when using tight coupling.

connection: In OleTx, an ordered set of logically related messages. The relationship between the messages is defined by the higher-layer protocol, but they are guaranteed to be delivered exactly one time and in order relative to other messages in the connection.

core transaction manager facet: The facet that acts as the internal coordinator of each transaction that is inside the transaction manager. The core transaction manager facet communicates with other facets in its transaction manager to ensure that each transaction is processed correctly. To accomplish this, the core transaction manager facet maintains critical transaction state, in both volatile memory and in a durable store, such as in a log file.

distributed transaction: A transaction that updates data on two or more networked computer systems. Distributed transactions extend the benefits of transactions to applications that must update distributed data.

enlistment: The relationship between a participant and a transaction manager in an atomic transaction. The term typically refers to the relationship between a resource manager and its transaction manager, or between a subordinate transaction manager facet and its superior transaction manager facet.

facet: In OleTx, a subsystem in a transaction manager that maintains its own per-transaction state and responds to intra-transaction manager events from other facets. A facet can also be responsible for communicating with other participants of a transaction.

globally unique identifier (GUID): A term used interchangeably with universally unique identifier (UUID) in Microsoft protocol technical documents (TDs). Interchanging the usage of these terms does not imply or require a specific algorithm or mechanism to generate the value. Specifically, the use of this term does not imply or require that the algorithms described in [RFC4122] or [C706] must be used for generating the GUID. See also universally unique identifier (UUID).

In Doubt outcome: One of the outcomes of an atomic transaction. The In Doubt outcome indicates that a commit request was issued by the root application but that the transaction manager cannot ascertain the actual commit or abort decision.

loose coupling: A scheme for mapping XA Transaction Branches to atomic transactions. Each loosely coupled XA Transaction Branch is treated as operating under a different atomic transaction by the XA Subordinate Transaction Manager Facet.

message: A data structure representing a unit of data transfer between distributed applications. A message has message properties, which may include message header properties, a message body property, and message trailer properties.

message tag (MTAG): A message that is sent between participants in the context of connections.

OleTx: A comprehensive distributed transaction manager processing protocol that uses the protocols specified in the following document(s): [MS-CMPO], [MS-CMP], [MS-DTCLU], [MS-DTCM], [MS-DTCO], [MC-DTCXA], [MS-TIPP], and [MS-CMOM].

one pipe: A model of communication between an XA Resource Manager Bridge, an XA Resource Manager Bridge Facet, a Transaction Manager, and an XA Resource Manager. For more information, see the description in section 1.3.1.2.

one-pipe XA Resource Manager: An XA Resource Manager that uses the one-pipe model to communicate with a Transaction Manager.

outcome: One of the three possible results (Commit, Abort, In Doubt) reachable at the end of a life cycle for an atomic transaction.

parent branch: The first XA Transaction Branch created on an XA Subordinate Transaction Manager Facet for a given XA Global Transaction Identifier when using tight coupling.

participant: Any of the parties that are involved in an atomic transaction and that have a stake in the operations that are performed under the transaction or in the outcome of the transaction ([WSAT10], [WSAT11]).

Phase One: The initial phase of a two-phase commit sequence. During this phase, the participants in the transaction are requested to prepare to be committed. This phase is also known as the "Prepare" phase. At the end of Phase One, the outcome of the transaction is known.

Phase Two: The second phase of a two-phase commit sequence. This phase occurs after the decision to commit or abort is determined. During this phase, the participants in the transaction are ordered to either commit or rollback.

recovery: The process of reestablishing connectivity and synchronizing views on the outcome of transactions between two participants after a transient failure. Recovery occurs either between a resource manager and a transaction manager, or between a Superior Transaction Manager Facet and a Subordinate Transaction Manager Facet.

resource manager (RM): The participant that is responsible for coordinating the state of a resource with the outcome of atomic transactions. For a specified transaction, a resource manager enlists with exactly one transaction manager to vote on that transaction outcome and to obtain the final outcome. A resource manager is either durable or volatile, depending on its resource.

Resource Manager Cookie: An identifier used to uniquely identify an XA Resource Manager Proxy object between calls to XA Resource Manager Bridge high-level events.

single-phase commit: An optimization of the Two-Phase Commit Protocol in which a transaction manager delegates the right to decide the outcome of a transaction to its only subordinate participant. This optimization can result in an In Doubt outcome.

subordinate transaction manager: A role taken by a transaction manager that is responsible for voting on the outcome of an atomic transaction. A subordinate transaction manager coordinates the voting and notification of its subordinate participants on behalf of its superior transaction manager. When communicating with those subordinate participants, the subordinate transaction manager acts in the role of superior transaction manager. The root transaction manager is never a subordinate transaction manager. A subordinate transaction manager has exactly one superior transaction manager.

superior transaction manager: A role taken by a transaction manager that is responsible for gathering outcome votes and providing the final transaction outcome. A root transaction manager can act as a superior transaction manager to a number of subordinate transaction managers. A transaction manager can act as both a subordinate transaction manager and a superior transaction manager on the same transaction.

tight coupling: A scheme for mapping XA Transaction Branches to atomic transactions. All tightly coupled XA Transaction Branches with the same XA Global Transaction Identifier are treated as operating under one atomic transaction by the XA Subordinate Transaction Manager Facet.

transaction: In OleTx, an atomic transaction.

transaction identifier: The GUID that uniquely identifies an atomic transaction.

transaction manager: The party that is responsible for managing and distributing the outcome of atomic transactions. A transaction manager is either a root transaction manager or a subordinate transaction manager for a specified transaction.

transient failure: Any event that could result in a loss of transport connectivity between participants, such as a software crash, a software restart, or a temporary problem with network connections.

two pipe: A model of communication between an XA Resource Manager Bridge, an XA Resource Manager Bridge Facet, a Transaction Manager, and an XA Resource Manager. For more information, see the description in section 1.3.1.2.

two-phase commit: An agreement protocol that is used to resolve the outcome of an atomic transaction in response to a commit request from the root application. Phase One and Phase Two are the distinct phases of the Two-Phase Commit Protocol.

two-pipe XA Resource Manager: An XA Resource Manager that uses the two-pipe model to communicate with a Transaction Manager.

work: The set of state changes that are applied to resources inside an atomic transaction.

XA Branch Identifier: The globally unique identifier (GUID) used by an XA Resource Manager Bridge to generate the XA Branch Qualifier (BQUAL) of an XA Transaction Branch Identifier (XID). This GUID uniquely identifies the XA Transaction Branch within an XA Resource Manager Bridge Facet and XA Resource Manager.

XA Branch Qualifier (BQUAL): A field of an XID that uniquely identifies an XA Transaction Branch within a transaction. For more information, see [XOPEN-DTP].

XA Format Identifier: A format identifier for an XID. For more information, see [XOPEN-DTP].

XA Global Transaction Identifier: A field of an XID that uniquely identifies a transaction. For more information, see [XOPEN-DTP].

XA Interface: A bidirectional interface between a transaction manager and a resource manager. This interface is specified in [XOPEN-DTP].

XA Protocol: A protocol used to communicate XA interface calls. This protocol is implemented by an XA Resource Manager and is implementation specific.

XA Resource Manager: A resource manager that uses the XA interface specified in [XOPEN-DTP] to communicate with an XA Transaction Manager.

XA Resource Manager Bridge: A software component that allows an application to enlist an XA Resource Manager in an OleTx Transaction.

XA Resource Manager Bridge Facet: A software component that allows a Transaction Manager to communicate with an XA Resource Manager Bridge.

XA Resource Manager Instance Identifier: An identifier used to uniquely identify an instance of an XA Resource Manager. It does not persist through failure or software restart.

XA Superior Transaction Manager Identifier (Resource Manager Recovery GUID): A GUID used to uniquely identify an XA Superior Transaction Manager to an XA Subordinate Transaction Manager Facet. This identifier must persist through transient failure and recovery.

XA Transaction Branch: Represents a single Unit of Work done under a transaction. For more information, see [XOPEN-DTP].

XA Transaction Branch Identifier (XID): An identifier for an XA Transaction Branch.

XA Transaction Manager: A Superior Transaction Manager that uses the protocol specified in [XOPEN-DTP] to communicate with XA Resource Managers.

XA Transaction Manager Identifier: A GUID used by an XA Resource Manager Bridge to generate the BQUAL of an XID. This GUID uniquely identifies the XA Resource Manager Bridge Facet with which the XID is associated.

MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.