【 使用环境 】正式环境
【 OB 】1-1-1 集群
【 使用版本 】4.3.2.1
【问题描述】 打开连接超时,没有空闲的连接可用, 但没有达到我所配置的最大连接数(配置最大连接数:250)
HikariPool-1 - Connection is not available, request timed out after 10141ms (total=102, active=102, idle=0, waiting=55)
minimum-idle: 10
maximum-pool-size: 250
connection-timeout: 10000
max-lifetime: 300000
max_connections 2147483647
client_max_connections 8192
论坛小助手
#4
根据提供的信息来看,虽然 OceanBase 的 max_connections 配置为 2147483647,OBProxy 的 client_max_connections 配置为 8192,且 HikariCP 连接池配置了最大连接数为 250,但您在使用过程中遇到了打开连接超时且没有空闲连接可用的问题。从 OCP 查看到的会话数来看,当前的会话数在高峰期达到了 579,超过了 HikariCP 连接池配置的最大连接数 250,这可能是导致没有空闲连接可用的原因之一。
此外,根据 HikariCP 的日志显示,当前连接池中的活跃连接数达到了 102,而空闲连接数为 0,这表明连接池中的连接已经被耗尽。建议检查以下几个方面:
-
连接泄漏:确保应用程序在使用完连接后正确关闭连接,避免连接泄漏。可以通过 HikariCP 的
connectionTimeout 和 maxLifetime 参数来检测和移除被遗弃的连接。
-
连接池配置:调整 HikariCP 的
minimumIdle 和 maximumPoolSize 参数,确保连接池中有足够的空闲连接。
-
OBProxy 配置:检查 OBProxy 的
client_max_connections 配置是否合理,确保 OBProxy 能够处理更多的连接请求。
-
应用程序逻辑:检查应用程序的逻辑,确保没有长时间占用连接的情况。
检索到的文档如下:
- 数据库连接规范
- 使用 JMeter 运行业务场景测试
- DBCP 连接池连接 OceanBase 数据库示例程序
- 使用限制
辞霜
#5
show processlist;可以看到当前回话数
1 个赞
感谢回复. 使用ocp 查看了出现错误那段时间的总会话数, 为579. 虽说是比平时要高些. 但也不至于创建不出新的会话吧
辞霜
#7
这边jdbc端不是配置最大连接数为250么 应该已经满了
这250个是限制当前服务的最大连接, 还有其他服务也在连接这个租户的.
辞霜
#9
麻烦提供一下obproxy的obproxy_diagnose.log
今天9-10点只有这一条错误日志
2025-11-05 09:59:34.921441,new_as_proxy,,,,as_release:game:bj_game,OB_MYSQL,gs_user_game_login_log,gs_user_game_login_log,OB_MYSQL_COM_STMT_EXECUTE,,failed,-4124,,0us,0us,0us,0us,Y0-00007F2CE1B8CE50,,172.31.32.185:47822,,0,,Connect error,