odc打开命令行窗口,显示连接已断开

【 使用环境 】测试环境
【 OB or 其他组件 】ODC桌面开发工具
【 使用版本 】4.4.3-1779953090000
【问题描述】Windows上使用ODC桌面工具,在数据库打开命令行窗口时,自动断开连接
【复现路径】
建立连接中…
建立连接成功…


为避免乱码问题,请保持数据库客户端编码和操作系统编码一致。
(一般情况下 Linux 操作系统默认字符编码为 UTF8,Windows 操作系统默认字符编码为 GBK,具体以实际情况为准)


连接已断开

@论坛小助手

7 个赞

logs.zip (560.3 KB)

[2026-06-30 22:08:42.548 CST][http-nio-8989-exec-1][8017959448ac4616,][INFO][com.oceanbase.odc.core.datasource.SingleConnectionDataSource$CloseIgnoreInvocationHandler][345]: Get connection unlock, lock=812703669
[2026-06-30 22:08:42.559 CST][http-nio-8989-exec-11][,][INFO][com.oceanbase.odc.server.web.websocket.WebSocketServer][197]: obclient session initializing, resourceId=sid:eyJkYklkIjoxMDAsImRzSWQiOjk3LCJmcm9tIjoiMTAuNi4xNDQuNjIiLCJsb2dpY2FsU2Vzc2lvbiI6ZmFsc2UsInJlYWxJZCI6Ijk3YmEzMzQ3YmQifQ==, sessionId=e
[2026-06-30 22:08:42.560 CST][http-nio-8989-exec-11][,][INFO][com.oceanbase.odc.server.web.websocket.WebSocketServer][240]: command to be execute: D:\Program Files\OceanBase Developer Center\OceanBase Developer Center\resources\libraries\obclient\obclient.exe -h10.6.151.21 -P2883 -u"XCIRMS_BNXP"@htxp#OB_BN -D"XCIRMS_BNXP" --init-command set names gbk --ob-disable_commands connect,conn,edit,nopager,notee,pager,print,prompt,rehash,system,tee,resetconnection
[2026-06-30 22:08:42.818 CST][http-nio-8989-exec-11][,][INFO][com.oceanbase.odc.server.web.websocket.WebSocketServer][242]: “XCIRMS_BNXP” has established connection with obclient, current connection number is 1, session id: e
[2026-06-30 22:08:42.818 CST][http-nio-8989-exec-11][,][INFO][com.oceanbase.odc.server.web.websocket.WebSocketServer][200]: obclient session initialized, resourceId=sid:eyJkYklkIjoxMDAsImRzSWQiOjk3LCJmcm9tIjoiMTAuNi4xNDQuNjIiLCJsb2dpY2FsU2Vzc2lvbiI6ZmFsc2UsInJlYWxJZCI6Ijk3YmEzMzQ3YmQifQ==, sessionId=e
[2026-06-30 22:08:42.818 CST][Obclient_Read_Thread_1385334006][,][INFO][com.oceanbase.odc.service.websocket.OBClientReadThread][47]: Obclient threadid:290 start to run
[2026-06-30 22:08:50.447 CST][odc-web-socket-schedule-0][,][INFO][com.oceanbase.odc.server.web.websocket.WebSocketServer$1][150]: Close session for backend thread has been killed, session id: e
[2026-06-30 22:08:50.448 CST][odc-web-socket-schedule-0][,][INFO][com.oceanbase.odc.server.web.websocket.WebSocketServer][351]: Terminate connection. Current connnection number is 0
[2026-06-30 22:08:50.455 CST][Obclient_Read_Thread_1385334006][,][INFO][com.oceanbase.odc.service.websocket.OBClientReadThread][84]: Obclient thread end, threadId=290

3 个赞

@论坛小助手

问题分析

根据您提供的日志信息,ODC(OceanBase Developer Center)在尝试通过obclient命令行工具连接到OceanBase数据库时成功建立了连接。但是随后连接被意外断开。从日志中可以看到几个关键点:

  • 在2026-06-30 22:08:42时刻,客户端与obclient之间建立起了连接。
  • 不久后,在2026-06-30 22:08:50时刻,会话因后端线程被终止而关闭。

这种情况下,可能的原因包括但不限于:

  1. 网络不稳定或短暂中断。
  2. obclient进程自身异常退出。
  3. ODC内部逻辑错误导致主动断开已建立的连接。
  4. OceanBase服务器端主动关闭了该连接,可能是由于超时或其他原因。

检查建议

  1. 网络稳定性:检查您的网络环境是否稳定,尝试使用ping命令或者telnet命令测试与OceanBase服务器之间的连通性。

    ping <OceanBase服务器IP>
    telnet <OceanBase服务器IP> 2883
    
  2. 查看OceanBase日志:登录到OceanBase服务器,查阅相关时间点的日志文件,看看是否有任何关于断开连接的记录或警告信息。特别关注obclient使用的用户账号是否存在权限问题。

  3. 调整ODC设置:尝试修改ODC中的某些配置项,比如增加重试次数、延长超时时间等,看是否能改善情况。这些选项通常位于连接配置页面内。

  4. 升级软件版本:确认您正在使用的ODC版本是最新的。有时候bug修复或功能增强可以解决此类问题。如果当前使用的是测试版,则可能存在一些未发现的问题;考虑切换至稳定版或许有所帮助。

  5. 联系支持团队:如果您已经尝试了上述所有步骤但问题依旧存在,请将详细描述及完整的日志文件发送给OceanBase的技术支持团队,他们能够提供更深入的帮助。

结论

遗憾的是,基于现有文档片段,并没有直接提到针对您遇到的具体问题的解决方案。这表明问题可能是由特定条件下触发的一个异常情况。按照上述建议进行排查,应该有助于识别根本原因并找到解决问题的方法。如果问题持续存在,建议尽快寻求官方技术支持。

详情请参考:

  1. 配置最佳实践
4 个赞

回答的真详细, :muscle: :muscle: :muscle:

1 个赞

标准回复。

答得太好了

没有用过odc,看来以后得尝试一下了

1 个赞