Tomcat Java GC问题Linux

Tomcat Java GC问题Linux,java,tomcat,garbage-collection,tomcat7,Java,Tomcat,Garbage Collection,Tomcat7,我在Ubuntu上运行TomcatWeb服务器(7.0)。我在本地的Windows机器上使用Java1.6有相同的War文件,我没有遇到任何问题。然而,在linux机器上,我的tomcat在一段时间后出现故障或停止工作,并且出现Java GC异常。它从以下错误开始: 2011年7月10日下午4:29:05 org.apache.catalina.startup.HostConfig checkResources 信息:取消部署上下文[/manager] 2011年7月10日下午4:29:05 o

我在Ubuntu上运行TomcatWeb服务器(7.0)。我在本地的Windows机器上使用Java1.6有相同的War文件,我没有遇到任何问题。然而,在linux机器上,我的tomcat在一段时间后出现故障或停止工作,并且出现Java GC异常。它从以下错误开始:

2011年7月10日下午4:29:05 org.apache.catalina.startup.HostConfig checkResources
信息:取消部署上下文[/manager]
2011年7月10日下午4:29:05 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
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停止响应,出现以下错误:

  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
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之后才会发生。

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

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


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

是的,它有这种特权。我注意到只有当我退出试图运行Tomcat的远程shell时才会发生这种情况。我正在尝试使用命令nohup bin/startup.sh>console.log 2>console.err运行它