[英]After Java OutOfMemoryError, Tomcat Won't Start
在Tomcat中运行我的App多次之后,我已经最大化了PermGen内存(我怀疑是我的石英servlet出现了问题),Java抛出了OutOfMemoryError。 通常,我只是不时地重新启动tomcat,但是由于这种情况,我无法启动/重新启动。 Tomcat在我们的qa环境中运行,通常是通过sbin文件夹启动/停止/重新启动的。 我尝试使用替代方法catalina.sh run来启动tomcat,但它表示该端口已被使用! 这使我怀疑tomcat已经在运行,但是当我尝试停止它时,出现此错误:
严重:无法联系localhost:8005。 Tomcat可能未运行。 2014年1月19日3:10:58 PM org.apache.catalina.startup.Catalina stopServer严重:Catalina.stop:java.net.ConnectException:java.net的java.net.PlainSocketImpl.socketConnect(本机方法)拒绝连接java.net上的.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)在java.net。 SocksSocketImpl.java:392)位于java.net.Socket.connect(Socket.java:579)...
因此,如果未启动或停止,则Tomcat处于什么状态? 如何将其恢复为可启动状态?
更新根据鲍里斯(Boris)的评论,我使用ps auxfww列出了进程,而唯一使用tomcat的进程如下:
tomcat 5111 8.0 29.0 2052336 556512? Sl Jan17 221:48 / usr / java / latest / bin / java -Djava.util.logging.config.file = / var / lib / tomcat / conf / logging.properties -Djava.util.logging.manager = org.apache .juli.ClassLoaderLogManager -javaagent:/usr/share/tomcat/newrelic/newrelic.jar -Xmx512m -Djava.awt.headless = true -Djava.endorsed.dirs = / usr / share / tomcat / endorsed -classpath / usr / share /tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar -Dcatalina.base = / var / lib / tomcat -Dcatalina.home = / usr / share / tomcat -Djava.io。 tmpdir = / var / lib / tomcat / temp org.apache.catalina.startup.Bootstrap启动
由于某些原因,即使是root用户,也无法删除该进程。 我用
须藤杀5111
但是之后仍然列出该过程,并且tomcat仍然不会重新启动...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.