Jakarta ee EJB调用后如何释放H2连接?

Jakarta ee EJB调用后如何释放H2连接?,jakarta-ee,h2,Jakarta Ee,H2,我有H2V。1.4.187. 如果我使用H2控制台,那么我注意到只创建了两个文件:mv.db和/或trace.db。我有一个J2EE web应用程序EnityBeans和EntityManager,它使用运行在Wildfly 8.2上的JPA。在我运行EJB调用以从web应用程序查询H2 db之后。我注意到又创建了两个文件,h2.db和lock.db。h2.db的大小最大 总共有4个文件。停止Wildfly后,lock.db文件消失。但是h2.db文件仍然存在 因此,即使在EJB调用完成之后,

我有H2V。1.4.187. 如果我使用H2控制台,那么我注意到只创建了两个文件:mv.db和/或trace.db。我有一个J2EE web应用程序EnityBeans和EntityManager,它使用运行在Wildfly 8.2上的JPA。在我运行EJB调用以从web应用程序查询H2 db之后。我注意到又创建了两个文件,h2.db和lock.db。h2.db的大小最大

总共有4个文件。停止Wildfly后,lock.db文件消失。但是h2.db文件仍然存在

因此,即使在EJB调用完成之后,Hibernate仍然会打开H2数据库。这就是lock.db文件存在的原因,也可能是创建h2.db的原因


这是正常的还是有办法让Wildfly在每次EJB调用后释放连接?因此,不要创建h2.db和lock.db

您可以发布h2的版本以及您正在使用的数据库URL吗?看起来您使用了不同的数据库URL或H2的多个版本,因为.mv.db文件是在使用1.4.x版本时创建的,而.H2.db文件是在使用设置为mv_store=false的1.3.x或1.4.x版本时创建的;JDBC URL:JDBC:h2:file:C:/Temp/TestDB。Wildfly数据源:驱动程序类:org.h2.Driver,连接URL:jdbc:h2:file:C:/Temp/TestDB。我没有mv_store=false我添加了mv_store=false,现在它只创建了h2db。感谢您在Wildfly中使用的是另一个不支持.mv.db文件的旧版本H2。这就解释了为什么你在某个时候看到了这两个文件。