Tuesday Sep 02, 2014

Running Tabular Reports with Coherence 12.1.3 Reporter


With the latest release of Coherence 12.1.3, we introduced the Coherence JVisualVM Plug-in as part of the product. As part of the internal development of the plug-in, we needed a way of running "Reporter" reports and retrieving the output directly from the operation return value.  The current runReport operation (which is useful for writing out reports to disk) takes in a report name and then writes the output to the filesystem using theOutputPath defined on the MBean.

Based upon this requirement, we introduced the runTabularReport operation on the Reporter MBean which takes either a report name or report XML and returns a TabularData object containing the report output. We exposed this on the MBean as we knew this would be useful for customers. 

This post outlines how this feature works and how you can take advantage of it. 

[Read More]

Tuesday Aug 19, 2014

New eBook: In-Memory Data Grids for Dummies

We've just released a new eBook In-Memory Data Grids for Dummies.

This is a fantastic resource if you're looking to explain in-memory data grids to colleagues, convince your boss of their value, or even discover some new use cases for your existing investment.

In true "Dummies" style, this eBook will walk you through the basics tenets of in-memory data grids, their common use cases, where IMDGs sit in your architecture, and some key considerations when looking to implement them.
While the title may say "Dummies," we know you'll find some useful overview and technical information in the resource. It's published by us on the Coherence team in partnership with Wiley (the "Dummies" company), but it's not only about Coherence or Oracle. In fact, we took pains to make this book fairly neutral to give you the best information, not a product pitch. Happy reading!

Download the eBook now

Wednesday Aug 13, 2014

Getting Started With The Coherence Memcached Adaptor

Coherence 12c (12.1.3) adds support for Memcached clients to directly store data a in Coherence cluster using the Binary Memcached protocol. This post outlines how to configure the Coherence Memcached Adaptor and includes a simple PHP example to show how Memecached clients can connect to a Coherence cluster.

[Read More]

Tuesday Aug 12, 2014

Coherence State of the Union

Six years after I joined Coherence following Oracle’s acquisition of BEA, it is great to see how the industry has embraced In-Memory Data Grid’s as a mainstream technology to scale middleware applications. This adoption is driven by growth in customer demand to manage more and more data, and to act on that data faster and faster. The mission that the Coherence team set upon over a decade ago has come to fruition, and our core team – still intact all this time later even as we continue to grow the team in new directions – is working on new challenges as in-memory data grid based solutions become standard.

The latest release of Coherence and the new announcement of the In-Memory Option for the Oracle Database make this an opportune time to answer some recent questions I’ve received about where Coherence is headed. First lets review the recent announcements.

In June we announced Coherence 12.1.3, the second release of Coherence 12cR1. Coherence 12.1.2, released in 2013, introduced groundbreaking operational improvements like Managed Coherence Servers and GAR files, GoldenGate HotCache to keep caches and databases in sync, and Live Events to respond to state and data changes in real-time. With Coherence 12.1.3 Oracle became the first commercial vendor to support the recently ratified JSR-107 (JCache) spec, the standard for caching on the Java platform. We also introduced a JVisualVM plugin for developers, asynchronous EntryProcessors to allow clients to submit work to the data grid without waiting for a response, memcached client support, and optimization improvements to our Exalogic Infiniband optimizations (Exabus). Check out all the cool new features of Coherence 12.1.3 in our release notes.

In July, Oracle announced the availability of the In-Memory Option for the Oracle Database. The In-Memory Option is designed to accelerate database performance by orders of magnitude for analytics, data warehousing, and reporting by storing columnar data in-memory. It supports ad-hoc queries and full-table scans without requiring application changes; the interface is standard SQL. Maria Colgan answers frequently asked questions about this release on her blog.

The new In-Memory option has also led to some confusion in the In-Memory Data Grid market. Let me try to clarify some of the confusion.

Oracle Coherence is not embedded in the In-Memory Option for the Oracle Database. Although I have seen rumors of this to the contrary, this would make absolutely no sense. Coherence is a distributed key-value store; the in-memory option is a columnar store. The In-Memory option is purpose built and optimized to work as one with the database with its primary access method being SQL. (Of course, Coherence is part of many other Oracle solutions, such as Oracle Service Bus which offers web services results caching via a check box, or the Elastic Charging Engine, which is architected on top of Coherence’s fault-tolerant distributed processing.  (As you can see, Coherence has become strategic within Oracle.)

The In-Memory Option focuses on different use cases than Coherence. In-Memory focuses on ad-hoc full-table scans of unindexed data.  in the words of Maria Colgan "The main use case for the In-Memory column store is fast analytics, which has very different access patterns to OLTP. Typically analytic queries access a few columns from a table but they examine all of the entries in those columns. You need to scan the whole table or segment, not just a small part of the table to answer these queries.” Storing these columns in-memory, in columnar format, speeds full-table scans orders of magnitude.

By contrast, Coherence focuses on providing scale-out data management and processing to middleware applications thereby reducing load on shared services such as databases, mainframes, and web services.  By caching data in domain object format close the application, Coherence also increases responsiveness and availability of applications. 

So if the In-memory Option is not related to Coherence, what has the Coherence team been up to? Glad you asked! Aside from the two 12c releases over the past year, we continue to invest in several strategic areas (you can get a pretty good sneak peak of upcoming releases at Oracle OpenWorld next month).

The Cloud. Oracle has increased investment in accelerating’s Coherence role in our various cloud offerings, from public to private PAAS. Our Coherence cloud team is leveraging investments in Managed Coherence Servers to simplify operations and continue to integrate Coherence into the cloud environment. In addition, Coherence integrates with other Oracle technology to provide a full cloud management solution.

Operational Efficiency. Related to the Cloud, but somewhat separate, we are innovating to reduce the cost it takes, both from a hardware and IT staff perspective, to manage an in-memory data grid solution. I

Maximum Availability Architectures.  Several features in our next release will dramatically increase the availability of data to your applications. Features include new advancements in mutl-datacenter solutions and protecting the availability of the in-memory data grid within a single datacenter.

Developer Productivity.  We continue to invest in new functionality, new integration points (e.g. REST, JSR-107, memcached in recent releases) that complement our native clients. We also invest in new product features that simplify the lives of developers both from an API (Asynchronous EntryProcessors) and from a tooling (JVisual VM plugin and Coherence tooling in Oracle Enterprise Pack for Eclipse, or OEPE).

To get more specific of all these investments, you can join me at my Coherence Product Strategy and Roadmap talk at OpenWorld.

Wednesday Jul 23, 2014

Integration of Application & Data Grid Tier

Are you interested in a simplified and streamlined development and management environments of distributed applications?

Learn how you can build a new archive type (Grid Archive aka GAR), which can be deployed and managed via standard WebLogic Server best practices.

Check out this free Webcast, compliments of Oracle Partner Network  goo.gl/fb/FXgvUm

Monday Jul 14, 2014

NEW: Oracle Coherence 12.1.3

The latest version Coherence 12c (12.1.3)  has just become available on OTN. This release introduces some significant new features, like support for Memcached clients and the new JCache/JSR107 Java Caching Standard. It also contains the new JVisualVM monitoring plug-in and has some cool optimisations. 

[Read More]

Friday Jun 06, 2014

Webcast On-Demand: Building Java EE Apps That Scale

With some awesome work by one of our architects, Randy Stafford, we recently completed a webcast on scaling Java EE apps efficiently. Did you miss it? No problem. We have a replay available on-demand for you. Just hit the '+' sign drop-down for access.

Topics include:
  • Domain object caching
  • Service response caching
  • Session state caching
  • JSR-107
  • HotCache and more!

Further, we had several interesting questions asked by our audience, and we thought we'd share a sampling of those here for you - just in case you had the same queries yourself. Enjoy!

What is the largest Coherence deployment out there?
We have seen deployments with over 500 JVMs in the Coherence cluster, and deployments with over 1000 JVMs using the Coherence jar file, in one system. On the management side there is an ecosystem of monitoring tools from Oracle and third parties with dashboards graphing values from Coherence's JMX instrumentation. For lifecycle management we have seen a lot of custom scripting over the years, but we've also integrated closely with WebLogic to leverage its management ecosystem for deploying Coherence-based applications and managing process life cycles. That integration introduces a new Java EE archive type, the Grid Archive or GAR, which embeds in an EAR and can be seen by a WAR in WebLogic. That integration also doesn't require any extra WebLogic licensing if Coherence is licensed.

How is Coherence different from a NoSQL Database like MongoDB?
Coherence can be considered a NoSQL technology. It pre-dates the NoSQL movement, having been first released in 2001 whereas the term "NoSQL" was coined in 2009. Coherence has a key-value data model primarily but can also be used for document data models. Coherence manages data in memory currently, though disk persistence is in a future release currently in beta testing. Where the data is managed yields a few differences from the most well-known NoSQL products: access latency is faster with Coherence, though well-known NoSQL databases can manage more data. Coherence also has features that well-known NoSQL database lack, such as grid computing, eventing, and data source integration. Finally Coherence has had 15 years of maturation and hardening from usage in mission-critical systems across a variety of industries, particularly financial services.

Can I use Coherence for local caching?
Yes, you get additional features beyond just a java.util.Map: you get expiration capabilities, size-limitation capabilities, eventing capabilites, etc.

Are there APIs available for GoldenGate HotCache?
It's mostly a black box. You configure it, and it just puts objects into your caches. However you can treat it as a glass box, and use Coherence event interceptors to enhance its behavior - and there are use cases for that.

Are Coherence caches updated transactionally?
Coherence provides several mechanisms for concurrency control. If a project insists on full-blown JTA / XA distributed transactions, Coherence caches can participate as resources. But nobody does that because it's a performance and scalability anti-pattern. At finer granularity, Coherence guarantees strict ordering of all operations (reads and writes) against a single cache key if the operations are done using Coherence's "EntryProcessor" feature. And Coherence has a unique feature called "partition-level transactions" which guarantees atomic writes of multiple cache entries (even in different caches) without requiring JTA / XA distributed transaction semantics.

Friday May 16, 2014

Podcast: Drivers for the In-Memory Data Grid Marketplace

We're happy to announce a new podcast series around in-memory data grids, releasing one a week over the next several weeks in the Oracle Fusion Middleware podcast feed.

Our initial podcast explores the market drivers behind in-memory data grids, and includes input from our own Cameron Purdy, Mike Lehmann and Craig Blitz as guests.

The podcast can be streamed in a browser here.
It's of course also available on iTunes, Google and others.

For a complete list of clients supported, see the Oracle Podcast Center.

To manually subscribe to Oracle Fusion Middleware podcasts, including this Coherence series,
you can utilize the RSS feed.

Wednesday Apr 09, 2014

AcivityBank Deliver Real-Time Travel Transfers Using Coherence and Weblogic 12c

ActivityBank, part of TUI, is a leading provider of travel transfers. It uses Coherence and Weblogic 12c to scale and accelerated its location based transfer service, calculating location based requests inside Coherence in just a few ms. Read their use case on the Coherence Special Interest Group (SIG) website here.[Read More]

Tuesday Apr 08, 2014

Canon: A "Snapshot" of Using Coherence, SOA and Exalogic for Millions of Transactions

Canon, one of the world's leading manufacturers of cameras, imaging and document technologies, is now able to deliver on performance of millions of real-time transactions with a new and improved system architecture. Based on Oracle SOA Suite, Oracle Coherence, Oracle Exalogic and more, the engineered systems advantage has provided scale, speed and simplicity.

If the video does not display properly, please see it here.

Thursday Apr 03, 2014

Coming Soon: April 17 Coherence SIG in New York

Another Coherence SIG will be in New York City on April 17th!

Oracle Office, 120 Park Avenue, 26th Floor
New York, NY
Google Map
Closest Subways:
Grand Central Station - (4, 5, 6, 7, 42nd Street Shuttle)
42nd St. Bryant Park - (B, D, V, F, 7)

Whether you're an experienced Coherence user, or new to Data Grid technology, the CSIG is the community for realizing Coherence-related projects and best practices. You won't want to miss our quarterly meetings, featuring some of the most active Coherence users as speakers and in the audience.

We hope to see you soon in New York City!

Thursday Feb 06, 2014

El Corte Inglés use Coherence to deliver up-to-date online inventory and delivery information

El Corte Inglés S.A., headquartered in Madrid, is the biggest department store group in Europe and ranks fourth worldwide. At a recent Coherence Special Interest Group meeting in Madrid they spoke about how they are using Coherence with Exalogic and ATG (part of the Oracle E-Commerce platform) to provide more up-to-date inventory and delivery information to their online customers. You can find the full presentation here: http://coherence.oracle.com/download/attachments/17662048/Coherence+-+The+Experience+at+El+Corte+Inglés.pdf[Read More]

NTT Communications Corporation process 1.4M packets p/s using Oracle Coherence

NTT Communications Corporation select Oracle Exalogic,  Oracle Coherence, Oracle Weblogic Server and Oracle Event Processing to maximise application performance and scalability, for a networking monitoring system that processes 1.4 million packets per second through in-memory streaming. Read the full story here.[Read More]

Thursday Dec 05, 2013

New: VisualVM Plugin for Coherence - released through the Coherence Incubator

We are excited to announce the availability of the Coherence VisualVM developer plug-in which is part of the new Coherence Incubator 12.1.0 release.

The community plug-in allows developers to view summarised Coherence related statistics and information when connected to a JMX enabled Coherence cluster.  Information is collected and summarised from the various Coherence MBeans and displayed in a tabular and graphical format. You also have the ability to select various services and caches to display more detailed node level information about each.

Once installed you will see an additional 'Coherence' tab, when you connect to your Coherence process which is running an MBean server. If you select of this tab, a 'Cluster Summary' tab will be displayed.

Cluster Overview


The number of sub-tabs displayed varies depending upon what features you are using, but can include:

  • Cluster Overview - High-level information about the Coherence cluster including cluster name, version, member count and 'Cluster StatusHA'. Summary graphs show total cluster memory available and used, packet publisher and receiver success rates and load averages for machines running Coherence.
  • Machines - A list of the physical machines that make up the Coherence cluster as well as information about the load averages and available memory on these machines.
  • Members - The full list of Coherence members/nodes, including individual publisher/receiver success rates, memory and send queue sizes.
  • Services - Information about the running services including partition counts and statusHA values. If you select a service, on the next data refresh you will see detailed thread information for each node of the service as well as graphs of that information.
  • Caches - Displays information about any caches, including their size and memory usage information. To get the correct information to be displayed for memory usage, you must be using the binary unit-calculator. If you select a cache, on the next data refresh you will see detailed information about each node hosting that service and cache.
  • Proxy Servers - If your cluster is running proxy servers, this tab displays information about the proxy servers and the number of connections across each proxy server and total connections. You also have the ability to include or exclude the NameService.
  • Coherence*Web - If your cluster is configured for Coherence*Web, this tab displays information about the number of applications deployed, the number of HTTP sessions being stored as well as other information regarding session reaping.

A sample of the Members sub-tab is shown below, with visual clues - that are included on the various screens - to draw attention to potential issues.


The Services sub-tab below shows how to select an individual service and monitor detailed metrics, like as thread utilisation.


Getting the Plug-in

The plug-in is available from GitHub which hosts the source for the latest version of the Coherence Incubator (12.1.0).  The Incubator uses the Common Development and Distribution License (CDDL) license and the documentation, which includes how to build and install the plug-in, can be found here.  

A pre-built NetBeans Module (NBM) is available via search.maven.org or you can build as part of the Incubator above.

The VisualVM tool is available with any download of JDK 1.7 or at http://visualvm.java.net. The Coherence plug-in is designed to work with JDK 7 Update 40 and above. 

If your cluster is running on an earlier version of Java, you can still use the latest JVisualVM and connect remotely to your cluster to view statistics.

Note: This is a developer tool for viewing information about a single cluster at a time. Other monitoring tools such as Oracle's Enterprise Manager or other 3rd party tools are suited for enterprise level monitoring, management and alerting. 

Friday Nov 15, 2013

Coming Up: Coherence Special Interest Group (SIG) Meetings across Europe

December there will be a number of Coherence Special Interest Group (SIG) meetings around Europe. These are free to attend, just register on online agenda page. They include talks from customers, partners, consultants, engineers and product managers, and are great way to find out more about Coherence, hear what is coming up and seer how customers are using it. [Read More]

Oracle Coherence, the market leading in-memory datagrid product.
Stay Connected...


« December 2015