使用文档Microkernel实现了对AEM中关系数据库持久性的支持。 文档微内核是实现MongoDB持久性的基础。
它包含一个基于Mongo Java API的Java API。 还提供了BlobStore API的实现。 默认情况下,blob存储在数据库中。
有关实现详细信息,请参阅RDBDocumentStore和RDBBlobStore文档。
还提供对PostgreSQL 9.4的支持,但仅用于演示目的。 它不适用于生产环境。
有关AEM中关系数据库支持级别的详细信息,请参见技术要求页。
通过配置DocumentNodeStoreService
OSGi服务创建存储库。 除了MongoDB,它还扩展了它以支持关系数据库持久性。
要使数据源正常工作,需要使用AEM配置数据源。 这通过org.apache.sling.datasource.DataSourceFactory.config
文件完成。 相应数据库的JDBC驱动程序需要作为OSGi绑定在本地配置中单独提供。
有关为JDBC驱动程序创建OSGi捆绑包的步骤,请参阅Apache Sling网站上的此文档。
捆绑包到位后,请按照以下步骤配置AEM和RDB持久性:
确保数据库守护程序已启动,并且您有一个活动数据库可与AEM一起使用。
将AEM 6.3 jar复制到安装目录中。
在安装目录中创建名为crx-quickstart\install
的文件夹。
通过在crx-quickstart\install
目录中创建具有以下名称的配置文件,配置文档节点存储:
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
通过在crx-quickstart\install
文件夹中创建另一个具有以下名称的配置文件,配置数据源和JDBC参数:
org.apache.sling.datasource.DataSourceFactory-oak.config
有关每个受支持数据库的数据源配置的详细信息,请参见数据源配置选项。
接下来,准备要与AEM一起使用的JDBC OSGi包:
在crx-quickstart/install
文件夹中,创建一个名为9
的文件夹。
将JDBC jar放在新文件夹中。
最后,开始AEM并使用crx3
和crx3rdb
运行模式:
java -jar quickstart.jar -r crx3,crx3rdb
org.apache.sling.datasource.DataSourceFactory-oak.config
OSGi配置用于配置AEM与数据库持久性层之间通信所需的参数。
提供以下配置选项:
datasource.name:
数据源名称。默认为 oak
.
url:
需要与JDBC一起使用的数据库的URL字符串。每个数据库类型都有其自己的URL字符串格式。 有关详细信息,请参阅下面的URL字符串格式。
driverClassName:
JDBC驱动程序类名。这会因您要使用的数据库以及随后连接到数据库所需的驱动程序而异。 以下是AEM支持的所有数据库的类名:
org.postgresql.Driver
PostgreSQL;com.ibm.db2.jcc.DB2Driver
DB2;oracle.jdbc.OracleDriver
oracle;com.mysql.jdbc.Driver
用于MySQL和MariaDB(实验);om.microsoft.sqlserver.jdbc.SQLServerDriver
for Microsoft SQL Server(实验)。username:
数据库运行的用户名。
password:
数据库密码。
数据源配置中使用不同的URL字符串格式,具体取决于需要使用的数据库类型。 下面是AEM当前支持的列表库的格式:
jdbc:postgresql:databasename
PostgreSQL;jdbc:db2://localhost:port/databasename
DB2;jdbc:oracle:thin:localhost:port:SID
oracle;jdbc:mysql://localhost:3306/databasename
用于MySQL和MariaDB(实验);jdbc:sqlserver://localhost:1453;databaseName=name
(实验)。RDBMS持久性支持将多个AEM实例与单个数据库同时使用,但并发安装则不支持。
要解决此问题,请确保先使用单个成员运行安装,并在第一个成员完成安装后添加其他成员。