文档首页 > > 常见问题> 连接访问类> 为什么在互联网环境连接DWS后,解绑了EIP不会立即返回失败消息?

为什么在互联网环境连接DWS后,解绑了EIP不会立即返回失败消息?

分享
更新时间: 2019/04/30 GMT+08:00

这是因为解绑了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”中,可以在注册表编辑器对应路径下右键单击新建 > DWORD值进行添加。

分享:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区