本页提供有关如何解决复制问题的信息。
复制(非反向复制)因某种原因失败。
复制失败有多种原因。 本文阐述了在分析这些问题时可能采取的方法。
单击激活按钮时,复制是否会被触发?如果不是,则执行以下操作:
复制是否正在复制代理队列中排队?
请转到/etc/replication/agents.author.html,然后单击复制代理进行检查,以检查此问题。
如果一个代理队列或几个代理队列被卡住:
队列是否显示blocked状态? 如果是,则发布实例未运行或完全无响应? 检查发布实例以查看其错误(即检查日志,并查看是否存在OutOfMemory错误或其他问题)。 然后,如果速度通常比较慢,则进行线程转储并分析。
队列状态是否显示队列处于活动状态- # pending? 基本上,复制作业可能会卡在套接字读取中,等待发布实例或调度程序做出响应。 这可能意味着发布实例或调度程序处于高负载状态或卡在锁中。 从作者处获取线程转储,并在此情况下发布。
如果所有代理队列都卡住
由于存储库损坏或某些其他问题,某段内容可能无法在/var/replication/data下序列化。 检查logs/error.log中是否有相关错误。 要清除错误的复制项,请执行以下操作:
sling事件框架作业队列可能有问题。 尝试在/system/console中重新启动org.apache.sling.事件包。
可能是作业处理完全关闭。 您可以在Felix Console下的Sling Eventing选项卡中检查该设置。 检查它是否显示- Apache Sling Eventing(JOB PROCESSING IS DISABLED!)
DefaultJobManager配置也可能进入不一致状态。 当某人通过OSGiconsole手动修改“Apache Sling作业事件处理程序”配置时(例如,禁用并重新启用“已启用作业处理”属性并保存配置),会发生这种情况。
创建replication.log
有时,将所有复制日志记录设置为在DEBUG级别的单独日志文件中会非常有用。 要执行此操作:
转到https://host:port/system/console/configMgr并以管理员身份登录。
查找Apache Sling Logging Logger工厂,并通过单击工厂配置右侧的+按钮创建一个实例。 这将创建新的日志记录记录器。
设置如下配置:
如果您怀疑此问题与sling事件/作业有关,则还可以在类别:org.apache.sling.事件下添加此java包
有时,它可能适合暂停复制队列以减少创作系统上的负载,而不禁用它。 目前,只有通过临时配置无效端口才能实现此操作。 从5.4开始,您可以看到复制代理队列中的暂停按钮有一些限制
页面权限不会复制,因为它们存储在授予访问权限的节点下,而不存储在用户下。
一般情况下,页面权限不应从作者复制到发布,默认情况下不应复制。 这是因为这两个环境的访问权限应不同。 因此,建议在发布时单独配置ACL(与作者分开配置)。
在某些情况下,当尝试将命名空间信息从创作实例复制到发布实例时,复制队列会被阻止。 这是因为复制用户没有jcr:namespaceManagement
权限。 要避免此问题,请确保:
jcr:namespaceManagement
权限。 您可以按如下方式授予权限:https://localhost:4502/crx/de/index.jsp
)。jcr:namespaceManagement
。