The transaction manager and the resource manager are the two key elements of any transactional system. Generally, distributed transactions have five components:
- Transaction manager
- Application server
- Resource manager
- Application program
- Communication resource manager
Each of these contributes to the distributed transaction processing system by implementing different sets of transaction APIs and functionalities.
- A Transaction Manager provides the services and management functions required to support transaction demarcation, transactional resource management, synchronization, and transaction context propagation.
- An application server provides the infrastructure required to support the application runtime environment, which includes transaction state management. An example of such an application server is an EJB server.
- A Resource Manager (RM) provides the application access to resources through a resource adapter. The resource manager participates in distributed transactions by implementing a transaction resource interface. This interface is used by the transaction manager to communicate transaction associations, transaction completion as well as recovery work. FioranoMQ is a resource manager.
- A transactional application specifies actions that form part of a transaction. These programs can require actions such as updating a database or sending messages. Such standalone Java client programs might want to control their transaction boundaries using a high-level interface provided by an application server or the transaction manager.
- A Communication Resource Manager (CRM) supports transaction context propagation and access to the transaction service for incoming requests.
From the transaction manager's perspective, the actual implementation of the transaction services does not need to be exposed. Only high-level interfaces need to be defined to allow transaction demarcation, resource enlistment, synchronization and recovery processes to be driven by the users of the transaction services.
Overview
Content Tools
ThemeBuilder