2

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

我在Jackrabbit Persistence上找到了这个链接,但看起来它不适用于 Oak 并且 Oak 文档主要是关于 MongoDB 的。

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

谢谢,

4

1 回答 1

2

在这里回答,但归功于Sling 用户的邮件列表

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

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

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

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

    [工件 startLevel=15 runModes=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 运行
于 2018-12-04T21:22:57.537 回答