Requirements and behavior

Adaptive Server transaction coordination services can ensure that the work of remote servers is logically committed or rolled back provided that each remote Adaptive Server is at version 12.0 and later.

Transaction coordination services are transparent to the client executing the distributed transaction. When a local client transaction executes a 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 Adaptive Server transaction coordination service runs as one or more background tasks named “ASTC HANDLER,” and can be viewed using sp_who. In systems using multiple Adaptive Server engines, the number of “ASTC HANDLER” processes (rounded down to the nearest whole number) is:

number of engines * 2/3

There can be a maximum of 4 “ASTC HANDLER” processes running on Adaptive Server.

The following output from sp_who shows a single “ASTC HANDLER”:

sp_who
fid spid  status   loginame   origname   hostname           blk_spid   dbname
   tempdbname   cmd              block_xloid    threadpool
--- ----  --------- --------- ---------  ----------------   --------   -----------
   -----------   ----------------- -----------    -----------------
0     1   running       sa       sa         dtmsol1        0       master
        tempdb             SELECT           0    syb_default_pool
0     2  sleeping     NULL     NULL          master        0       master
        tempdb   NETWORK HANDLER           0    syb_default_pool
0     3  sleeping     NULL     NULL                        0       master
        tempdb     DEADLOCK TUNE           0    syb_default_pool
0     4  sleeping     NULL     NULL                        0       master
        tempdb    MIRROR HANDLER           0    syb_default_pool
0     5  sleeping     NULL     NULL                        0       master
        tempdb       HOUSEKEEPER            0    syb_default_pool
0     6  sleeping     NULL     NULL                        0       master
        tempdb  CHECKPOINT SLEEP           0    syb_default_pool
0     7  sleeping     NULL     NULL      metin1_dtm        0  sybsystemdb
        tempdb      ASTC HANDLER           0    syb_default_pool