如何设置 Apache Sling 以使用关系数据库

How to set up Apache Sling to use a relational DB

我在使用 Jackrabbit Oak 作为内容存储库的 Sling 11。我想知道如何设置 Sling 以将 JCR 存储库存储在 RDBMS(具体来说是 DB2)上。

我在 Jackrabbit Persistence 上发现了这个 link,但看起来它不适用于 Oak,而且 Oak 文档主要是关于 MongoDB 的。

还找到了 Cassandra Resource Provider 的实现,尽管它似乎旨在访问映射到 Cassandra 的特定路径而不使用 Oak。

谢谢,

在此处回答,但归功于 Sling user's mailing list

  1. 将 DB 驱动程序打包到 OSGi bundle
  2. 下载 Sling 的入门项目
  3. 在boot.txt中添加一个新的运行ning模式(在我的例子中oak_db2)

    [设置] sling.run.mode.install.options=oak_tar,oak_mongo,oak_db2

  4. 下载Sling的数据源项目并编译。

  5. 在 oak.txt 中配置 运行ning 模式(这将在 Felix 中为您加载包):

    [工件起始级别=15 运行模式=oak_db2] com.h2database/h2-mvstore/1.4.196 com.ibm.db2/jcc4/11.1
    org.apache.sling/org.apache.sling.datasource/1.0.3-SNAPSHOT

并设置将管理持久性的服务:

[configurations runModes=oak_db2] 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService
documentStoreType="RDB"

org.apache.sling.datasource.DataSourceFactory   
url="jdbc:db2://10.1.2.3:50000/sling"            
driverClassName="com.ibm.db2.jcc.DB2Driver"     
username="****"     
password="****"     
datasource.name="oak"
  1. 创建一个 'sling' 命名数据库。
  2. 运行 与 java -jar -Dsling.run.modes=oak_db2 sling-starter.jar