Prüfung des Status von Datenbankverbindungen

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.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Gefahren im Foxit PDF-Reader

Check Point warnt vor offener Schwachstelle, die derzeit von Hackern für Phishing ausgenutzt wird.

2 Tagen ago

Bitdefender entdeckt Sicherheitslücken in Überwachungskameras

Video-Babyphones sind ebenfalls betroffen. Cyberkriminelle nehmen vermehrt IoT-Hardware ins Visier.

2 Tagen ago

Top-Malware in Deutschland: CloudEye zurück an der Spitze

Der Downloader hat hierzulande im April einen Anteil von 18,58 Prozent. Im Bereich Ransomware ist…

2 Tagen ago

Podcast: „Die Zero Trust-Architektur ist gekommen, um zu bleiben“

Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…

2 Tagen ago

Google schließt weitere Zero-Day-Lücke in Chrome

Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…

3 Tagen ago

Hacker greifen Zero-Day-Lücke in Windows mit Banking-Trojaner QakBot an

Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…

3 Tagen ago