2012-12-03 5 views
7

MAC OSXマウンテンライオンでTomEE 1.5.1とVisualVM 1.7.0_09で非常に奇妙な問題が発生しました。VisualVMはローカルTomEEに非常に遅く接続し、ヒープダンプを取ることができません

TomEEがいくつかのwebappをロードした後、VisualVMを使用してローカルのTomEEプロセスを接続すると時間がかかり、接続後にgcボタンが無効になり、ヒープダンプを取ることができません。 VisualVMのログに何らかのエラーが表示されます。

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 

.java_pid<pid>ファイルがtmpフォルダに作成されていません。

VisualVMを使用してTomEEを起動した後、ロードしたWebアプリケーションの前に、.java_pid<pid>ファイルが作成され、VisualVMがすぐに接続してヒープダ​​ンプが機能します。

回避策catalina.shを変更してtools.jarをClassPathに追加し、openejb javaagentを削除してから、TomEEが完全に正常に動作した後に接続してください。

ubuntuマシンでは再生できません。

+0

JMSに接続していますか? JMSで試してください。 –

+0

jconsoleを試して、その動作を確認してください – javahaxxor

答えて

0

おそらく、jvmのメモリが不足している可能性があります。私は何度もそれを見た。 試行:

  1. increasing memory limits
  2. VisualVMをjvmに接続します。
  3. アプリケーションを展開します。
  4. メモリサンプラー、プロファイラーまたはヒープダンプを実行して問題を診断します。おそらくメモリリークがあります。メモリの問題がある場合は、ヒープダンプが最も安全な方法です。 take heap dump using command lineもあり、後でVisualVMで分析できます。

また、システムのメモリが不足していないことを確認してください。

関連する問題