Pre-DTM servers

Remote servers that are classified as “pre-DTM” are those that support transaction management statements such as begin tran, commit tran, rollback tran, but does not support one session’s ability to commit or rollback a transaction started by another session.

Component Integration Services makes every effort to manage user transactions for pre-DTM servers reliably. However, different access methods incorporated into the server allow varying degrees of support for this capability. The general logic described below is employed by server classes ASEnterprise (prior to 12.0), ASAnywhere, ASIQ, direct_connect, and sds if the Specialty Data Store supports transaction management. The method for managing transactions involving remote servers uses a two-phase commit protocol. Adaptive Server implements a strategy that ensures transaction integrity for most scenarios. However, there is still a chance that a distributed unit of work will be left in an undetermined state. Even though two-phase commit protocol is used, no recovery process is included. The general logic for managing a user transaction is as follows:

Component Integration Services prefaces work to a remote server with a begin transaction notification. When the transaction is ready to be committed, Component Integration Services sends a prepare transaction notification to each remote server that has been part of the transaction. prepare transaction pings the remote server to determine whether the connection is still viable. If a prepare transaction request fails, all remote servers are told to roll back the current transaction. If all prepare transaction requests are successful, the server sends a commit transaction request to each remote server involved with the transaction. Any command preceded by begin transaction can begin a transaction. Other commands are sent to a remote server to be executed as a single, remote unit of work.