文档首页/
数据仓库服务 GaussDB(DWS)/
更多文档/
用户指南(吉隆坡区域)/
常见问题/
数据库连接/
为什么在互联网环境连接GaussDB(DWS) 后,解绑了EIP不会立即返回失败消息?
更新时间:2022-08-16 GMT+08:00
为什么在互联网环境连接GaussDB(DWS) 后,解绑了EIP不会立即返回失败消息?
这是因为解绑了EIP后,会导致网络断开。但是此过程中,TCP协议层因keepalive等的设置,无法及时识别物理连接已经故障,导致gsql,ODBC和JDBC等客户端无法及时识别网络故障。
客户端等待数据库返回的时间与keepalive参数的设置相关,具体可以表示为:keepalive_time + keepalive_probes * keepalive_intvl。
因为keepalive参数涉及到网络的通信的稳定性,所以可根据具体的业务压力与网络状况进行调整。
如果是Linux环境,使用sysctl命令修改如下参数:
- net.ipv4.tcp_keepalive_time
- net.ipv4.tcp_keeaplive_probes
- net.ipv4.tcp_keepalive_intvl
以修改net.ipv4.tcp_keepalive_time参数值为例,执行如下命令将参数值修改为120秒:
sysctl net.ipv4.tcp_keepalive_time=120
如果是Windows环境,修改注册表“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters”中的如下配置信息:
- KeepAliveTime
- KeepAliveInterval
- TcpMaxDataRetransmissions(相当于tcp_keepalive_probes)
如果以上参数不在注册表“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters”中,可以在注册表编辑器对应路径下右键单击 进行添加。
父主题: 数据库连接