Мы пытаемся профилировать удаленное приложение tomcat, работающее в производстве. Проблема в том, что все потоки в веб-пуле заблокированы, и это, похоже, не позволяет нам подключиться к jconsole, jmc и даже к YourKit. Все эти инструменты отлично работают, когда jvm работает нормально.
Ошибка от jconsole - это тайм-аут:
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).
Это затрудняет понимание того, что не так с нашим приложением. Сервер не использует много процессора и есть свободная память. Так что никакой явной нехватки ресурсов. JVM просто кажется мертвым
Версия Java: jdk1.7.0_75 Версия Tomcat: 7.0.65
Любые идеи о том, как подключиться к jvm, когда это так?
jstack -F <pid>
, чтобы принудительно создать дамп потока. - person Beck Yang   schedule 28.03.2016-XX:+HeapDumpOnOutOfMemoryError
? Вполне возможно, что JVM просто настолько безмозглая, что не может поднять трубку... - person Christopher Schultz   schedule 29.03.2016