Die Unterstützung für RDBMS-Persistenz in AEM wird mithilfe des Document-Mikrokernels implementiert. Der Document-Mikrokernel bildet die Grundlage, die auch für die Implementierung der MongoDB-Persistenz verwendet wird.
Er umfasst eine Java-API, die auf der Mongo-Java-API basiert. Eine BlobStore-API wird ebenfalls implementiert. BLOB-Objekte werden standardmäßig in der Datenbank gespeichert.
Weitere Informationen zu den Implementierungsdetails finden Sie in der Dokumentation zu RDBDocumentStore und RDBBlobStore.
Unterstützung für PostgreSQL 9.4 wird ebenfalls bereitgestellt, jedoch nur zu Demozwecken. Sie ist nicht für Produktionsumgebungen verfügbar.
Weitere Informationen zur Unterstützung relationaler Datenbanken in AEM finden Sie auf der Seite mit den technischen Anforderungen.
Das Repository wird durch Konfigurieren des OSGi-Dienstes DocumentNodeStoreService
erstellt. Es muss erweitert werden, um neben der MongoDB-Persistenz auch die RDBMS-Persistenz zu unterstützen.
Um diese nutzen zu können, muss eine Datenquelle mithilfe von AEM konfiguriert werden. Dies geschieht über die Datei org.apache.sling.datasource.DataSourceFactory.config
. Die JDBC-Treiber für die jeweilige Datenbank müssen separat als OSGi-Bundles in der lokalen Konfiguration bereitgestellt werden.
Weitere Informationen über die Schritte zum Erstellen von OSGi-Bundles für JDBC-Treiber finden Sie in dieser Dokumentation auf der Apache Sling-Website.
Einige der SQL-Treiber sind bereits als OSGi-Bundles gepackt.
Wenn dies der Fall ist, kopieren Sie einfach die JAR-Datei in install-path/crx-quickstart/install/9.
Wenn die Bundles erstellt wurden, befolgen Sie die nachfolgenden Schritte zum Konfigurieren der RDB-Persistenz in AEM:
Stellen Sie sicher, dass der Datenbank-Daemon gestartet ist und eine aktive Datenbank für die Verwendung mit AEM vorhanden ist.
Kopieren Sie die AEM 6.3-JAR-Datei in das Installationsverzeichnis.
Erstellen Sie im Installationsverzeichnis einen Ordner namens crx-quickstart\install
.
Konfigurieren Sie den Document-Knotenspeicher, indem Sie eine Konfigurationsdatei mit dem folgenden Namen im Verzeichnis crx-quickstart\install
erstellen:
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
Erstellen Sie eine weitere Konfigurationsdatei mit dem folgenden Namen im Ordner crx-quickstart\install
, um die Datenquelle und die JDBC-Parameter zu konfigurieren:
org.apache.sling.datasource.DataSourceFactory-oak.config
Detaillierte Informationen zur Datenquellenkonfiguration für die einzelnen unterstützten Datenbanken finden Sie unter Konfigurationsoptionen für die Datenquelle.
Bereiten Sie dann die JDBC-OSGi-Bundles für die Verwendung mit AEM vor:
mysql-connector-java-version-bin.jar
(Bundle) aus dem ArchivStarten Sie abschließend AEM mit den Ausführungsmodi crx3
und crx3rdb
:
java -jar quickstart.jar -r crx3,crx3rdb
Die OSGi-Konfiguration org.apache.sling.datasource.DataSourceFactory-oak.config
dient zum Konfigurieren der erforderlichen Parameter für die Kommunikation zwischen AEM und der Datenbank-Persistenz-Schicht.
Folgende Konfigurationsoptionen sind verfügbar:
datasource.name:
Der Name der Datenquelle. Der Standardwert lautet oak
.
url:
Die URL-Zeichenfolge der Datenbank, die mit JDBC verwendet werden muss. Jeder Datenbanktyp hat ein eigenes Format für die URL-Zeichenfolge. Weitere Informationen finden Sie nachfolgend unter URL-Zeichenfolgenformate.
driverClassName:
Der Name der JDBC-Treiberklasse. Dieser variiert je nach der zu verwendenden Datenbank und dem Treiber, der für die Verbindung mit derselben benötigt wird. Nachfolgend finden Sie die Klassennamen aller von AEM unterstützten Datenbanken:
org.postgresql.Driver
für PostgreSQL;com.ibm.db2.jcc.DB2Driver
für DB2;oracle.jdbc.OracleDriver
für Oracle;com.mysql.jdbc.Driver
für MySQL und MariaDB (experimentell)om.microsoft.sqlserver.jdbc.SQLServerDriver
für Microsoft SQL Server (experimentell)username:
Der Benutzername, unter dem die Datenbank ausgeführt wird.
password:
Das Datenbankkennwort.
Je nach dem zu verwendenden Datenbanktyp wird ein unterschiedliches URL-Zeichenfolgenformat in der Datenquellenkonfiguration verwendet. Nachfolgend finden Sie eine Liste der Formate für die derzeit von AEM unterstützten Datenbanken:
jdbc:postgresql:databasename
für PostgreSQL;
jdbc:db2://localhost:port/databasename
für DB2;
jdbc:oracle:thin:localhost:port:SID
für Oracle;
jdbc:mysql://localhost:3306/databasename
für MySQL und MariaDB (experimentell)
jdbc:sqlserver://localhost:1453;databaseName=name
für Microsoft SQL Server (experimentell)
Obwohl die RDBMS-Persistenz die gleichzeitige Verwendung mehrerer AEM-Instanzen mit einer einzigen Datenbank unterstützt, trifft dies nicht auf gleichzeitige Installationen zu.
Um dieses Problem zu umgehen, führen Sie zuerst die Installation mit nur einer Instanz aus und fügen Sie dann nach Abschluss derselben weitere hinzu.