我有一个数据库连接没有被javers'释放'的问题。Javers SQL连接永久使用
我们使用Hibernate 5.0.6,Hikari作为我们的连接池和MSSQL Server作为我们的数据库。 Javers配置如下(片段):
JaversBuilder.javers().
registerJaversRepository(SqlRepositoryBuilder.sqlRepository().
withConnectionProvider(() -> ((SessionFactoryImpl) sessionFactory).getServiceRegistry().
getService(org.hibernate.engine.jdbc.connections.spi.ConnectionProvider.class).getConnection()).
withDialect(DialectName.MSSQL).
build()).
build();
获取连接可以很好地工作。如果没有其他可用连接池,连接池将打开数据库连接。然而,由javers获得的连接永远是'inUse'。
61366 [Hikari Housekeeping Timer (pool HikariPool-0)] DEBUG HikariPool - Before cleanup pool stats HikariPool-0 (total=100, inUse=100, avail=0, waiting=1)
61366 [Hikari Housekeeping Timer (pool HikariPool-0)] DEBUG HikariPool - After cleanup pool stats HikariPool-0 (total=100, inUse=100, avail=0, waiting=1)
61366 [HikariCP connection filler (pool HikariPool-0)] DEBUG HikariPool - After fill pool stats HikariPool-0 (total=100, inUse=100, avail=0, waiting=1)
是否必须手动关闭连接?如果我尝试这样做(只需关闭我在一秒后给予Javers的每个连接),连接池就会被清除。但是,这种方法不是一种选择。
有什么,我想念?如果我必须手动关闭连接,是否至少有可能从Javers收到一条通知:它不再需要连接?
在一个数据库事务中保存域对象和javers审计数据不合适 –