MS SQL 错误:The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "test" was unable to begin a distributed transact

   一同事在测试服务器(系统:Windows 2008 R2 Standard 数据库:SQL SERVER 2008 R2)通过链接服务器test使用分布式事务测试时出错,出错信息如下:

set xact_abort on

begin tran

update test.mydb.dbo.test_one set name='test' where  id= 3 ;

commit

OLE DB provider "SQLNCLI10" for linked server "test" returned message "The transaction manager has disabled its support for remote/network transactions.".

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

The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "test" was unable to begin a distributed transaction.

出现这个错误时因为这台服务器,或者链接服务器那台服务器没有配置好MS DTC(Microsoft Distributed Transaction Coordinator  微软 分布式事务协调器)。

    首先确保开启了 'remote access'、 'remote admin connections'、 'remote proc trans'选项。

Code Snippet

  1. exec sp_configure 'show advanced options',1;
  2.  
  3. go
  4.  
  5. reconfigure;
  6.  
  7. go
  8.  
  9. exec sp_configure 'remote access',1;
  10.  
  11. go
  12.  
  13. reconfigure;
  14.  
  15. go
  16.  
  17. exec sp_configure 'remote admin connections',1;
  18.  
  19. go
  20.  
  21. reconfigure;
  22.  
  23. go
  24.  
  25. exec sp_configure 'remote proc trans',1 ;
  26.  
  27. go
  28.  
  29. reconfigure;
  30.  
  31. go

配置DTC步骤

Step 1:Start(开始)-Control Panel(控制面板)-System and Security(系统和安全)- Administrative Tools(管理工具)-Component Services(组件服务)(或者Run->dcomcnfg 直接跳出组件服务)。

  进入界面点击(Console Root->Componet Services->Computers->My Computer-> Local DTC)

Step 2: 右键单击"Local DTC"的属性,就可以看到“Tracing”、“Logging”、“Security”三个面板。关于设置属性。可以点击下面的“Learn more about setting these properties”

如下所示,一般只用设置“Security”下的属性,具体情况,根据实际情况配置,可以参考下面“本地DTC属性页:“安全选项”卡说明

 

注意:如果服务器开启了防火墙,那么必须确保防火墙是否开放了135端口(即允许Distributed Transaction Coordinator程序通过防火墙)

参考资料:

http://blog.csdn.net/wobuwei/article/details/4352792

时间: 2024-08-03 16:02:43

MS SQL 错误:The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "test" was unable to begin a distributed transact的相关文章

sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法

原文:sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法 这是由于链接的数据库服务器的版本与本地数据库服务器不一致,有人说要升到sp3,sp4,然后在执行什么语句之类的 我觉得太繁琐了,通过网上查询之后看

Microsoft OLE DB Provider for ODBC Drivers 错误80004005

[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0×1628 Thread 0x133c DBC 0x175169c Jet'. /Conn.asp,行 9 错误原因:数据库目录权限引起 数据库文件放在根目录下,数据库文件本身有读写修改权限,而根目录只给予读取权限,这样导致mdb数据库临时文件ldb文件无法在目录下生成,解决方法是给整个目录IUSR

ado-多步 OLE DB 操作产生错误。 如果可能,请检查每个 OLE DB 状态值。没有工作被完成。

问题描述 多步 OLE DB 操作产生错误. 如果可能,请检查每个 OLE DB 状态值.没有工作被完成. BOOL CAIASPDoc::DB_Insert(CAIImg* imgDeposit, CFile &file) { try { m_pRecordset->Open(_variant_t("ai_img"), m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdTable

MS SQL错误:SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the W

      早晨宁波那边的IT人员打电话告知数据库无法访问了.其实我在早晨也发现Ignite监控下的宁波的数据库服务器出现了异常,但是当时正在检查查看其它服务器发过来的各类邮件,还没等到我去确认具体情况,就收到了电话.我首先检查网络是否畅通,结果发现网络没有问题,然后远程登录到该服务器,查看了一下数据库的服务发现其运行正常,但是在本机使用MSSMS管理工具亦无法连接数据库,当下有两种方案:方案一:使用DAC登录数据库,检查具体情况,方案二:直接去查看错误日志,查看具体错误信息.于是为了快点找到原

MS SQL 错误 :17883,严重度: 1,状态: 0

 公司一台老旧的SQL SERVER 2000 数据库,一周内会出现若干次(一次或多次)CPU 持续100%,导致应用程序没有反应的情况,如下图所示: 错误信息如下所示: View Code  数据库版本.补丁情况如下: Code Snippet SELECT SERVERPROPERTY('productversion')   AS ProductVersion ,              SERVERPROPERTY('productlevel')  AS ProductLevel  ,

MS SQL 错误:无法绑定由多个部分组成的标识符 "xxxxx"

    今天有个同事问我一个SQL问题,觉得有点意思,虽然能很快定位并解决问题,但是就是有种说不清道不明的感觉.因为不能解释清楚(很多是建立在假设上),顺便记录一下,希望有清楚原理的人能解答一二. 原SQL语句不便于说明问题,我用一个简单的例子来描述这个问题,请看下面SQL:  SELECT TYPE, COUNT(1) FROM sys.objects t GROUP BY sys.objects.type; 消息 4104,级别 16,状态 1,第 2 行 无法绑定由多个部分组成的标识符 "

多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成

问题描述 "/"应用程序中的服务器错误.多步OLEDB操作产生错误.如果可能,请检查每个OLEDB状态值.没有工作被完成.说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.Runtime.InteropServices.COMException:多步OLEDB操作产生错误.如果可能,请检查每个OLEDB状态值.没有工作被完成.源错误:执行当前Web请求期间生成了未处理的异常.可以使用下面的

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' 常见错误: 无效的文件 dsn ''

问题描述 大家好!我使用的2003系统,前两日购买一套源码准备测试,ASP文件,数据库是MSSQL2005,按照说明步骤安装好后,打开网站首页显示如下:MicrosoftOLEDBProviderforODBCDrivers错误'80004005'常见错误:无效的文件dsn''/ac_common/jc_OurFunction.asp,行7貌似DSN文件填写配置有问题,填写如下:[ODBC]DRIVER=SQLServerUID=saDATABASE=tempzlgWSID=CHINESE-F4

求助高手:::多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。

问题描述 OleDbConnectionconn=newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=ipdata.mdb;IntegratedSecurity=SSPI");OleDbDataAdapterda=newOleDbDataAdapter("selectIP地址,IP包,TCP,UDP,广播包fromIP",conn);DataSetds=newDataSet();da.Fil