NetBeans 6.0 JMX new features
By jeanfrancoisdenise on Dec 03, 2007
NetBeans 6.0 is out. You should go experience the new Editor, really amazing... What does it add compared to the previous one? Well... not a lot of things... It simply anticipates your coding, checks your coding and drives you to write better code...no more than that... Kudo to the NetBeans team!
JMX module is part of the game and still downloadable from the stable update center. I am pasting a screenshot of the new update center UI that you now find in NetBeans 6.0.
In this blog entry I am focusing on JDK 6.0 JConsole related new features. You can access to the list of features, latest tutorials, documentation and known issues from this web site : http://management.netbeans.org/jmx.
JConsole to Monitor J2SE Project
If you are used to the JMX module, you will notice that the way to connect JConsole to your J2SE Project has not changed.
Just set your J2SE Project as the “main project”and click on this toolbar button:
Your project will be compiled, run and JConsole will attach to it. The way to setup JConsole and the Monitoring & Management features of your project has changed. The next chapter shows you how to achieve such configuration.
Better integration in J2SE project
Right click on your Project to access the project properties. You will notice a “Monitoring and Management” section. This is your configuration entry point.
From there you can:
Enable / Disable JConsole auto attachment.
Change JConsole polling period.
Use (or not) the project classpath to make JConsole findout your MBean custom handled types. Unselecting this option will show you that you introduced some custom types that imply deployment of these classes on the JMX client application. Having custom types handled by your MBean interfaces is not something that we encourage and this is something that you can simply avoid by using MXBean
Lookup the Project Classpath to load JConsole custom plugins. A new JConsole API has been defined in order to allow you to develop custom JConsole tabs and have them added to the list of tabs. The next chapter cover this feature. This article describes JDK 6.0 JConsole plugins new feature.
Explicitly add paths to your JConsole plugins jar files or classes.
Enable or disable Remote RMI access. By default, remoting is not enabled.
You can provide the RMI port the server will listen to. Doing so, you will start a non secure remote access.
Or you can provide a path to a management.properties file in which you can configure security.
New Support to load JConsole custom tabs
To do so, simply add JConsole plugins that you downloaded or developed, to the Monitoring and Management Properties Plugins Path list.
In this example, I am adding the JTop plugin that is bundled with JDK 6.0 (<java home>/demo/management/JTop/JTop.jar). This plugin demonstrates the use of the java.lang.management API to obtain the CPU consumption for each thread.
Add the plugin to the Project properties and run your application
In the “Monitoring and Management” Properties :
click on Add Jar/Folder button then provide a path to JTop jar file. The jar file is added to the list.
Close the project properties.
Run your project with by clicking on the JConsole toolbar button.
JConsole is started, JTop tab being loaded and displayed.
Some interesting JConsole plugins
Script Shell. Scripting JConsole plugin located in the demo directory.
An interesting use of Script Shell with JRuby
JConsole to Monitor any Java project
If you want to connect JConsole to another kind of Java project (e.g.: Web Application), you can start JConsole and connect it to the application server running your application. To do so click on the following toolbar button to launch JConsole management console:
You can tune the JConsole default Target (default URL to connect to), polling period, plugins path, classpath, arguments or JVM arguments from the NetBeans Options. To do so:
Select Tools | Options from the main menu
Select Miscellaneous tab
Select JConsole tab
The following window is displayed:
Hope to have helped you discover a useful new feature of the JMX tooling.
(jean-francois dot denise at sun dot com)