[alibaba/druid]1.2.11 版本 activeCount > maxActive

2025-11-10 836 views
0

请教下,使用了druid1.2.11 版本,仍然存在activeCount > maxActive的情况,并且实际的物理连接是等于activeCount的, 并没有达到控制连接数到maxActive的效果。 以下是测试用的配置 maxWait=60000 timeBetweenEvictionRunsMillis=60000 minEvictableIdleTimeMillis=300000 validationQuery=SELECT 1 FROM DUAL testWhileIdle=true testOnBorrow=false testOnReturn=false poolPreparedStatements=false maxPoolPreparedStatementPerConnectionSize=20 asyncInit=true keepAlive=true druid.timeBetweenLogStatsMillis=5000 initialSize=1 maxActive=2

回答

8

看了下代码发下是asyncInit这个参数在取连接中有影响

               if (emptyWait
                        && asyncInit && createCount < initialSize) {
                    emptyWait = false;
                }
                if (emptyWait) {
                    // 必须存在线程等待,才创建连接
                    if (poolingCount >= notEmptyWaitThreadCount //
                            && (!(keepAlive && activeCount + poolingCount < minIdle))
                            && !isFailContinuous()
                    ) {
                        empty.await();
                    }
9

目前发现1.2.8版本也存在这个情况

Cause: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 30000, active 457, maxActive 100, creating 0 ; SQL []; wait millis 30000, active 457, maxActive 100, creating 0; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 30000, active 457, maxActive 100, creating 0 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:118) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446) at com.sun.proxy.$Proxy141.selectList(Unknown Source)

3

1.2.4 我们也有一个类似的,但是我们没有用到asyncInit也会显示超出。

0

1.2.12 也会有这个情况,不知道如何解决?

5

我也有,而且我还是没有开asycinit的情况

发自我的iPhone

在 2023年3月6日,12:13,liufengvling @.***> 写道:



1.2.12 也会有这个情况,不知道如何解决?

4

最新版1.2.16也出现这个问题