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
Salesforce forciert den Ausbau seiner Industry Clouds. Mit ihrem Prozesswissen könnten deutsche IT-Dienstleister davon profitieren.
Bisher unbekannter Bedrohungsakteur versucht über gefälschte IP Scanner Software-Domänen Zugriff auf IT-Umgebungen zu erlangen.
Der Bericht zeigt bereits nutzbare Angriffsanwendungen und bewertet die Risiken, die davon ausgehen.
Deutsche sehen Finanzwesen und IT im Zentrum der KI-Transformation. Justiz und Militär hingegen werden deutlich…
Cubbit ist das weltweit erste Unternehmen, das Cloud-Objektspeicher anbietet. Es wurde 2016 gegründet und bedient…
Unbefugte können Schadcode einschleusen und ausführen. Auslöser ist eine fehlerhafte Implementierung einer Android-Funktion.