SQL 2016 - Leverages On Demand MSDTC Startup

SQL Server leverages MSDTC for distributed transactions (begin distributed transaction, remote proc trans, etc.) Prior to SQL Server 2016 the MSDTC service must be running (started) prior to any SQL Server, DTC based transaction activity.

 

SQL Server 2016 enhances SQL distributed transaction capabilities leveraging MSDTC, On Demand startup. The On Demand startup of MSDTC does not start the MSDTC service and consume resources until SQL Server requires MSDTC.

 

SQL Server 2016 extends the SQL Server DTC manager initialization logic allowing On Demand startup of the MSDTC service. (API Reference: DtcGetTransactionManagerEx) During the SQL Server, DTC manager initialization SQL Server 2016 attempts to obtain the ITransactionManager connection in the same way it did in SQL Server 2014 and 2012.

 

Once the SQL Server, common initialization activities are complete, if the connection cannot be established (failed to establish the connection because the DTC service is unavailable) DtcGetTransactionManagerEx is invoked. The invocation allows On Demand startup of the needed DTC manager service.

 

'It Just Runs Faster' - SQL Server 2016 dynamically starts MSDTC as needed allowing resources to be used for other activities until required.

 

Bob Dorr - Principal SQL Server Software Engineer