2012-12-03 4 views
7

Ich habe ein sehr seltsames Problem mit TomEE 1.5.1 und VisualVM 1.7.0_09 auf MAC OSX Berglöwen.VisualVM Verbindung zu lokalen TomEE sehr langsam und kann keinen Heap Dump

Nachdem TomEE geladen einige webapp.Use VisualVM verbinden lokalen TomEE-Prozess lange dauern, und nach dem Verbinden der GC-Schaltfläche deaktiviert ist, und ich kann nicht einen Heap-Dump. Das VisualVM-Protokoll zeigt einen Fehler an.

com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded 
    at sun.tools.attach.BsdVirtualMachine.<init>(BsdVirtualMachine.java:90) 
    at sun.tools.attach.BsdAttachProvider.attachVirtualMachine(BsdAttachProvider.java:63) 
    at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:213) 
    at com.sun.tools.visualvm.attach.AttachModelImpl.getVirtualMachine(AttachModelImpl.java:104) 
Caused: java.io.IOException: Unable to open socket file: target process not responding or HotSpot VM not loaded 

die .java_pid<pid> Datei nicht in tmp Ordner erstellt.

Aber wenn ich VisualVM verwenden, um TomEE nach dem Start zu verbinden, und bevor alle Webapps geladen werden, wird die .java_pid<pid> Datei erstellt, und VisualVM stellt sofort eine Verbindung her, und Heap Dump funktioniert.

Eine andere Problemumgehung ist, catalina.sh zu ändern, um tools.jar zum ClassPath hinzuzufügen und openejb javaagent zu entfernen, und dann eine Verbindung herzustellen, nachdem TomEE vollständig gestartet wurde.

Kann auf einem Ubuntu-Computer nicht reproduziert werden.

+0

verbinden Sie mit JMS? Versuchen Sie es mit JMS. –

+0

Versuchen Sie jconsole und sehen Sie, wie das funktioniert – javahaxxor

Antwort

0

Wahrscheinlich hat jvm nicht mehr genügend Arbeitsspeicher. Ich habe es oft gesehen. Versuchen:

  1. increasing memory limits.
  2. Verbinden Sie VisualVM mit jvm.
  3. Stellen Sie Ihre Anwendung bereit.
  4. Und führen Sie Speicher-Sampler, Profiler oder Heap-Dump, um das Problem zu diagnostizieren. Sie haben wahrscheinlich Speicherlecks. Heap Dump ist der sicherste Weg, wenn Sie Speicherprobleme haben. Sie können auch take heap dump using command line und später in VisualVM analysieren.

Vergewissern Sie sich außerdem, dass auf Ihrem System nicht mehr genügend Arbeitsspeicher verfügbar ist.