我启用了Hibernate日志到DEBUG,并注意到它在释放连接方面遇到了麻烦-
2018-10-09 16:33:26,217 TRACE [默认 任务14]-[org.hibernate.resource.jdbc.internal.ResourceRegistryStandardImpl] 释放JDBC资源2018-10-09 16:33:26,217 TRACE [默认 任务14]-[org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl] 关闭逻辑连接2018-10-09 16:33:26,217 DEBUG [默认 任务14]-[org.hibernate.engine.jdbc.spi.SqlExceptionHelper]无法 清除警告:java.sql.SQLException:IJ031070:事务无法 继续:STATUS_COMMITTED
尽管它似乎没有引起任何应用程序错误,但我非常担心Hibernate可能无法优雅地释放其连接,因此可能导致连接泄漏。
出于记录,我正在Wildfly 11上运行带有JTA的Hibernate,并且会话工厂配置(通过Spring)如下-
hibernate.jta.UserTransaction=UserTransaction
hibernate.cache.infinispan.cachemanager=java:jboss/infinispan/hibernate
hibernate.transaction.coordinator_class=org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl
hibernate.transaction.jta.platform=org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform
hibernate.cache.region.factory_class=org.hibernate.cache.infinispan.JndiInfinispanRegionFactory
hibernate.current_session_context_class=jta
在我看来,Hibernate似乎不知道JTA事务已关闭-我可能会错过一些配置吗?
答案 0 :(得分:0)
Hibernate和Spring似乎与事务同步不同步。在LocalSessionFactoryBean上设置jtaTransactionManager可以停止此错误。
Spring的旧文档引用了此问题-https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch14s02.html(使用Hibernate时出现14.2.10节虚假的应用程序服务器警告)