系统繁忙之 java.sql.SQLException: Connection.clearWarnings cannot be called on a closed connection

最近项目开发完了,测试阶段频繁出现 无脑的"系统异常",

页面显示的异常是:

Could not open JDBC Connection for transaction; nested exception is java.sql.SQLNonTransientConnectionException: (conn=911434) Connection reset"
msg: "系统繁忙,请稍后再试"
timestamp: "2020-03-26 22:26:22.867"

日志服务器显示:

java.sql.SQLException: Connection.clearWarnings cannot be called on a closed connection

排查很久,主要几方面排查:

1.确认接口是否异常

2.确认sql有无异常

3.查看mysql服务器压力

4.查看配置文件中的数据源配置

最后发现,在配置中发现,没有配置检查数据库是否连接正常的检测配置(个人的理解),如下:

spring.datasource.druid.validationQuery=SELECT 'X'

或者

spring.datasource.druid.validationQuery=select 1 from dual 

意思都一样,就是一个最简单的查询,确保数据库没有宕机,加上之后,系统繁忙 问题完美解决

2022-08-19 update

mariadb驱动会出现连接断开, 直接修改数据去驱动

spring.datasource.driverClassName 驱动修改为mysql驱动

org.mariadb.jdbc.Driver  -> com.mysql.jdbc.Driver

你可能感兴趣的:(数据库,mysql,java)