无法执行该操作,因为链接服务器“DB_PROD_04”的OLE DB提供程序“SQLNCLI10”无法启动分布式事务

时间:2012-11-11 18:00:33

标签: sql tsql linked-server distributed-transactions

我有两台服务器:

  

SQL_UAT_01

     

DB_PROD_04

这两个服务器都具有相同的数据库名称和相同的表:

  

SQL_UAT_01.Database_01.TestTable

     

DB_PROD_04.Database_01.TestTable

这两个表中都有一个触发器。

当触发器触发时,它会在OTHER服务器的表上执行简单的UPDATE。

示例

此处触发了触发器:

  

SQL_UAT_01.Database_01.Test

它在这里做了更新:​​

  

DB_PROD_04.Database_01.Test

反之亦然。

我遇到了一个错误,我不知道如何修复。

同样,错误是这样的:

  

CallableStatementCallback;糟糕的SQL语法[{call   spGetAndIncrementIndex}](?);嵌套异常是   com.microsoft.sqlserver.jdbc.SQLServerException:操作可以   不执行,因为OLE DB提供程序“SQLNCLI10”为链接服务器   “DB_PROD_04”无法开始分布式事务。

我已经连接了双方的服务器。

有没有人知道我应该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

答案是在服务器上安装DT。这是一个Windows功能。我安装了它和wahllah!

答案 1 :(得分:0)

如果服务器用完本地端口,您还会收到MSDTC问题

这也可以通过纠正短暂的TCP端口饱和度来解决:

http://msdn.microsoft.com/en-us/library/aa560610%28v=bts.20%29.aspx