OceanBase 常见问题排查

2021-06-30 16:08 更新

出现错误信息 “Could not read resultset: unexpected end of stream, read 0 bytes from 4”

这是在与服务器通信时出现的问题。

在大多数情况下,这是由读取具有较大结果集的查询引起的。服务器通常希望客户端相对快速地读取结果集。 ​net_write_timeout​ 服务器变量控制此行为(默认为 60s)。如果客户端在这段时间内没有读取整个结果集,则服务器将丢弃该连接。如果不希望在此时间内处理结果,则可以使用查询 ​SET STATEMENT net_write_timeout = 10000 FOR XXX​,其中 ​XXX​ 是指“常规”查询。针对此查询将 ​net_write_timeout​ 设置为更长的时间(在此示例中为 10000)。

如果应用程序通常使用很多具有 Fetch Size 的长查询,则可以使用 ​sessionVariables = net_write_timeout = xxx​ 选项设置连接。

如何进行轻量级 Ping/ 以避免大量使用“SELECT 1”

Connection.isValid()​ 可以进行轻量级 ​Ping/​ 以避免大量使用 ​SELECT 1​。​Connection.isValid()​ 在 MySQL 协议中执行 Ping 操作,而不是执行网络 Ping 操作。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号