EJB 3 JDBC连接在Autocommit中关闭false

时间:2015-03-14 12:29:51

标签: jdbc transactions ejb-3.0 autocommit

使用容器管理的事务编写EJB 3服务。如果我设置autocommit false执行SQL更新并关闭EJB事务中的JDBC连接,那么事务是否仍然处于活动状态并在方法完成后提交,而当前关闭的连接没有任何异常

1 个答案:

答案 0 :(得分:1)

如果您使用CMT并从启用JTA的数据源连接,那么当您调用connection.close()时,连接实际上并未关闭,而是返回到池中。您也不应该使用从此类数据源获取的连接更改自动提交,因为它们默认设置为false,不应更改。是的,当事务范围结束时,事务仍将处于活动状态,并且将被提交/回滚(它不必完全在此特定方法完成时,因为事务可以提前启动,并且此方法可能只参与它通过REQUIRED,而不是像REQIRES_NEW一样单独运行。