今天发现正式环境出现不能获取连接,连接超时的错误
### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed o
ut after 33868ms.
### The error may exist in class path resource [mapper/xxxx.xml]
### The error may involve
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 33868ms.
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
... 36 common frames omitted
打开日志:
2022-07-13 15:25:49,525 [HikariPool-1 housekeeper] DEBUG [com.zaxxer.hikari.pool.HikariPool] HikariPool.java:421 - HikariPool-1 - Pool stats (total=10, active=2, idle=8, waiting=0)
2022-07-13 15:25:49,525 [HikariPool-1 housekeeper] DEBUG [com.zaxxer.hikari.pool.HikariPool] HikariPool.java:517 - HikariPool-1 - Fill pool skipped, pool is at sufficient level.
2022-07-13 15:26:19,525 [HikariPool-1 housekeeper] DEBUG [com.zaxxer.hikari.pool.HikariPool] HikariPool.java:421 - HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0)
2022-07-13 15:26:19,525 [HikariPool-1 housekeeper] DEBUG [com.zaxxer.hikari.pool.HikariPool] HikariPool.java:517 - HikariPool-1 - Fill pool skipped, pool is at sufficient level.
判断配置的连接池参数问题,发现配置错误,hikari和datasouce在同一个层级啦,应该是在datasource下面一层
#错误配置
spring
datasorce:
url:
hikari:
connection-test-query: SELECT 1 FROM DUAL
connection-timeout: 200000
maximum-pool-size: 9000
minimum-idle: 300
max-lifetime: 1800000
leak-detection-threshold: 60000
#正确配置
spring
datasorce:
url:
hikari:
connection-test-query: SELECT 1 FROM DUAL
修改后:连接池正常啦。
2022-07-13 15:32:24,652 [HikariPool-1 housekeeper] DEBUG [com.zaxxer.hikari.pool.HikariPool] HikariPool.java:421 - HikariPool-1 - Before cleanup stats (total=301, active=0, idle=301, waiting=0)
2022-07-13 15:32:24,653 [HikariPool-1 housekeeper] DEBUG [com.zaxxer.hikari.pool.HikariPool] HikariPool.java:421 - HikariPool-1 - After cleanup stats (total=301, active=0, idle=301, waiting=0)
2022-07-13 15:32:24,653 [HikariPool-1 housekeeper] DEBUG [com.zaxxer.hikari.pool.HikariPool] HikariPool.java:517 - HikariPool-1 - Fill pool skipped, pool is at sufficient level.