com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 3192, active 41, maxActive 50, runningSqlCount 1 : SELECT * FROM CLOUD_BAS.BAS_DEV_VERSION WHERE STORE_ID=? AND DEVICE_ID=?
active 41, maxActive 50, runningSqlCount 1 这个是什么意思?
原提问者GitHub用户weiboyiyou
这是一个数据库连接池的监控信息,其中包含以下几个指标:
active: 当前正在使用的连接数。
maxActive: 最大允许的活动连接数。
runningSqlCount: 当前正在执行的 SQL 语句数量。
在一个数据库连接池中,连接是有限的资源,每个连接都需要占用一定的内存和其他系统资源。为了避免连接数过多导致系统资源的浪费和性能下降,通常会限制连接数的最大数量。当连接数达到最大数量时,新的连接请求会被阻塞,直到有连接被释放。
active 指标表示当前正在使用的连接数,该值应该小于或等于 maxActive,否则可能会导致连接池不足,新的连接请求会被阻塞。在您的例子中,当前正在使用的连接数为 41,最大允许的活动连接数为 50,还有 9 个连接可以使用。
runningSqlCount 指标表示当前正在执行的 SQL 语句数量,该值应该尽可能小,以确保连接的快速回收和可用性。在您的例子中,当前正在执行的 SQL 语句数量为 1。
这个异常是由Druid引起的,表示当前正在等待获取连接的线程已经等待了3192毫秒,超过了设置的最大等待时间(3000毫秒)。在这种情况下,Druid会尝试释放一些空闲连接来提高连接池的效率。
关于active和maxActive参数,它们表示当前连接池中正在使用的连接数和最大连接数。如果当前连接池中的连接数超过了maxActive参数设置的最大连接数,Druid会尝试释放一些连接来达到最大连接数的限制。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。