JDBC-Verbindung mit automatischer Wiederverbindung

8

Ich verwende JDBC, um eine Verbindung zu einem Datenbankserver herzustellen. Die Verbindung erfolgt über ein kabelloses Netzwerk und kann manchmal unzuverlässig sein. In dem Moment, in dem die Verbindung unterbrochen wird, muss ich die Anwendung schließen und neu starten.

Hat jemand einige Code-Beispiele, in denen ich eine Art Wrapper schreiben könnte, um die letzte Abfrage automatisch wieder zu verbinden und erneut zu starten? Dies würde eine Menge Ärger ersparen.

Ich bin mir einfach nicht sicher, wie es umgesetzt werden sollte. Vielleicht ist schon etwas verfügbar?

    
bumperbox 13.10.2009, 21:24
quelle

3 Antworten

1

Lassen Sie einen Verbindungspool dies für Sie erledigen, viele von ihnen können eine Verbindung validieren. Dasselbe gilt für DBPC , das über den Parameter testOnBorrow verfügt, der bei jeder Verbindung eine Sicherheitsüberprüfung erzwingt, bevor sie verwendet wird. Der Standardwert dieses Parameters ist true , es muss lediglich validationQuery auf eine Zeichenfolge ungleich null gesetzt werden, um einen Effekt zu erzielen. Also setze validationQuery und los gehts! Lesen Sie die Dokumentation .

    
Pascal Thivent 13.10.2009, 21:48
quelle
4

Auch wenn Sie den JDBC-Verbindungspool entweder mit dem bereitgestellten Anwendungsserver oder dem Apache-Commons-Pooling verwenden, ist es sinnvoll, eine Wiederholungslogik zu programmieren. Basierend auf der Konfiguration Ihres Anwendungsservers löscht der Anwendungsserver alle gepoolten Verbindungen und erstellt einen neuen Satz von Verbindungen neu. Hier ist ein Beispiel:

%Vor%     
zkarthik 13.10.2009 22:13
quelle
1

Sehen Sie sich die UCP-Bibliotheken (Universal Connection Pool) von Oracle an. Sie sind vollständig JDBC 4.0-kompatibel und implementieren den Aufruf isValid() , um zu überprüfen, ob eine Verbindung aktiv ist. Es ist einfach, diese Überprüfung durchzuführen, falls die Verbindung falsch ist, und führen Sie dann Ihre Abfrage aus.

Oracle UCP Download-Seite

Obwohl ich weiß, dass Sie nicht nach Verbindungspools gefragt haben, sollten Sie wahrscheinlich trotzdem einen verwenden, damit Ihnen das zweifach hilft.

    
Gandalf 13.10.2009 21:30
quelle

Tags und Links