我想知道处理分布式服务器时处理事务回滚/提交和异常处理的最佳方法。
情景如下:
Server1.StroredProcude1
Begin Transaction
Try
--Some insertion here
Server2.StoredProcedure
Commit Transaction
Catch
Rollback Transaction
RETURN @Msg = a user friendly message
End
在 Server2 的存储过程中,我也在进行一些插入。
我是否必须在 Server2 存储过程中使用try catch,否则它将在 Server1 本身中捕获。
我在 Server1 存储过程中使用“分布式事务”关键字,因此它足以在两个服务器中提交/回滚事务,或者我必须在中实现与事务相关的事务server2 存储过程。
谢谢!
答案 0 :(得分:0)
请点击此处了解详情:https://msdn.microsoft.com/en-GB/library/ms188386.aspx
执行BEGIN的SQL Server数据库引擎实例 DISTRIBUTED TRANSACTION语句是事务发起者和 控制交易的完成。当一个后续的COMMIT 发出TRANSACTION或ROLLBACK TRANSACTION语句 会话,控制实例请求MS DTC管理 跨所有实例完成分布式事务 参与。