With the official release of JDK 9, Java Mission Control (JMC) was also updated to 6.0. Something that had bugged me for many years was that the old JMC included an “experimental” Coherence plug-in to view cache and service information (created in Coherence 3.6/3.7 days!). This plug-in was very “experimental”, in fact unsupported, and didn’t really offer much value/ usability for monitoring Coherence clusters.
Being involved in the development of the JVisualVM plug-in, It was a good opportunity for me to work with the JMC Dev team to update this plug-in so that it was a) more reflective of the current Coherence features, b) was actually useful and c) contained similar features/functionality that is in the JVisualVM plug-in.
The outcome of this was a greatly enhanced (and supported) Coherence plug-in for JMC which meant that if you don’t use, or don’t have access to JVisualVM you can use JMC to monitor your Coherence clusters.
Note: this plug-in, as for the existing JVisualVM one, is for monitoring dev, test environments primarily.
If you have installed the GA version of JDK 9 installed, then all you need to do is run the jmc command which is the the bin directory of the JDK9 download. For my environment, which is a Mac, its in:
Once you have JMC started, go to the Help Menu and choose Install New Software. (If you are behind a proxy, then you may need to set your proxy in the preferences).
Expand the Console Plug-ins and select the Coherence Tab Pack.
Select Next, Next to continue and install the plug-in. Once you accept the licence agreement JMC will restart to complete the installation.
Monitoring a Cluster
Now startup a Coherence cluster to connect to, or you can use an existing one. I’m using Coherence 22.214.171.124.0 which is the most current version. After installing Coherence, change to the coherence/bin directory and run ./cache-server.sh in a couple of windows.
In the JVM Browser, expand one of the Coherence nodes and double click on the MBean Server link. This will then open up the main JMC screen, as described below.
You should see a Coherence tab in the bottom right. Click this and the main Coherence Plug-in page is displayed.
There are a number of sub-tabs displayed to show various aspects of a running Coherence Cluster:
- Cluster Overview – Various metrics regarding overall cluster health
- Machines – Information about the machines that make up the cluster, including cores, load and memory pressure
- Members – Member information including individual members and various detail about each one
- Services – Information regarding running services including StatusHA, partitions, and various other performance metrics
- Caches – Lists the individual caches and their size, memory footprint and individual node details
- Proxy Servers – Shows proxy servers and connections
- Persistence – Information about active or on-demand persistence (Introduced in 12.2.1)
Each of the tables in the tabs have various right-click options which and context sensitive for the type of object you are viewing. E.g. Partition statistics for Services.
The plug-in will connect and display information for Coherence version 12.1.2 and above.
If you don’t have any data in your cluster, run ./coherence.sh from another and insert some data. For my environment i creates 4 caches. A number of the screens are displayed below.
As well as all the cool features that Mission Control gives you (See https://docs.oracle.com/javacomponents/index.html for full details), the new Coherence Plug-in provides a quick way of getting insight into your dev/test Coherence cluster.
Note: The JMC Coherence Plug-in contains a subset of the full functionality included Coherence JVisualVM plug-in.