1、起因
项目现场服务器宕机后,上面的docker容器启动后,突然有一个应用的服务端,总是突然报错,说数据库连接不上,但是通过navicat外面又可以连接。
Caused by: org.apache.tomcat.jdbc.pool.PoolExhaustedException: [http-nio-7006-exec-9] Timeout: Pool empty. Unable to fetch a connection in 10 seconds, none available[size:30; busy:30; idle:0; lastwait:10000].
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:707)
at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:198)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:132)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 90 common frames omitted
2、排查过程
1、把错误的sql拿到navicat上面执行,发现,这些都是需要执行时间比较长的sql,执行到一半,navicat也是提示会话被关闭
2、通过navicat的“服务器监控“工具查看目前