Transaction coordination with ASTC

The clustered Adaptive Server, like the nonclustered Adaptive Server, uses the ASTC mechanism to coordinate a distributed transaction that spans multiple Adaptive Server installations. Transaction coordination services are transparent to the client executing the distributed transaction. When a local client transaction executes an RPC or updates data via CIS, the coordination service creates a new transaction name for the remote work and propagates that transaction to the subordinate remote server. When the local client commits or rolls back the local transaction, Adaptive Server coordinates that request with each of the subordinate servers to ensure that the remote transactions are committed or rolled back as well.

The clustered Adaptive Server executes special ASTC_HANDLER tasks to handle failures such as connection termination, a remote server failure, or a local server failure. The ASTC_HANDLER propagates the end status of the transaction to the remote participants after recovering from the failure condition. ASTC_HANDLER tasks are executed on each instance in the cluster. In the case of failures, an ASTC_HANDLER task on an instance propagates the end status to the remote participant only for the distributed transaction started on that instance. An ASTC_HANDLER task on the cluster coordinator has the additional work of handling the remote participants of the transaction from the previous start-up of the cluster or the remote participants on an instance when that instance leaves the cluster.