分布式事务--两台服务器是不在同一个网段

sally31501064 2011-11-10 11:50:59
我做了一个存储过程,把本地服务器的数据倒到外网的服务器上,但是为了保证完整性,必须使用分布式事务,但是这两台服务器是不在同一个网段,会报错
-----------
链接服务器"srv_lnk"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。
消息 7391,级别 16,状态 2,过程 proc_copybookdata,第 25 行
无法执行该操作,因为链接服务器 "srv_lnk" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。
------------

亲~~~有木有人能解决这个问题,3q~~~~~~~~~╭(╯3╰)╮
...全文
368 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是不同网段的问题,同一网段不会报错,现在我也遇到这个问题,IP要怎么设置呢?
sally31501064 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 geniuswjt 的回复:]

我上次也碰到了,试了主流的方式
都没有解决问题
最后我一狠心,把事务给去了,先解决问题再说,MD引用 4 楼 sally31501064 的回复:
[/Quote]
------------------------
~~~~(>_<)~~~~ 事务是我们这个问题的必要条件,必须保证完整性,如果不能,就要从新用其他方法,但是效率,我滴神~~~~~~
geniuswjt 2011-11-10
  • 打赏
  • 举报
回复
我上次也碰到了,试了主流的方式
都没有解决问题
最后我一狠心,把事务给去了,先解决问题再说,MD[Quote=引用 4 楼 sally31501064 的回复:]

我申明下,双方的服务器的配置都启动了。。。。。。问题是不是一个网段。。。。会报错。。。。要解决这个问题,希望大家别回答错了,浪费您的时间回答我的问题,谢谢~~~~~~~(>_<)~~~~ 亲,偶就等你们了。。。我已经无能为力了,呜呜呜~~~
[/Quote]
sally31501064 2011-11-10
  • 打赏
  • 举报
回复
我申明下,双方的服务器的配置都启动了。。。。。。问题是不是一个网段。。。。会报错。。。。要解决这个问题,希望大家别回答错了,浪费您的时间回答我的问题,谢谢~~~~~~~(>_<)~~~~ 亲,偶就等你们了。。。我已经无能为力了,呜呜呜~~~
sally31501064 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fredrickhu 的回复:]

SQL code
启动两台服务器的MSDTC服务
MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。

打开双方的135端口
MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果……
[/Quote]
=================================
已经配置过了。。。。。
gw6328 2011-11-10
  • 打赏
  • 举报
回复
在 Transact-SQL 中启动的分布式事务的结构相对比较简单:
  1. Transact-SQL 脚本或应用程序连接执行启动分布式事务的 Transact-SQL 语句。
  2. 执行该语句的 Microsoft® SQL Server™ 成为事务中的主控服务器。
  3. 然后脚本或应用程序对链接的服务器执行分布式查询,或对远程服务器执行远程存储过程。
  4. 当执行了分布式查询或远程过程调用后,主控服务器将自动调用 MS DTC 以便登记分布式事务中链接的服务器和远程服务器。
  5. 当脚本或应用程序发出 COMMIT 或 ROLLBACK 语句时,主控 SQL Server 将调用 MS DTC 管理两阶段提交过程,或者通知链接的服务器和远程服务器回滚其事务。
--小F-- 2011-11-10
  • 打赏
  • 举报
回复
启动两台服务器的MSDTC服务 
MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。

打开双方的135端口
MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。
使用“telnet IP 135”命令测试对方端口是否对外开放。也可用端口扫描软件(比如Advanced Port Scanner)扫描端口以判断端口是否开放

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧