首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JConsole等连接到冻结的jvm

使用JConsole等连接到冻结的jvm
EN

Stack Overflow用户
提问于 2016-03-28 20:36:56
回答 1查看 294关注 0票数 2

我们正在尝试分析一个在生产环境中运行的远程tomcat应用程序。问题是web池中的所有线程都被阻塞了,这似乎阻止了我们连接jconsole、jmc甚至YourKit。当jvm运行良好时,所有这些工具都能正常工作。

来自jconsole的错误是超时:

代码语言:javascript
复制
Could not connect to server1:9090 : Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: 
java.net.SocketTimeoutException: Read timed out]
Could not connect to server1:9090. Make sure the JVM is running and that you are using the correct protocol in the Service URL (service:jmx:rmi:///jndi/rmi://server1:9090/jmxrmi).

这使得我们很难找出我们的应用程序出了什么问题。服务器使用的cpu不多,并且有空闲的内存。所以并不缺乏明显的资源。jvm似乎已经死了

Java版本: jdk1.7.0_75 Tomcat版本: 7.0.65

在这种情况下,如何连接到jvm有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-29 10:49:12

您有几个选项:

  1. 发送SIGQUIT (Linux)或core Break (Windows)并获取堆栈跟踪。
  2. 获取核心转储(Linux上的gcore),然后您可以使用jstack等JVM工具,以及使用核心文件

的朋友

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36262461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档