java – 没有收集的AEM会话对象

在过去的一个月里,我一直在处理一个AEM 6.0生产站点,在一周左右之后需要重新启动实例.在这种特殊情况下,我的出版商失败了.所以我进一步研究了一下,发现一切都很好,然后几天之后垃圾收集变得疯狂,所以CPU利用率就像疯了一样增加.从那里我重新启动了我的发布者并等待GC再次出现问题并使用MAT(来自eclipse的Memory Analyzer Tool)进行分析时等待堆转储.经过我的检查,我发现94%的堆都被ConcurrentHashMap占用.我潜入那个对象,发现Sessions是手头的问题,或者至少是一个主要问题. session-timeout值为0,因此会话没有超时.我的错误日志显示了这种类型的消息:

*WARN* [ip [1432319636774] GET something HTTP/1.1] org.apache.jackrabbit.oak.jcr.session.RefreshStrategy This session has been idle for 2 minutes and might be out of date. Consider using a fresh session or explicitly refresh the session. 

是否可以在AEM中配置会话管理器?
以前有没有人在AEM看过这个?
我应该将session-timeout设置为1还是某个值?
欢迎任何建议知道我应该如何解决这个问题?

谢谢

最佳答案
这是一个已知的Oak问题,大多数是用Oak 1.0.12修复的.如果可能,请考虑为AEM 6.0安装Service Pack 2,并在其上安装最新的修补程序.如果你有lib覆盖,你应该计划一些迁移时间,但与软件引起的日常麻烦相比,更新的努力是最小的.你可以找到latest AEM hotfixes herepackage share.

如果您无法安装Service Pack 2,请考虑安装所有可用的Oak修补程序.您还需要安装几个新的oak:index软件包.

转载注明原文:java – 没有收集的AEM会话对象 - 代码日志