我怎样才能保持的Oracle SQL Developer从关闭数据库连接?(How can I ke

2019-08-02 00:03发布

有什么办法让Oracle SQL Developer中从关闭我的数据库连接,或增加超时? 长时间运行的查询过程有时候SQL开发将只关闭连接,留下我的查询服务器上运行,但我没有结果。 如果我RDP连接到服务器并在本地运行SQL开发它似乎永远不会有这个问题。

Answer 1:

这听起来并不像SQL开发人员的问题,cetainly我从来没有遇到过。 你确定它不是别的东西,比如你的网络? 如果从SQL加上从您的桌面连接会发生什么情况。



Answer 2:

我没有这样做的答案,但我遇到了同样的问题。

我的SQL开发人员和数据库之间的防火墙关闭全自动“不活跃”的会议。 长时间运行的查询是根据防火墙的活动会话,所以他关闭它。 我还没有,还没有发现如何使SQL开发人员发送的数据包超过了长时间运行的查询的连接,因此防火墙不会关闭连接。 我不知道这是不可能的。

因此,我不认为这是一个SQL Developer的问题,而是一个防火墙问题。

- 更新

没有为SQL Developer的一个扩展,它可以让你保持连接活跃: http://sites.google.com/site/keepaliveext/

它没有完全完成,但(例如通知你状态相同的超时不管你指定什么超时),但它的伎俩。 我还没有,还没有,测试它针对最新的SQL开发者预先发布,但它与SQL开发工作的2.2.x

- 更新

对于SQL开发4+你可以使用: http://scristalli.github.io/SQL-Developer-4-keepalive/



Answer 3:

这里还有一个保持连接活动的扩展,可能是有用的。 (上面提到的扩展包含了一定数量的在此分机解决的问题。)

http://sites.google.com/site/keepconnext/



Answer 4:

听起来也像是一个防火墙的问题给我。

你可能有一些运气与服务器的SQLNET.ORA文件中设置的expire_time参数。 从文档:

使用参数SQLNET.EXPIRE_TIME指定的时间间隔,以分钟为单位,发送探测,以验证客户端/服务器的连接是活动的。 设置一个大于0的值可确保连接不保持打开无限期,由于异常客户端终端。 如果探头发现一个终止的连接的,或者说是不再使用连接时,它会返回一个错误,导致服务器进程退出。 该参数主要用于数据库服务器,它通常处理在任一个时刻的多个连接。

上的expire_time10克文档



Answer 5:

作为一个临时解决方案,它在“数据网格”的侧面,你会发现标签“DBMS输出”,打开DBMS输出ON和轮询频率设置为一个愉快的时间。



Answer 6:

我们的DBA似乎已经找到了解决这个:

2.2。 如果有一个出现在OC4J实例和数据库之间的防火墙,防火墙有可能回落到数据库服务器不活动的JDBC连接。 然而,OC4J实例无法检测防火墙已超时到数据库的连接。 Oracle网络可以与失效连接的检测(SQLNET.EXPIRE_TIME)配置以解决此问题。 数据库服务器不到防火墙的连接超时值设定的expire_time使DCD与数据库保持活着的连接。 见注释151972.1“死连接检测(DCD)解释”。 由于这是在数据库服务器上配置的设置,而不是在中档,这将适用于所有的数据库连接(OCI和瘦JDBC)。 替代方案: - 禁用或增加防火墙的空闲超时参数。 或 - 配置TCP存活时间在数据库上,并在中档服务器小于防火墙连接超时的值设定。 设置TCP存活时间后,机器将重复发送指定保持连接活着分钟后空包。 当包被发送防火墙空闲超时内每一次,该连接不会得到封闭。



文章来源: How can I keep Oracle SQL Developer from closing the DB connection?