、
长连接的使用场景
当业务中客户端和服务器长时间无数据交互,空闲时间超过1800秒,会话会因超时被清除。后续客户端没有重新发起连接,直接发送控制报文时导致数据不通。常见于数据库连接。
1. 重点说明
- 以天为单位的会话超时需要开启长效会话比例,否则无效,按协议默认值生效。TCP 1800s,UDP 60s。
- 以秒为单位的会话超时配置(最大65535,约18小时),不属于长效会话,可以不开启长效会话比例。
- 命令行show session 或web UI通过策略查看会话超时时间确认是否生效。
- 仅对配置完成后新建的会话生效,配置前已存在的会话无效。
2. 场景解析
某些业务同一个会话的保持或响应时间比较长,出现以下情况时,会导致业务失败。
- 业务的连接闲置时间比较长,StoneO会话超时后,客户端和服务器直接连接仍然保持。当请求发起时,客户端不再进行三次握手,如果防火墙开启了syn0检查或响应时间超过三次握手等待时间,相关报文会被丢弃。
- 客户端发送请求后,服务端响应时间超过应用会话存活期(例如海量数据库查询用时超过1800S),回包经过防火墙时,相关会话已经因超时关闭,从而导致报文被丢弃业务失败。
StoneOS相关会话的生存期需要大于应用的等待和响应时间,如果该时长大于系统预定义生存期,则需要做相关配置。
常见的相关应用:oracle数据库(预定义应用SQLNETv2)、SSL vpn 的UDP数据传输等。
3. 相关概念
会话闲置时间:只客户端和服务器之间的连接保持时间,只要闲置不超过该时长,客户端和服务器可能会继续使用该连接。
超时时间:相关会话无任何流量命中时的保持时长,超过该时长会话会关闭。
长效会话:超时时间超过65535秒的会话。
4. 相关配置
设置长效会话比例
以天为单位的会话超时需要开启长效会话比例,否则无效,按协议默认值生效。TCP 1800s,UDP 60s。以秒为单位的会话超时配置(最大65535,约18小时),不属于长效会话,可以不开启长效会话比例。
进入【网络】【全局网络参数】开启 【长效会话】开关,比例通常按推荐10%即可。

CLI 配置:
longlife-sess-percent 10
通过应用定义长连接
如果需要全局对某个常见应用生效,如全网oracle可以对预定义应用进行配置。配置步骤如下