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
Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.
Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…
Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…
Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…
Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…