JDBC-Verbindung mit auto-reconnect
Ich bin mit JDBC-Verbindung zu einem Datenbank-server.
Die Verbindung wird über ein WLAN-Netzwerk und kann dodgy mal an.
In dem moment, wenn die Verbindung verloren gegangen ist, die ich brauche, um zu schließen und die Anwendung neu starten.
Hat jemand ein paar Beispiele, wo ich schreiben konnte, eine Art wrapper automatisch erneut verbinden und wiederholen Sie die Letzte Abfrage? Dies würde sparen Sie eine Menge ärger.
Ich bin mir nur nicht sicher, wie es werden könnte/sollte umgesetzt werden.
Vielleicht gibt es schon was verfügbar?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lassen Sie einen Verbindungspool übernehmen das für Sie, viele von Ihnen bestätigen können, eine Verbindung. So hat DBCP die eine
testOnBorrow
parameter, die erzwingt, dass eine Plausibilitätsprüfung auf jede Verbindung, bevor es verwendet wird. Der default-Wert dieses Parameters isttrue
, es muss nurvalidationQuery
festgelegt werden, um eine nicht-null-string zu haben, keine Wirkung. So legen Sie dievalidationQuery
und dort gehen Sie! Überprüfen Sie heraus die Dokumentation.Selbst wenn Sie JDBC connection pool application-server oder apache-commons-pooling, lohnt es sich, code " retry-Logik. Basierend auf der Konfiguration Ihres Applikations-server, app-server entfernen alle zusammengefassten verbindungen und erstellen Sie eine neue Reihe von verbindungen. Hier ist ein Beispiel:
Check-out von Oracle Universal Connection Pool (UCP) Bibliotheken. Sie sind voll JDBC 4.0-kompatibel und Umsetzung der
isValid()
aufrufen, um zu überprüfen, ob eine Verbindung aktiv ist. Es ist einfach, dies zu tun, überprüfen Sie, ob falsche verbinden, dann führen Sie Ihre Abfrage.Oracle UCP Download-Seite
Obwohl ich weiß, Sie nicht Fragen zu verbindungspools, sollten Sie wahrscheinlich sowieso, so dass dies wird Ihnen helfen, eine doppelte.
oracle.ucp.jdbc.ValidConnection
aber TBH, ich glaube nicht, dass die Verwendung von vendor-spezifischen Klassen ist eine gute Idee und würde nicht empfehlen es.