Two-phase commit

Two-phase commit transaction management is now available for remote data. It is transparent to user-written applications.

This service tracks the state of a transaction in the local CIS-enabled server, as well as in all remote servers participating in transactions. When a user application commits a transaction, the commit is propagated to all participating remote servers using the Adaptive Server Transaction Coordinator (ASTC).

The management of multi-site transactions is handled by the ASTC; CIS registers new participating servers for each transaction, then turns over control of the transaction coordination to ASTC.

Configure sybsystemdb for at least 10MB.

Version 12.5 introduces a powerful mechanism for supporting distributed transaction management transparently, using only the services of Adaptive Server Enterprise. This feature is now used to support transparent two-phase commit services between local and remote Adaptive Server Enterprise 12.0 servers, involving both RPC and DML (select, insert, delete, update) operations.

In version 12.0, transparent two-phase commit was limited to DTM-enabled Adaptive Server Enterprise’s. However, with version 12.5, this limit has been removed and support for DTM-enabled DirectConnects has been provided. A Direct Connect will indicate its ability to handle two-phase commit transactions by means of the capability for Transactions:

Table 2-5: Transaction capabilities

CAP ID

Value

Description

109

0

No support for transactions is provided. CIS sends no transaction control statements or RPCs to remote servers in this case.

109

1

’Best Effort’ support is provided. This requires CIS to send begin tran, prepare tran, commit tran, rollback tran commands to the DirectConnect when appropriate, and the DirectConnect will to the best it can to properly handle the commands (and report errors/failures).

109

2

Can participate in two-phase commit operations managed by ASTC, implying support for ASTC’s Native RPCs.

DDL is not supported within a distributed transaction. An attempt to do so results in an exception.