JAVA Management Extensions (JMX) is a powerful technology to manage and monitor applications or service-driven networks. Using JMX, you can quickly check the WebSphere JVM health.
If you are already using an enterprise monitoring system, then most probably you don’t need this.
However, for learning or interview questions, this will help you to enable JMX & monitor essential metrics of WebSphere JVM.
The good thing about this is you don’t have to install any additional software.
Let’s start with the implementation…
- Login into DMGR Console
- Click on Servers >> Server Types >> WebSphere application servers
- Click on JVM from the list you wish to monitor using JMX
- Expand Java and Process Management under “Server Infrastructure” and click on Process definition
- Click on Java Virtual Machine under “Additional Properties”
- Enter following in “Generic JVM arguments” box
-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9000
In the above example, I have entered 9000. You must enter a unique port number to avoid conflicts.
- Click on Review and Synchronize changes with nodes
It would be best if you restarted the JVM to get the port number active. To verify the port, you can use the netstat command.
[root@localhost server1]# netstat -anlp|grep 9000 tcp6 0 0 :::9000 :::* LISTEN 4575/java [root@localhost server1]#
So now, I know JMX port for JVM is listening and ready to be connected from Jconsole.
Jconsole is within the JDK package, so if you have this installed, you should see them under the java/bin folder. Alternatively, you can use find command.
find / -name jconsole
Execute jconsole, and it will prompt you to enter the remote process details. Here you have to give server hostname and JVM port number.
It will take a few seconds and connect to WebSphere JVM using JMX port.
On the overview tab, you can see heap memory usage, threads, classes, and CPU usage details.
You can play around with other tabs to see what metrics you need. If you notice under the Memory tab, you will see an option to “Perform GC”. So you see it’s helpful in many ways.
So go ahead and try out in your testing environment to get familiar.
Next, learn about thread dumps.