2016-03-28 5 views
2

Wir versuchen, eine Remote-Tomcat-Anwendung in der Produktion zu profilieren. Das Problem ist, dass alle Threads im Web Pool blockiert sind und dies verhindert, dass wir uns mit jconsole, jmc und sogar YourKit verbinden können. Alle diese Tools funktionieren gut, wenn der JVM einwandfrei läuft.Verbinden mit eingefrorenen jvm mit JConsole usw.

Der Fehler von jconsole ist ein Timeout:

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). 

Dies macht es schwierig, herauszufinden, was mit unserer Anwendung falsch ist. Der Server verwendet nicht viel CPU und es gibt freien Speicher. Also kein offensichtlicher Mangel an Ressourcen. Die Jvm scheint nur tot

Java-Version: jdk1.7.0_75 Tomcat-Version: 7.0.65

Irgendwelche Ideen, wie man die jvm zu verbinden, wenn es so ist?

+1

Vielleicht können Sie 'jstack -F ' versuchen, einen Thread-Dump zu erzwingen. –

+0

Alles in den Protokollen? Wie sieht es mit dem Arbeitsverzeichnis des JVM-Prozesses aus? Was passiert, wenn Sie '-XX: + HeapDumpOnOutOfMemoryError 'aktivieren? Es ist möglich, dass die JVM nur so braindead ist, dass sie das Telefon nicht aufnehmen kann ... –

+0

mit jstack -F starten stack-trace.log – Sanj

Antwort

0

Sie haben ein paar Optionen:

  1. Senden SIGQUIT (Linux) oder bei gedrückter Ctrl-Break (Windows) und einen Stapel Spur bekommen.
  2. einen Core Dump (gcore auf Linux) Holen und dann können Sie die JVM Tools wie jstack und Freunde verwenden, um die Kern-Datei mit
+0

Beenden eines Java-Prozesses in Windows macht nichts anderes als die Eingabeaufforderung – Tommy

+0

SIGQUIT ist anders als SIGKILL/SIGTERM und es tötet einen Java-Prozess nicht. – sunnychan77