带 Azure 数据库服务器的 LAC/E 上出现数据库连接终止 ORA-03135 - WKB264945
文章编号: 264945点击此处访问英文版本文章
故障描述
- LAC/E 系统处于非活动状态 65 分钟后登录时,出现 Database connection terminated ORA-03135(数据库连接终止 ORA-03135)错误
- 如果采集时间超过 65 分钟,会出现缓冲现象
- Citrix 会话中看不到 ORA-03135
- 采集时间少于 65 分钟时,未观察到 ORA-03135 错误和缓冲
环境
- Empower 3.6.1(任何版本都可能受影响)
- Azure 数据库服务器
- Azure Citrix
- Azure原始数据文件共享
原因
Azure 策略会在非活动状态 65 分钟后关闭来自外部计算机 (LAC/E) 的空闲 TCP 连接。 ORA-03135 表示 Oracle 外部原因关闭了连接。
解决方法
只有两个选择。 Empower SQL TCP 与数据库的连接仅在进样开始和结束时有效。
- 设置 SQLNET.Expire_Time(请参阅 Empower,频繁缓冲多个站点、多个 LAC/E - WKB229311)。但是,空数据包可能会被丢弃/忽略。
- 在服务器上设置 TCP KeepAlive。这将发送 ACK 数据包到打开的连接,这些连接未被忽略。打开但空闲的连接应有响应。
附加信息
Windows 中的缺省 TCP Keepalive 时间间隔为 2 小时。如果其他超时设置的值较低,则 TCP Keepalive 将不会启动。
非活动状态一段时间 (KeepAliveTime) 后,服务器将以指定的间隔 (KeepAliveInterval) 发送 ACK 数据包,直至达到指定的最大数量。
要在服务器上设置的 TCP KeepAlive 注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
- https://learn.microsoft.com/en-us/answers/questions/1115172/keepalivetime-registry-setting-for-windows-server
- https://www.alitajran.com/tcp-keepalivetime-exchange-server/
- https://en.wikipedia.org/wiki/Keepalive
id264945,