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 data_source

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 11 Version.

Oracle

  1. Möglichkeit : Aktuellster Treiber

    • Eine Internet Verbindung 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

  2. 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 Ordner INSTALLATIONSVERZEICHNIS/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)

  1. 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

  2. Möglichkeit: Spezifische Version des Treibers

    • Laden Sie den JDBC-Treiber für Ihre MSSQL Version herunter: Download

    • Kopieren Sie den JDBC-Treiber (z.B. mssql-jdbc-9.2.1.jre11.jar) in den Ordner INSTALLATIONSVERZEICHNIS/karaf/deploy

    • 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 (MySQL)

  • Laden Sie den JDBC-Treiber für Ihre MariaDB Version herunter: Download

  • Kopieren Sie den JDBC-Treiber (z.B. mariadb-java-client-2.7.3.jar) in den Ordner INSTALLATIONSVERZEICHNIS/karaf/deploy

  • Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus: feature:install pax-jdbc-mariadb

PostgreSQL

  • Es ist keine Treiberinstallation erforderlich

  • Öffnen Sie die Karaf-Konsole und führen Sie folgendes Kommando aus: feature:install pax-jdbc-postgresql

Ü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

Beispielausgabe eines registrierten Oracle JDBC-Treibers
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 pax-jdbc-pool-dbcp2 nicht im Status Started sein, dann geben Sie feature:install pax-jdbc-pool-dbcp2 ein, um es zu installieren und zu starten.

Beispielausgabe einer Installation mit Oracle-Treiber
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

Beispielausgabe einer Oracle Datenbankverbindung
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

Keywords: