2015-12-09 30 views
0

我想知道在处理分布式服务器时处理事务回滚/提交和异常处理的最佳方式。在分布式环境中处理尝试捕获和事务回滚/提交

的情况是象下面这样:

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上存储过程以及否则就会被抓在Server1的本身。

  2. 我使用“分布式事务处理”在Server1的存储过程关键字,这样是不是足够在两个服务器提交/回滚事务或者我要实现的交易相关的东西在服务器2存储过程也是如此。

谢谢!

回答

0

在这里看到更多的细节:https://msdn.microsoft.com/en-GB/library/ms188386.aspx

的SQL Server数据库引擎执行BEGIN 分布式TRANSACTION语句的实例是事务创建和 控制交易的完成。当针对 会话发出后续COMMIT TRANSACTION或ROLLBACK TRANSACTION语句时,控制实例请求MS DTC管理涉及的所有实例 之间的分布式事务的完成。