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

IT Sicherheit: digitale Angriffe sicher abwehren

IT-Sicherheit - Erkennen und Abwehren von digitalen Angriffen

2 Stunden ago

Infostealer-Angriffe: 51 kompromittierte Account-Zugänge pro Gerät

Mehr als die Hälfte aller Infostealer-Angriffe treffen Unternehmensrechner.

5 Stunden ago

Bestverkaufte Smartphones: Apple und Samsung dominieren

Das iPhone 15 Pro Max ist das meistverkaufte Smartphone im ersten Quartal. Das Galaxy S24…

5 Stunden ago

Google: Passkeys schützen mehr als 400 Millionen Google-Konten

Die Passwort-Alternative Passkeys überholt Einmalpasswörter bei der Zwei-Faktor-Authentifizierung. Auch Microsoft setzt sich aktiv für die…

22 Stunden ago

Infostealer: 53 Prozent der Angriffe treffen Unternehmensrechner

Der Anteil steigt seit 2020 um 34 Prozentpunkte. Allein 2023 erfasst Kaspersky rund 10 Millionen…

23 Stunden ago

Salesforce: Mit Einstein GPT zurück auf die Überholspur?

Salesforce forciert den Ausbau seiner Industry Clouds. Mit ihrem Prozesswissen könnten deutsche IT-Dienstleister davon profitieren.

2 Tagen ago