解决SQL Server中的DTC错误(上)

日期: 2009-09-02 作者:Roman Rehak翻译:孙瑞 来源:TechTarget中国 英文

SQL Server的连接服务器设置可以使你执行查询和存储过程,并通过连接其它的SQL Server和数据库系统接收来自外部的数据集。   微软分布式传输协调程序(MSDTC)的作用是在多系统的基础上,强制保持事务的一致性。要确保功能的正确实现并不出问题,你需要合理地设置MSDTC和SQL Server。   如果MSDTC配置不合理,那么就会出现以下的错误信息:   [OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]   OLE……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

SQL Server的连接服务器设置可以使你执行查询和存储过程,并通过连接其它的SQL Server和数据库系统接收来自外部的数据集。

  微软分布式传输协调程序(MSDTC)的作用是在多系统的基础上,强制保持事务的一致性。要确保功能的正确实现并不出问题,你需要合理地设置MSDTC和SQL Server。

  如果MSDTC配置不合理,那么就会出现以下的错误信息:

  [OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]

  OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].

  Msg 7391, Level 16, State 1, Line 3

  The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.

  当MSDTC不被允许访问网络的时候就会出现以上的问题,而在Windows Server 2003中默认的配置就是不允许访问网络的。要启动MSDTC网络访问功能,你需要做到以下几点:

  1、打开控制面板,选择添加或删除程序,然后选择添加/删除Windows组件;

  2、选择应用服务器,点击详细信息,然后按照图1所示的选择启动网络DTC访问;

  3、重启SQL Server和MSDTC服务。

  如果启动MSDTC网络访问之后仍出现错误,那么就要进一步查看MSDTC设置是否正确。具体步骤如下:

  1、打开管理工具,然后点击组件服务;

  2、点击右侧的计算机、我的电脑;

  3、右键点击我的电脑,选择属性;

  4、点击MSDTC选项卡,选择安全性配置;

  5、勾选网络DTC访问和其中的子选项(允许远程客户端、允许远程管理);

  6、事务管理通信中启动允许入站、允许出站和TIP事务;

  7、子选项中勾选不要求进行验证;

  8、最后勾选启动XA事务。

  经过以上步骤,设置画面应该如图2所示:

  修改做好后,重启SQL Server。

翻译

孙瑞
孙瑞

相关推荐