Fusion Middleware Documentation
Advanced Search


Release Notes for Oracle Coherence
Close Window

Table of Contents

Show All | Collapse

1 Technical Changes and Enhancements

This chapter describes the changes and enhancements made to the Oracle Coherence product for 12c (12.1.3). This document is accurate at the time of publication. Oracle updates the release notes periodically after the software release.

1.1 Download and Install the Latest Software Patch

Go to My Oracle Support to download the latest software patches.

https://support.oracle.com

See the README file in the patch distribution for up-to-date information on the software fixes provided by the patch.

  1. Login to My Oracle Support.

  2. Click the Patches & Updates tab.

  3. Under the Patch Search tab, select Product or Family (Advanced Search), and select the Include all patches in a product family check box.

  4. Enter Oracle Coherence as the product, select the platform and release, and click Search.

The list of currently available patches for Oracle Coherence is returned.

1.2 New and Improved Coherence Data Grid Functionality

Oracle Coherence 12c (12.1.3) is the latest release of the industry's leading distributed in-memory data grid product. Coherence 12c (12.1.3) contains many new features that help reduce complexity, ease integration, and accelerate time to market of scalable solutions.

  • Added SSL support for reliable transports tmb and sdmb. The feature can be enabled through operational override file or system property. To use tmb and sdmb transports with SSL, an SSL socket provider is required. See "Changing the Reliable Transport Protocol" in Oracle Fusion Middleware Administering Oracle Coherence.

  • The library providing Infiniband Message Bus (IMB) support (LWMB) has been changed. LWMB is available only for Oracle Exalogic systems and uses MSGQLT/LWIPC libraries with IMB for Infinibus communications. LWMB is automatically used as long as TCMP has not been configured with SSL.LWMB is the default reliable transport mechanism on Exalogic. See "Changing the Reliable Transport Protocol" in Oracle Fusion Middleware Administering Oracle Coherence.

  • Added functionality to JMX Service beans, which displays partition distribution state of the service. See "ServiceMBean" in Oracle Fusion Middleware Managing Oracle Coherence.

  • Created the RemoteMember class which allows a custom ProxyLoadBalancer to redirect a TCP Extend client from one cluster to another. See the com.tangosol.net.proxy.RemoteMember class in Oracle Fusion Middleware Java API Reference for Oracle Coherence.

  • Enhanced NameService so it runs on all cluster members. NameService now has the ability to lookup ProxyService addresses for other members by using the ProxyService state information stored in the cluster. This way clients only need to know the configured unicast address for the cluster in terms of which port to connect to for lookup. See "Using the Name Service Acceptor to Connect to a Proxy" in Oracle Fusion Middleware Developing Remote Clients for Oracle Coherence.

  • Added support for the memcached protocol. Coherence can be used as a drop-in replacement for memcached servers. Any memcached client API that supports the memcached binary protocol can use Coherence distributed caching. Memcached support is provided through a memcached adaptor that is implemented as an extend-like acceptor that runs on a proxy server. For details about configuring Coherence to accept memcached client connections, see "Using Memcached Clients with Oracle Coherence" in Oracle Fusion Middleware Integrating Oracle Coherence.

  • A provider implementation has been added for "JSR 107: JCACHE - Java Temporary Caching API" (JCache). JCache is the standard API for caching on the Java Platform. The Coherence JCache provider uses existing Coherence technology and can be thought of as a wrapper for the Coherence NamedCache API. This allows Coherence to reuse and expose many of its best-in-class technologies using JCache interfaces. See "Using the Coherence JCache Implementation" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Added the ability to set a "soft limit" (default is 11GB) for journal size in the Elastic Data feature. The size determines when to start removing stale values from the journal. This is not a hard limit on the journal size, which can still grow to the maximum file count (512). See "Configuring the Flash Journal Resource Manager" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Added the Coherence Java VisualVM Plug-in to the current release. The Coherence Java VisualVM Plug-in allows developers to view a dashboard of summarized statistics and cluster information when using JMX to connected to a Coherence cluster. Java VisualVM is a management utility that is included with the JDK and provides the ability to view and interact with MBeans. See "Accessing MBeans Locally Using Java VisualVM" in Oracle Fusion Middleware Managing Oracle Coherence.

  • When using Managed Coherence Servers, a Coherence cluster member can now be configured as a management node. The management node aggregates the management information from all other cluster members. The Administration server for the WebLogic domain then integrates this information and it is made available through the domain runtime MBean server. See "Configure a Coherence Cluster Member as a Management Node" in Oracle Fusion Middleware Administering Clusters for Oracle WebLogic Server.

  • A custom index implementation which optimizes deserialization has been added to the current release. The optimization avoids repetitive value deserialization for entry processors and aggregators. See the com.tangosol.util.extractor.DeserializationAccelerator class in Oracle Fusion Middleware Java API Reference for Oracle Coherence.

  • The ability to execute non-blocking EntryProcessors asynchronously has been added to the current release. This allows customers to dramatically increase the parallelism of the processor execution on the grid, without having to create a large number of worker threads. See the com.tangosol.util.processor.AsynchronousProcessor class in Oracle Fusion Middleware Java API Reference for Oracle Coherence.

  • The ability to rebuild index data structures asynchronously after a partition transfer or failover has been added to the current release. This significantly reduces the time to recovery. Note: any requests dependent on indices will not execute until the indices are rebuilt.

  • Extend clients support both forward and backward compatibility with cluster proxies. That is, extend clients can connect to cluster proxies that have lower or higher version numbers (within a major release). For example, a 12.1.3 extend client can connect to a 12.1.2.0.1 proxy. Extend client backward compatibility is not supported on proxy versions prior to 12.1.2.0.1, including 12.1.2.0.0 and proxy versions 3.7.1 or earlier.

1.3 Oracle Coherence—All Platforms 12c (12.1.3)

The following fixes and enhancements have been made to Oracle Coherence on all platforms (Java, .NET and C++).

  • Fixed a deadlock issue when using LocalCache with map listeners.

  • The ability to rebuild index data structures asynchronously after a partition transfer or failover has been added to the current release. This significantly reduces the time to recovery. Note: any requests dependent on indices will not execute until the indices are rebuilt.

  • Hardened the handling of cache deactivation calls.

  • Fixed an InFilter serialization issue.

  • Improved the POF annotation log message when a requested property index is already in use.

  • Oracle Coherence 12.1.2.0.0 RESTful interfaces now depend on Jersey 1.17.

  • Added SSL support for reliable transport tmb and sdmb. The feature can be enabled through operational override file or system property.

  • Changed format of printing PartitionSet from {1, 2, 4, 5, 6, 8} to {1, 2, 4...6, 8}

1.4 Oracle Coherence for Java 12c (12.1.3)

New features, improvements, and bug fixes have been added to these Oracle Coherence for Java components:

1.4.1 Management and Monitoring Enhancements and Fixes

  • Enhanced the Proxy HostIP MBean attribute to show the subport value.

  • Fixed an issue with Filter execution producing high memory overhead due to unnecessary JMX statistic.

  • ServiceMBean now has a property JoinTime which shows the time a member has joined the given service.

  • Moved Hibernate integration features into Coherence Community project http://java.net/projects/cohhib.

1.4.2 Partitioned Cache Enhancements and Fixes

  • Fixed an issue that a client could use an already released cache reference.

  • Fixed an issue where MultiExtractor was not using indexes for its ValueExtractor.

  • Added a custom index implementation, that allows to avoid repetitive value deserialization. For usage details, please see Javadoc for com.tangosol.util.extractor.DeserializationAccelerator class.

  • Optimized ReadWriteBackingMap to call the storeAll method on CacheStores in response to a putAll operation. This will allow application code in CacheStores to be optimized for bulk storage.

  • Fixed a possible Guardian time out issue which might occur when restoring orphaned partitions.

  • Updated the ChainedComparator three parameter constructor so that it no longer ignores the third Comparator.

  • Fixed a NullPointerException occurring when an event is generated for orphaned partitions with JMX disabled across the cluster.

  • Fixed a potential race condition between a guarded thread timing out and the thread no longer being guarded.

  • Hardened the handling of cache misconfigurations by guarding against NPE and UOE to provide a stabler service.

  • Fixed ReadWriteBackingMap to honor the unit calculator configured in cache configuration.

  • Fixed an issue with Size command in console which resulted in no longer results in indefinite SizeRequest when it was called on a cache name with no schema defined.

  • Introduced getReadOnlyEntry() method on the BackingMapContext interface, which allows Aggregators and Entry Processors to obtain read-only access to backing map entries without locking the corresponding keys.

  • ReadWriteBackingMap's Read/Write Threads now contain the cache name as part of the Thread name.

  • Improved readability of explain plan and trace query records.

  • Fixed an issue where no error was thrown when creating a transactional cache for which there is no scheme definition in cache-config.

1.4.3 TCMP/Cluster Enhancements and Fixes

  • Fixed an issue which could cause PacketReceiver spin when extracting packets from buffer.

  • Hardened the PacketReciever against randomly truncated otherwise valid packets.

  • Fixed an issue where partitioned cache could become uninterruptable due to prolonged orphaned partitions.

  • Removed an inaccurate warning regarding incompatible WKA addresses when starting a cluster with WKA where at least one host name is specified.

  • Created a new lighter-weight IMB Implementation with improved fail-over handling.

1.4.4 Coherence*Extend Framework Enhancements and Fixes

  • Fixed an issue where a ConcurrentModificationException may be thrown when invoking ConditionalRemove on a ReplicatedCache from an Extend client.

  • Changed the proxy service worker threads to close Coherence*Extend connections asynchronously when a connection will be closed due to an error.

  • Fixed an issue where an Extend client doesn't receive delete events from a replicated cache.

  • Fixed an issue in ensureCache which can result in client threads becoming stuck if the ensureCache was unresponsive.

  • Added tracking of unauthorized hosts attempting to connect via Coherence*Extend to include logging of a D6 message as well as recording the number of attempts in a new JMX attribute "UnauthorizedConnectionAttempts" on ConnectionManagerMBean.

  • Added a new ConnectionManager MBean for the NameService.

  • Added ability to define MapTriggerListeners for remote caches by using the <listener> element.

  • Fixed an issue causing NamedCache iterators to return duplicate results to Extend clients from Standard edition clusters.

  • Fixed a custom Comparator issue with proxy service load balancing.

  • Changed the NameService to run on all cluster nodes instead of just proxy server nodes.

  • Added additional log messages to indicate that a Coherence*Extend connection has been closed by the suspect protocol.

  • Fixed an issue with the dynamic proxy service thread pool size increasing too aggressively under certain load scenarios.

  • Resolved an issue where custom proxies were not being called when ensuring and/or destroying a cache.

  • Created RemoteMember class which allows a custom ProxyLoadBalancer to redirect an TCP Extend client from one cluster to another.

  • Added Guardian support to the NameService to auto-restart the Acceptor.

  • Added support for the memcached protocol.

1.4.5 Coherence*Web Enhancements and Fixes

  • Fixed NotSerializableException in Coherence*Web for WebLogic Portal components during session invalidation.

  • During session invalidation, ConcurrentModificationException is now logged only when the logging level is set to FINEST.

  • Fixed an issue where Coherence*Web on Tomcat 7.0 reported incorrect Tomcat version information in the log file.

  • Fixed an erroneous clean-up of locally stored session attributes.

  • Fixed Session Reaper to ensure that local attributes are cleaned up when the session invalidation is initiated from a different node.

1.4.6 Serialization Framework Enhancements and Fixes

  • Improved POF date and time deserialization performance.

  • Updated PofValue.getValue() API documentation to indicate that the type must be explicitly specified for primitive types.

  • Fixed an issue where integer value of -31 is not read properly by the POF serializer.

  • Fixed PofHelper.getPofTypeId() to return the correct type id for user types that derive from ArrayList.

1.4.7 Configuration Enhancements and Fixes

  • When using the Coherence Cache Provider with WebLogic Portal, the cache configuration may be set using a system property.

  • Fixed an issue where resources containing '#' character in filename/path failed to load.

  • Fixed the issue where custom MBean registration assumes MBean name to be unique.

  • In 12.1.2-0-0, empty XmlElements were skipped when considered for injection with @Injectable. In 12.1.3 empty XmlElements are always processed when an ElementProcessor is registered, unless the new ConditionalElementProcessor is implemented.

  • As of 12.1.3 System Properties and Resource Registry values are considered when attempting to locate named and typed values for injection into @Injectables.

  • Fixed an issue where DefaultClusterDependencies.makeClusterName() throws NPE due to null group address.

1.4.8 Managed Coherence Servers Enhancements and Fixes

  • Changed Extend security to use the Subject provided by the client rather than the WebLogic Subject when running an Extend Proxy inside WebLogic Server Managed Servers. This change removes the need to use WebLogic APIs to obtain the client's Subject and instead standard JAAS APIs can be used and hence removes the need for application code to have any dependency on WebLogic Server.

  • Fixed an issue where jdk/log4j log level is not allowed to be configured because of Coherence log level not being at maximum.

1.4.9 Other Enhancements and Fixes

  • Fixed an issue where cmd scripts shipped by Coherence fail to handle JAVA_HOME path containing spaces and parenthesis.

  • Fixed an issue where log messages that are not in the range of destination logger are enqueued.

  • Fixed CacheFactory.shutdown() to stop the Logger Thread if there is no running cluster.

  • Hardened the transactional cache handling of javax.transaction.xa.Xid to allow non-serializable implementations.

  • Optimized the transfer logic of backups when backup-count > 1

  • Additional permissions added to the security policy for Java security manager.

1.5 Oracle Coherence for .NET 12c (12.1.3)

New features, improvements, and bug fixes have been added to these Oracle Coherence for .NET components:

1.5.1 Coherence*Extend Framework Enhancements and Fixes

  • Corrected an issue when iterating the entries, keys, or values of a ContinuousQueryCache.

  • Fixed an event delivery issue for cache listeners registered with filters that use a PofExtractor.

  • Added a SimplePrincipal which derives from GenericPrincipal. SimplePrincipal uses the Identity.Name property to determine object equality.

  • Added ability to define MapTriggerListeners for remote caches by using the <listener> element.

  • Fixed a .NET 4.5 framework issue with SynchronizedDictionary.

  • Fixed an issue where type -29 is not read properly by the POF serializer.

  • Improved SSL client certificate selection for SSL enabled Coherence*Extend connections.

  • Fixed the Coherence for .NET library to look for the correct XML configuration elements for using network filters, like the gzip compression filter.

1.5.2 Serialization Framework Enhancements and Fixes

  • Updated PofValue.getValue() API documentation to indicate that the type must be explicitly specified for primitive types.

  • Fixed PofHelper.getPofTypeId() to return the correct type id for user types that derive from ArrayList.

1.6 Oracle Coherence for C++ 12c (12.1.3)

New features, improvements, and bug fixes have been added to these Oracle Coherence for C++ components:

1.6.1 Coherence*Extend Framework Enhancements and Fixes

  • Fixed a typo in the guard macro for XorFilter.hpp.

  • Updated TypedMethod.hpp so that Xcode (clang) no longer warns about unused functions in the file.

  • Changed DetachFinalizer::set() to detach from the old object with the old escaped flag.

  • Fixed LiteSet so that it can support more than 2 elements.

  • Added support for defining class factories with the <class-factory-name> element.

  • Added support for defining class initialization parameters with the <init-params> element.

  • Fixed adapter_map/boxing_map iterator initialization when the map size is 1.

  • Added the NavigableMap interface and enhanced TreeMap to implement NavigableMap.

  • Added optional parameter, nPrecision, to Float32::parse() and Float64::parse() to allow user specify the precision: Float32::parse(String::View vString, size_t nPrecision) Float64::parse(String::View vString, size_t nPrecision)

  • Added AbstractClusterProcessor to C++.

  • Added add/removeMapListener API to ObservableMap.

1.6.2 Configuration Enhancements and Fixes

  • Fixed an issue where resources containing '#' character in filename/path failed to load.

1.6.3 Other Enhancements and Fixes

  • SimpleDocument is now cloneable, allowing the invocation of clone() on XmlElement returned by CacheFactory::loadXml().

1.7 Known Problems and Workarounds

This section describes issues that are know at the time of release.

1.7.1 WebLogic Server Domain Size Limitations

If you are using Managed Coherence Servers with relatively large clusters, you may encounter Administration Server Memory Consumption issues. For more information on this problem and possible workarounds, see "Administration Server Memory Consumption and JMX Notifications" in Oracle Fusion Middleware Release Notes for Oracle WebLogic Server Release 12c (12.1.2).

1.7.2 Building C++ Applications with OS X Mavericks

When building C++ applications with Apple OS X 10.9 (Mavericks), you must compile with the command "g++" (as opposed to "CC") and you must use the parameter "-mmacosx-version-min=10.7".

1.8 Deprecated Features

This section describes features that have been deprecated in the 12c (12.1.3) release.

1.8.1 XmlConfigurable Interface

The com.tangosol.run.xml.XmlConfigurable interface has been deprecated in the Coherence 12c (12.1.3) release. This interface is no longer required due to injection support. For a different technique to initialize implementations, see Section 2.1, "Replacement for the Deprecated XmlConfigurable Interface."

The following list describes the interfaces, classes, and methods affected by the deprecation of the com.tangosol.run.xml.XmlConfigurable interface.

Interfaces being deprecated:

This interface will no longer be required due to injection support.

  • com.tangosol.run.xml.XmlConfigurable

Methods on Interfaces being deprecated:

This method is no longer required due to injection support.

  • com.tangosol.util.Controllable.configure(XmlElement xml)

Classes being deprecated:

These classes are replaced by ParameterizedBuilder implementations.

  • com.tangosol.io.ConfigurableSerializerFactory

  • com.tangosol.net.ConfigurableAddressProviderFactory

Interfaces that will be affected:

All implementations of these interfaces will be configured through injection.

  • com.tangosol.net.BackingMapManagerContext

  • com.tangosol.net.CacheService

  • com.tangosol.net.Cluster

  • com.tangosol.net.InvocationService

  • com.tangosol.net.NameService

  • com.tangosol.net.PartitionedService

  • com.tangosol.net.ProxyService

  • com.tangosol.net.Service

  • com.tangosol.util.Service

Classes that will be affected:

These classes will be configured through injection.

  • com.tangosol.coherence.reporter.ColumnView

  • com.tangosol.coherence.reporter.ReporterColumnView

  • com.tangosol.coherence.rest.config.RestConfig

  • com.tangosol.coherence.servlet.AbstractHttpSessionCollection

  • com.tangosol.coherence.servlet.CoherenceHttpSessionCollection

  • com.tangosol.coherence.servlet.SplitHttpSessionCollection

  • com.tangosol.coherence.transaction.internal.ClusterWrapper

  • com.tangosol.coherence.transaction.internal.ServiceWrapper

  • com.tangosol.coherence.weblogic.PortalCacheProvider

  • com.tangosol.io.bdb.BerkeleyDBBinaryStoreManager

  • com.tangosol.io.pof.ConfigurablePofContext

  • com.tangosol.net.ConfigurableAddressProvider

  • com.tangosol.net.SocketOptions

  • weblogic.servlet.internal.session.WebLogicSPIHttpSessionIdGenerator

Packages that will be affected:

All classes will be configured through injection.

  • com.tangosol.coherence.reporter.locator

Classes that will be affected:

No change required, as these classes are already deprecated.

  • com.tangosol.net.CompressionFilter (already deprecated)

  • com.tangosol.net.DefaultConfigurableCacheFactory (already deprecated)

  • com.tangosol.net.security.AbstractEncryptionFilter (already deprecated)

  • com.tangosol.net.security.ClusterEncryptionFilter (already deprecated)

Classes that will be affected:

These classes either do not support XML configuration, perform passthrough, or throw UnsupportedOperationException errors.

  • com.tangosol.io.journal.AbstractJournalRM

  • com.tangosol.io.journal.FlashJournalRM

  • com.tangosol.io.journal.RamJournalRM

  • com.tangosol.net.WrapperCacheService

  • com.tangosol.net.WrapperInvocationService

  • com.tangosol.net.WrapperService

Project Resources / XSDs that will be affected:

  • coherence-operational-config-base.xsd

1.8.2 NIO Memory Manager

The NIO backing map implementation that can store information in memory (the NIO Memory Manager) has been deprecated in the current release. Note that the NIO backing map implementation which stores information in memory-mapped files (NIO File Manager) is still valid.

Instead of using the NIO Memory Manager, use the JournalBinaryStore class. The JournalBinaryStore class implements the binary store used by flash journals and RAM journals in the Elastic Data feature. See "Journaling Overview" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.