0

我有两台服务器:

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:无法执行操作,因为链接服务器“DB_PROD_04”的 OLE DB 提供程序“SQLNCLI10”无法开始分布式事务。

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

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

4

2 回答 2

0

答案是在服务器上安装 DT。这是一个窗口功能。我安装了它,哇!

于 2012-11-19T21:32:41.497 回答
0

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

这也可以通过纠正临时 TCP 端口饱和度来解决:

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

于 2015-01-20T13:39:25.790 回答