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.
Over the weekend Coherence 126.96.36.199.0 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.
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.
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.
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.
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.
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.
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:
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.
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.
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:
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.
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.
Copyright (c) 2017 Tim Middleton and other contributors. All Rights Reserved. The views expressed in this blog are our own and do not necessarily reflect the views of Oracle Corporation. All content is provided on an 'as is' basis, without warranties or conditions of any kind, either express or implied, including, without limitation, any warranties or conditions of title, non-infringement, merchantability, or fitness for a particular purpose. You are solely responsible for determining the appropriateness of using or redistributing and assume any risks.