【问题标题】:Tomcat: OutOfMemoryError Permgen SpaceTomcat:OutOfMemoryError Permgen Space
【发布时间】:2013-03-18 21:56:14
【问题描述】:

我正在使用 Tomcat 6 开发 JSP 应用程序。

由于我确实将 Quartz Scheduler Framework 和 Log4J 库添加到项目中,因此 Tomcat 在重新部署时开始抛出此异常。

我已经阅读了问题的原因,现在我知道这必须与类加载器有关。

所以,我猜这个问题可能是由自动加载某些类的记录器库引起的。

我该如何处理这个问题? 有另一种方法可以在不使用 log4j.properties 文件的情况下设置记录器,以确保类加载器能够正常工作。

【问题讨论】:

  • 问题是你没有足够的永久空间来做你想做的事。就像同一问题的所有其他答案一样。单击here 并按照说明进行操作。如果这不起作用,请随时重新发布,粘贴确切的异常消息
  • 投票。似乎问题更深,只是“增加内存”。我会很高兴获得有关解决 thouse classlader 内存泄漏的更多信息。我使用 Pentaho,它也使用 Quartz 调度程序并在开发中遇到同样的问题。

标签: java tomcat log4j quartz-scheduler permgen


【解决方案1】:

一种方法是通过在下面添加以下 JVM 参数来增加您的 permgen 空间

-XX:MaxPermSize=256m

但它只会延迟OOM错误。如果您一次又一次地重新部署,您将再次遇到 permgen 内存不足。原因在这篇文章中解释的很清楚,这里不再赘述。 http://frankkieviet.blogspot.com/2006/10/classloader-leaks-dreaded-permgen-space.html。抱歉,我没有其他方法来设置记录器以避免此问题。在实践中,我总是增加 MaxPermSize,然后在部署前循环服务器。

【讨论】:

  • 你在答案上放的这个链接非常有用。我读过一些类似的,但它并没有解释它很难解决。谢谢。
猜你喜欢
  • 2012-11-25
  • 2016-05-03
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多