Tomcat 7崩溃后无法启动

时间:2012-08-25 11:40:53

标签: crash overflow heap tomcat7

我的问题是,我在2GB 2Core VPS上运行Tomcat7上的webapp,当应用程序崩溃时,堆栈溢出异常Tomcat无法启动或停止。当我尝试通过浏览器访问它时,它就会挂起。

如果我试图停止它看起来像停止但是如果我反复执行它应该抛出异常,因为它已经停止,但事实并非如此。只有15分钟后我才能再次启动它。

我知道我应该解决堆溢出问题,但问题是我根本不能够,因为我使用的框架结果是点头线程安全我必须为每个创建一个内存重对象的新实例请求:(我试图通过添加一些基本控制器来解决问题,只允许创建一定数量的对象,其余的请求被重定向到一个抱歉页面。因为它是一个UNI项目和主要目标无法为数百名用户提供服务,使框架线程安全并不重要。

我仍然需要知道为什么Tomcat在崩溃后会这样做。如果您想要更好地了解如何同时限制这些对象在内存中的数量,也会有所帮助。

++++++++++

目前我能看到的唯一解决方案是获得2GB以上的RAM,这样我一次可以为15-20个用户提供服务。

1 个答案:

答案 0 :(得分:0)

通常在tomcat因内存不足错误而崩溃后,它处于不可用状态,并且必须手动或使用

杀死该进程
catalina.sh stop -force

有关如何防止内存不足错误的讨论,请参阅 Dealing with "java.lang.OutOfMemoryError: PermGen space" error

虽然最终你可能需要在问题上投入更多硬件。

这也可能会派上用场: Can I auto restart tomcat jvm on out of memory exception