ODC 客户端报 : (conn=33406) Query timed out 错误

【 使用环境 】测试环境
【 OB or 其他组件 】 ODC
【 使用版本 】 ODC :3.2.2 (ob 版本是 3.2.3 )
【问题描述】ODC 客户端报 : (conn=33406) Query timed out 错误
【复现路径】执行一个长时间查询就报错 Query timed out
【问题现象及影响】

在ODC 中执行一个长查询, 差多2-3 分钟就报错 : (conn=33406) Query timed out
但是 数据库相关的超时参数已经设置的非常大了。
而且 通过 obclient 直接连接到数据库执行 就没有问题, 执行了一个小时也不会返回超时错误。

通过 ODC 就很快报超时问题, 即便设置了 select /*+ query_timeout(200000000000) */ hint 也不起效果。
是ODC 版本偏低的问题 还是 ODC 有啥参数控制 ?

当前oceanbase oracle 模式 关于 超时的参数配置如下 :

show global variables like ‘%timeout%’;

‘VARIABLE_NAME’ ‘VALUE’
‘connect_timeout’ ‘10’
‘interactive_timeout’ ‘28800’
‘net_read_timeout’ ‘30’
‘net_write_timeout’ ‘60’
‘ob_pl_block_timeout’ ‘3216672000000000’
‘ob_query_timeout’ ‘200000000000’
‘ob_trx_idle_timeout’ ‘120000000’
‘ob_trx_lock_timeout’ ‘-1’
‘ob_trx_timeout’ ‘1200000000’
‘wait_timeout’ ‘28800’

ob_query_timeout这个参数调整了试试

在SQL窗口中执行 SQL 超时,报错:

ErrorCode = 1317, SQLState = 70100, Details = (conn=405741) Query timed out

问题原因

SQL的执行时间超过了 ODC 在驱动层设定的超时时间导致

解决方案

需要在连接详情界面更改“SQL 查询超时时间”,使其大于SQL的实际执行时间:

1 个赞

确实是 工具上自带的这个设置 优先级 更好。

我在会话级别或是全局设置 set session ob_query_timeout=2000000000; 都没有用。

多谢你帮忙解决这个问题 :+1:

已经设置的很大了 没有效果。 原来是 ODC工具自身 有个 “SQL 查询超时时间” 设置。