Transaction Propagation Between Resource Managers
Updated: July 19, 2016
Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista
Some resource managers may choose to propagate the DTC transactions from one OLE Transactions-compliant resource manager to another.
Transaction propagation from resource manager to resource manager is useful when a stored procedure in one database invokes a remote stored procedure in another database. It is also useful when a distributed update, insert, or delete alters data controlled by two or more resource managers. Finally, it is useful if a resource manager permits forwarding of updates to another type of resource manager. For example, a relational database might update a database table and then forward an insert to a transaction-protected queuing system.
Microsoft SQL Server is an example of a resource manager that propagates transactions from resource manager to resource manager. When a SQL Server stored procedure calls a remote stored procedure, SQL Server automatically propagates the DTC transaction from the calling SQL Server to the called SQL Server. If the called stored procedure invokes yet another remote stored procedure, the transaction is propagated to it also. This ensures that all databases remain consistent.
If a resource manager encounters an error while propagating a transaction or for some reason cannot propagate the transaction to another resource manager, it normally aborts the entire transaction. For example, this could occur if the network connection between the two systems fails. When the transaction is aborted, all work done on behalf of the transaction is undone.