SQL Server分布式事务处理(MS DTC)

时间:2021-03-10 06:08:38

http://blog.itpub.net/81227/viewspace-1080162/

在联机文档中是这样描述MS DTC的:

Microsoft分布式事务处理协调器(MS DTC)是一个事务管理器,它允许客户端应用程序在一个事务中包含多个不同的数据源。MS DTC协调在所有已在事务中登记的服务器间提交分布式事务。

Microsoft? SQL Server?安装可通过下列方法参与分布式事务:

1,调用运行SQL Server的远程服务器上的存储过程。

2,自动或显式地将本地事务提升为一个分布式事务并在该事务中登记远程服务器。

3,执行分布式更新以更新多个OLE DB数据源上的数据。如果这些OLE DB数据源支持OLE DB分布式事务接口,SQL Server还可以将它们登记在分布式事务中。MS DTC服务协调正确完成分布式事务,以确保所有服务器上的全部更为永久性的,或在发生错误时删除所有更新。

 

如果在执行分布式事务时出现如下错误,则需要对MSDTC进行配置。
    链接服务器"XXX" OLE DB 访问接口 "SQLNCLI11" 返回了消息 "该事务管理器已经禁止了它对远程/网络事务的支持。"

消息 7391,级别 16,状态 2,第 2 

无法执行该操作,因为链接服务器 "XXX"  OLE DB 访问接口 "SQLNCLI11" 无法启动分布式事务。


    在Windows Server 2012中进行如下配置:
 

组件服务--> a.展开"组件服务"树,然后展开"我的电脑"b.右键单击"本地DTC",然后选择"属性"C.在安全选项卡中,确保选中了下列选项:网络DTC访问、启用XA事务、允许入站、允许出站、不要求进行验证。d.另外,"DTC 登录帐户"一定要设置为"NT Authority\NetworkService"e单击"确定",重新启动MSDTC