Java Tomcat请求需要半天以上的时间,并且仍然有效

Java Tomcat请求需要半天以上的时间,并且仍然有效,java,performance,tomcat,Java,Performance,Tomcat,我有一个工作的Java servlet,但现在我向它发送了一些请求,它卡住了——正如您在屏幕截图中看到的,它工作了48000多秒,也就是半天: 这以前没有发生过,当我直接从Java运行这个函数时也没有发生过(没有Tomcat) a。我如何调试它并查看Tomcat服务器的实际位置 b。有没有办法阻止这些请求?(我尝试重新启动webapp,但请求一直在运行…) 另外,我忘了说我在Windows服务器上。a。我如何调试它并查看Tomcat服务器的实际位置? 检查您的应用程序日志(在tomcat上),

我有一个工作的Java servlet,但现在我向它发送了一些请求,它卡住了——正如您在屏幕截图中看到的,它工作了48000多秒,也就是半天:

这以前没有发生过,当我直接从Java运行这个函数时也没有发生过(没有Tomcat)

a。我如何调试它并查看Tomcat服务器的实际位置

b。有没有办法阻止这些请求?(我尝试重新启动webapp,但请求一直在运行…)


另外,我忘了说我在Windows服务器上。

a。我如何调试它并查看Tomcat服务器的实际位置?

  • 检查您的应用程序日志(在tomcat上),如果您的应用程序有任何问题,这将为您提供一些线索

  • 获取线程转储并进行分析(有一些工具可以分析线程转储)。如果您的应用程序被挂起,这会有很大帮助

  • b。有没有办法阻止这些请求?(我尝试重新启动webapp,但请求一直在运行…

    通过在unix主机上运行下面的命令,可以列出所有java进程

    ps -ef | grep java
    

    这将列出所有java进程及其PID。您可以使用kill命令(kill-9pid)杀死单个进程。

    您可以使用类似VisualVM/Jconsole的东西来识别罪魁祸首线程。通过分析线程转储,您可能会得到一些线索。我忘了说,我在Windows上。以下是进程:有两个Tomcat进程,我删除了它们,但请求没有停止。几秒钟后,Tomcat进程重新出现。看起来Tomcat正在作为Windows服务运行。在“服务”选项卡下查找与Tomcat相关的任何内容,并尝试从那里重新启动它。好的,我成功地重新启动了Tomcat服务,这显然杀死了所有请求,但它也重新启动了我的所有其他Web应用。。。有没有一种方法可以在不终止整个服务的情况下停止特定的请求?如果服务是独立的,就可以这样做;签入任务管理器。