【YashanDB 知识库】druid 连接池做断网测试,无法自动重新连接

简介: 【YashanDB 知识库】druid 连接池做断网测试,无法自动重新连接

【标题】druid 连接池断网测试,崖山数据库无法自动重新连接

【问题分类】驱动使用

【关键字】druid,socket timeout

【问题描述】使用崖山数据库 23.2.7.100 进行适配过程中反馈崖山数据库不能自动重连

【问题原因分析】模拟的断网测试,报错如下,

图片.png

初步分析,怀疑是没有配置 socket timeout 等参数和默认查询语句没有修改,会话保留时间过短,容易报错。

建议客户配置如下:

将默认查询:select 1; 修改成:select 1 from dual;

jdbc:yasdb://xx.xx.xx.xx:1688/test?productName=mysql&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&socketTimeout=120&allowPublicKeyRetrieval=true

依然没有效果,还是报错一样的信息。继续查看相关配置信息:

图片.png

从默认配置看,testOnBorrow 设置为 false,testWhileIdle 设置为 true,闲置时间大于 timeBetweenEvictionRunsMillis 即可重连,即断网 60s 之后,才会被动去重连,如果在 60s 之类,是会有报错,还没触发重连

分析到这,配置主动检测,将 test-on-borrow 配置成 True test-While-Idle 设置为 false,问题解决

图片.png

【解决/规避方法】配置主动检测,将 test-on-borrow 配置成 True test-While-Idle 设置为 false

【影响范围】23.2.7.100

【修复版本】-

目录
打赏
0
9
9
1
43
分享
相关文章
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
本文介绍了YashanDB在特定场景下的问题分析与解决方法。当使用yasboot重启数据库后,yasom和yasagent进程虽启动成功但出现告警,原因是缺少libnsl.so.1库文件或环境变量配置错误。解决步骤包括:检查系统中是否存在该库文件,若不存在则根据操作系统类型安装(有外网时通过yum或apt,无外网时创建符号链接),若存在则调整环境变量配置,并重新启动相关进程验证问题是否解决。
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
本文介绍了MySQL中`CONTINUE HANDLER FOR NOT FOUND`的用法及其在YashanDB中的改写方法。通过一个示例存储过程,展示了如何使用游标和异常处理机制来应对“未找到数据”的情况。在MySQL中,`CONTINUE HANDLER`用于捕获此类异常;而在YashanDB中,则需改用游标的`%NOTFOUND`属性和`NO_DATA_FOUND`异常处理。文章对比了两者的执行效果,帮助用户顺利完成从MySQL到YashanDB的业务迁移。
【YashanDB知识库】共享超过32000字节字符串插入CLOB类型方案
本文来自YashanDB官网,介绍了解决向崖山数据库CLOB类型字段插入超过32000字节字符串时出现的YAS-04107错误的方法。通过JDBC动态变量绑定技术,实现对不同表的超长字符串插入支持。方案基于YashanDB JDBC和Druid组件,动态解析SQL语句并绑定变量,提供通用性。文章包含关键代码示例及程序使用说明,需JDK 1.8环境运行,并提供附件下载以辅助实施。
【YashanDB知识库】扩展redo大小
本文介绍了崖山数据库(YashanDB)中调整redo文件数量和大小的方法。通过修改配置文件的REDO_FILE_NUM和REDO_FILE_SIZE参数,或使用SQL命令手动扩容redo文件,具体包括:查看当前redo状态、新增redo文件、切换日志写入、执行检查点操作以确保数据安全、删除旧redo文件等步骤。此方法适用于安装后发现redo配置过小的情况,帮助优化数据库性能。
【YashanDB知识库】MySQL和YashanDB 隐式转换不一致引起的报错
本文分析了在YashanDB中执行特定SQL语句时出现的类型转换错误问题,并对比了YashanDB、Oracle和MySQL 5.7的行为差异。问题源于隐式类型转换,当数值字段与非法数字字符串(如'1,2')进行比较时,YashanDB和Oracle会报错,而MySQL 5.7虽不报错但会引发警告。通过调整SQL语句,避免数值与字符串直接比较,可有效解决问题。文章还详细解析了不同值表现不一致的原因,涉及执行计划和过滤条件的实际运行细节。
【YashanDB知识库】数据库升级后用yasboot在线扩充备节点出现报错
本文来自YashanDB官网,讨论从22.2.4.1升级至23.2.2.100过程中遇到的在线扩容问题。使用yasboot增加备节点时出现“no replication addr in node 1-1”错误,尽管数据库中存在相关配置。原因是早期托管功能未支持扩容,导致OM无法获取新库配置。提供两种规避方法:一是手动修改`cod_domor.db`信息并调整配置文件;二是手动安装YashanDB并配置备机。最终已向研发反馈,将在扩容时优化配置检查逻辑。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等