Hibernate / JTA транзакция не может быть продолжена: STATUS_COMMITTED при попытке закрыть соединение - PullRequest
0 голосов
/ 09 октября 2018

Я включил журналы 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 может не выпускать свои соединения изящно и, следовательно, может привести к утечке соединения.

Я работаюHibernate с JTA на Wildfly 11 для записи, а конфигурация Session Factory (через 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 голосов
/ 17 октября 2018

Похоже, что Hibernate и Spring не синхронизированы с синхронизацией транзакций.Установка jtaTransactionManager на LocalSessionFactoryBean остановила эту ошибку.

Документы Old Spring ссылаются на эту проблему - https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch14s02.html (Раздел 14.2.10 Предупреждения о ложных серверах приложений при использовании Hibernate)

...