使用jdbc执行ddl时,报超时异常

使用jdbc执行建表、建索引时,报超时异常:
java.sql.SQLNonTransientConnectionException: (conn=3221562941) Connection timed out
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:122)
at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:202)
at com.oceanbase.jdbc.OceanBaseStatement.executeExceptionEpilogue(OceanBaseStatement.java:320)
at com.oceanbase.jdbc.OceanBaseStatement.executeInternal(OceanBaseStatement.java:494)
at com.oceanbase.jdbc.OceanBaseStatement.executeUpdate(OceanBaseStatement.java:821)
at com.oceanbase.jdbc.OceanBaseStatement.executeUpdate(OceanBaseStatement.java:798)
at com.alibaba.druid.filter.FilterChainImpl.statement_executeUpdate(FilterChainImpl.java:2881)
at com.alibaba.druid.filter.FilterAdapter.statement_executeUpdate(FilterAdapter.java:2518)
at com.alibaba.druid.filter.FilterEventAdapter.statement_executeUpdate(FilterEventAdapter.java:321)
at com.alibaba.druid.filter.FilterChainImpl.statement_executeUpdate(FilterChainImpl.java:2879)
at com.alibaba.druid.filter.FilterAdapter.statement_executeUpdate(FilterAdapter.java:2518)
at com.alibaba.druid.filter.FilterEventAdapter.statement_executeUpdate(FilterEventAdapter.java:321)
at com.alibaba.druid.filter.FilterChainImpl.statement_executeUpdate(FilterChainImpl.java:2879)
at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.executeUpdate(StatementProxyImpl.java:231)
at com.alibaba.druid.pool.DruidPooledStatement.executeUpdate(DruidPooledStatement.java:328)

这个ddl执行了多久呢,另外,查一下ob的超时时间是多少(show variables like ‘%timeout%’;)

ddl执行了10s,报超时异常后,使用这个连接执行后续的ddl都是直接报错:
java.sql.SQLException: connection disabled
at com.alibaba.druid.pool.DruidPooledConnection.checkStateInternal(DruidPooledConnection.java:1184)
at com.alibaba.druid.pool.DruidPooledConnection.checkState(DruidPooledConnection.java:1169)
at com.alibaba.druid.pool.DruidPooledConnection.createStatement(DruidPooledConnection.java:656)
请问具体的是哪个超时时间参数?

Snipaste_2024-04-29_11-51-10

ob_query_time设置长一点时间,单位是us,你这里默认的就只有10s

Snipaste_2024-05-13_10-35-06
已经设置ob_query_time参数,没起作用。

已经超时异常了,这个连接的状态应该是不正常了,执行DDL报错,执行别的sql语句应该也会报错。

而且问题是:虽然报超时异常,但表却建成功了…请问这种情况需要调整哪个参数呢?

看一下java连接池或者jdbc的超时设置,你这里是JDBC超时,不是数据库超时连接被踢出