Hibernate/JTA 事务无法继续:STATUS_COMMITTED 尝试关闭连接时
Hibernate/JTA Transaction cannot proceed: STATUS_COMMITTED when trying to close connection
我启用了 Hibernate 日志以进行 DEBUG 并注意到它在释放连接方面遇到了问题 -
2018-10-09 16:33:26,217 TRACE [default
task-14]-[org.hibernate.resource.jdbc.internal.ResourceRegistryStandardImpl]
Releasing JDBC resources 2018-10-09 16:33:26,217 TRACE [default
task-14]-[org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl]
Closing logical connection 2018-10-09 16:33:26,217 DEBUG [default
task-14]-[org.hibernate.engine.jdbc.spi.SqlExceptionHelper] could not
clear warnings: java.sql.SQLException: IJ031070: Transaction cannot
proceed: STATUS_COMMITTED
虽然它似乎不会导致任何应用程序错误,但我非常担心 Hibernate 可能无法正常释放其连接,因此可能导致连接泄漏。
本人运行在Wildfly 11上使用JTA休眠以供记录,会话工厂配置(通过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 事务正在关闭 - 是不是我可能错过了一些配置?
看起来 Hibernate 和 Spring 与事务同步不同步。在 LocalSessionFactoryBean 上设置 jtaTransactionManager 停止了这个错误。
旧 Spring 文档提及此问题 - https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch14s02.html(第 14.2.10 节使用 Hibernate 时出现虚假应用程序服务器警告)
我启用了 Hibernate 日志以进行 DEBUG 并注意到它在释放连接方面遇到了问题 -
2018-10-09 16:33:26,217 TRACE [default task-14]-[org.hibernate.resource.jdbc.internal.ResourceRegistryStandardImpl] Releasing JDBC resources 2018-10-09 16:33:26,217 TRACE [default task-14]-[org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl] Closing logical connection 2018-10-09 16:33:26,217 DEBUG [default task-14]-[org.hibernate.engine.jdbc.spi.SqlExceptionHelper] could not clear warnings: java.sql.SQLException: IJ031070: Transaction cannot proceed: STATUS_COMMITTED
虽然它似乎不会导致任何应用程序错误,但我非常担心 Hibernate 可能无法正常释放其连接,因此可能导致连接泄漏。
本人运行在Wildfly 11上使用JTA休眠以供记录,会话工厂配置(通过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 事务正在关闭 - 是不是我可能错过了一些配置?
看起来 Hibernate 和 Spring 与事务同步不同步。在 LocalSessionFactoryBean 上设置 jtaTransactionManager 停止了这个错误。
旧 Spring 文档提及此问题 - https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch14s02.html(第 14.2.10 节使用 Hibernate 时出现虚假应用程序服务器警告)