Frage

Gibt es eine Möglichkeit SQL Developer zu halten von meinen DB-Verbindungen zu schließen, oder das Timeout zu erhöhen? Manchmal während einer Abfrage mit langen Laufe SQL Dev schließt nur die Verbindung, so dass meine Abfrage auf dem Server ausgeführt wird, aber mich ohne Ergebnisse. Wenn ich in den Server RDP und SQL Dev lokal ausführen es scheint nie, dieses Problem zu haben.

War es hilfreich?

Lösung

Das klingt nicht wie ein Problem mit SQL Entwickler, cetainly habe ich noch nie über sie kommen. Sind Sie sicher, dass es sonst nicht etwas ist, wie Ihr Netzwerk? Was passiert, wenn Sie von SQL Plus von Ihrem Desktop zu verbinden.

Andere Tipps

Ich habe die Antwort nicht für diese, aber ich bin das gleiche Problem auftritt.

Die Firewall zwischen meinem SQL Developer und der Datenbank automatisch schließt „inaktiv“ Sitzungen. Eine lange Lauf Abfrage ist nach der Firewall eine inaktive Sitzung, so dass er schließt es. Ich habe nicht, aber gefunden, wie SQL Developer Pakete mit einer langen Laufe Abfrage über eine Verbindung senden zu machen, so dass der Firewall die Verbindung nicht schließen. Und ich weiß nicht, ob dies möglich ist, überhaupt nicht.

Also ich glaube nicht, es ist ein SQL Developer Problem ist, sondern ein Firewall-Problem.

- UPDATE

Es ist eine Erweiterung für SQL Developer, dass Sie die Verbindungen aktiv halten können: http: // sites .google.com / site / keepaliveext /

Es ist nicht völlig noch nicht fertig (zB die Benachrichtigung Sie Staaten die gleiche Timeout egal bekommen, was Timeout Sie angegeben haben), aber es funktioniert der Trick. Ich habe nicht, noch getestet es gegen die neueste SQL Developer Pre-Release, aber es funktionierte mit SQL Developer 2.2.x

- UPDATE

Für SQL Developer 4+ Sie verwenden können: http: //scristalli.github. io / SQL-Entwickler-4-Keep-Alive /

Hier ist eine weitere Halten Verbindung Aktive Erweiterung, die von Nutzen sein könnte. (Die Erweiterung oben erwähnt enthält eine Reihe von Fragen, die in diesem Nst gelöst werden.)

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

klingt auch wie ein Firewall Problem für mich.

Sie können etwas Glück haben mit der Einstellung EXPIRE_TIME Parameter in dem SQLNET.ORA-Datei des Servers. Aus der Dokumentation:

  

Parameter SQLNET.EXPIRE_TIME Verwenden Sie ein Zeitintervall angeben, in Minuten, um eine Sonde zu senden, dass der Client / Server-Verbindungen aktiv sind, zu überprüfen. einen Wert größer als 0 Einstellung sorgt dafür, dass Verbindungen werden auf unbestimmte Zeit nicht offen gelassen, aufgrund einer abnormalen Client Kündigung. Wenn die Sonde eine terminierte Verbindung findet, oder eine Verbindung, die nicht mehr in Gebrauch ist, gibt es einen Fehler, so dass der Server-Prozess zu beenden. Dieser Parameter wird für den Datenbankserver in erster Linie dazu, die in der Regel mehr Verbindungen zu einem beliebigen Zeitpunkt behandelt.

10g Dokumentation auf EXPIRE_TIME

Als vorübergehende Lösung, um sie an der Seite von ‚Data Grid‘ werden Sie auf die Registerkarte ‚DBMS Output‘ finden, schalten DBMS Ausgang ON und die Abfragefrequenz auf eine angenehme Zeit eingestellt.

unsere DBA scheint eine Lösung für dieses gefunden zu haben:

2.2. Wenn es eine Firewall zwischen der OC4J Instanz & Datenbank Die Firewall kann inaktiv JDBC-Verbindungen zum Datenbankserver fallen. Allerdings kann die OC4J Instanz nicht erkennen, dass der Firewall die Verbindung zur Datenbank abgelaufen ist. Oracle Net kann mit toter Verbindung Detection (SQLNET.EXPIRE_TIME) konfiguriert werden, um dieses Problem zu umgehen. Set EXPIRE_TIME auf dem Datenbankserver auf einen Wert kleiner als die Firewall-Verbindung Timeout so dass DCD die Verbindung zur Datenbank am Leben hält. Siehe Hinweis 151.972,1 "Dead Verbindung Detection (DCD) erklärt". Da dies eine Einstellung auf dem Datenbank-Server, nicht auf dem midtier konfiguriert ist, wird es für alle Datenbankverbindungen (OCI und Thin JDBC) anzuwenden. Alternativlösungen: - Deaktivieren oder die Leerlaufzeitparameter des Firewall erhöhen. oder - Konfigurieren Sie die TCP-Keep-Alive auf der Datenbank und auf midtier Servern auf einen Wert kleiner als die Firewall-Verbindung Timeout einstellen. Nach der TCP Keepalive Zeiteinstellung, senden die Maschinen immer wieder ein Null-Paket nach dem Protokoll spezifiziert die Verbindungen am Leben zu halten. Da das Paket jedes Mal innerhalb der Firewall Idle Timeout gesendet wird, wird die Verbindung nicht geschlossen erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top