Java Web Server 突然停止响应,没有任何异常

标签 java jsp servlets web-applications webserver

我有一个使用 jsp 在 Java Web 服务器上构建的浏览器游戏。

我添加了一个新模块,它使用一些 http session 对象并在其中保存数据。然而,运行3-4小时后,它突然停止工作并死机。当我检查错误日志时,我没有看到任何抛出的异常。

服务器暂时有50-60人在线。

我使用 VisualVM 监控服务器,这是 4 小时后的结果,直到它停止:

enter image description here

我将最大内存设置为1024Mb。正如您所看到的,它的问题与内存无关。

我注意到,当服务器停止时,线程数量会增加。

根据截图,我应该怀疑httpsession对象吗?为什么服务器停止响应?

最佳答案

这看起来像是系统限制或死锁。

您的线程图看起来有问题: Activity 线程的数量很重要并且永远不会减少。 Web 应用程序应该是无状态的。当请求到达时,生存步数应该增加,但当请求完成时,生存步数应该减少。
我不认为您的申请是这种情况。

MGorgon 是对的。

You should also check "Deadlock detection" in jconsole.

如果您使用 JDK 6+ 版本,则可以使用 ThreadMXBean 。它有一个 findDeadlockedThreads() 方法和其他有趣的方法来满足您的需求。

无论如何,如果不是死锁,为了获取有关问题原因的更多信息,我建议您查看系统日志,无论您的操作系统是什么。你也许会有有趣的事情。

关于Java Web Server 突然停止响应,没有任何异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38903116/

相关文章:

java - 计算学生的 GPA

java - lambda 表达式中的 AtomicInteger 变量

spring - 强制下载后 ModelAttribute 未设置

java - 无法使用 java 的凭据访问网页

java - 反射安全吗?

java - DWR 与 Websocket

java - JSP 错误页面

http - 为什么我的聊天服务器 servlet 的 doPost 方法没有被调用?

java - Servlet-Applet 通信

eclipse - Apache Tomcat 7.0 无法与 eclipse EE juno 版本一起正常工作