使用TOAD客户端通信configurationKeepalive

我有一个场景, 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 …


问题

  1. 我可以在Windows客户机或服务器上使用KeepAliveTime技术吗?
    (有人试过吗?)
    • 有没有其他方法来保持这些TOAD连接活动(从通信的任何一端)?

在sqlnet.ora中设置SQLNET.EXPIRE_TIME的值。

以下是Oracle手册在这个主题上所说的内容:

目的

使用参数SQLNET.EXPIRE_TIME来指定以分钟为单位的时间间隔,以发送探测器来validation客户端/服务器连接是否处于活动状态。 设置大于0的值可确保连接不会无限期地打开,因为客户端exception终止。 如果探测器发现终止的连接或不再使用的连接,则返回错误,导致服务器进程退出。 此参数主要用于数据库服务器,通常在任何时候处理多个连接。

使用此终止连接检测function的限制是:

  • 这是不允许的遗留连接。
  • 探测包虽然非常小,但会产生额外的stream量,从而降低networking性能。
  • 根据所使用的操作系统的不同,服务器可能需要执行额外的处理来区分连接探测事件与发生的其他事件。 这也可能导致networking性能下降。

默认值 :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输出轮询来维护连接。