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

标签 rdbms sling jackrabbit-oak

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

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

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

谢谢

最佳答案

在此回答,但功劳归于 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 中加载 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/

    相关文章:

    apache - Sling 重写器的工作原理说明

    jcr - Apache 吊索 : Accessing Versions through REST API

    java - Lucene索引: getting empty result while query

    java - Jackrabbit Oak 的 tar 文件存储库错误

    sql - where 子句中的参数顺序是否会影响表是否使用索引?

    asp.net - 两个外键引用相同的主键

    java - org.apache.sling.scripting.jsp.jasper.JasperException : Unable to load tag handler class

    php - 不使用 ondelete 或 onupdate 时外键的优势

    mysql - 如何仅使用 SQL 实现动态 WHERE 子句? (我不能使用任何编程语言字符串连接)

    java - 如何使 Jackrabbit WebDAV servlet 允许使用 Microsoft Word 进行编辑?