【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】是用应用mybatis+druid去连的数据库,同样的sql用应用跑就过10秒超时,用odc跑无异常,请问应该如何排查,应用中也未见10秒相关配置
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
1 个赞
论坛小助手
#3
推荐使用 obdiag 工具进行根因分析和日志采集,并且将采集到的日志提供给我们以便确认问题所在。
根因分析场景: 事务等待超时报错
根因分析命令: obdiag rca run --scene=transaction_wait_timeout
日志采集场景: SQL性能问题
日志采集命令: obdiag gather scene run --scene=observer.perf_sql --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”
为了更好地帮助您排查此问题,请您按照上述命令采集日志并提供给我们。同时,为了进一步了解情况,请您提供以下信息:
- 应用程序中使用的mybatis和druid版本号是多少?
- OceanBase的版本号是多少?
- 能否提供一个具体的SQL语句示例,该语句在应用程序中执行时会超时,但在ODC中运行正常?
- 是否可以查看并提供mybatis和druid的相关配置文件内容(请确保脱敏处理)?
- 在应用程序执行这条SQL时,是否可以通过obdiag获取到对应的trace_id?如果有,请一并提供。
这些信息将有助于我们更准确地定位问题原因。
附上敏捷诊断工具 obdiag 使用帮助链接
2 个赞
淇铭
#4
mybatis+druid 的版本号提供一下 ob数据库的版本号提供一下 druid的queryTimeout sql查询的超时时间是否设置
来轩
#5
需要确定一下druid 的版本是否是1.2.16以上的版本
云涧
#7
一般默认的参数ob_query_timeout的默认值是10s,你这边可以看下odc是否对会话做了特殊设置
你好,
1、首先在数据库中查询下全局超时时间,show variables like ‘%timeout%’
2、看下mybatis中有没有这样的配置
int queryTimeout = xx; // 单位:秒
java.sql.Statement stmt = connection.createStatement();
stmt.setQueryTimeout(queryTimeout);
3、 检查 Druid 连接池的 socketTimeout 和 connectTimeout配置。