Spring JPA sql-pool出现Reset (readOnly)连接日志含义咨询
日志具体含义
这是HikariCP连接池(Spring Boot默认内置的数据库连接池,日志里的PoolBase就是HikariCP的核心类)输出的DEBUG级状态日志,意思很直接:连接池正在给指定的数据库连接做状态复位,这次要复位的是连接的readOnly只读属性,后面跟的ConnectionID和ClientConnectionId是这个物理数据库连接的唯一编号,用来区分不同的连接实例,方便问题排查。
触发原因
会打印这条日志,本质是连接池的连接复用机制在正常工作,触发链路是固定的:
- 用Spring JPA执行查询操作时,Spring的事务模块会为只读查询(包括手动加了
@Transactional(readOnly = true)注解的方法、Spring Data JPA自动识别的普通查询方法)将借出的数据库连接设置为只读模式,一方面提示数据库优化查询执行计划,另一方面拦截意外的写操作。 - 查询逻辑执行完成后,连接会被归还到连接池等待下次复用。为了防止上一次使用连接时修改的配置(比如只读状态、自动提交开关、事务隔离级别等)污染下一次借用该连接的业务逻辑,HikariCP会在连接入池时自动将所有改动过的属性重置为连接池配置的默认值,重置
readOnly属性的动作就会输出这条DEBUG日志。 - 该日志仅在
com.zaxxer.hikari包的日志级别设置为DEBUG时才会输出,生产环境默认使用INFO级别时不会看到这类细粒度的状态日志。
业务影响判断
这是完全正常的运行状态日志,不存在任何异常逻辑,不会对业务正常运行造成任何影响,不需要做针对性修复。如果觉得这类DEBUG日志过于冗余占用日志存储,可以直接在日志配置里把com.zaxxer.hikari包的日志级别调整为INFO,即可屏蔽这类细节状态日志。
内容的提问来源于stack exchange,提问作者Hamza Azam
相关产品推荐
相关产品推荐

