未收集的AEM会话对象

时间:2015-05-22 23:07:13

标签: java session garbage-collection session-timeout 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还是某个值? 欢迎任何建议知道我应该如何解决这个问题?

感谢

1 个答案:

答案 0 :(得分:1)

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

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