我有一个场景, TOADSoft客户端与Oracle服务器的长时间空闲会话似乎被中断,因为它们在中间状态完全防火墙上超时。
这些会话可能会闲置多个小时!
在全球范围内增加防火墙超时是不可接受的
当然,它不支持更长的特定stream量超时。
我已经修复了PuTTY闲置连接的问题;
它允许一个可configuration的保持活着 。
但是,我还没有在TOAD软件中find这样的支持。
在系统范围的configuration上查找一下,我想出了这个Microsoft TechNet详细的configuration系统范围的Keep-Alives ,涉及到使用KeepAliveTime和相关的registryvariables。
HKLM \系统\ CurrentControlSet \服务\ TCPIP \参数\ KeepAliveTime的
这看起来像使用全系统保持活动的Linux系统范围的configuration 。
但是,这需要程序使用setsockopt()和请求保持活动(正确?)。
请记住,即使在内核中configurationKeepalive支持,也不是Linux中的默认行为。 程序必须使用setsockopt接口请求它们的套接字的存活控制。 有相当less的程序实施Keepalive …
在sqlnet.ora中设置SQLNET.EXPIRE_TIME的值。
以下是Oracle手册在这个主题上所说的内容:
目的
使用参数SQLNET.EXPIRE_TIME来指定以分钟为单位的时间间隔,以发送探测器来validation客户端/服务器连接是否处于活动状态。 设置大于0的值可确保连接不会无限期地打开,因为客户端exception终止。 如果探测器发现终止的连接或不再使用的连接,则返回错误,导致服务器进程退出。 此参数主要用于数据库服务器,通常在任何时候处理多个连接。
使用此终止连接检测function的限制是:
默认值 :0
最小值 :0
推荐值 :10
例
SQLNET.EXPIRE_TIME=10
你有SSH访问? 你可以build立一个SSH隧道,并通过它发送SQL通信。
TOAD:服务器(或tnsnames)成为本地主机,侦听端口是一些随机端口,如12346
PuTTY:端口转发。 源端口:12346,目的地:$ REMOTE_IP:1521。 将其保留为本地端口。
确保您通过连接部分在PuTTY中启用TCP保持活动。
我在戴尔的网站上发现了这个问题,并确认它可行(在Toad 11.5.0.56下): 蟾蜍是否有保持活动/间隔时间/ ping设置,以便networking不会超时? (49507)
总结 – 通过点击DBMS Output菜单栏左边的红色button图标(它将变为绿色),在DBMS Output窗口中打开Output On。 您可以在“数据网格”选项卡旁边的“DBMS输出”选项卡中或通过“查看” – >“DBMS输出”来访问它。
这将自动打开轮询。 根据我的经验,您需要同时启用DBMS输出和轮询来维护连接。