TX Requires_New:暂停没有交易。
TX Requires_New:已启动交易... gerenimo TransactionImpl ....
来自methodB执行的日志......完成。
methodC抛出一些RuntimeException
TX Requires_New:回滚交易......
============
即使它说正在回滚事务..通过methodA()保存的数据库记录仍然出现在数据库中。我希望数据库插入也应该回滚。
你能帮我理解可能出现的问题吗?
答案 0 :(得分:0)
问题是方法A,B和C在不同的事务上下文中运行,因此,在您的进程中有三个不同且独立的事务处理。
每个appserver定义一个事务上下文,它由部署在同一服务器中的EJB共享。
当您调用在远程服务器上运行的EJB时,不使用当前事务。
如果要在不同的远程服务器上共享同一事务,则必须实现分布式事务。