Coherence and Operator 2.0 Videos on YouTube

We are pleased to announce that four new videos on Coherence Operator 2.0 and Coherence are available on the Coherence YouTube channel.

See for the offical Coherence blog announcement.

Posted in Presentations | Tagged , , | Leave a comment

Announcing the GA release of the Coherence Operator 2.0.0

We are excited to announce that version 2.0.0 of the Coherence Operator is now GA!

Version 2.0.0 introduces a Kubernetes Custom Resource Definition (CRD) for Coherence clusters which simplifies the definition, deployment and management of Coherence applications within a Kubernetes environment.

Some useful links:

The Coherence Demo application has now been updated to work with Coherence and the new Coherence Operator 2.0.0. This can be found on GitHub.

See the Official Coherence Blog for the announcement.

Posted in News | Tagged , , , | Leave a comment

Coherence Released!

Over the weekend Coherence was released! Below are some of the new features. See the Release Notes for the full list of new features.

Docker and Kubernetes Support

Oracle Coherence is certified to run in Docker containers and can be orchestrated using the Coherence Kubernetes operator. For more information see here.

REST Management

Coherence supports management operations using REST. This includes exposing the Coherence MBeans over REST, Allowing the JVisualVM Plugin to connect to a Management over REST endpoint and a comprehensive Swagger API listing.
See here for more information.

Metrics Support

An endpoint that can be scraped to provide metrics related to the local node. The format of the returned text is compatible with Prometheus. See Using Coherence Metrics for more information.

View Scheme

A replacement to replicated caches that combines ContinuousQueryCaches and distributed caches to provide the same read performance but consistently processed writes. See the View Scheme.

For a full set of new features, please see the Release Notes for

Posted in News | Tagged , , , , | Leave a comment

Updated Coherence Demo now runs on Kubernetes

Now that the Coherence Operator 1.0.0 is released, the Coherence Demo has been updated to run on Kubernetes using the Coherence Operator.

Please see below for the the post on the “official” Coherence Blog.


Posted in Examples | Tagged , , , | Leave a comment

The Coherence Operator 1.0 is now Officially Released!

Exciting news overnight that version 1.0 of the Coherence Operator has now been released into General Availability!

So, what is the Coherence Operator?

Coherence Operator is a Kubernetes Operator for Coherence clusters: a Coherence-specific controller extending the Kubernetes API to create, configure, and manage Coherence deployments.

With Coherence Operator, Coherence users can leverage de-facto industry standards Docker for containerization, and Kubernetes for orchestration of containers, both on-premise and in cloud environments equally.

Full details can be found in the official Coherence PM release blog –

Here are some links to get you started:


Posted in News | Tagged , , , | Leave a comment

Digital Impact Radio Interviews Coherence Product Manager

Please see below for an interview with Coherence Product Manager, Randy Stafford on the latest and greatest in the Coherence world including information about the upcoming release of the Coherence Operator.

Posted in Interviews, Uncategorized | Tagged , , | Leave a comment

Tips and Tricks using Coherence JVisualVM Plug-in

Happy new year to all.

Thought I’d start off this year with a post about some tips and tricks in using the Coherence JVisualVM plug-in, which has been available with Coherence installations since 12.1.3.

There are a number of properties you can pass to the JVisualVM plugin to tweak the behaviour (Most are undocumented) and so I will discuss each of these below as well as including some nice features you may not be aware of as well.

Setting the Refresh Time

By default, when you start JVisualVM and connect to a Coherence cluster, the information in the plugin is only refreshed every 30 seconds. (This is separate from the polling interval which is set in JVisualVM preferences, which controls how often the UI is updated.)

This default is set reasonably high so that you are limiting the number JMX Management requests to the cluster which can adversely affect performance in large clusters.  If you want to change this to 5 seconds for your development work, you do this by setting the following:

visualvm -J-Dcoherence.jvisualvm.refreshtime=5

Note: The -J option passes the System property following it to JVisualVM.

Enabling the Experimental Cache Heat Map

By setting the following System property, you will be able to right-click on the caches in the Cache Tab and you will see a menu from which you can choose to display a Size or Memory heat map. These are both shown below.

Size Heat Map
Cache Size Heat Map
Memory Heat Map
Memory Heat Map

Enabling Zooming For Graphs

By default, JVisualVM displays graphs without the ability to zoom on the time scale, as per the following:

By setting the following System property, JVisualVM will enable zooming on every graph that is displayed.


When this is enabled, each graph has three buttons on the right. The top toggles between zoom and no-zoom mode and the other two zoom in and out. This can be useful when you have the plug-in open for a while and want to zoom into a target time.

Changing Snapshot List View

When you are using the Persistence tab and want to remove or archive snapshots, the list of snapshots are displayed in a dropdown when you right-click and choose the operation.

Snapshot List

This can be unwieldy when there are a large number of snapshots present. Using the following System property you can disable the drop-down feature and enter the snapshot manually.


Saving Table Data

For every table that displays data, you can export this as CSV via right-clicking on the table and choosing Save data as…

Show Table Detail

Many tables also support showing table detail via right-clicking and choosing Show Details. For example in the Members Tab you can do this to show the full JMX details of the node, as is shown below:

Show Table Detail

Getting a Thread Dump of Any Node

In the above screen shot of the Members Tab, you can see there is a Report node state operation. This allows you to select any node in the cluster and get a Thread Dump directly from the plug-in.

Report Node State

Viewing Snapshot Operation Times

When running any Persistence operation from the Persistence Tab, there is a sub-tab called Notifications which allows you to monitor the status and duration of requests.

For example, if i right-click on a Service and choose Create Snapshot, then after the operation has completed, the details are showing in the Notifications Tab.

The following screen shot shows the notifications after creating and recovering a snapshot.

Logging JMX Query Times

If you are concerned about the potential impact of running the Coherence Plug-in you can set the following System property to log the time it takes the plug-in to assemble the JMX data in the JVisualVM log.


To view the log file use About VisualVM menu option and click on Logfile button. You should see output similar to the following which outlines each type of query.

INFO [VisualVMModel]: Time to query statistics for CACHE was 5 ms

INFO [VisualVMModel]: Time to query statistics for CACHE_DETAIL was 6 ms

INFO [VisualVMModel]: Time to query statistics for CACHE_FRONT_DETAIL was 7 ms

INFO [VisualVMModel]: Time to query statistics for CACHE_STORAGE_MANAGER was 5 ms

INFO [VisualVMModel]: Time to query statistics for MEMBER was 9 ms

INFO [VisualVMModel]: Time to query statistics for MACHINE was 3 ms

INFO [VisualVMModel]: Time to query statistics for PROXY was 9 ms

INFO [VisualVMModel]: Time to query statistics for PERSISTENCE was 9 ms


Hope this overview gives you a few tips and tricks when using the Coherence JVisualVM plug-in.

Posted in New Features | Tagged , | Leave a comment