1.1 Glossary

This document uses the following terms:

abort outcome: A possible outcome of an atomic transaction that indicates that the work performed during the lifetime of the transaction is discarded after the transaction completes. An abort outcome is reached when at least one transaction participant does not agree to commit the transaction.

abort request: An action that a participant performs to force a transaction to reach an abort outcome.

acceptor: A participant that receives a session or connection request. This role is also known as the "subordinate".

ACID: A term that refers to the four properties that any database system has to achieve in order to be considered transactional: Atomicity, Consistency, Isolation, and Durability.

action: The smallest unit of work in a workflow system. An action can contain one or more tasks that define work that actors need to do. Actions are deployed and registered in the workflow system to be activated by protocol client users.

active phase: The time during the lifetime of an atomic transaction before the commit request when the participants in the transaction (applications and resource managers) perform all their intended work operations inside the transaction.

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.

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.

begin request: The action that is performed by a root application in order to create a new atomic transaction.

byte order mark: A Unicode character that is used to indicate that text is encoded in UTF-8, UTF-16, or UTF-32.

commit outcome: One of the outcomes of an atomic transaction. The commit outcome indicates that the work performed during the lifetime of the transaction will be retained after the transaction has completed, as specified by the ACID properties. A commit outcome is reached when all transaction participants agree to commit the transaction.

commit request: The action that is performed by a root application to initiate the Two-Phase Commit Protocol for an atomic transaction.

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.

connection type: A specific set of interactions between participants in an OleTx protocol that accomplishes a specific set of state changes. A connection type consists of a bidirectional sequence of messages that are conveyed by using the MSDTC Connection Manager: OleTx Transports Protocol and the MSDTC Connection Manager: OleTx Multiplexing Protocol transport protocol, as described in [MS-CMPO] and [MS-CMP]. A specified transaction typically involves many different connection types during its lifetime.

contact identifier: A universally unique identifier (UUID) that identifies a partner in the MSDTC Connection Manager: OleTx Transports Protocol. These UUIDs are frequently converted to and from string representations. This string representation must follow the format specified in [C706] Appendix A. In addition, the UUIDs must be compared, as specified in [C706] Appendix A.

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.

durable resource: A resource whose state is expected to be retained beyond the lifetime of a particular resource manager connection. Durable resources are managed by durable resource managers.

durable resource manager: A resource manager that manages resources whose states are expected to be maintained beyond the lifetime of a particular resource manager connection.

endpoint: A network-specific address of a remote procedure call (RPC) server process for remote procedure calls. The actual name and type of the endpoint depends on the RPC protocol sequence that is being used. For example, for RPC over TCP (RPC Protocol Sequence ncacn_ip_tcp), an endpoint might be TCP port 1025. For RPC over Server Message Block (RPC Protocol Sequence ncacn_np), an endpoint might be the name of a named pipe. For more information, see [C706].

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.

extended whereabouts: The data that is provided by a protocol extension and that indicates its network endpoint location and other information that is relevant to the protocol extension.

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.

initiator: A participant that originates a session or connection request.

man in the middle (MITM): An attack that deceives a server or client into accepting an unauthorized upstream host as the actual legitimate host. Instead, the upstream host is an attacker's host that is manipulating the network so that the attacker's host appears to be the desired destination. This enables the attacker to decrypt and access all network traffic that would go to the legitimate host. The attacker is able to read, insert, and modify at-will messages between two hosts without either party knowing that the link between them is compromised.

marshal: To encode one or more data structures into an octet stream using a specific remote procedure call (RPC) transfer syntax (for example, marshaling a 32-bit integer).

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

NetBIOS host name: The NetBIOS name of a host (as described in [RFC1001] section 14 and [RFC1002] section 4), with the extensions described in [MS-NBTE].

NULL GUID: A GUID of all zeros.

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].

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

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 One enlistment: An enlistment that indicates that the subordinate participant participates in Phase One.

Phase One participant: A participant in a Phase One enlistment.

Phase Two enlistment: An enlistment that indicates that the subordinate participant participates in Phase Two.

Phase Zero: A phase in distributed transaction processing that is composed of one or more Phase Zero waves. At the beginning of a Phase Zero wave, all Phase Zero participants are notified that the transaction has entered Phase Zero. While the participants process the Phase Zero notification, they can continue to marshal the transaction to new participants. Consequently, participating transaction managers can still accept new enlistments during Phase Zero.

Phase Zero enlistment: An enlistment that indicates that the subordinate participant participates in Phase Zero.

Phase Zero participant: A participant with a Phase Zero enlistment.

Phase Zero wave: A discrete stage inside Phase Zero processing in which Phase Zero notifications are sent to all known Phase Zero enlistments. New Phase Zero enlistments that appear during a Phase Zero wave are processed during the next Phase Zero wave. The process is repeated until a Phase Zero wave is processed without the creation of new Phase Zero enlistments.

presumed abort: An optimization of the Two-Phase Commit Protocol in which a transaction manager omits persisting transaction abort outcomes from a durable store.

protocol extension: An addition of new integrated behavior to an existing protocol.

pull propagation: An operation that enables the untargeted marshaling of a transaction from one application or resource manager to another. Pull propagation allows the source participant to marshal the transaction without the prior knowledge of the contact information of the transaction manager of the destination participant.

push propagation: An operation that enables the targeted marshaling of a transaction from one application or resource manager to another. For marshaling the transaction, push propagation requires the source participant to have prior knowledge about the contact information of the transaction manager of the destination participant.

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.

registration: The procedure in which a transmitter is able to uniquely identify a receiver.

resource: A logical entity or unit of data whose state changes in accordance with the outcome of an atomic transaction. Resources are either durable or volatile.

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 identifier: The GUID that uniquely identifies the resource manager.

resource manager session identifier: The GUID that uniquely identifies a particular session between the resource manager and a transaction manager.

rollback: Synonymous with abort.

root application: The application that is responsible for beginning and completing an atomic transaction. The root application communicates with a root transaction manager in order to begin and complete transactions.

root transaction manager: The specific transaction manager that processes both the Begin Request and the Commit Request for a specified transaction. A specified transaction has exactly one root transaction manager.

session: In OleTx, a transport-level connection between a Transaction Manager and another Distributed Transaction participant over which multiplexed logical connections and messages flow. A session remains active so long as there are logical connections using it.

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 participant: A role that is taken by a participant that is responsible for voting on the outcome of an atomic transaction. For a specified transaction, the set of subordinate participants is the set of all resource managers and the set of all subordinate transaction managers.

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.

task: A component of an action that defines the work that actors need to do within a workflow system. An action can have zero or more tasks that are each assigned to different targets. There is a one-to-one correlation between tasks and targets.

transaction: In OleTx, an atomic transaction.

transaction description: An implementation-specific string that is associated with an atomic transaction and is often used to provide human-readable information about the transaction. Description strings are typically provided by the higher-layer software.

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

transaction lifetime: The lifetime of an atomic transaction. The transaction lifetime extends from the time when the root transaction manager processes a begin request to the time when all participants have forgotten the 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.

transaction marshaling: The act of serializing and deserializing the information that is needed to carry out a transaction propagation action on a specified transaction.

transaction propagation: The act of coordinating two transaction managers to work together on a single atomic transaction. When propagating a transaction to a transaction manager that is not already a participant in the transaction, that transaction manager plays the role of subordinate transaction manager to the originating transaction manager, which will play the role of superior transaction manager. When propagating a transaction to a transaction manager that is already a participant in the transaction, no new superior or subordinate relationship is established.

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-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.

Unicode: A character encoding standard developed by the Unicode Consortium that represents almost all of the written languages of the world. The Unicode standard [UNICODE5.0.0/2007] provides three forms (UTF-8, UTF-16, and UTF-32) and seven schemes (UTF-8, UTF-16, UTF-16 BE, UTF-16 LE, UTF-32, UTF-32 LE, and UTF-32 BE).

volatile resource: A resource whose value is not expected to be retained beyond the lifetime of a particular resource manager connection.

volatile resource manager: A resource manager that manages volatile resources. A volatile resource manager does not perform recovery operations.

voter: A participant in an atomic transaction that contributes to the final outcome of the transaction but does not manage access to durable resources or require recovery services. A voter votes on the outcome of the transaction, but it is provided with only best-effort outcome notifications by the transaction manager. A volatile resource manager typically acts as a voter.

voter enlistment: An enlistment that indicates that the voter participates in Phase One.

whereabouts: Data that indicates the network endpoint location and properties of a transaction manager.

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

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.