Connection Properties for Distributed Transaction Support

The connection properties for a distributed transaction.

  • Distributed Transaction Protocol (DistributedTransactionProtocol) – to specify the protocol used to support the distributed transaction, either XA Interface standard or MS DTC OLE Native protocol, select the Distributed Transaction Protocol in the ODBC Data Source dialog, or set the property DistributedTransactionProtocol = OLE native protocol in the connection string. The default is XA.

  • Tightly Coupled Transaction (TightlyCoupledTransaction) – when a distributed transaction using two resource managers points to the same Adaptive Server, it is a Tightly Coupled Transaction. Under these conditions, if you do not set this property to 1, the distributed transaction may fail.

To summarize, if you open two database connections to the same Adaptive Server and then enlist these connections in the same distributed transaction, you must set TightlyCoupledTransaction=1. To set this property, select the Tightly Coupled Transaction in the ODBC Data Source dialog box, or pass the property TightlyCoupledTransaction=1 in the connection string.

Warning!   Enlistment with SQLSetConnectAttr returns a SQL_ERROR if the connection has already begun a local transaction, either by using SQLSetConnectAttr with the SQL_AUTOCOMMIT_OFF or by executing the BEGIN TRANSACTION statement explicitly using SQLExecDirect.