Druid运行一段时间后出现的异常 com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 180012, active 1

关于 com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 180012, active 10, maxActive 10, creating 0, createErrorCount 2 的错误我这边发现的暂时解决的方法:

修改 初始化连接池大小、最小连接数、最大连接数!!
由于项目中有大量并发及多线程处理数据加上项目刚开始设置的比较小,后来项目逐渐扩大,线程任务也加大,导致每次运行一段时间程序就会出如下错误:

org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:84)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:388)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:476)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:486)
	at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:536)
	at service.GrabServer.siteCombine(GrabServer.java:145)
	at service.GrabServer.siteRequest(GrabServer.java:94)
	at service.GrabServer.siteRequest(GrabServer.java:62)
	at service.DoGrabServer.run(DoGrabServer.java:103)
	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
	at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:96)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 180012, active 10, maxActive 10, creating 0, createErrorCount 2
	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1866)
	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1494)
	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:5058)
	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2759)
	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:5054)
	at com.alibaba.druid.filter.logging.LogFilter.dataSource_getConnection(LogFilter.java:909)
	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:5054)
	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:704)
	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:5054)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1469)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1459)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83)
	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160)
	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118)
	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
	... 16 common frames omitted

这错误简直无语;刚开始也从无法连接数据库入手,然而并没用;后来仔细研究修改数量后解决了

修改过后:
druid.datasource.initialSize=2 >> 5
druid.datasource.minIdle=5 >> 10
druid.datasource.maxActive=10 >> 50

此问题颇坑,望帮助有猿人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行真爸爸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值