This section 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 SAP Sybase IQdatabase server can act as a resource manager in a distributed transaction when accessed through ADO.NET, OLE DB, or ODBC. The SAP Sybase IQ .NET Data Provider, OLE DB provider, and ODBC driver act as resource manager proxies on the client computer. The SAP Sybase IQ .NET Data Provider supports distributed transactions using DbProviderFactory and TransactionScope.
Instead of communicating directly with the resource manager, application components can communicate with resource dispensers, which in turn manage connections or pools of connections to the resource managers.
SAP Sybase IQ 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 that takes part in the transaction. DTC and the resource dispenser perform 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.