收集的AEM会话对象没有被收集

nab*_*llo 5 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. 
Run Code Online (Sandbox Code Playgroud)

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

谢谢

小智 1

这是一个已知的 Oak 问题,大部分已在 Oak 1.0.12 中修复。如果可能,请考虑安装 AEM 6.0 的 Service Pack 2,并在其上安装最新的修补程序。如果您有库覆盖,您还应该计划一些迁移时间,但与软件引起的日常麻烦相比,更新的工作量是最小的。您可以在此处程序包共享中找到最新的 AEM 修补程序。

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