The transaction manager (TxM) is a special resource manager that implements the resource-type “transaction.” It handles all the state transitions that a transaction can perform. For simple ACID transactions, these are begin, savepoint, rollback, abort, and prepare commit; for more refined transaction models, there will be additional states. The resource managers register with the TxM when they get employed by a transaction for the first time. Thus, the TxM keeps a record for each transaction of which resource managers have been involved with it. In the same vein, it stores which sessions each transaction has used in case it has performed operations on other nodes in a distributed system. The TxM closely interacts with the concurrency control manager who can make transaction wait for other transactions in case of access conflicts. It also interacts with the logging and recovery subsystem and the communications manager.
The TxM keeps track of all active...