Wie auto-reconnect Oracle connection pool nach Verbindungs-Unterbrechung?
Bin ich über ein problem mit dem Oracle connection pooling über OracleConnectionCacheImpl. Wenn ich eine Verbindung zu einem connection-pool auf meinen Datenbank-server (Oracle 10g), die über den thin-Treiber, funktioniert alles einwandfrei, bis nach einer unbestimmten Zeit, die db-Verbindung wird gelöscht (möglicherweise aufgrund von verbindungen im Leerlauf?) und ich bekomme eine Fehlermeldung:
Geschlossene Verbindung.
Aktualisierung der Seite und es wird erneut versucht die Verbindung wieder her die Datenbank, also scheint es nicht ein problem mit dem Netzwerk oder der Datenbank. Ist ein Weg für die Oracle connection pool zur Validierung Ihrer Verbindung und Wiederverbindung, wenn die Verbindung im pool ist tot, aus irgendeinem Grund?
Ich bin mit Apache Tomcat 6.0.18, Java EE6 update 11.
(Es scheint zu sein, eine ping-Funktion in der Oracle-thin-Treiber. Hilft das und wo kann ich es finden?)
4) Sind die physikalischen verbindungen zwischen app-server und DB-server abgeschnitten erhalten Sie auf der Netzwerk-Ebene, z.B. durch eine firewall?
Wo setze ich diese Parameter? Ich bin neu in der Programmierung von Oracle, also bin ich nicht sicher, wo Sie finden diese Parameter. Wo finde ich ValidateConnection und Kraft ein reconnect? (Einfach erfrischend mein browser gleich nachdem ich den Fehler beheben wird, Dinge sofort. Ich bin nicht sicher, ob dies ist ein firewall-Problem.)
Siehe download.oracle.com/docs/cd/B19306_01/java.102/b14355/... Und senden Sie den gesamten Fehler-stack, es wäre ganz hilfreich
+1 auf Verbindung überprüfen. Ich hatte das gleiche Problem .NET-Welt, hatte, um zu Validieren, Verbindung=true zur Verbindungs-string. Ihre syntax kann sich je nach jdbc.
InformationsquelleAutor futureelite7 | 2009-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Apache DBCP (DB-connection-pool) wird hier helfen. Sie können konfigurieren, mit einem 'validationQuery' parameter ist eine SQL-Abfrage ausführen, die auf einer Verbindung aus dem pool entfernt werden, BEVOR Sie es gibt es Ihnen. Wenn die Abfrage fehlschlägt, wird die Verbindung verworfen und ein neues gemacht und Euch gegeben.
Finden Sie hier http://commons.apache.org/proper/commons-dbcp/configuration.html für mehr details.
Beachten Sie, dass die validationQuery aufgerufen wird, jedes mal, wenn Sie eine Verbindung aus dem pool, so muss es so schnell wie möglich. eg:
InformationsquelleAutor Ramsay Domloge
Können Sie fügen Sie einige Konfigurationsparameter in der context.xml so, dass tomcat connection pool kümmert sich um den Toten verbindungen. Hier ist ein Beispiel für die context.xml bitte verwenden Sie die Benutzer - /Passwort/- url/ports usw. nach Sie Einstellungen.
InformationsquelleAutor jindal
Verwenden Sie eine andere Verbindung-pool library, wie C3P0, und verwenden Sie die Funktion für die automatische verbinden.
InformationsquelleAutor mhaller