当需要2个事务才能完成一个完整业务时,回滚解决办法!抛砖引玉

来源:互联网 发布:影像数据分析 编辑:程序博客网 时间:2024/04/28 23:04
这种情况一般会发生在与其他程序远程交互等待时间比较长的情况,例如:在作一个银行子系统比如基金认购,需要和储蓄系统进行交互!
  1. .基金认购时候需要对产品的剩余进行减少
  2. 和储蓄系统交互需要5秒,对此人账户进行扣款
这时候就需要2个事务!为什么?想象一下全国的系统如果一个交易锁5秒数据库那么。。。。。。。。(效率及其低下,如果先不减去等储蓄的信息回来後在回滚,这样可能造成最后的金额超出剩余金额)
可是如果失败了会怎么样?先减去的产品余额就不正确了,数据就不能回滚了这个时候我们可以怎么解决那?
  •     可以采取产品额度的临时表的办法,事务1(先把真正表中数据要减去的数据和判定一条记录的信息UPDATE到临时表),令一系统返回信息後:事务2(如果失败则手动将主表数据按照临时表的数据UPDATE)
总觉得还会有好的办法希望大家指点
原创粉丝点击