質問

どのように活性化JMX、JVMのためのアクセスjconsole?

役に立ちましたか?

解決

に関連する文書で、できるだけ早く送ってくださ

http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html

Startプログラムは、以下のパラメータ:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

例えばこのように:

java -Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=9010 \
  -Dcom.sun.management.jmxremote.local.only=false \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Dcom.sun.management.jmxremote.ssl=false \
  -jar Notepad.jar

-Dcom.sun.management.jmxremote.local.only=false 必ずしも必要としません なので、この値は管理画面より変更可能でUbuntu.エラーのようなものになっていくかも この:

01 Oct 2008 2:16:22 PM sun.rmi.transport. customer .TCPTransport$AcceptLoop executeAcceptLoop
WARNING: RMI TCP Accept-0: accept loop for ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=37278] throws
java.io.IOException: The server sockets created using the LocalRMIServerSocketFactory only accept connections from clients running on the host where the RMI remote objects have been exported.
    at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:89)
    at sun.rmi.transport. customer .TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:387)
    at sun.rmi.transport. customer .TCPTransport$AcceptLoop.run(TCPTransport.java:359)
    at java.lang.Thread.run(Thread.java:636)

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6754672

またはご注意ください -Dcom.sun.management.jmxremote.authenticate=false る アクセスをご利用の方だけでは、JVMに 地機ではどちらでも構いません。

更新:

場合によってお見せできなかったのサーバーです。こうして固定すればこのパラメータを設定して: -Djava.rmi.server.hostname=127.0.0.1

他のヒント

走Dockerコンテナを導入し、全体のスルーレートの追加問題のための接続できればこのことで人がいる。その結を添加する必要がある一方、以下のオプションについてご説明させていただき。

-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=${DOCKER_HOST_IP}
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.rmi.port=9998

DOCKER_HOST_IP

と異なり使用jconsole地には、広告、異なるIP以外からの容器です。する必要がありま置き換え ${DOCKER_HOST_IP} の外部で分解可能IP(DNS名)のDockerます。

JMXリモート&RMIポート

うJMXもアクセスする必要があるときは、リモート管理インタフェース(jstat用途別のポート 転送データの一部がarbitratingに接続します。こちらでお分かりになったどこでもすぐに明らかに jconsole この値を設定.のリンク条のプロセス:

  • いつから jconsole ログ記録可能
  • 失敗
  • ギャラリポート jconsole と利用
  • 使用 iptables/firewall ルールとしてさせるのに必要なされ、そのポート接続

したがその作品はありませんautomatableます。I民からのアップグレードjconsoleる Doodle のできる明示的に指定すると、その jstatd 動かした場合に起こります。にDoodleを追加して、新しいリモートホストを更新する価値との相関を示し上記で指定された:

Add Remote Host

そして右クリックして新しいリモートホストに接続 Add JMX Connection...

Add JMX Connection

も忘れずにチェックボックスをチェックのための Do not require SSL connection.いることを許可すべきます。

注jconsoleを実行中のプロセスに自分自身を添付するために、最新の化身でJava 6は、JMXの呪文なしで開始された後でもできます。

それはあなたに利用可能である場合、それはプロファイラなどのプロセスを実行する上での豊富な情報を提供して

、またjvisualvm検討します。

私はND 7.0

WAS使用しています

私のJVMは、すべての次の引数は、JConsoleの中に監視する必要が

    -Djavax.management.builder.initial= 
    -Dcom.sun.management.jmxremote 
    -Dcom.sun.management.jmxremote.port=8855 
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Dcom.sun.management.jmxremote.ssl=false

Linuxでは、私は次のparamsを使用します:

-Djavax.management.builder.initial= 
-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=9010 
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false
ホスト名は、ホストアドレス(192.168.0.xの)に解決されるように

とも私はむしろループバックアドレスより/etc/hostsを編集した(127.0.0.1)

お客様のjavaアプリケーションは以下のコマンドラインパラメータ:

-Dcom.sun.management.jmxremote.port=8855
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

使用することが大切で、 -Dcom.ます。ます。jmxremote.ssl=false パラメータやしたくない場合の設定をデジタル証明書のjmxます。

の場合を開始されたアプリケーション機のIPアドレス 192.168.0.1, 開放 jconsole, 入 192.168.0.1:8855リモートプロセス 分野をクリックし 接続.

以下のコマンドラインパラメータと共に、

-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

時々、Linuxサーバーで、IMXの接続が成功しません。それはように雲のLinuxホストでは、/ etc / hostsにホスト名がホストアドレスに解決、ためです。

それを修正するための最良の方法である、ネットワーク内の他のマシンからのping、特定のLinuxサーバーと

でそのホストのIPアドレスを使用します
-Djava.rmi.server.hostname=IP address that obtained when you ping that linux server.

しかし、あなたはifconfig.meを使用してLinuxサーバから取得するIPアドレスに依存していることはありません。あなたがそこに着くIPがホストファイルに存在するマスクされたものです。

私はこの正確な問題があったが、テストのためのGitHubプロジェクトを作成しましたそして正しい設定を考え出すます。

これは、サポートスクリプトで働いDockerfile、および迅速なテストのための簡単なdocker-compose.ymlが含まれています。

まず、あなたのJavaプロセスがすでにJMXパラメータで実行されているかどうかを確認する必要があります。次の操作を行います。

ps -ef | grep java

あなたが監視する必要があなたのJavaプロセスを確認してください。あなたがをDjmx.rmi.registry.port = XXXX ののJMX RMIのパラメータを見ることができる場合は、ポートはJMX接続の下にリモートで接続するには、あなたのJava VisualVMは、ここで言及した使用。

これは、JMXのRMIポートを介して動作していない場合、あなたは下記のパラメータを使用してJavaプロセスを実行する必要があります:

-Djmx.rmi.registry.port=1234 -Djmx.rmi.port=1235 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

注:ポート番号は、あなたの選択に基づいています。

これは、JMX coneectionために、このポートを使用することができます。ここでは、ポート1234です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top