Einführung / Konfiguration des FirstSpirit-Servers / Datenbankanbindung / Beispiele zur Anbindung

Beispiele für die Anbindung verschiedener Datenbanksysteme

Inhaltsverzeichnis

Die Unterschiede bei der Anbindung der verschiedenen DBMS werden hier im Detail anhand von Beispielen gezeigt. Falls ein DBMS noch vor einer FirstSpirit-Installation vorbereitet werden soll und Unklarheiten gegenüber dem Datenbank-Administrator bezüglich der Zugangsparameter oder notwendigen Treiber-Dateien bestehen, hilft meistens, die Datenbank-Anbindung mittels eines externen JDBC-Clients zu testen. Dafür bietet sich z. B. der DB-Visualizer von https://www.dbvis.com an.

Die folgenden Konfigurationsbeispiele zeigen die Verwendung als Standard-Layer. Bei Verwendung als DBA-Layer wird die Zeile jdbc.SCHEMA=… weggelassen.

Konfigurationsbeispiel MySQL

Treiber: mysql-connector-java-x.x-bin.jar

jdbc.DRIVER=com.mysql.jdbc.Driver
jdbc.URL=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF8
jdbc.USER=test
jdbc.PASSWORD=test
jdbc.layerclass=de.espirit.or.impl.mysql.MySQLLayer
jdbc.SCHEMA=dbname

Die Angabe von ?useUnicode=true&characterEncoding=UTF8 bei jdbc.URL ist nur bei Verwendung einer UTF-8-kodierten Datenbank (ab MySQL 5) notwendig. Bei Verwendung der Standard-MySQL-Kodierung (latin1, ISO-8859-1) ist die Angabe dieser Parameter nicht notwendig.

Konfigurationsbeispiel MS-SQL-Server

Treiber: sqljdbc-x.x.jar

jdbc.DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver  
jdbc.PASSWORD=test
jdbc.URL=jdbc:sqlserver://myServer3306;DatabaseName=testDB
jdbc.USER=test
jdbc.layerclass=de.espirit.or.impl.mssql.MSSQL2005Layer
module=JDBC_MS_SQL_2016

Beschreibung der MS-SQL spezifischen Parameter

Konfigurationsbeispiel Oracle (< 19c)

Treiber: ojdbcx_x.x.jar

jdbc.DRIVER=oracle.jdbc.OracleDriver
jdbc.URL=jdbc:oracle:thin:@myserver:1521:ORCL
jdbc.USER=test
jdbc.PASSWORD=test
jdbc.layerclass=de.espirit.or.impl.oracle.OracleLayer
jdbc.SCHEMA=test
jdbc.oracle.TABLESPACE=USERS
jdbc.property.oracle.jdbc.RetainV9LongBindBehavior=true

Bei URL wird als letzter Parameter (im Beispiel ora) der Instanz-Name des Oracle-Servers eingetragen und nicht der Schema-Name. Der bei jdbc.SCHEMA angegebene Schema-Name entspricht dem bei jdbc.USER angegebenen Benutzernamen.

Konfigurationsbeispiel Oracle 19c

Treiber: ojdbc8.jar

jdbc.URL=jdbc:oracle:thin:@tcp://localhost:1521/ora
jdbc.USER=dbuser
jdbc.PASSWORD=verysecret
jdbc.oracle.TABLESPACE=USERS
jdbc.DRIVER=oracle.jdbc.OracleDriver
jdbc.layerclass=de.espirit.or.impl.oracle.Oracle19cLayer
jdbc.property.oracle.jdbc.J2EE13Compliant=true
jdbc.oracle.CHARACTERSET=AL32UTF8
jdbc.MAXSTRINGLENGTH=8191
module=JDBC_Oracle_Database_19c

Bei URL wird als letzter Parameter (im Beispiel ora) der Instanz-Name des Oracle-Servers eingetragen und nicht der Schema-Name.

Wichtig Eine nachträgliche Veränderung der Werte der Parameter „jdbc.MAXSTRINGLENGTH“, „jdbc.oracle.CHARACTERSET“ und „jdbc.property.oracle.jdbc.J2EE13Compliant“ ist nicht möglich!
Bei einer Veränderung Ihres FirstSpirit-Datenbankschemas würden dann potenziell neue Spalten angelegt werden und bereits gepflegte Inhalte dadurch nicht mehr erreichbar sein.

Konfigurationsbeispiel PostgreSQL

Treiber: postgresql-x.x.jdbc41.jar

jdbc.DRIVER=org.postgresql.Driver
jdbc.URL=jdbc:postgresql://myServer:5432/testDB
jdbc.USER=test
jdbc.PASSWORD=test
jdbc.layerclass=de.espirit.or.impl.postgres.PostgreSQLLayer
jdbc.SCHEMA=public
module=JDBC_PostgreSQL

Bei Verwendung als Standard-Layer kann bei PostgreSQL als Parameter jdbc.SCHEMA der Wert public eingetragen werden (Standardwert) und nicht der Datenbankname.

Konfigurationsbeispiel DB2

Treiber: db2jcc4.jar

Zur Konfiguration einer IBM DB2 Datenbank muss ein JDBC Type 4 Treiber eingesetzt werden:

jdbc.DRIVER=com.ibm.db2.jcc.DB2Driver
jdbc.layerclass=de.espirit.or.impl.db2.DB2Layer
jdbc.URL=jdbc:db2://myServer:50000/test
jdbc.USER=test
jdbc.PASSWORD=test
jdbc.SCHEMA=test

Port: DB2-Java-Connector (wird bereitgestellt über: db2jstrt PORTNUMMER).

Bei Verwendung als Standard-Layer wird bei DB2 als Parameter jdbc.SCHEMA derselbe Wert wie bei jdbc.USER eingetragen, falls das Standardschema der angegebenen Datenbank (hier „test“) verwendet werden soll. Optional kann ein anderes Schema verwendet werden. In beiden Fällen muss das Schema zuvor ausserhalb von FirstSpirit über den SQL-Befehl „create schema test;“ erstellt werden.

Treiber:

  • seit DB 9.5: db2jcc4.jar, db2jcc_license_cu.jar
  • vor DB 9.5: db2jcc.jar, db2jcc_license_cu.jar

Die JAR-Dateien liegen auf dem DB2-Server im Verzeichnis db2inst1/sqllib/java. Um Inkompatibilitäten zu vermeiden, sollte immer die vom DB2-Server mitgelieferte Treiberversion verwendet werden.

Port: DB2-Connector (db2jstrt ist für Type 4 nicht notwendig). Die Portnummer kann unter Unix aus der Datei /etc/services bei Eintrag db2_db2inst abgelesen werden und ist standardmässig auf 50000 eingestellt.

Konfigurationsbeispiel: MariaDB

Treiber: mysql-connector-java-x.x-bin.jar

Es darf nicht der MariaDB-JDBC-Treiber verwendet werden, sondern der von MySQL!

jdbc.DRIVER=com.mysql.jdbc.Driver
jdbc.PASSWORD=<password>
jdbc.URL=jdbc:mysql://localhost:3306/<user>
jdbc.USER=<user>
jdbc.layerclass=de.espirit.or.impl.mysql.MySQLLayer
module=JDBC_MariaDB

Konfigurationsbeispiel Interne Apache Derby-Datenbank

Für Testsysteme enthält der FirstSpirit-Server bereits ein einfaches relationales Datenbanksystem (Apache Derby). Normalerweise legt FirstSpirit alle Daten im Dateisystem (Berkeley-Datenbank) ab und nur – je nach Projektanforderung – einige wenige in relationalen Datenbanken. Beim Anlegen eines neuen Projekts kann diese interne Datenbank für das Projekt aktiviert (siehe Projekt, Option „Interne Datenbank (Derby)“) und schreibender Zugriff auf die Datenbank für dieses Projekt gesetzt (siehe Datenbanken (Projekt-Eigenschaften)) werden. Nachträglich kann eine Derby-Datenbank in den Server-Eigenschaften angelegt (siehe Datenbanken (Server-Eigenschaften)) und in den Projekt-Eigenschaften dem Projekt hinzugefügt werden (siehe Datenbanken).

Um die Derby-Datenbank von externen Prozessen aus zu benutzen, z. B. Webanwendung mit FirstSpirit-Modul DynamicDatabaseAccess im externen Application-Server, muss zunächst der JDBC-Konnektor für Netzverbindungen aktiviert werden (siehe Bereich: internal Database). Als Verbindungsparameter in der Webanwendung werden die Parameter aus den Datenbank-Einstellungen des jeweiligen Projektes zunächst kopiert, z. B.

jdbc.URL=jdbc:derby:projects/project_12345/derby;create=true 
jdbc.DRIVER=org.apache.derby.jdbc.EmbeddedDriver
jdbc.USER=testuser
jdbc.PASSWORD=testpassword
jdbc.POOLMAX=1
jdbc.POOLMIN=1
jdbc.layerclass=de.espirit.or.impl.derby.DerbyLayer

Anschließend in den Verbindungsparametern für die Webanwendung die Zeilen jdbc.URL und jdbc.DRIVER durch folgende ersetzen, dabei statt „fs5server“ den Hostnamen des FirstSpirit-Servers eintragen und die Projekt-ID „12345“ durch die tatsächliche ersetzen:

jdbc.URL=jdbc:derby://fs5server:1527/projects/project_12345/derby 
jdbc.DRIVER=org.apache.derby.jdbc.ClientDriver

Der JDBC-Treiber zur Einbindung in die Webanwendung kann als Datei derbyclient.jar unter http://db.apache.org/derby/ heruntergeladen werden, um dann nach WEB-INF/lib oder in ein globales classpath-Verzeichnis des Application-Servers kopiert zu werden. Die jeweils in FirstSpirit aktive Version der Derby-Datenbank kann in der Log-Datei firstspirit5/log/fs-database.log abgelesen werden.

Um die JDBC-Konfiguration für die einzelnen Webanwendungen automatisch zu erstellen, kann man diese geänderte Datenbank-Konfiguration auch in der Layer-Einstellungen des FirstSpirit-Servers direkt vornehmen. Dann muss zusätzlich derbyclient.jar nach firstspirit5/shared/lib-isolated kopiert werden.

Falls in der externen Webanwendung auf genau 1 Schema zugegriffen werden soll, gegebenenfalls jdbc.URL um den Parameter DATABASENAME erweitern. {SCHEMA-ID} und {PROJECT-ID} dabei jeweils dem betreffenden FirstSpirit-Projekt entnehmen.

jdbc.URL=jdbc:derby://fs5server:1527/projects/project_12345/derby;
DATABASENAME=P{SCHEMA-ID}_{PROJECT-ID}

Es wird empfohlen, JDBC-Treiber statt in firstspirit5/shared/lib-isolated und manuell in WEB-INF/lib als FirstSpirit-Modul einzubinden, so dass sie automatisch in alle FirstSpirit-Webanwendungen integriert werden. Dann muss zusätzlich der Parameter module=JDBC-Modulname angeben werden. Siehe Erstellen eines JDBC-Treiber-Modules.

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.13 | Datenschutz