The only documentation is the code itself
posted on 2005-12-19 16:02 DenisLing 阅读(3208) 评论(5) 编辑 收藏
答案是不会的,二级事务的rollback只针对自己。 ------------------------------------------------ 但你下文中也说了:二级事务的rollback最终会使整个事务rollback啊. 该怎么理解你上面这句话? 回复 更多评论
如你的例子, 在两个二级事务中, 若取钱的成功了,而在存入的时候rollback了,这时整个transaction会被rollback,如此,在取钱这个二级的会被rollback吗? 回答若'Y', 这和放在一个事务中有啥区别呢? 回复 更多评论
上面的朋友可能没有理解我的意思!我的例子可能有点问题! 其实这有一个经典的旅行定票的问题! 比如我要到台湾旅游,我可能要如下去做 1,买到上海的汽车票, 2,在上海买去香港的飞机票, 3,在香港买去台湾的飞机票, 4,买到目的旅游地的汽车票。 ok!现在就讨论上面的问题,如果把整个过程看成是一个完成的事务,在以前的六种事务模型里面比如在第4步的时候没有能够买到到目的旅游地的汽车票,整个事务会回滚。 但是我们可能在第4步的时候还可以选择做地铁或打的等等。这也就是嵌套事务类型和上面的不同地方,可以把1,2,3,4分别看成是一个子事务,比如1的时候我没有买到汽车票,可能我这个买汽车票的事务会回滚,但是这并步影响外面的事务,可们可以选择做火车等等其它途径。如果1最后没有能够提交事务,那么总的事务会回滚,(但是在1事务回滚的时候并不会导致外层事务回滚)。其他几步都是一样的道理。 不知道这个例子是否明白点!有问题我们再讨论! 回复 更多评论
上面的说法完全看不懂 就本人的理解在SRING默认的回滚规则下 在2级事务中如果回滚了数据但是没有抛出异常 1级事务还是回继续执行后面的2级事务 如果2级事务在回滚过程中抛出了异常 那么1级事务也马上回滚 但是如果前面的2级事务如果已经提交了 那么就算后面的2级事务回滚并抛出异常也只会导致1级事务回滚 前面已经提交的2级事务不能回滚了 (因为就我知道的程序是不能回滚已经提交的 只能通过数据库系统日志恢复了) 回复 更多评论
@javafox你两说的好像是一样的 回复 更多评论
Powered by: BlogJava Copyright © DenisLing