ASA Programming Guide
Three-Tier Computing and Distributed Transactions
Three-tier computing architecture
This chapter assumes some familiarity with distributed transactions. For information, see your transaction server documentation. This section describes some commonly used terms.
Resource managers are those services that manage the data involved in the transaction.
The Adaptive Server Anywhere database server can act as a resource manager in a distributed transaction when accessed through OLE DB or ODBC. The ODBC driver and OLE DB provider act as resource manager proxies on the client machine.
Instead of communicating directly with the resource manager, application components may communicate with resource dispensers, which in turn manage connections or pools of connections to the resource managers.
Adaptive Server Anywhere supports two resource dispensers: the ODBC driver manager and OLE DB.
When a transactional component requests a database connection (using a resource manager), the application server enlists each database connection takes part in the transaction. DTC and the resource dispenser carry out the enlistment process.
Distributed transactions are managed using two-phase commit. When the work of the transaction is complete, the transaction manager (DTC) asks all the resource managers enlisted in the transaction whether they are ready to commit the transaction. This phase is called preparing to commit.
If all the resource managers respond that they are prepared to commit, DTC sends a commit request to each resource manager, and responds to its client that the transaction is completed. If one or more resource manager does not respond, or responds that it cannot commit the transaction, all the work of the transaction is rolled back across all resource managers.