【发布时间】:2013-06-19 16:40:17
【问题描述】:
- 我有一个使用 TransactionAttribute.REQUIRES_NEW 注释的 EJB 方法 methodA()。
- methodA() 调用在远程服务器上运行的两个 EJB 方法(比如说 methodB()、methodC())(IIOP 通信)
- methodB() 执行少量数据库插入。methodB 也使用 TransactionAttribute.REQUIRED 进行注释
- methodC() 也用 TransactionAttribute.REQUIRED 注释,我让它抛出一些运行时异常来测试事务管理。
- 当我测试我的方法 A 以进行事务管理时,我注意到以下 ..
在 OpenEJB 日志中,
TX Requires_New:没有要暂停的事务。
TX Requires_New : 已启动事务 ... gerenimo TransactionImpl....
方法 B 执行的日志...完成。
methodC 抛出一些 RuntimeException
TX Requires_New:回滚事务...
============
即使它说事务正在回滚.. 通过 methodA() 保存的数据库记录仍然出现在数据库中。我希望数据库插入也应该回滚。
您能帮我了解一下可能出了什么问题吗?
【问题讨论】:
标签: transactions ejb datasource rollback