【问题标题】:Handling Try Catch and Transaction Rollback/Commit in distributed environment在分布式环境中处理 Try Catch 和事务回滚/提交
【发布时间】:2015-12-09 05:57:13
【问题描述】:

我想知道当我们在分布式服务器上工作时处理事务回滚/提交和异常处理的最佳方式。

场景如下:

Server1.StroredProcude1
Begin Transaction
Try

--Some insertion here
Server2.StoredProcedure
Commit Transaction
Catch
Rollback Transaction
RETURN @Msg = a user friendly message
End

Server2的存储过程中,我也在做一些插入。

  1. 我是否也必须在 Server2 存储过程中使用 try catch,否则它将在 Server1 本身中被捕获。

  2. 我在 Server1 存储过程中使用了“分布式事务”关键字,因此是否足以在两个服务器中提交/回滚事务,或者我必须在 中实现事务相关的东西server2 存储过程也是如此。

谢谢!

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    更多详情请看这里:https://msdn.microsoft.com/en-GB/library/ms188386.aspx

    执行 BEGIN 的 SQL Server 数据库引擎实例 DISTRIBUTED TRANSACTION 语句是事务发起者和 控制交易的完成。当随后的 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 语句为 会话,控制实例请求 MS DTC 管理 跨所有实例完成分布式事务 参与。

    【讨论】:

      猜你喜欢
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 2012-12-24
      • 2013-11-22
      • 1970-01-01
      相关资源
      最近更新 更多