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

时间:2018-11-30 15:10:54

标签: rdbms sling jackrabbit-oak

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

我在Jackrabbit Persistence上找到了此链接,但是它似乎不适用于Oak,而Oak文档主要涉及MongoDB。

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

谢谢

1 个答案:

答案 0 :(得分:1)

在这里回答,但功劳归于Sling user's mailing list

  1. 将数据库驱动程序打包在OSGi bundle
  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. 创建一个名为“吊索”的数据库。
  2. 使用java -jar -Dsling.run.modes = oak_db2 sling-starter.jar运行