Java Tools Tutorials - Herong's Tutorial Notes - Version 5.31, by Dr. Herong Yang
'com.sun.management.jmxremote.port' - JMX Agent for Remote Connection
This section provides a tutorial example on how to turn on the out-of-the-box JMX agent on Sun JVM for monitoring tool 'jconsole' to connect from remote machines.
If you want to run 'jconsole' on a remote machine to monitor a Java application, you need to launch the JVM with the default JMX agent turned on using this system property: "com.sun.management.jmxremote.port=<portNum>"
Here is what I did to run my PrimeNumberSeeker.java with the default JMX agent for remote monitoring connections:
1. To run this program with the out-of-the-box JMX agent turned on, I used the following commands:
C:\Progra~1\java\jdk1.8.0\bin\java -Dcom.sun.management.jmxremote.port=6789 PrimeNumberSeeker Error: Password file not found: C:\Program Files\java\jdk1.8.0\jre \lib\management\jmxremote.password
2. I got this error because the remote JMX agent requires a password file to only give permissions to authorized remote connections. For testing purpose, I used this system property: "com.sun.management.jmxremote.authenticate=false" to turn off the authentication function:
C:\Progra~1\java\jdk1.8.0\bin\java -Dcom.sun.management.jmxremote.port=6789 -Dcom.sun.management.jmxremote.authenticate=false PrimeNumberSeeker Period, Current int, # primes 1, 2, 0 2, 10, 4 ...
3. I tried to run "jconsole localhost:6789" to connect to this JMX agent remotely.
But JConsole gives you a warning message: "Secure connection failed. Retry insecurely? -
The connection to localhost:6789 could not be made using SSL.
Would you like to try without SSL?" as shown below:
4. We are getting this warning message because the remote JMX agent is asking for a SSL connection by default. For testing purpose, I used this system property: "com.sun.management.jmxremote.ssl=false" to turn off the SSL function:
C:\Progra~1\java\jdk1.8.0\bin\java -Dcom.sun.management.jmxremote.port=6789 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false PrimeNumberSeeker Period, Current int, # primes 1, 2, 0 2, 10, 4 ...
Now I am ready run "jconsole" to connect to this JMX agent remotely. See the next section for more tutorial examples.
Last update: 2015.
Table of Contents