首批通过分布式安全可靠测评,为关键业务系统打造
空闲链接超时导致的应用周期性断链问题
更新时间:2026-06-03 03:01
适用版本
OceanBase 数据库所有版本。
问题现象
应用周期性断链报错:
Communications link failure
或
Connection reset
问题原因
断链的原因有很多,本案例为负载均衡(F5、SLB 等)、防火墙等因为空闲链接超时导致的断链。此类断链的特征为:
周期性的断链,在 Communication link failure 的报错信息中,断链的发生时间(The last packet)相对固定。
The last packet successfully received from the server was 599,958 milliseconds ago. The last packet sent successfully to the server was 599,959 milliseconds ago.OBProxy 日志中有客户端主动关闭链接的记录(event="VC_EVENT_EOS")。
[2022-07-06 16:00:02.412289] INFO [PROXY.SM] ob_mysql_sm.cpp:474 [33664][Y0-7FEA73385260] [lt=7] [dc=0] ObMysqlSM::state_client_request_read(event="VC_EVENT_EOS", sm_id=13795627, client_vc=0x7fea7337e740) [2022-07-06 16:00:02.412323] INFO [PROXY.TXN] ob_mysql_transact.cpp:65 [33664][Y0-7FEA73385260] [lt=31] [dc=0] [ObMysqlTransact::bad_request] parser marked request bad [2022-07-06 16:00:02.412333] WARN [PROXY.SM] setup_error_transfer (ob_mysql_sm.cpp:5563) [33664][Y0-7FEA73385260] [lt=8] [dc=0] [setup_error_transfer] Now closing connection(sm_id=13795627, request_cmd="Sleep", sql_cmd="End", sql=)
解决办法
- 调整 F5/SLB 或者防火墙的空闲链接超时参数。
- 在 OBProxy 中开启 TCP 探活。