我使用的是 Sling 11,它使用 Jackrabbit Oak 作为内容存储库。我想知道如何设置 Sling 将 JCR 存储库存储在 RDBMS(具体来说是 DB2)上。
我在Jackrabbit Persistence上找到了这个链接,但看起来它不适用于 Oak 并且 Oak 文档主要是关于 MongoDB 的。
还发现了 Cassandra Resource Provider 的实现,尽管这似乎旨在访问映射到 Cassandra 的特定路径而不使用 Oak。
谢谢
最佳答案
在此回答,但功劳归于 Sling user's mailing list
- 将数据库驱动程序打包在 OSGi bundle 中
- 下载 Sling 的入门项目
在 boot.txt 中添加一个新的运行模式(在我的例子中是 Oak_db2)
[设置] sling.run.mode.install.options=oak_tar,oak_mongo,oak_db2
下载Sling的数据源项目并编译。
在 Oak.txt 中配置运行模式(这将为您在 Felix 中加载 bundle ):
[工件 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"
- 创建一个名为“sling”的数据库。
- 使用 java -jar -Dsling.run.modes=oak_db2 sling-starter.jar 运行
关于rdbms - 如何设置 Apache Sling 以使用关系数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53560105/