java连接ob超时Communications link failure

【 使用环境 】生产环境
【 OB or 其他组件 】oceanbase+druid
【 使用版本 】oceanbase-3.2.3.3,druid-1.0.9
【问题描述】使用druid连接ob 报Communications link failure与此问题类似
【复现路径】项目启动初始化读取连接超时
【问题现象及影响】影响项目启动

【附件】

1 个赞

各位大佬,是否有解决方案或者排查方向?

1 个赞

企业版的直接找企业版技术支持,去看ob端日志,看看有没有什么异常。更快速定位问题

这个断联,原因可能很多吧,还得具体完整异常,obproxy和observer端看看

1 个赞

常见异常处理
数据库连接问题排查
●在遇到连接问题时,需要清楚整个系统的架构,对整个连接链路进行排查。通常情况下应用连接到数据库的完整链路是从应 用服务器到 OBProxy 再到 OB 集群,此外还可能涉及负载均衡、DNS 解析、网络等。一般连接问题如连接失败、连接断开、 连接报错异常等问题排查,从以下两个方向入手:
○OBProxy 和应用之间的连接异常
○OBProxy 和 OBServer 之间连接异常
●排查方式:
○首先可以通过尝试连接,缩小问题链路的范围
■通过OBProxy连接数据库
■直连OceanBase数据库
○查看报错信息,常见报错类型有
■数据库事务状态异常,OB主动断开连接
■应用端连接报错。如果报错信息涉及Get connection timeout及连接数,应查看应用是否有流量突增或DB 连接 数设置;如果报错信息涉及Communications link failure,连接可能被异常中断

com.alipay.oceanbase.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.alipay.oceanbase.jdbc.Util.handleNewInstance(Util.java:439)

0 ms基本就是压根没有连成功。
obclient 或者mysql client能连吗?

可以的,通过odc能直连成功,对应的ip也能ping通

您这个版本是 OB 的企业版,应该有对应的售后支持服务,可以联系下。

是网络问题,已解决。谢谢各位老师

怎么解决兄弟 我现在经常遇到这个问题 四台java容器 连接池大小64 * 4 如果是128*4 里面就报这个问题Communications link failure