OceanBase 常见问题排查
出现错误信息 “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 操作。