【问题标题】:AEM session object not garbaged collectedAEM 会话对象没有被垃圾收集
【发布时间】:2015-05-22 23:07:12
【问题描述】:

在过去的一个月里,我一直在处理一个 AEM 6.0 生产站点,大约一周后需要重新启动实例。在这种特殊情况下,失败的是我的出版商。所以我进一步研究了它,发现一开始一切都很好,然后几天后垃圾收集变得疯狂,所以 CPU 利用率像疯了一样增加。从那里我重新启动了我的发布者并等待当 GC 再次变得古怪时获得堆转储并使用 MAT(来自 eclipse 的内存分析器工具)对其进行分析。经过检查,我发现 94% 的堆被 ConcurrentHashMap 占用。我深入研究了那个对象,发现 Sessions 是当前的问题,或者至少是主要问题之一。会话超时值为 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 中看到过这个吗? 我应该将会话超时设置为 1 还是特别是某个值? 欢迎任何建议知道我应该如何着手解决这个问题?

谢谢

【问题讨论】:

  • 您能解释一下 AEM 是什么吗?它是什么类型的环境?如果 servlet 环境超时可能以分钟为单位

标签: java session garbage-collection session-timeout aem


【解决方案1】:

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

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

【讨论】:

  • 嘿,感谢您的回答,但我不久前更新到了 SP2 和 Oak 1.0.12,但这并没有解决我的问题。我最近更新到 Oak 1.0.13,但同样的问题仍然存在。还安装了所有修补程序。有什么想法吗?
  • 好的,这意味着您的代码中可能有一些未正确处理的会话。值得检查您的代码,将它们修复为my example shows in this answer,然后再次检查问题是否仍然存在。我记得 AEM 6 的资产查找器存在这样的问题,但已经通过一些地块修补程序解决了。
  • 感谢您抽出宝贵时间,但我查看了您的示例,似乎我们的问题仍然被这个问题所困扰。如果您有任何其他想法,我很乐意看看它们。无论如何,再次感谢 d33t 的帮助。
  • 如果没有系统在我面前,很难告诉你确切的原因。即使这并不容易,而且是一项非常耗时的任务。接下来你可以做的是再次检查你的代码,如果你没有找到任何东西,而不是尝试在虚荣系统上重现该问题并将错误报告给 daycare。
  • 我想知道上面的 Daycare 是否有任何解决方案?
猜你喜欢
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
相关资源
最近更新 更多