Datenbanken
Auf relationale Datenbanken wird unter anderem von der Replication sowie vom Datenbank basierten Identity Provider aus zugegriffen. Damit der Zugriff auf die Datenbanken ausgeführt werden kann, müssen zuerst zu Ihrem Datenbanksystem passende JDBC-Treiber installiert werden.
|
Erst nach der Treiberinstallation legen Sie eine Datenbankverbindung an.
Siehe Backend Connections vom Typ |
Treiberinstallation
Wenn Sie Datenbanksysteme verschiedener Hersteller ansprechen möchten, dann führen Sie die Treiberinstallationsschritte für jeden Datenbanktyp durch.
|
Durch die Treiberinstallation startet der Karaf diverse Bundles neu. Darunter auch das BPC Backend Core Bundle (bpc-be-core). Da in diesem die Benutzersitzungen transient vorgehalten werden, gehen diese durch den Neustart verloren und die Benutzer müssen sich neu anmelden. |
Es wird empfohlen, die Datenbanktreiber über die zentrale Konfigurationsdatei zu konfigurieren. In diesem Fall können Sie ein Karaf-Update durchführen, ohne erneut eine Konfiguration vorzunehmen. Es muss lediglich der Datenbanktreiber im neuen Karaf bereitgestellt werden. In dem Fall können Sie die folgenden Punkte ignorieren.
|
Wenn es den Treiber für unterschiedliche Java Versionen gibt (z.B. bei MSSQL), dann verwenden Sie die Java 21 Version. |
Oracle
-
Möglichkeit: Aktuellster Treiber
-
Eine Internetverbindung ist zum automatischen Download des aktuellsten Treibers erforderlich
-
Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
feature:install pax-jdbc-oracle
-
-
Möglichkeit: Spezifische Version des Treibers
-
Laden Sie den JDBC-Treiber für Ihre Oracle Version herunter: Download
-
Kopieren Sie den JDBC-Treiber (z.B.
ojdbc8.jar) in den OrdnerINSTALLATIONSVERZEICHNIS/karaf/deploy -
Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
feature:install pax-jdbc-oracle
-
Zu Konfigurationen von Oracle-Datenbanken siehe Oracle-Datenbank.
Microsoft SQL Server (MSSQL)
-
Möglichkeit: Relativ aktueller Treiber
-
Eine Internetverbindung ist zum automatischen Download des Treibers erforderlich
-
Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
feature:install pax-jdbc-mssql
-
-
Möglichkeit: Spezifische Version des Treibers (offline)
-
Laden Sie den JDBC-Treiber für Ihre MSSQL Version herunter: Download
-
Kopieren Sie den JDBC-Treiber (z.B.
mssql-jdbc-11.2.3.jre11.jar) in den OrdnerINSTALLATIONSVERZEICHNIS/karaf/deploy -
Nicht notwendig ist hierbei die Ausführung des Kommandos:
feature:install pax-jdbc-mssql
-
-
Möglichkeit: Spezifische Version des Treibers (online)
-
Eine Internetverbindung ist zum automatischen Download des Treibers erforderlich
-
Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
bundle:install -s mvn:com.microsoft.sqlserver/mssql-jdbc/13.2.0.jre11 -
Nicht notwendig ist hierbei die Ausführung des Kommandos:
feature:install pax-jdbc-mssql
-
|
Bitte beachten Sie, dass der interne Treibername bei MSSQL über die verschiedenen Versionen nicht konstant ist. Das bedeutet, dass Sie bei einer Änderung des Treibers evtl. den angegebenen Treibernamen an bestehenden Backend Connections anpassen müssen. |
MariaDB
-
Möglichkeit: Relativ aktueller Treiber
-
Eine Internetverbindung ist zum automatischen Download des Treibers erforderlich
-
Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
feature:install pax-jdbc-mariadb
-
-
Möglichkeit: Spezifische Version des Treibers
-
Laden Sie den JDBC-Treiber für Ihre MariaDB Version herunter: Download
-
Kopieren Sie den JDBC-Treiber (z.B.
mariadb-java-client-3.5.7.jar) in den OrdnerINSTALLATIONSVERZEICHNIS/karaf/deploy -
Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
feature:install pax-jdbc-mariadb
-
MySQL
-
Möglichkeit: Relativ aktueller Treiber
-
Eine Internetverbindung ist zum automatischen Download des Treibers erforderlich
-
Ein installierter MariaDB-Treiber muss zuvor deinstalliert werden. Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
feature:uninstall pax-jdbc-mariadb
-
Bringen Sie die pax-jdbc Version ihrer Installation in Erfahrung. Dazu folgendes in der Karaf-Konsole ausführen:
feature:repo-list | grep pax.jdbc
-
In der Karaf-Konsole nun folgende Kommandos ausführen und dabei ggfs. die Version anpassen:
feature:repo-add mvn:org.ops4j.pax.jdbc/pax-jdbc-features/1.5.7/xml/features-gpl feature:install pax-jdbc-mysql
Falls der relativ aktuelle Treiber z.B. 8.3.0 nicht aktuell genug ist und z.B. eine 8.4.0 verwendet werden muss. Dann zuerst diese Version laden und in den Ordner
INSTALLATIONSVERZEICHNIS/karaf/deploykopieren. Anschließend die Schritte von oben ausführen. Bei einem Major Versionssprung des JDBC Treibers die nächste Möglichkeit verwenden.
-
-
Möglichkeit: Neue Major Version des Treibers
Falls der JDBC Treiber der ersten aufgeführten Möglichkeit nicht aktuell genug ist (z.B. 8.3.0) und es sich bei dem zu verwendenden JDBC Treiber um eine neue Major Version handeln muss (z.B. 9.5.0). Dann muss die
pax-jdbc-mysqljar-Datei gepatcht werden.-
Ein installierter MariaDB-Treiber muss zuvor deinstalliert werden. Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
feature:uninstall pax-jdbc-mariadb
-
Bringen Sie die pax-jdbc Version ihrer Installation in Erfahrung. Dazu folgendes in der Karaf-Konsole ausführen:
feature:info pax-jdbc
-
In einer Shell folgende Befehle zum Laden und Entpacken des jar-Archivs ausführen und ggfs. die Version anpassen:
mkdir pax-jdbc-mysql-patch cd pax-jdbc-mysql-patch wget https://repo1.maven.org/maven2/org/ops4j/pax/jdbc/pax-jdbc-mysql/1.5.7/pax-jdbc-mysql-1.5.7.jar jar xf pax-jdbc-mysql-1.5.7.jar rm pax-jdbc-mysql-1.5.7.jar
-
Mit einem Text-Editor in der
META-INF/MANIFEST.MFdie vorhandenen von/bis Versionsbereiche z.B.[8.3,9)auf[8.3,10)erhöhen.[8.3,9)legt fest, dass nur die MySQL JDBC Treiber von Version 8.3.0 bis kleiner Version 9.0.0 verwendet werden können. Dies erhöhen wir durch die Änderung auf 10.0.0. Dadurch kann auch eine Treiberversion 9.5.0 zum Einsatz kommen. -
Die jar-Datei mit den Änderungen erstellen
jar cfM pax-jdbc-mysql-1.5.7.jar .
-
Kopieren Sie die
pax-jdbc-mysql-1.5.7.jarin den OrdnerINSTALLATIONSVERZEICHNIS/karaf/deploy
-
-
Möglichkeit: Spezifische Version des Treibers (offline)
-
Laden Sie den JDBC-Treiber für Ihre MySQL Version herunter (Platform Independent): Download
-
Kopieren Sie den JDBC-Treiber (z.B.
mysql-connector-j-9.5.0.jar) in den OrdnerINSTALLATIONSVERZEICHNIS/karaf/deploy -
Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus:
feature:install pax-jdbc-spec
-
Stellen Sie sicher, dass bei der zusätzlichen Konfiguration der Datenbankverbindung der Wert für
"xa"auf"false"gesetzt ist und dass als Treibernamecom.mysql.cj-nativeverwendet wird.
-
-
Möglichkeit: Spezifische Version des Treibers (online)
-
Eine Internetverbindung ist zum automatischen Download des Treibers erforderlich
-
Öffnen Sie die Karaf-Konsole und führen Sie folgende Kommandos aus:
bundle:install -s mvn:com.mysql/mysql-connector-j/9.5.0 feature:install pax-jdbc-spec
-
Stellen Sie sicher, dass bei der zusätzlichen Konfiguration der Datenbankverbindung der Wert für
"xa"auf"false"gesetzt ist und dass als Treibernamecom.mysql.cj-nativeverwendet wird.
-
Überprüfung bei Problemen
Treiber an der richtigen Stelle?
Stellen Sie sicher, dass der passende JDBC-Treiber im Verzeichnis INSTALLATIONSVERZEICHNIS/karaf/deploy zu finden ist.
Wurde der Treiber vom Karaf erkannt und registriert?
Dazu in der Karaf-Konsole folgendes Kommando ausführen: jdbc:ds-factories
virtimo@bpc()> jdbc:ds-factories Name │ Class │ Version │ Registration bundle ──────────────────┼──────────────────────────┼─────────┼──────────────────────────────── ojdbc6.jar-native │ oracle.jdbc.OracleDriver │ 0.0.0 │ ojdbc6.jar [229] oracle │ oracle.jdbc.OracleDriver │ │ org.ops4j.pax.jdbc.oracle [230]
Wurden alle notwendigen JDBC Features installiert?
Dazu in der Karaf-Konsole folgendes Kommando ausführen: feature:list | grep jdbc
In der Ausgabe müssen Sie sicherstellen, dass sich folgende Features im Status Started befinden:
-
jdbc -
pax-jdbc-config -
pax-jdbc-<datenbankname> -
pax-jdbc-pool-dbcp2
|
Sollte z.B. das Feature |
virtimo@bpc()> feature:list | grep jdbc jdbc │ 4.2.8 │ x │ Started │ enterprise-4.2.8 │ JDBC service and commands pax-transx-jdbc │ 0.4.4 │ │ Uninstalled │ pax-transx-0.4.4 │ pax-jdbc-spec │ 1.4.4 │ │ Started │ org.ops4j.pax.jdbc-1.4.4 │ Provides OSGi JDBC Service spec pax-jdbc │ 1.4.4 │ │ Started │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Service support pax-jdbc-config │ 1.4.4 │ x │ Started │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Config support pax-jdbc-db2 │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC DB2 DataSourceFactory pax-jdbc-teradata │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Teradata DataSourceFactory pax-jdbc-derby │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Derby Embedded DataSourceFactory pax-jdbc-derbyclient │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Derby Client DataSourceFactory pax-jdbc-h2 │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC H2 DataSourceFactory pax-jdbc-hsqldb │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC HSQLDB DataSourceFactory pax-jdbc-mariadb │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Mariadb DataSourceFactory pax-jdbc-oracle │ 1.4.4 │ x │ Started │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Oracle DataSourceFactory pax-jdbc-postgresql │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC PostgreSQL DataSourceFactory pax-jdbc-sqlite │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC SQLite DataSourceFactory pax-jdbc-mssql │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC MSSQL DataSourceFactory pax-jdbc-jtds │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC jTDS DataSourceFactory pax-jdbc-pool-dbcp2 │ 1.4.4 │ x │ Started │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Pooling DataSourceFactory pax-jdbc-pool-c3p0 │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Pooling using C3P0 pax-jdbc-pool-hikaricp │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Pooling DataSourceFactory using Hik pax-jdbc-pool-aries │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Pooling DataSourceFactory using Ari pax-jdbc-pool-narayana │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Pooling DataSourceFactory using Nar pax-jdbc-pool-transx │ 1.4.4 │ │ Uninstalled │ org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Pooling DataSourceFactory using Pax
Datenbankverbindung steht zur Verfügung?
Die im BPC angelegten Datenverbindungen (siehe Backend Connections) müssen auch von der Karaf-Konsole aus angezeigt werden können. Zur Auflistung verwenden Sie folgendes Kommando: jdbc:ds-list
virtimo@bpc()> jdbc:ds-list Name │ Service Id │ Product │ Version │ URL │ Status ─────────────┼────────────┼─────────┼───────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────┼─────── oracle-local │ 245 │ Oracle │ Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production │ jdbc:oracle:thin:@localhost:1521:XE │ OK