我有两台服务器:
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”无法开始分布式事务。
我已经连接了双方的服务器。
有没有人知道我应该如何解决这个问题?
答案 0 :(得分:0)
答案是在服务器上安装DT。这是一个Windows功能。我安装了它和wahllah!
答案 1 :(得分:0)
如果服务器用完本地端口,您还会收到MSDTC问题
这也可以通过纠正短暂的TCP端口饱和度来解决:
http://msdn.microsoft.com/en-us/library/aa560610%28v=bts.20%29.aspx