WEB事务:回滚(callback)和补偿(compensation)两个概念的区别


补偿与回滚不同,因为它是一种当工作流中发生违反规则的情况时,取消已成功完成和提交的事务所产生的影响的有效方法。在两个帐户间进行资金划转的事务是一个典型的回滚示例。第一个调用将资金从一个帐户中取出,第二个调用将相同数额的资金划转至另一个帐户。只要数据库支持两阶段提交模型,如果在事务中引发异常,回滚可恢复一致的状态。

  设想一下一个订单处理工作流,其中一个事务被用于通过信用卡进行支付。第一步,首先从信用卡中提取资金来支付货款。然后,在交易成功完成后,该货物不能再被销售。如果违反了业务规则,需要按照合适的规定对交易结果进行补偿 — 一般是将资金划入签帐卡。

  补偿就是一次真正的操作,只是上一次操作的反操作。
     
   而回滚是一个取消动作,即取消上一次还没有完成的操作 ;要能作回滚,就必须锁定资源啦

posted on 2006-11-17 17:00 Timothy 阅读(1317) 评论(0)  编辑  收藏 所属分类: J2EE开发环境


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

公告

语义Web : 网络就是计算机,软件就是服务!

常用链接

留言簿(4)

随笔档案(20)

文章分类(25)

文章档案(25)

新闻分类(4)

新闻档案(4)

相册

收藏夹(27)

个人主页

网络博客

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜