论坛首页 Java企业应用论坛

解惑 spring 嵌套事务

浏览 159963 次
该帖已经被评为精华帖
作者 正文
   发表时间:2006-11-25  
按照 Juergen 的定义, 如果 parent.commit() 失败, 那么整个外部事务回滚, 所有嵌套事务也都回滚, 所以 1, 2, 3 都不会被修改
0 请登录后投票
   发表时间:2006-11-25  
Feiing 写道
按照 Juergen 的定义, 如果 parent.commit() 失败, 那么整个外部事务回滚, 所有嵌套事务也都回滚, 所以 1, 2, 3 都不会被修改

我的问题是,子事务已经提交成功的前提下,提交父事务失败的情况是否包含由子事务操作的资源所引致的失败
0 请登录后投票
   发表时间:2006-11-25  
当然, 就算所有嵌套事务都已经成功, 外部事务还是可能因为嵌套事务的执行结果而导致失败,  此时整个事务都要 roll back ,这也是嵌套事务的重要特性之一, 即外部事务和嵌套事务互相影响
0 请登录后投票
   发表时间:2006-11-25  
分析的太好了,高明白了以前的很多问题,谢谢。
0 请登录后投票
   发表时间:2006-11-25  
谢谢飞铃的辛苦劳作,期待好文
0 请登录后投票
   发表时间:2006-11-25  
分析的很不错!强烈顶!!

0 请登录后投票
   发表时间:2006-11-26  
已经很久没看见这样言之有物的好文了,的确收益良多。特出来冒个泡,感谢分享!
0 请登录后投票
   发表时间:2006-11-26  
绝对OK的文章!
0 请登录后投票
   发表时间:2006-11-27  
Feiing 写道
当然, 就算所有嵌套事务都已经成功, 外部事务还是可能因为嵌套事务的执行结果而导致失败,  此时整个事务都要 roll back ,这也是嵌套事务的重要特性之一, 即外部事务和嵌套事务互相影响

反过来说,所有嵌套事务都执行成功,外部事务也执行成功。那么发部事务要发送commit请求给各个嵌套事务,以同时提交,是这个意思吗?
那么对于数据库来说,它相当于在瞬间处理多个事务的commit,在中间的任何一步也是有可能出错的。那这个时候整个事务的回滚如何进行呢?
0 请登录后投票
   发表时间:2006-11-27  
嗯 写的很棒 原来这方面的东西我只是在Oracle的资料上看到的
在使用spring的时候没有注意到
没想到楼主解释的这么详尽
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics