A distributed TP system consists of computer hardware and software hosting a transaction-oriented application that performs those routine transactions necessary to conduct business. Examples include systems that manage sales order entry, airline reservations, payroll, employee records, and shipping.
When a TP system provides distributed capabilities, you can design transactions that span transaction-aware data stores, such as databases and message queues. Even though they span multiple data resources, distributed transactions maintain the ACID properties required to run robust, distributed applications.
Distributed TP systems consist of several cooperating entities, as described in the following sections.
A TP monitor is software that sits between a transaction-aware application and a collection of services. It maximizes operating system activities, streamlines network communications, and connects multiple clients to multiple applications, which potentially access multiple data resources.
Instead of writing an application that manages a multi-user, distributed environment, you write an application that consists of single transaction requests. The monitor scales your application as required.
In a distributed transaction, each participating resource has a local transaction manager (TM) to track incoming and outgoing transactions on that computer. The TP monitor assigns one TM the additional task of coordinating all activities among local TMs. The TM that coordinates transaction activities is called the root or coordinating TM.
A TM coordinates and manages all transaction-processing functions, such as the two-phase commit, but it is not equipped to manage data directly. Resource managers handle data-related activities.
A resource manager (RM) is a system service that manages persistent or durable data in databases, durable message queues, or transactional file systems. It is the resource manager that knows how to store data and perform disaster recovery.
A resource dispenser manages nondurable state that can be shared. The ODBC Resource Dispenser, for example, manages pools of database connections, reclaiming each connection when it is no longer needed.