Springboot項目長時間不進行接口操作,提示HikariPool-1警告的解決
問題描述
Spring boot項目長時間未進行操作,前端進行調用接口時第一次會報警報,并且接口訪問時間過長而導致第一次調用接口失敗
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@286d93a8] was not registered for synchronization because synchronization is not active
2020-12-01 11:27:56.356 WARN 8392 --- [nio-9099-exec-7] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@17b7bbbb (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
2020-12-01 11:28:01.359 WARN 8392 --- [nio-9099-exec-7] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@43a8ad76 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
2020-12-01 11:28:06.362 WARN 8392 --- [nio-9099-exec-7] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@11ef23d4 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
2020-12-01 11:28:11.366 WARN 8392 --- [nio-9099-exec-7] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@4cb8a9c2 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
2020-12-01 11:28:16.373 WARN 8392 --- [nio-9099-exec-7] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@22641536 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
2020-12-01 11:28:21.375 WARN 8392 --- [nio-9099-exec-7] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@3946dfc7 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
解決方法
我們查看數據庫的HikariPool源碼
找到HikariDataSource類,他繼承了HikariConfig
我們看Hikar的相關配置,進入HikarConfig中,在這里我們可以看到默認池大小為10,我們在數據庫配置中修改默認池大小即可解決問題
配置文件中加入
- minimum-idle最小空閑數
- maximum-pool-size鏈接池最大數量
- max-lifetime最大時長,配置為0則是永久不過期
hikari: minimum-idle: 3 maximum-pool-size: 5 max-lifetime: 0
修改過配置文件后即可解決問題
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
spring boot實戰(zhàn)之內嵌容器tomcat配置
本篇文章主要介紹了Spring Boot 使用內嵌的tomcat容器配置,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01詳解Spring數據緩存注解@Cacheable、@CachePut、@CacheEvict
這篇文章主要介紹了詳解Spring數據緩存注解@Cacheable、CachePut、@CacheEvict,當以一組參數第一次調用某個方法時,返回值會被保存在緩存中,如果這個方法再次以相同的參數進行調用時,這個返回值會從緩存中查詢獲取,需要的朋友可以參考下2023-07-07