Tomcat Java GC 问题 Linux

发布于 2024-11-19 02:44:39 字数 3467 浏览 1 评论 0原文

我正在 Ubuntu 上运行 Tomcat Web 服务器(7.0)。我在本地 Windows 机器上使用 Java 1.6 有相同的 War 文件,并且没有遇到任何问题。然而,在 Linux 机器上,我的 tomcat 一段时间后失败或停止工作,并且出现 Java GC 异常。它以这些错误开始:

Jul 10, 2011 4:29:05 PM org.apache.catalina.startup.HostConfig checkResources 信息:取消部署上下文[/manager] 七月 10, 2011 4:29:05 PM org.apache.catalina.session.StandardManager doUnload 严重:保存持久会话时出现 IOException:java.io.FileNotFoundException:/home/infocomm/tomcat/work/Catalina/localhost/manager/SESSIONS.ser(没有此类文件或目录) java.io.FileNotFoundException: /home/infocomm/tomcat/work/Catalina/localhost/manager/SESSIONS.ser (没有这样的文件或目录)

然后这些错误:

  Jul 10, 2011 4:29:05 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
WARNING: JDBC driver de-registration failed for web application [/manager]
java.lang.NullPointerException
    at org.apache.catalina.loader.WebappClassLoader.clearReferencesJdbc(WebappClassLoader.java:2012)
    at org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1948)
    at org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1860)
    at org.apache.catalina.loader.WebappLoader.stopInternal(WebappLoader.java:659)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:216)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5032)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:216)
    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:952)
    at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1199)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1360)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:290)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1228)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1384)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1394)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1373)
    at java.lang.Thread.run(Thread.java:619)
Jul 10, 2011 4:29:05 PM org.apache.catalina.util.LifecycleBase destroy
INFO: The destroy() method was called on component [StandardContext[/manager]] after destroy() had already been called. The second call will be ignored.
Jul 10, 2011 4:29:05 PM org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context []
Jul 10, 2011 4:29:05 PM org.apache.catalina.session.StandardManager doUnload

然后最后 TOmcat 停止响应这些错误:

Jul 10, 2011 5:07:44 PM org.apache.catalina.util.LifecycleBase destroy
INFO: The destroy() method was called on component [StandardContext[/host-manager]] after destroy() had already been called. The second call will be ignored.
Jul 10, 2011 6:31:44 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor rcbp.xml from /home/infocomm/tomcat/conf/Catalina/localhost
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space

非常感谢任何帮助。 仅当我退出启动 Tomcat 应用程序的远程 shell 后,才会发生这种情况。

I am running a Tomcat Web Server(7.0) on Ubuntu. I have the same War file using Java 1.6 in my local Windows machine and I face no issues whatsoever. However, on the linux machine my tomcat fails after some time or stops working and I get Java GC exceptions. It starts with these errors :

Jul 10, 2011 4:29:05 PM org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context [/manager]
Jul 10, 2011 4:29:05 PM org.apache.catalina.session.StandardManager doUnload
SEVERE: IOException while saving persisted sessions: java.io.FileNotFoundException: /home/infocomm/tomcat/work/Catalina/localhost/manager/SESSIONS.ser (No such file or directory)
java.io.FileNotFoundException: /home/infocomm/tomcat/work/Catalina/localhost/manager/SESSIONS.ser (No such file or directory)

Then these errors:

  Jul 10, 2011 4:29:05 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
WARNING: JDBC driver de-registration failed for web application [/manager]
java.lang.NullPointerException
    at org.apache.catalina.loader.WebappClassLoader.clearReferencesJdbc(WebappClassLoader.java:2012)
    at org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1948)
    at org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1860)
    at org.apache.catalina.loader.WebappLoader.stopInternal(WebappLoader.java:659)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:216)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5032)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:216)
    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:952)
    at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1199)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1360)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:290)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1228)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1384)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1394)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1373)
    at java.lang.Thread.run(Thread.java:619)
Jul 10, 2011 4:29:05 PM org.apache.catalina.util.LifecycleBase destroy
INFO: The destroy() method was called on component [StandardContext[/manager]] after destroy() had already been called. The second call will be ignored.
Jul 10, 2011 4:29:05 PM org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context []
Jul 10, 2011 4:29:05 PM org.apache.catalina.session.StandardManager doUnload

Then Finally TOmcat stops responding with these errors:

Jul 10, 2011 5:07:44 PM org.apache.catalina.util.LifecycleBase destroy
INFO: The destroy() method was called on component [StandardContext[/host-manager]] after destroy() had already been called. The second call will be ignored.
Jul 10, 2011 6:31:44 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor rcbp.xml from /home/infocomm/tomcat/conf/Catalina/localhost
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space

Would Appreciate any help.
This only happens after I exit the remote shell with which I started the Tomcat Application.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巷雨优美回忆 2024-11-26 02:44:39

tomcat(当使用特定用户帐户运行时)是否有权访问此文件,它应该有足够的权限创建、更新和?删除该文件。

/home/infocomm/tomcat/work/Catalina/localhost/manager/SESSIONS.ser

除非您以非特权用户身份启动 tomcat,否则这种情况很少出现。

does tomcat (when running with a specific user account) has access to this file, it should have enough privilege create, update & delete the file.

/home/infocomm/tomcat/work/Catalina/localhost/manager/SESSIONS.ser

in windows its very rare for this scenario to surface unless you've started tomcat as an unprivileged user.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文