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?
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 .
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% 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.
Obwohl ich weiß, dass Sie nicht nach Verbindungspools gefragt haben, sollten Sie wahrscheinlich trotzdem einen verwenden, damit Ihnen das zweifach hilft.