Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Die Verbindung hängt nach einer Zeit der Inaktivität

Ich hatte solche Probleme schon früher, wenn sich die Datenbank auf einem separaten Rechner befindet und sich eine Firewall dazwischen befindet, die so eingestellt ist, dass Leerlaufverbindungen unterbrochen werden.

Unter Umständen trennt die Firewall die Verbindung so, dass die JDBC-Seite sie nicht erkennt, und der Versuch, sie zu verwenden, führt zu einer unbefristeten Sperre.

In meinem Fall war es ein benutzerdefinierter Verbindungspool, der eine Testabfrage über die Verbindung sendete, bevor er sie aus dem Pool zurückgab. Ich habe diese Testabfrage so konfiguriert, dass sie eine Zeitüberschreitung hat (mithilfe von Statement.setQueryTimeout), damit sie nicht auf unbestimmte Zeit blockiert wird.