今天测试遇到连续点击获取连接出现连接异常问题
我这边用的连接池获取的connection.close在程序结尾进行连接关闭 但是继续点击获取连接会出现连接异常
提示连接超时 活动连接10 最大连接10 (我这边默认的是10个连接)
com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 20000, active 10, maxActive 10, creating 0 at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1512) ~[druid-1.1.10.jar:1.1.10]几番调试发现即使关闭了连接 连接池的数量依然没有回收 导致数量叠加超出最大连接数
解决方法:
public static void close(Connection conn) throws SQLException { if (conn != null) DataSourceHelper.druidDataSources.get(DataSourceHelper.maxId).discardConnection(conn); // druidDataSource.discardConnection(conn); // conn.close(); }上面代码关联我的业务 只需要关注: 使用 druidDataSource.**discardConnection(conn)**去关闭即可