【AEM 每日一贴】AEM6.3 升级 AEM6.4 注意事项 ——— Live Copy

今天这篇文章,主要来讲一下在 AEM6.3 版本升级到 AEM6.4 的时候

在Live Copy方面需要注意的事项

应该有不少人在 AEM6.3 升级到 AEM6.4 之后会发现

之前创建的一些Live Copy节点都不好用了,所有的Rollout Config都失效了

无论是Push on modify 还是 Activate on Blueprint activation 等等设置

全都 Not Work

这时候 作为IT人员的你,或者是作为Architect的你 就会创建一个新的Live Copy Test Demo来找问题

这时候你就会惊喜的发现,新创建的Live Copy,所有功能一切正常

接下来,就让我们分别在AEM6.3和 AEM6.4里面创建Live Copy,来找寻其中的问题

首先,我分别在 4502端口 启动一个AEM6.4 和 4506端口 启动一个AEM6.3

(Runmode 记得用有 sample content的)

【AEM 每日一贴】AEM6.3 升级 AEM6.4 注意事项 ——— Live Copy    【AEM 每日一贴】AEM6.3 升级 AEM6.4 注意事项 ——— Live Copy

那我们就用 we-retial 这个sample site 我分别在AEM6.3 和 AEM6.4 创建Live Copy

【AEM 每日一贴】AEM6.3 升级 AEM6.4 注意事项 ——— Live Copy

 

【AEM 每日一贴】AEM6.3 升级 AEM6.4 注意事项 ——— Live Copy

创建完之后 让我们分别进度CRXDE 在/content 下找到这两个节点,看看两者有何不同

【AEM 每日一贴】AEM6.3 升级 AEM6.4 注意事项 ——— Live Copy

【AEM 每日一贴】AEM6.3 升级 AEM6.4 注意事项 ——— Live Copy

由上方两张图我们不难发现,两个Live Copy 节点下的 ../jcr:content/cq:LiveSyncConfig 节点存在不同

这两者的 cq:rolloutConfigs 属性不同

AEM6.3里创建的 lc63 节点下的 cq:rolloutConfigs 属性为:/etc/msm/rolloutconfigs/pushonmodify

AEM6.4里创建的 lc64 节点下的 cq:rolloutConfigs 属性为:/libs/msm/wcm/rolloutconfigs/pushonmodify

那到这里,我们就可以得出一个结论:

在AEM6.4里,处理Live Copy一系列逻辑的节点路径相较于AEM6.3发生了变化,导致了这一系列的问题

【总结】

最后我们梳理一下整个事件

在我们升级AEM6.3 到 AEM6.4里的时候,我们在升级之前创建的所有LIve Copy节点的 cq:rolloutConfigs 属性 还依旧是 /etc/msm/rolloutconfigs/pushonmodify

而最新的 AEM6.4 的Live Copy 的 cq:rolloutConfigs 属性已经变为了 /libs/msm/wcm/rolloutconfigs/pushonmodify

所以在升级之后,旧的Live Copy节点,依旧按照旧的 cq:rolloutConfigs 属性去处理Live Copy节点的一系列监听和操作,就会发现那个属性对应的路径已经不存在了,所以一系列的监听和操作就全都失效了

然后当你创建一个新的Live Copy节点的时候,cq:rolloutConfigs 属性是用的AEM6.4的新路径,所以新的Live Copy节点,又是可用的

所以这个现象和我们的结论,是完全吻合的

所以在我们从AEM6.3 升级到 AEM6.4 之后,要记得手工排查一下,SItes下已创建的Live Copy

手动将这些旧的Live Copy节点的 cq:rolloutConfigs 属性

 /etc/msm/rolloutconfigs/pushonmodify 改为 /libs/msm/wcm/rolloutconfigs/pushonmodify

这样,就可以让这些不生效的Live Copy,重新生效了

【写在最后】

今天时间有限,就暂时只用AEM6.3和AEM6.4两个版本做了横向对比

其实我当时遇到这个问题的时候,是直接从AEM6.2升级到AEM6.4 出现的

如果以后有时间,我再把AEM6.1,6.2,6.3,6.4,6.5作一个横向对比

看看是不是6.1,6.2,6.3是一样的,6.4,6.5是一样的