We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Druid版本:v1.2.18
最近项目中经常出现:com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 120000, active 0, maxActive 128, creating 0, createErrorCount 2,但是其他平台连接这个数据源正常的 于是做了一个实验复现了这个问题:
解决办法: //开启这两个配置就能实现断开重连了,如果没生效尝试升级一下版本1.2.16+ druidDataSource.setBreakAfterAcquireFailure(false); druidDataSource.setKeepAlive(true);
public static void main(String[] args) throws Exception { Properties pro = new Properties(); pro.setProperty(DruidDataSourceFactory.PROP_DRIVERCLASSNAME, "com.mysql.cj.jdbc.Driver"); pro.setProperty(DruidDataSourceFactory.PROP_URL, "jdbc:mysql://localhost:3306/xxx?useCursorFetch=true"); pro.setProperty(DruidDataSourceFactory.PROP_USERNAME, "root"); pro.setProperty(DruidDataSourceFactory.PROP_PASSWORD, "123456"); pro.setProperty(DruidDataSourceFactory.PROP_MAXWAIT, "120000"); pro.setProperty(DruidDataSourceFactory.PROP_MAXACTIVE, "16"); pro.setProperty(DruidDataSourceFactory.PROP_VALIDATIONQUERY, "select 1"); DruidDataSource druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(pro); druidDataSource.setConnectionErrorRetryAttempts(0); druidDataSource.setConnectTimeout(10*1000); druidDataSource.setSocketTimeout(90*1000); druidDataSource.setRemoveAbandoned(true); //开启这两个配置就能实现断开重连了,如果没生效尝试升级一下版本1.2.16+ druidDataSource.setBreakAfterAcquireFailure(false); druidDataSource.setKeepAlive(true); druidDataSource.init(); new Thread(() -> { for (int i = 0; i < 10000; i++) { try { DruidPooledConnection connection = druidDataSource.getConnection(); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select * from xxx"); while (resultSet.next()) { System.out.println(resultSet.getString("id")); } resultSet.close(); statement.close(); connection.close(); Thread.sleep(1000); }catch (Exception e){ log.error("error", e); } } }).start(); Thread.sleep(30000000); }
The text was updated successfully, but these errors were encountered:
我最近也遇到类似的问题 wating 50000 ,active500 maxActive 5000 ,creating 0 ,
Sorry, something went wrong.
我最近也遇到类似的问题 wating 50000 ,active500 maxActive 5000 ,creating 0 , 不是同一个问题,你这个是连接数不够了,500个都不够很可能是出现了连接泄漏
No branches or pull requests
最近项目中经常出现:com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 120000, active 0, maxActive 128, creating 0, createErrorCount 2,但是其他平台连接这个数据源正常的
于是做了一个实验复现了这个问题:
解决办法:
//开启这两个配置就能实现断开重连了,如果没生效尝试升级一下版本1.2.16+
druidDataSource.setBreakAfterAcquireFailure(false);
druidDataSource.setKeepAlive(true);
The text was updated successfully, but these errors were encountered: