2017-05-03 9 views
0

私はPlayアプリケーションのスレッド管理を見ようとしています。 JVisualVmを使用して、実行中のスレッドを表示する必要があります。基本的には、JMXポートを有効にしてPlayアプリケーションを表示する必要があります。 Play 2.5 with Activatorを使用しています。 Play Framework(2.5) - JVisualVMで表示できるJMXポート

javaOptions += "-Dcom.sun.management.jmxremote" 
javaOptions += "-Dcom.sun.management.jmxremote.port=5678" 
javaOptions += "-Dcom.sun.management.jmxremote.local.only=false " 
javaOptions += "-Dcom.sun.management.jmxremote.ssl=false" 
javaOptions += "-Dcom.sun.management.jmxremote.authenticate=false" 
javaOptions += "-Djava.rmi.server.hostname=192.11.1.18" 

は、以下のようなbuild.sbtファイル内のアプリケーションや構成のJavaのArgsを実行するためにacivator実行コマンドを

使用しかし、何も上記の構成で動作しません。誰もがこれで私を助けることができますか?

+0

接続時にJVisualVMがあなたに通知する正確な内容は? – Serg

答えて

0

JMXクライアントがあなたのサーバに接続できない理由は、デフォルトで無作為に割り当てられているcom.sun.management.jmxremote.rmi.portへの接続を拒否するファイアウォールかもしれません。便宜上、com.sun.management.jmxremote.portと同じ値に明示的に設定することができます。

もう1つの理由は、java.rmi.server.hostnameの値が間違っている可能性があります。ブラウザを使用してアプリケーションにアクセスするのと同じIPアドレスである必要があります。

だから、あなたの構成は次のようになります。何も助けなかった場合VisualVM Troubleshooting Guideを参照してください、

javaOptions += "-Dcom.sun.management.jmxremote" 
javaOptions += "-Dcom.sun.management.jmxremote.port=5678" 
javaOptions += "-Dcom.sun.management.jmxremote.rmi.port=5678" 
javaOptions += "-Dcom.sun.management.jmxremote.local.only=false " 
javaOptions += "-Dcom.sun.management.jmxremote.ssl=false" 
javaOptions += "-Dcom.sun.management.jmxremote.authenticate=false" 
javaOptions += "-Djava.rmi.server.hostname=192.11.1.18" // make sure it's your app's web address 

また、(彼らはドッキングウィンドウについてだが、それは基本的にJMCを使用してリモートホストに接続するのと同じです)同様の問題の詳細については、以下のリソースを確認してください。

関連する問題