Prüfung des Status von Datenbankverbindungen

Zwei Ansätze zur Überprüfung des physikalischen Status einer Verbindung. Der Erste verwendet herstellergebundene APIs, der Zweite ist ein Abfrageverfahren zum Testen der Verbindung.

Eine der wichtigsten Java JDBC-API-Klassen ist die java.sql.Connection. Entscheidende Aspekte sind deren Wiederverwendung, Pooling und Validierung. Die Verbindungsvalidierung ist vor allem bei Echtzeit-Anwendungen wichtig, da diese nur minimale oder gar keine Ausfallzeiten aufweisen sollten.

Tatsächlich können verschiedene Situationen auftreten, in denen eine Verbindung abbricht (z.B. durch Ausfall einer Datenbank oder aufgrund von Netzwerkproblemen). Leider liefert die standardmäßige Java-API keine Methoden zur Überprüfung des physikalischen Status einer Verbindung, sodass für jeden Einzelfall eine spezielle Lösung gefunden werden muss.

Einrichten der Verbindung

Vor der Eingabe von SQL-Anweisungen muss die Anwendung eine Verbindung zur Datenbank herstellen. Eine Möglichkeit hierfür ist der Einsatz der Connection Factory DriverManager.getConnection() aus dem java.sql-Paket. Besser eignet sich jedoch die Methode javax.sql.DataSource.getConnection(). Man sollte diese Factory-Methode bei jeder Verbindungsanforderung eines Objekts benutzen, statt dieses nur einmal zu erstellen und die Verbindung im Objekt zu speichern. Hier ein Beispiel für diese Methode:


Darüber hinaus kann eine Klasse, die die DataSource-Schnittstelle implementiert, durch einen Naming Service registriert und über die JNDI-API genutzt werden. Der entscheidende Unterschied zwischen der DriverManager-Connection Factory und DataSource besteht darin, dass letztere eine Überprüfung der Einrichtung und Nutzung der Verbindung ermöglicht.

Beheben von Verbindungsfehlern

Wenn eine Anwendung eine Verbindung zu einer Datenbank zu nutzen versucht, die unterbrochen wurde, wird eine Ausnahme wie die folgende ausgelöst:


java.sql.SQLException: Io exception:
The Network Adapter could not establish the connection

Folglich wird die Ausführung der SQL-Abfrage fehlschlagen. Da keine API vorhanden ist, um festzustellen, ob eine Datenbank-Verbindung besteht oder nicht, kann man dies erst nach Ausgabe einer SQL-Ausnahme feststellen. Wenn sich diese Ausnahme auf eine unterbrochene Verbindung bezieht, muss man die Anwendung entsprechend korrigieren, sodass diese erneut einen Verbindungsaufbau versucht und nochmals eine Abfrage durchführt. Natürlich vermischt sich dabei die Business Logic mit der Verwaltung von Datenbank-Verbindungen, weshalb der Code sehr fehleranfällig und schwierig zu handhaben ist.

Themenseiten: Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Prüfung des Status von Datenbankverbindungen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *