回滚先前提交的事务

时间:2011-10-07 09:46:51

标签: c# .net sql-server-2005 transactions

在我正在开发的服务中,我需要提供双重操作:

  1. 正在进行的请求应该在数据库中注册(使用Register()方法);和
  2. 请求应发送到外部 webservice 以进行进一步处理(使用Dispatch()方法)。
  3. 考虑到我无法切换操作的顺序,我希望能够“回滚”第一个,如果第二个出现问题,那么当时无效的记录不会插入到BD。这里的问题是,当然,我在Register方法中提交事务。如果出现任何问题,我有什么方法可以从Dispatch方法中回滚它吗?

    编辑:所有事务都是从.NET端管理的。

1 个答案:

答案 0 :(得分:2)

在这种情况下,数据库不会帮助您。您必须使用相互撤消的操作对来创建补偿事务。您的服务将有效地替换已进入关系数据库以管理事务的所有工作和逻辑。