尝试关闭连接时,休眠/ JTA事务无法继续:STATUS_COMMITTED

时间:2018-10-09 16:41:35

标签: java spring hibernate wildfly

我启用了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事务已关闭-我可能会错过一些配置吗?

1 个答案:

答案 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节虚假的应用程序服务器警告)