Skip Headers
Oracle® Coherence Release Notes
Release 3.7.1

E22623-16
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

1 Technical Changes and Enhancements

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

Coherence 3.7.1 Documentation Library

The Coherence documentation library can be found at the following URL:

http://download.oracle.com/docs/cd/E24290_01/index.htm

Download and Install the Latest Software Patch

For Oracle Coherence, patches contain the "full distribution" kit. That is, the patch contains the base product (in this case 3.7.1) plus the contents of the patch.

Patches are also cumulative. That is, each patch contains the contents of previous patches. For example, patch 5 contains the contents of patch 4, plus the contents of all previous patches.

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.

New and Improved Coherence Data Grid Functionality

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

Oracle Coherence for Java 3.7.1

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

Management and Monitoring Enhancements and Fixes

  • Added support to configure time zone and format for the JMX reporter date field.

  • Added "escape" character support to CohQL.

  • Fixed a memory leak that occurred when registering a custom mBean multiple times.

Exalogic Enhancements and Fixes

  • Optimized Elastic Data to prioritize RAM availability to store the primary copies of data, by moving backup copies to or from RAM to flash when necessary.

  • Optimized Elastic Data overflow to flash devices by dramatically increasing concurrency.

  • Enhanced the Elastic Data feature to trigger its internal garbage collection as its remaining RAM capacity approaches zero. Also optimized the Elastic Data garbage collection to become less aggressive when the available capacity is plentiful.

Partitioned Cache Enhancements and Fixes

  • Fixed an issue where executing single-threaded queries while performing write-behind could stall the cache.

  • Fixed an issue that could cause duplicate events to be received by a MapListener following a failover with backup-count > 1.

  • Fixed an issue that could result in an IllegalStateException while a getAll() operation is executed during re-distribution.

  • Fixed an issue where write-behind updates on an idle cache could be stalled until the next cache request.

  • Fixed an issue that caused missing backups/events when a non-Observable custom backing-map is used.

  • Fixed an issue that could cause an erroneous RequestPolicyException (The current quorum policy prevents PartitionSet{...} from being recovered).

  • Fixed an issue that caused ArrayIndexOutOfBounds exception to be thrown during partition distribution.

  • Fixed a potential deadlock that could occur as a result of the getAll() operation.

  • Fixed issue with multi-threaded putAll operations in combination with invocations may stall the cache.

  • Fixed an issue that could result in failure to apply delta warnings.

  • Fixed a regression introduced by 3.6.1 patch 3 which caused aggregations or invocations to skip some entries under a heavy load.

  • Fixed a deadlock that could occur during heavy eviction.

  • Optimized memory utilization during an aggregation eliminating the need to keep all the intermittent data for a specific member alive. WARNING: you may get errors performing an aggregation on a partially upgraded cluster when applying this fix to 3.7.0.

  • Fixed an issue that occurred when the departure of the (storage) senior member while a new member joined the partitioned cache service, resulted in a failure to create user map indices.

  • Fixed an issue where the delta was not applied when using backup-count-after-writebehind and POF.

  • Fixed a deadlock that could occur during heavy eviction or write-behind.

  • Fixed an issue that prevents keys from one partitioned cache from being used as keys to a remote (Extend) partitioned cache.

  • Improved the way in which the MapListenerSupport class handles filter-based listeners.

  • Fixed an issue where EntryProcessor objects could be re-executed if the partition is transferred immediately after it is restored from backup.

  • Fixed an issue where removal of an entry with ConditionalIndex fails in heterogeneous caches.

TCMP Enhancements and Fixes

  • Introduced the ability to specify the local IP address as a subnet mask instead of an explicit IP address.

  • Added support for large clusters (>500 nodes) without the need for manual packet size configuration.

  • Reduced port allocation requirements for running TCMP over TCP.

  • Fixed an issue with over-utilization of the 64-kb buffers for multipoint packets.

  • Fixed MulticastTest and DatagramTest to parse for ipv6 literal addresses such as -local [fe80::216:3eff:fe35:eba3%eth0]:8888.

Coherence*Extend Framework Enhancements and Fixes

  • Hardened TcpConnection.getDescription() method against unexpected errors thrown from the Socket API.

  • Fixed a ClassCastException that could corrupt operation of the DaemonPool$Daemon.abandon method.

  • Fixed an issue where client Members were not passed to the ProxyServiceLoadBalancer.getMemberList() method.

  • Improved performance of the ContinuousQueryCache get operation.

  • Fixed an issue with the ProxyService "server" load balancing policy that caused client connections to be incorrectly rejected.

  • Removed the requirement for a Java implementation of custom key classes used by Coherence*Extend .NET and C++ clients in many use cases. A Java class may still be required for some grid features such as filters or queries.

    Key association is now processed on the Extend client by default. Existing client implementations (including Java clients) that rely on key association on the cluster must set the defer-key-association-check parameter to force the processing of key classes on the cluster.

    To force key association processing to be done on the cluster side, instead of by the Extend client, set the <defer-key-association-check> element, within a <remote-cache-scheme> element, in the client-side cache configuration to true, for example:

    <remote-cache-scheme>
       .
       .
       .
       <defer-key-association-check>true</defer-key-association-check>
    </remote-cache-scheme>
    
  • Removed the dependency on the optional Common.Logging library from DefaultOperationalContext.

Coherence*Web Enhancements and Fixes

  • Added a configuration option to suppress exceptions thrown during session invalidation.

  • Fixed the GlassFish SPI (ActiveCache for GlassFish) so that Coherence classes are no longer present in GlassFish after the Web application is undeployed.

  • Fixed coherence-session-weblogic-compatibility-mode behavior across Web applications.

  • Fixed an issue that caused session attributes to be lost when configuring the SplitSessionModel with coherence-enable-suspect-attributes disabled.

  • Moved the session-cache-config.xml file into coherence-web.jar. It is no longer inside coherence-web-spi.war and webInstaller.jar.

  • The coherence-web.jar file is now distributed in the coherence/lib directory.

Serialization Framework Enhancements and Fixes

  • Fixed incorrect handling of null values in uniform arrays and collections.

  • Fixed a bug in the PofBufferWriter class which caused an assertion while serializing collections containing null elements.

  • Optimized buffer allocation when using the SerializationHelper class.

  • Improved POF to support the use of object identities and references for user-defined objects. References can be used when a large number of sizeable objects are repeated multiple times or when objects use nested or circular data structures.

  • Fixed an issue that caused POF extraction to fail with some compact "small" POF values, such as true and false.

  • POF annotation support simplifies the development of POF-serializable classes by allowing developers to mark their serializable classes and fields (either directly or by using their accessors) with the Portable and PortableProperty annotations.

Other Enhancements and Fixes

  • Included TopLink Grid within the Coherence distribution.

  • Fixed an ArgumentException thrown by the ContinuousQueryCache.IsEventDeferred() method when the supplied key was already recorded.

  • Fixed an EOFException that occurred when calling the BinaryEntry.getOriginalValue method.

  • Fixed an issue where the coherence.jar file could remain in an application server's deployment directory after it has been undeployed.

  • Fixed an issue that could cause slow access to sorted indexes from range comparison filters.

  • Fixed a NullPointerException (NPE) that could occur during distribution with backup-count=0.

  • Fixed an issue causing an IllegalMonitorStateException to be thrown by deadlock detection under heavy load.

  • Fixed a performance regression when calling addIndex with entries that have duplicate values.

  • Fixed an issue where the guard timeout was not being honored when using Coherence*Extend.

  • Fixed XML validation issue that occurred when running with FMW applications.

  • Removed DTD files from Coherence (XSD is now used to validate configuration files).

  • The Coherence distribution now includes the jline.jar file which is used with the query command line utility.

  • Fixed an issue where the XML Parser did not handle encoding correctly.

  • Added "escape" character support to the QueryHelper-based LikeFilter class.

Oracle Coherence for .NET 3.7.1

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

Oracle Coherence for C++ 3.7.1

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

Changes and Enhancements for 3.7.1.1

The following changes and enhancements have been made for the 3.7.1.1 release.

Changes and Enhancements for 3.7.1.2

The following changes and enhancements have been made for the 3.7.1.2 release.

Changes and Enhancements for 3.7.1.3

The following changes and enhancements have been made for the 3.7.1.3 release.

Changes and Enhancements for 3.7.1.4

The following changes and enhancements have been made for the 3.7.1.4 release.

Changes and Enhancements for 3.7.1.5

The following changes and enhancements have been made for the 3.7.1.5 release.

Changes and Enhancements for 3.7.1.6

The following changes and enhancements have been made for the 3.7.1.6 release.

Changes and Enhancements for 3.7.1.7

The following changes and enhancements have been made for the 3.7.1.7 release.

Changes and Enhancements for 3.7.1.8

The following changes and enhancements have been made for the 3.7.1.8 release.

Changes and Enhancements for Oracle Coherence—All Platforms 3.7.1.8

Reminder:

For all Extend Clients customers (Java, C++, and .NET), you must upgrade the cluster side before upgrading the Coherence*Extend client. This is in compliance with our client and proxy upgrade policy. While there are some patches where it may be possible to get away with not following this policy, it must be followed for this patch due to the fix for the issue where Filter Listeners were not receiving the correct number of Events.

  • Fixed an issue with Extend clients receiving duplicate events in some cases for key and filter based listeners.

  • Fixed an issue where the ContinuousQueryCache might not receive events after the proxy has been restarted.

Changes and Enhancements for Oracle Coherence for Java 3.7.1.8

  • Fixed a regression in the initial 3.7.1.8 patch with default distribution.

  • Fixed an issue that causes a NullPointerException to be thrown during cluster formation, if the IpMonitor is disabled.

  • Fixed an issue where a deadlock was seen between put/clear threads with ReplicatedCache.

  • Fixed an issue avoiding unnecessary MemberSet object creation.

  • Updated the Coherence*Web JspServlet class to extend GenericServlet so that instrumented JSPs work in Tomcat Server.

  • Fixed the IllegalStateException which was thrown after a cache destroy/recreate operation was executed using an Extend client.

  • Fixed a race condition where setting the ClassLoader on a service after it has been started would result in the service's serializer being temporarily set to null. Note that it is recommended that the ClassLoader only be set prior to starting a service.

  • Fixed a potential race condition where a ConfigurablePofContext could be used before it is fully initialized.

  • Fixed an issue when executing concurrent EntryProcessors where a change made by one processor may not be visible to a subsequent processor.

  • Fixed an issue that caused excessive memory usage by lightly used near caches after a cluster disconnect and reconnect.

  • Fixed an entry expiry issue where the expiry reset byBinaryEntryStore is ignored.

  • Fixed an issue where a new entry expiry set by a map trigger is ignored.

  • Fixed an OutOfMemoryIssue that occurs immediately after a cluster member with a NearCache configured with AUTO or ALL joins the cluster.

  • Fixed an issue with query operations resulting in CacheLoader/ BinaryEntryStore#load if entries concurrently expire from the backing map.

  • Display of JMX attribute MaxQueryDescription (under StorageManager) is now truncated to 1024 characters.

  • Fixed a java.lang.ArrayIndexOutOfBoundsException that can occur when using LimitFilter objects.

  • The Javadoc documentation for the methods RequestMaxDuration, RequestAverageDuration, RequestPendingCount, RequestPendingDuration of classes ServiceModel and ServiceMBean have been updated.

  • Fixed a memory leak caused by stopping and restarting the cluster multiple times in the same JVM.

  • Added a default constructor for CoherenceWebSessionData for a specific customer requirement.

  • Added support for WebSphere Application Server 8.5 to Coherence*Web.

Changes and Enhancements for Oracle Coherence for .NET 3.7.1.8

  • Fixed an issue where UUID.CompareTo() may return the wrong result for certain IP addresses.

  • Coherence for .NET Extend connections now have correct timestamps in the proxy server log messages and connection MBeans.

  • Implemented a workaround for the issue where PofStreamWriter.WriteLocalDateTime() recorded an incorrect value for certain DateTime values. This issue was caused by a bug in TimeZone.CurrentTimeZone.GetUtcOffset() in .NET Framework 4.5.

Changes and Enhancements for Oracle Coherence for C++ 3.7.1.8

  • Fixed an issue where Coherence for C++ may read freed memory during a network address lookup.

  • Updated the Coherence for C++ header files so that applications can be compiled using GCC 4.7.

  • Fixed a C++ compiler error in NativeAtomic64.hpp on Linux.

Changes and Enhancements for 3.7.1.9

The following changes and enhancements have been made for the 3.7.1.9 release.

Changes and Enhancements for Oracle Coherence—All Platforms 3.7.1.9

  • Fixed an issue which caused duplicate delivery of transformed MapEvents.

  • Introduced a LISTEN_LOGICAL strategy for CachingMap to listen to all back map events that are not synthetic deletes. A synthetic event could be emitted as a result of eviction or expiration. With this invalidation strategy, it is possible for the front map to contain cache entries that have been synthetically removed from the back (though any subsequent re-insertion will cause the corresponding entries in the front map to be invalidated).

Changes and Enhancements for Oracle Coherence for Java 3.7.1.9

  • Fixed an issue which could cause a cluster configured with WKA hostnames to be stopped by the guardian if the DNS becomes unavailable. This issue only affects WKA cluster configurations which rely on symbolic hostnames which require DNS resolution.

  • PofHelper.getPofTypeId() will now return the correct type ID for user types that derive from ArrayList.

  • Removed a NullPointerException during Coherence*Web initialization in older versions (pre-10.3.3) of WebLogic

  • Fixed an issue where the PofHelper method getPofTypeId() was returning the incorrect type id for user types deriving from an ArrayList.

  • Fixed an issue that could result in a NullPointerException being thrown when registering a partial result during server failover.

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

  • Fixed the display values for BufferPublishSize and BufferReceiveSize attributes of the ClusterNodeMBean.

  • Added the management-config configuration element extended-mbean-name to reflect the member name in global MBean object names.

  • Added support for HttpOnly cookie attribute in instrumented Coherence*Web web applications.

  • Added a Coherence*Web configuration parameter to replace stripped-off suffix with a new affinity suffix.

  • Fixed an issue that caused native memory (DirectByteBuffer) to be allocated unnecessarily.

  • Fixed an issue with invalid reporter configuration leading to an unsafe state.

  • Binary keys will be re-used for key listener registrations.

Changes and Enhancements for Oracle Coherence for .NET 3.7.1.9

  • Added ReducerAggregator to Coherence for .NET and C++ so that the ReducerAggregator can be invoked from these languages.

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

  • PofHelper.getPofTypeId() will now return the correct type ID for user types that derive from ArrayList.

Changes and Enhancements for Oracle Coherence for C++ 3.7.1.9

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

  • Added ReducerAggregator to Coherence for .NET and C++ so that the ReducerAggregator can be invoked from these languages.

  • Improved performance by removing unnecessary mutex locking when accessing registered classes and serializers in the SystemPofContext.

Changes and Enhancements for 3.7.1.10

The following changes and enhancements have been made for the 3.7.1.10 release.

Changes and Enhancements for Oracle Coherence—All Platforms 3.7.1.10

  • Fixed an InFilter serialization issue.

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

  • Hardened the handling of cache deactivation calls.

Changes and Enhancements for Oracle Coherence for Java 3.7.1.10

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

  • Improved the sending of DiagnosticPackets such that they are sent to both advertised and preferred ports.

  • Fixed an issue with Elastic Data in which an invalid binary exception is reported during an operation that directly or indirectly calls keySet.

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

  • Added a new session configuration in Coherence*Web which keeps a local instance of a session in addition to flushing the session to the distributed cache.

  • Added a new session configuration in Coherence*Web which keeps an local instance of a session in addition to flushing the session to the distribute cache. For more information, see "Getting Concurrent Access to the Same Session Instance".

  • Fixed an issue that could result in false incompatible WKA list warnings when host names are used in the WKA list

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

  • Fixed an issue where RWBM.flush() could return before all data are flushed.

  • Fixed an issue that caused the unit calculator configuration to be ignored by the ReadWriteBackingMap.

  • Fixed an issue resulting in deadlock between the thread starting the cluster and the thread starting a service.

  • Fixed an issue where listeners on Replicated Cache could not receive map events.

  • Fixed an issue which could cause client memory leak if partition distribution "stuck".

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

  • Fixed a potential session initialization issue in WebLogic Server during side-by-side deployment.

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

  • Added support for Coherence*Web with Tomcat 7.x application servers.

  • Hardened the handling of cache misconfigurations by guarding against Null Pointer Exceptions (NPE) and Unsupported Operation Exceptions (UOE) to provide a more stable service.

Changes and Enhancements for Oracle Coherence for .NET 3.7.1.10

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

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

  • Removed Coherence for .NET installer prerequisite on .NET Framework 2.0.

Changes and Enhancements for 3.7.1.11

The following changes and enhancements have been made for the 3.7.1.11 release.

Changes and Enhancements for Oracle Coherence—All Platforms 3.7.1.11

  • Improved ConnectionException to return the cause of the exception from the proxy server.

Changes and Enhancements for Oracle Coherence for Java 3.7.1.11

  • Reduced contention on the Proxy service for key-based requests that target the same keys.

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

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

  • Fixed a ConcurrentModificationException that may occur in RefreshableAddressProvider upon retrieving the next address when the last address in the list was rejected.

  • Fixed an issue in which we may duplicate the call to the CacheStore on failover for a successfully stored entry.

  • Fixed an issue where IllegalStateException was thrown from CoherenceWebSessionContextImpl while retrieving the session.

  • Hardened the PacketReciever against randomly truncated, otherwise valid packets.

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

  • Fixed an issue in which CacheMBean may produce an exception if a non- ConfigurableCacheMap instance is used as the front map.

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

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

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

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

  • Fixed a potential AssertionException in Coherence*Web during application undeploy.

  • Fixed an issue that could prevent a conditional index from correctly indexing an entry.

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

  • Fixed an issue in the asynchronous SSL implementation that may cause a request to hang when SSL communication is enabled.

  • Added the "RACK-SAFE" and "SITE-SAFE" support for statusHA and configured them to be displayed only when the partition assignment strategy is not legacy.

Changes and Enhancements for Oracle Coherence for .NET 3.7.1.11

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

  • Fixed a .NET 4.5 framework issue with SynchronizedDictionary.

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

Changes and Enhancements for Oracle Coherence for C++ 3.7.1.11

  • Added "-mmacosx-version-min=10.4" to the examples compilation commands to address link errors with Xcode 5.

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

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

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

  • Fixed an issue with String::substring prematurely ending a substring search.

Changes and Enhancements for 3.7.1.12

The following changes and enhancements have been made for the 3.7.1.12 release.

Changes and Enhancements for Oracle Coherence—All Platforms 3.7.1.12

  • Fixed a serialization buffer allocation performance issue.

Changes and Enhancements for Oracle Coherence for Java 3.7.1.12

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

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

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

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

  • Fixed an issue that could cause the index size from getUnits() to become negative.

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

  • Fixed an issue with events not being delivered to pre-3.7.1 Coherence*Extend clients.

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

  • Reduced the contention when ReadWriteBackingMap is subject to high load and evictions.

Changes and Enhancements for Oracle Coherence for .NET 3.7.1.12

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

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

  • Fixed an issue with events not being delivered to pre-3.7.1 Coherence*Extend clients.

  • Changed Coherence.dll for Coherence.NET to have no diagnostic instrumentation overhead. Coherence.pdb is still provided for debugging purposes.

Known Problems and Workarounds

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

Building C++ Applications Using Apple 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.4.

Querying POF Objects

The use of object identity and references has the following limitations:

  • Object references are only supported for user-defined object types.

  • Evolvable objects are not able to use object references.

  • Objects that have been written out with a POF context that does not support references cannot be read by a POF context that supports references. The opposite is also true.

  • POF objects that use object identity and references cannot be queried using POF extractors. Instead, use the ValueExtractor API to query object values or disable object references.

Deprecated Features

The following features have been deprecated or removed from the Coherence 3.7.1 release.