Tomcat 7 崩溃后无法启动
Posted
技术标签:
【中文标题】Tomcat 7 崩溃后无法启动【英文标题】:Tomcat 7 doesn't start after it crashed 【发布时间】:2012-08-20 17:43:59 【问题描述】:我的问题是,我在 2GB 2Core VPS 上的 Tomcat7 上运行 web 应用程序,当应用程序因 heapoverflow 异常而崩溃时,Tomcat 不会启动或停止。当我尝试通过浏览器访问它时,它只是挂起。
如果我尝试停止,它看起来会停止,但如果我反复这样做,它应该会抛出异常,因为它已经停止了,但事实并非如此。只有 15 分钟后我才能重新启动它。
我知道我应该解决 heapoverflow 问题,但问题是我根本无法解决问题,因为我使用的框架被证明是 nod 线程安全的,我必须为每个内存重对象创建一个新实例请求:(我试图通过添加一些基本控制器来解决这个问题,它只允许创建一定数量的对象,其余的请求被重定向到一个抱歉页面。因为它是针对一个 UNI 项目和主要目标无法为数百名用户提供服务,因此确保框架线程安全并不重要。
我仍然需要知道为什么 Tomcat 在崩溃后会这样做。如果您能更好地了解如何限制同时在内存中的这些对象的数量,也会有所帮助。
++++++++++
目前我能看到的唯一解决方案是增加 2GB 的 RAM,这样我就可以一次为大约 15-20 个用户提供服务。
【问题讨论】:
严重:无法初始化与 ProtocolHandler ["ajp-bio-9008"] 关联的端点 java.net.BindException:地址已在使用中通常在tomcat因内存不足错误而崩溃后,它处于不可用状态,必须手动或使用终止进程
catalina.sh stop -force
有关如何防止内存不足错误的讨论,请参阅 Dealing with "java.lang.OutOfMemoryError: PermGen space" error
尽管最终您可能需要投入更多硬件来解决问题。
这也可能派上用场: Can I auto restart tomcat jvm on out of memory exception
【讨论】:
以上是关于Tomcat 7 崩溃后无法启动的主要内容,如果未能解决你的问题,请参考以下文章