Java Tool Tutorials - Herong's Tutorial Notes
Dr. Herong Yang, Version 5.11

'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.6.0_02\bin\java 
   -Dcom.sun.management.jmxremote.port=6789 
   PrimeNumberSeeker

Error: Password file not found: C:\Program Files\java\jdk1.6.0_02\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.6.0_02\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 the connection failed with this error dialog box:
jconsole Connection Failed

4. The connection failed because the remote JMX agent also requires a SSL client certificate. 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.6.0_02\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.

Sections in This Chapter

JMX Technology and 'jconsole' Tool

'jconsole' Command Options and Connection Window

'com.sun.management.jmxremote' - JMX Agent for Local Connection

'jconsole' - Connecting to a Local JMX Agent

'com.sun.management.jmxremote.port' - JMX Agent for Remote Connection

'jconsole' - Connecting to a Remote JMX Agent

Dr. Herong Yang, updated in 2008
'com.sun.management.jmxremote.port' - JMX Agent for Remote Connection