无法执行该操作,因为OLE DB provider“;SQLNCLI10";“用于链接服务器”;DB“产品04”;无法开始分布式事务

无法执行该操作,因为OLE DB provider“;SQLNCLI10";“用于链接服务器”;DB“产品04”;无法开始分布式事务,sql,tsql,linked-server,distributed-transactions,Sql,Tsql,Linked Server,Distributed Transactions,我有两台服务器: SQL_UAT_01 DB_产品04 这两台服务器具有相同的数据库名称和相同的表: SQL_UAT_01.Database_01.TestTable DB_PROD_04.Database_01.TestTable 这两个表都有一个触发器 当触发器触发时,它会对另一台服务器的表进行简单的更新 示例 触发器在此处触发: SQL_UAT_01.Database_01.Test 它在此处进行更新: DB_PROD_04.数据库_01.测试 反之亦然 我遇到了一个错误,我不知道如何修复

我有两台服务器:

SQL_UAT_01

DB_产品04

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

SQL_UAT_01.Database_01.TestTable

DB_PROD_04.Database_01.TestTable

这两个表都有一个触发器

当触发器触发时,它会对另一台服务器的表进行简单的更新

示例

触发器在此处触发:

SQL_UAT_01.Database_01.Test

它在此处进行更新:

DB_PROD_04.数据库_01.测试

反之亦然

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

同样,错误是:

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

我已经连接了两边的服务器


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

答案是在服务器上安装DT。这是windows的一项功能。我安装了它,瓦拉

如果服务器的本地端口用完,也会出现MSDTC问题

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


请问“DT”是什么?