浏览 13619 次
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-03-15
这里提供一个比较简单的方案.就是设计一个自定义的PlatformTransactionManager.这个实现中可以配置多个不同事物管理器.当需要递交时,依次对所配置的PlatformTransactionManager进行递交.当回滚时,依次回滚. 代码较长,就不贴出来,详见附件 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-03-17
很好,正是我想要的解决方案,谢啦
|
|
返回顶楼 | |
发表时间:2005-03-17
这样做是有问题的,假设PlatformTransactionManager1 commit成功, 然后是PlatformTransactionManager2 commit失败, 这个时候就无法rollback已经commit成功的PlatformTransactionManager1
|
|
返回顶楼 | |
发表时间:2005-03-18
找了一下以前的帖子,这个讨论得比较详细了
http://www.hibernate.org.cn/viewtopic.php?t=6302&postdays=0&postorder=asc&start=0 一个事务commit后,还可以recover的特性,不是每个支持事务的数据库都支持的。暂时来说,我觉得上面的解决方案,是一个比较简单的利用Spring,实现把包含了多个事务管理的业务方法,集中为一个事务管理的简易方法,当然,不是彻底和完善的解决方法。但是实际上,即使是JTA,也不是100%可靠和完善啊。而且如果要彻底实现JTA,即使真正配置成功了,对应用服务器和数据库服务器的局限性也会很高的。 |
|
返回顶楼 | |
发表时间:2005-06-24
[color=darkred]有一个问题需要考虑,什么时候会提交失败,能否容忍[/color]
|
|
返回顶楼 | |
发表时间:2007-05-04
pikachu 写道 Spring中设计有各种PlatformTransactionManager,化简了事物管理的设计,但是如果某个业务要运用到多个事物管理器而又没有jta,就需要自己解决了
这里提供一个比较简单的方案.就是设计一个自定义的PlatformTransactionManager.这个实现中可以配置多个不同事物管理器.当需要递交时,依次对所配置的PlatformTransactionManager进行递交.当回滚时,依次回滚. 代码较长,就不贴出来,详见附件 今天翻老精华贴,楼主,这个事务真的有实际用处吗? 如果第一个事物提交成功,第二个事务提交失败怎么办? 真要解决多个事务,还得JTA吧? 如果JTA真的这么容易解决了,那么多厂家那么辛苦才作出一个JTA阿? 也许是我没看明白吧。 |
|
返回顶楼 | |