springboot项目,druid数据源连接oceanbase报SQLException:Timeout

开发springboot项目,使用druid数据源连接oceanbase,使用的驱动是com.alipay.oceanbase.jdbc.Driver的驱动(oceanbase-client,版本1.1.10),mybatis进行数据表查询后报错:java.sql.SQLException:Timeout,想通过设置druid数据源超时时间防止报timeout的错误,通过代码设置了queryTimeout,transactionQueryTimeout均不生效,在数据库url上设置了socketTime,connectTimeout也均不生效。
想请问下,需要怎么设置超时时间,才可以等待sql执行完成,而不报timeout异常,感谢大佬答疑解惑,谢谢!

1 个赞

如果是10s超时,那应该是参数ob_query_timeout,默认10秒,单sql执行超时时间。

可以global,session,hint级,不同影响范围上设置。根据需要进行调整

2 个赞

感谢大佬回复,您说的ob_query_timeout这个参数是oceanbase的参数吗?但是,我们使用如官方下载的OceanBase Developer Center连接数据库,执行相同的sql,超过10s可以成功出结果,但是使用springboot mybatis执行,就会报这个问题,您知道是什么原因嘛?

是ob的参数,你使用springboot怎么修改的?
还可以使用mysql/obclient客户端直接连接,测试一下是否符合预期

1 个赞

我用obc测试了一下, 相同的sql,开始使用obc是超时的,在obc中使用这个语句 set session ob_query_timeout=60000000; 执行成功了,那我要通过springboot怎么修改这个ob的参数呀,来达到我目前obc成功的结果呢?

通过在springboot的sql上添加 /*+ QUERY_TIMEOUT(60000000) */解决了这个超时报错的问题,感谢两位大佬的指点,感谢感谢!