gpt4 book ai didi

jakarta-ee - 调试卡住的 Web 应用程序

转载 作者:行者123 更新时间:2023-11-28 22:43:25 26 4
gpt4 key购买 nike

情况

我的应用程序似乎时不时地卡住。我得到的唯一指示是我的浏览器会说“等待本地主机...”。如果我重新启动浏览器并访问我的应用程序,它会继续等待。到目前为止,唯一的解决方案是关闭 Tomcat,然后再将其重新打开。然后问题就消失了。我非常有信心这是一个已经接管的服务器端进程,没有任何客户端。

问题

与其只分析我的代码,不如在任何给定时间实际检查 Tomcat 正在做什么或正在做什么,有点像 “Tomcat 任务管理器”。我怀疑 JVM 在后台运行的某些进程是罪魁祸首,但我不确定如何分析它。

问题

  1. 在没有网络请求时查看 Tomcat 正在做什么的最佳方式是什么?

  2. 知道我应该将哪些后台进程或线程视为可能的罪魁祸首吗?

问题的可能原因:

当我开始跨多个页面使用单例时,这个问题就开始了。在我 promise 将其作为原因之前,我想查明实际发生卡住的位置。

最佳答案

以下是我过去使用过的 4 种诊断方法。每一个都有点复杂,您可能会或不会在您的环境中使用它。

  1. 将应用程序连接到 VisualVM 并查看线程的状态(您可能遇到死锁)。

  2. 另一种类似的替代方法是从 JVM 获取线程转储,您可以查看是否有多个线程在等待锁)。这page说明如何进行线程转储。

  3. 如果您仍然无法使用这些工具找到它,还有另一种选择,您可能需要使用诸如 YourKit 之类的分析器,看看您的应用正在做什么。

  4. 最后一个是在remote debug mode中运行应用程序每当您的应用停止正常工作时,您都可以从您的 IDE 连接以查看它挂起的确切位置。

关于jakarta-ee - 调试卡住的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com