问题标签 [jackrabbit-oak]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
376 浏览

osgi - Sling / Jackrabbit - 解析器/会话生命周期及其并发一致性

我有一个与 JCR 一起使用的 osgi 组件(例如,CRUD)。

它会创建 resourceResolver 的新实例,并在此服务存在时一直保留它。有时会在外部调用此服务。

我的问题是:

  1. 我曾经创建 resourceResolver 并重用它的方法是否正确?是不断吗?
  2. 我是否保证基础会话不会过期?
  3. 顺便说一句,resourceResolver 和他们的会话存在多长时间,我在哪里可以看到它?
  4. 并发呢?想象一下这个服务是从多个地方并行调用的,Jackrabbit 能保证我的一致性吗?

另一个服务(带有会话实现)的相同问题。

如果可能的话,很高兴看到一些证据。也许文档...

谢谢。

0 投票
1 回答
723 浏览

jcr - 长耳兔橡木索引

我正在执行这个 JCR SQL2 查询:

并得到我应该创建索引的警告:

我做了,像这样:

其中 propertyName 是以下字符串之一:deleted、state、jcr:localname、jcr:path、jcr:property、jcr:fullText、property、localname、path、user、fullText

但我仍然收到警告,我猜这意味着我的索引不会被使用。当我打印出所有可用的索引时,我得到以下信息:

可用索引:deleted, repMembers, counter, state, jcr:localname, jcr:path, acPrincipalName, jcr:property, jcr:fullText, uuid, property, localname, nodetype, reference, principalName, path, user, authorizableId, fullText

所以看起来我的索引是在一些 jcr 默认索引已经存在的地方创建的,比如 nodetype、acPrincipalName、reference、repMembers、authorizableId 和 counter

任何提示我在这里做错了什么?我只想确保查询尽可能快,所以我真的很想知道如何创建 Oak 将使用的索引。

我使用的是 Oak 1.5.12 版本,我的存储库是这样实例化的:

0 投票
2 回答
222 浏览

java - 在 WAS 上为我们的 REST 应用程序之一设置 JackRabbit

在此处输入图像描述我们正在尝试在我们的一台带有 IBM WAS 应用程序服务器的 Linux 机器上设置 JackRabbit Oak,并且在 WAS 上启动服务器时遇到了一些问题。

Apache JackRabbit 是一个内容存储库,它是一个分层内容存储,支持结构化和非结构化内容、全文搜索、版本控制、事务、观察等。根据我们的要求,我们正在使用它以结构化形式(特别是作为树)存储数字资产。

我们有一个 REST 应用程序和另一个应用程序 DAM(数字资产管理),它处理存储库的创建,在请求时提供与存储库的连接(单例),在存储库上创建节点等。在我们的本地开发设置中,我们将此 DAM 导出为 JAR,例如 dam.jar,并将其放入 REST 应用程序的类路径中。我们有 JackRabbit Oak 的 JAR (oak-run-1.4.11.jar),我们将它放在 DAM 应用程序的类路径中。

在 WAS 应用服务器上的 Linux 机器上进行类似设置时,我们使用的是相同的 dam.jar,它是通过在 Windows 机器上的 eclipse 中将项目导出为 JAR 来创建的。我们通过在部署了 REST 应用程序的服务器中配置它,将它放在 WAS 上的 REST 应用程序的类路径中。

在调试时,我们发现应用程序能够从 dam.jar 访问类,但是当 DAM 的类尝试调用 JackRabbit 的类时,它会抛出 java.lang.NoClassDefFoundError 失败。我们尝试将 JackRabbit 的 JAR (oak-run-1.4.11.jar) 放在 WAS 上的类路径中,方法是为 REST 应用程序的服务器配置它,但随后服务器无法启动。

附件是日志文件:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/servers/RESTAPP/configuration/1489493294429.log /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs 的服务器日志内部没有太多内容/RESTAPP(RESTAPP 是我们 REST 应用程序的服务器名称),下面是代码片段:

[3/14/17 17:38:04:872 IST] 00000001 ModelMgr I WSVR0801I:初始化所有服务器配置模型 [3/14/17 17:38:08:564 IST] 00000001 WorkSpaceMana A WKSP0500I:工作区配置一致性检查是禁用。[3/14/17 17:38:08:834 IST] 00000001 AdminTool A ADMU3200I:服务器已启动。等待初始化状态。[3/14/17 17:38:18:241 IST] 00000001 AdminTool A ADMU3011E: 服务器已启动但初始化失败。/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/RESTAPP 下的服务器日志、startServer.log 和其他日志文件应包含故障信息。

我们在这里怀疑 dam.jar,因为它是通过将其导出为 JAR 文件从我们的 eclipse 工作区创建的,这可能需要一些额外的信息才能将这个 JackRabbit Oak 库包含在其中。

我们将类路径条目放在应用程序服务器 > RESTAPP > 流程定义 > WAS 的 Java 虚拟机中。

谢谢

0 投票
2 回答
3997 浏览

amazon-s3 - 设置 AEM S3 数据存储的最佳方法

我们有一个现有的 AEM 6.1 设置,它使用 TarMK 进行数据存储。要将所有资产迁移到 S3,我按照此处的所有步骤操作:https ://docs.adobe.com/docs/en/aem/6-1/deploy/platform/data-store-config.html#Data%20Store% 20个配置(Amazon S3 数据存储)。显然,数据已同步到 S3,但当我检查磁盘使用情况报告时,我仍然看到资产正在使用磁盘空间,即使是现有资产和新添加的资产也是如此。如果资产仍然使用磁盘空间,使用 S3 的目的是什么?还是我做错了什么?如何验证我的设置是否真的使用 S3?这是我的 S3DataStore.config

另一个问题是:我需要在发布者上进行相同的设置吗?还是可以通过复制二进制数据在作者上执行并按原样使用发布者?

0 投票
1 回答
993 浏览

java - jackrabbit Oak 存储库与 Spring 框架的集成

我有一个在 tomcat 上运行并使用 spring 框架的 web 应用程序。我还在项目中嵌入了长耳兔橡树库。我可以使用这样的 java 代码获取 jackrabbit 存储库:

但我想在 repository.xml 文件中定义我的存储库,然后将它放在某个地方并使用 spring xml 文件对其进行实例化,这样我就可以在我的存储库中自定义各种内容,例如 ExternalIdentityProvider。我认为是这样的:

但我不知道我应该如何在春天定义这个存储库。有什么建议吗?

0 投票
1 回答
1175 浏览

versioning - aem中的橡木版本升级

我正在使用 AEM 6.1,并使用 SP2 升级我的 AEM 实例。我在 AEM 6.1 中安装了 CFP 3 和 SP2。早些时候我的橡木版本显示 1.2.7 但在安装 SP2 和 CFP 之后;橡木版本降级到 1.2.18。但是博客1说:如果您的实例运行的 Oak 版本高于 CFP 包的 Oak 版本,则后者不会影响您当前的 Oak 版本。

您能否告诉我们有没有办法在我的 AEM 实例中升级 Oak 版本?如果不是,这棵橡树会影响我们现有实例中的任何功能吗?

  1. https://helpx.adobe.com/experience-manager/release-notes--aem-6-1-cumulative-fix-pack-.html

谢谢!-拉希德

0 投票
1 回答
344 浏览

aem - JCR 中的可附加文件

我将运行一个可能需要几分钟甚至几小时的过程。为了跟踪此类运行的历史记录,我为每次运行创建了一个自定义类型的节点,其中存储了相关的流程元数据。另外我想在这样的节点下存储日志文件。这似乎是更一致和方便的方法,而不是将日志文件与进程元分开存储在磁盘上。

现在nt:filenodetype 本身有一个jcr:content子节点,其jcr:data属性允许我存储二进制内容。这适用于文件的一次性或不频繁的内容更改。

但是,我将不断地将新内容附加到该文件中,除此之外,还要在单独的线程中轮询它的内容(以跟踪进度)。

面对的 JCR APIjavax.jcr.ValueFactory似乎javax.jcr.Binary并不真正支持这种方法,我宁愿每次添加一行日志时都被迫一遍又一遍地覆盖该文件(或更准确地说 - 二进制属性)。我担心性能。

我在文档中搜索了允许我打开该文件的输出流并定期将更改从该流刷新到 JCR 的工具,但似乎没有类似的可用工具。

那么还有什么比使用简单的javax.jcr.ValueFactoryand更聪明的javax.jcr.Binary吗?

0 投票
0 回答
230 浏览

mongodb - Oak 集群中的数据一致性

我在集群配置中使用 Jackrabbit Oak 1.6.1(通过使用默认配置)。有一个包含一个 Oak DB 的 mongodb 服务器。两个 Oak 实例正在 Intellij 中运行,因此我可以调试它们中的每一个。每个 Oak 实例都将自己记录在 clusterNodes 集合中,一切正常。

但是我与其他外部服务(文件转换器、事件总线等)有交互,所以我遇到的情况表明两个 Oak 实例没有同时看到相同的数据(集群不一致)。

场景:

  1. 将节点添加到 Oak1 上的文件夹中(带有二进制子节点)
  2. Oak 1 使用 session.save() 记录节点、二进制节点和提交
  3. Oak 1 将二进制文件发送到文件转换器服务
  4. 转换完成后,转换器服务使用转换后的二进制文件调用 Oak 2(以添加到父节点)
  5. Oak 2 尝试在几毫秒前获取 Oak 1 创建的节点
  6. Oak 2 引发 ItemNotFoundException

只是为了测试,我让 Oak 2 等到节点出现。并且该节点在 Oak 1 创建后大约 500 到 1000 毫秒变得可见。

有人在集群模式下使用 Oak 吗?有没有人看到这种类型的问题?

谢谢

0 投票
0 回答
208 浏览

java - AEM 6.1 - Jackrabbit Oak 的内存泄漏

我将 AEM 6.1 与 JR 2.10 和 JR Oak 1.2 一起使用,所有系统都运行良好,直到我运行一个插入大量内容并自动发布它们的作业。在那之后,内容更新真的很慢,有时会导致服务器停机。这是日志:

04.08.2017 10:15:43.014 调试 [172.12.34.37 [1501812943013] POST /bin/receive HTTP/1.1] com.day.cq.replication.impl.content.durbo.DurboImporter 在路径上收到新的 durbo 请求:/content/ … 04.08.2017 10:15:43.015 DEBUG [172.12.34.37 [1501812943013] POST /bin/receive HTTP/1.1] com.day.cq.replication.impl.content.durbo.DurboImporter 在路径上为 durbo 请求创建节点: /content/... 04.08.2017 10:15:43.015 调试 [172.12.34.37 [1501812943013] POST /bin/receive HTTP/1.1] com.day.cq.replication.impl.content.durbo.DurboImporter 写回内容... 04.08 .2017 10:15:43.573 DEBUG [172.12.34.37 [1501812943013] POST /bin/receive HTTP/1.1] com.day.cq.replication.impl.content.durbo.DurboImporter 恢复同级顺序… 04.08.2017 10:15: 50.946 调试 [172.12.34.37 [1501812943013] POST /bin/receive HTTP/1.1] com.day.cq.replication.impl.content.durbo。DurboImporter 恢复子订单... 04.08.2017 10:15:50.946 DEBUG [172.12.34.37 [1501812943013] POST /bin/receive HTTP/1.1] com.day.cq.replication.impl.content.durbo.DurboImporter 保存... 04.08.2017 10:18:10.177 INFO [172.12.34.37 [1501812943013] POST /bin/receive HTTP/1.1] com.day.cq.replication.impl.content.durbo.DurboImporter 在 147163 毫秒内为路径上的 durbo 请求导入内容:/content/ ...

这是来自 CloudWatch 的内存图: CloudWatch

内存下降了 3 次:1 次我进行了压缩,2 次之后我重新启动了服务器。

以及来自内存分析的报告:

内存分析第 1 部分

你们对此有什么想法吗?非常感谢你们。

0 投票
1 回答
70 浏览

jackrabbit - Jackrabbit Oak 合并不保存更改

我刚开始研究 Jackrabbit Oak 1.7.5,但无法保存更改 - 此测试在最后一个断言上失败: