On the 12th
July, Oracle announced the 12c release of the full Cloud Application Foundation
Since Oracle are trying to bring all their products in line with
each other, Oracle Coherence has leaped up in version number from 3.7.1 to
12.1.2 despite 12c being only one major release after 3.7.1.
Major is certainly the operative word here. Oracle has put a
lot of effort into upping the amount of added value of running Coherence with
Weblogic. Here’s a summary of the changes to Coherence in 12c
Managed Coherence Servers
The first change I want to highlight is a biggie - gone are
the days of ActiveCache and Coherence*Web and Coherence Managed Servers and GAR
(Grid Archive) files are here to stay! If you have a big investment into
ActiveCache already, then have no fear, it isn’t retired just yet but is being
phased out to give you a chance to refactor those existing Coherence*Web
The idea is to enhance the use of Coherence with Weblogic by
optimizing packaging and deployment and provide application isolation and “lifecycle
events” (see below!) thanks to the ability to deploy Grid Archives to a Managed
Coherence Server. The advantage is that Oracle say that Grid Archives can be
used by standalone Coherence customers too!
So the next question is…what is a “Grid Archive”?
Grid Archive (GAR)
A GAR file is simply a directory structure for Coherence
configuration files which can be packaged and referenced as a module by other
- GARs must contain at least two folders: lib and
META-INF in the root directory.
- The META-INF directory must contain a
- GARs need to be packaged in an EAR to be
referenced by other modules.
A major aspect of any cache is consistency of data. Coherence
has always been very good at keeping in sync with backend data sources.
HotCache fits particularly well with Coherence in that it monitors the database
for changes and then pushes them into the cache. The really clever thing about
this though, is that extra overhead is avoided by making sure that only stale
changes get pushed, lowering latency.
We’ve seen the usefulness of cache event processing in
Coherence before (Steve
even presented on it at JavaOne
). The implementation in 12c has changed a
little but the theory remains the same, as do the sort of events available to
process. Register an event interceptor with the cache and you can process events
relating to the cache data, the cache itself (monitor the movement of
partitions around, for instance), or “lifecycle events” – a notification that a
ConfigurableCacheFactory instance has either activated or been disposed.
The Coherence REST API has been updated in more than one
- Run multiple REST applications
- Configure multiple context paths in the cache config and your
application server can run multiple REST applications. As simple as
- REST security
- Very necessary, Coherence REST security uses both authentication and
authorization. Authentication support includes: HTTP basic, client-side
SSL certificate, and client-side SSL certificate together with HTTP
basic. Authorization is implemented using Oracle Coherence*Extend-style
- Support for named queries
- Named queries are CohQL expressions which are configured for
resources in the coherence-rest-config.xml file. In a nutshell, an
expression is defined in the XML file and given a name. Using a GET
request on the query name will return the results of that query!
While all this is nice to have, and some of it very
necessary (I’m looking at you, REST api and HotCache), one of the most
appealing things about Coherence for me has always been its conciseness when
compared to competitors. The lightweight distribution of Coherence never held
it back either – indeed, it has performed very well in the market for data
grids (and distributed caches, for that matter) thanks to some great design.
If Oracle can maintain that philosophy as it continues to
develop and add to Coherence, avoiding the bloat that people often assume comes
with all enterprise software, Coherence certainly seems like it will continue
to be a formidable player and a crucial component of Oracle’s wider cloud
Disclaimer: The company I work for is partner with several vendors including Oracle