How can I keep Oracle SQL Developer from closing t

2020-05-21 07:47发布

Is there any way to keep Oracle SQL Developer from closing my DB connections, or to increase the timeout? Sometimes during a long-running query SQL Dev will just close the connection, leaving my query running on the server but me with no results. If I RDP into the server and run SQL Dev locally it never seems to have this problem.

7条回答
可以哭但决不认输i
2楼-- · 2020-05-21 08:25

Here's another Keep Connection Active extension that might be of use. (The extension mentioned above contains a number of issues that are resolved in this extn.)

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

查看更多
Animai°情兽
3楼-- · 2020-05-21 08:28

our DBA seems to have found a solution to this:

2.2. If there is a firewall present between the OC4J instance & the Database The firewall might drop inactive jdbc connections to the database server. However, the OC4J instance cannot detect that the firewall has timed out the connection to the database. Oracle Net can be configured with Dead Connection Detection (SQLNET.EXPIRE_TIME) to workaround this problem. Set EXPIRE_TIME on the database server to a value less than the firewall connection timeout so that DCD keeps the connection to the database alive. See Note 151972.1 "Dead Connection Detection (DCD) Explained". Since this is a setting configured on the database server, not on the midtier, it will apply for all database connections (OCI and thin JDBC). Alternative solutions: - Disable or increase the idle timeout parameter of the firewall. or - Configure the TCP Keepalive time setting on the database and on midtier servers to a value less than the firewall connection timeout. After setting the TCP Keepalive time, the machines will send repeatedly a null packet after the minutes specified to keep the connections alive. As the packet is sent every time inside the firewall idle timeout, the connection will not get closed.

查看更多
爱情/是我丢掉的垃圾
4楼-- · 2020-05-21 08:35

Also sounds like a firewall problem to me.

You may have some luck with setting EXPIRE_TIME parameter in the server's SQLNET.ORA file. From the documentation:

Use parameter SQLNET.EXPIRE_TIME to specify a the time interval, in minutes, to send a probe to verify that client/server connections are active. Setting a value greater than 0 ensures that connections are not left open indefinitely, due to an abnormal client termination. If the probe finds a terminated connection, or a connection that is no longer in use, it returns an error, causing the server process to exit. This parameter is primarily intended for the database server, which typically handles multiple connections at any one time.

10g Documentation on EXPIRE_TIME

查看更多
乱世女痞
5楼-- · 2020-05-21 08:36

As a temporary solution to it, at the side of 'Data Grid' you'll find the tab 'DBMS Output', turn DBMS output ON and set the polling frequency to an agreeable time.

查看更多
淡お忘
6楼-- · 2020-05-21 08:43

#1. Check with th3 DBA what is the user's profile of the used connecting. Then check inactivity timeouts for the profile.

#2. Change the connection setting in SQL Developer to Connection Type=Basic and use SID (not Service Name).

Connection Properties in SQL Developer

If you use Connection Type=TNSNAMES or Service Name instead of SID - the connections will be dropped.

查看更多
女痞
7楼-- · 2020-05-21 08:44

This doesn't sound like an issue with SQL developer, cetainly I've never come across it. Are you sure it's not something else, like your network? What happens if you connect from SQL plus from your desktop.

查看更多
登录 后发表回答