1 Technical Changes and Enhancements

This chapter describes the changes and enhancements made to the Oracle Coherence product for 12c (12.1.2). 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.2) is the latest release of the industry's leading distributed in-memory data grid product. Coherence 12c (12.1.2) contains many new features that help reduce complexity, ease integration, and accelerate time to market of scalable solutions.

  • Managed Coherence Servers—Managed Coherence Servers leverages the WebLogic Management Framework and provides streamlined application development and management. It introduces the Grid Archive (GAR) format which is a specific directory structure designed to optimize the packaging, deployment, and use of Coherence applications. The archive format also provides application isolation and lifecycle events. Standalone Coherence customers can also use this feature without owning WebLogic Server. For more information, see Developing Oracle Coherence Applications for Oracle WebLogic Server.

  • Live Events—Coherence provides an event framework that allows your applications to react to operations performed in the data grid. The framework uses an event-based model where events represent observable occurrences of cluster operations. The supported events include partitioned service, cache, and application events. These events can be consumed by registering event interceptors either programmatically or by using the cache configuration. The new API for live events simplifies the creation of event-driven applications in Coherence. Coherence allows you to scale event processing along with data. This is becoming more important in the world of Fast Data, where mobile and social customers expect real-time updates. For more information, see "Using Live Events" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Integration with Oracle Coherence GoldenGate HotCache (HotCache)—HotCache allows changes to the database to be propagated to objects in the Coherence cache. Third-party updates to the database can cause Coherence applications to work with data which could be stale and out-of-date. HotCache solves this problem by monitoring the database and pushing any changes into the Coherence cache. HotCache employs an efficient push model which processes only stale data. Low latency is assured because the data is pushed when the change occurs in the database. For more information, see "Integrating with Oracle Coherence GoldenGate HotCache" in Oracle Fusion Middleware Integrating Oracle Coherence.

  • Asynchronous backup for Partitioned Service—Distributed caches support both synchronous and asynchronous backup. With synchronous backup, clients are blocked until a backup operation completes. With asynchronous backup, clients continue to respond to requests during backup operations. Asynchronous backup is typically used to increase client performance. For more information, see "Using Asynchronous Backup" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Strengthened partition distribution—Partition distribution has been strengthened to ensure that (topology allowing) when using backup-count > 1, all backup copies are pushed to different machines (from one another and the primary). This ensures that with backup-count=N, customers can tolerate N simultaneous machine failures without losing data.

  • Name services for Extend clients—A name service is a specialized TCP acceptor that allows extend clients to connect to a proxy by specifying a proxy service name instead of a proxy service address. Clients connect to the name service acceptor, which provides the actual address of the requested proxy. The use of the name service acceptor allows actual proxy addresses to change without having to update a cache configuration file. For more information, see "Using the Name Service Acceptor to Connect to a Proxy" in Oracle Fusion Middleware Developing Remote Clients for Oracle Coherence.

  • Support for proxy address provider—Proxy service, remote cache, and remote invocation definitions can now reference a TCP socket address that is defined in an operational override configuration file instead of explicitly defining an addresses in a cache configuration file. Referencing socket address definitions allows network addresses to change without having to update a cache configuration file. For more information, see "Using Address Provider References for TCP Addresses" in Oracle Fusion Middleware Developing Remote Clients for Oracle Coherence.

  • Proxy services improvements—Proxy services use a dynamic thread pool for daemon (worker) threads. The thread pool automatically adds and removes threads based on the number of client requests, total backlog of requests, and the total number of idle threads. The thread pool helps ensure that there are enough threads to meet the demand of extend clients and that resources are not waisted on idle threads. For more information, see "Configure Proxy Service Thread Pooling" in Oracle Fusion Middleware Developing Remote Clients for Oracle Coherence.

  • POF configuration file generator—The POF Configuration Generator command line tool automatically creates a POF configuration file that includes user type entries for the classes that contain the @Portable annotation. The tool is an alternative to manually creating a POF configuration file and is ideal as part of a build process. For more information, see "Generating a POF Configuration File" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Security for Coherence applications on WebLogic Server—The security features for coherence applications include authorization between cluster members, authorization to Oracle Coherence caches and services, and authentication for extend clients. For more information, see "Securing Oracle Coherence in Oracle WebLogic Server" in Oracle Fusion Middleware Securing Oracle Coherence.

  • Support for named queries in the REST API—Named queries are query expression that are configured for a resource in the coherence-rest-config.xml file. By default, the query expression must be specified as a CohQL expression (the predicate part of CohQL). For more information, see "Using Named Queries" in Oracle Fusion Middleware Developing Remote Clients for Oracle Coherence.

  • Run Multiple REST applications—Your application server can run multiple Coherence REST applications by configuring multiple context paths in the cache configuration file. For more information, see "Deploying with the Embedded HTTP Server" in Oracle Fusion Middleware Developing Remote Clients for Oracle Coherence.

  • Security for Coherence REST—Oracle Coherence REST security uses both authentication and authorization to restrict access to cluster resources. 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 authorization. For more information, see "Securing Oracle Coherence REST" in Oracle Fusion Middleware Securing Oracle Coherence.

  • Namespace handlers in the cache configuration—Namespace handlers are used to process XML elements and attributes that belong to a specific XML namespace. Typically, namespace handlers extend the base AbstractNamespaceHandler implementation class, which provides convenience methods that can simplify the processing of complex namespaces. For more information, see "Extending Cache Configuration Files" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Thread priority for cluster services—Cluster services support thread priority. The priority is used as the basis for determining Java thread execution importance and indicates which threads of a service are considered critical. There are three types of threads that can have a priority: service threads, event dispatcher threads, and worker threads. For more information, see "Specifying Thread Priorities for Services" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Custom failover access policy—Coherence provides a pre-defined custom action policy that moderates client request load during a failover event. This allows cache servers adequate opportunity to re-establish partition backups. Use this policy in situations where a heavy load of high-latency requests may prevent, or significantly delay, cache servers from successfully acquiring exclusive access to partitions needing to be transferred or backed up. For more information, see "Enabling the Custom Failover Access Policy" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Oracle Coherence on Oracle Exalogic and the Oracle Exalogic Elastic Cloud (OEEC)—OEEC software provide a foundation for extreme performance, reliability, and scalability. Coherence has been optimized to take advantage of this foundation especially in its use of Oracle Exabus technology. For more information, see "Oracle Exalogic Elastic Cloud Recommendations" in Oracle Fusion Middleware Administering Oracle Coherence.

  • Oracle Universal Installer (OUI) installation—Added the ability to install Oracle Coherence for Java by using OUI. For more information, see Installing Oracle Coherence for Java in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Expanded NamedSerializer support—Support for the NamedSerializer API has been ported to .NET and C++.

  • Simple Logging Facade for Java (SLF4J)—Applications that use SLF4J logging can now configure Coherence to use SLF4J logging as well. For more information, see "Using SLF4J for Coherence Logs" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • Integration with Maven—Maven is a build and dependency system that allows the configuration of project dependencies, 3rd party dependencies and definition of a build lifecycle. Software projects often use Maven to simplify and standardize their build process. For more information, see "Integration with Maven" in Oracle Fusion Middleware Developing Applications with Oracle Coherence. For details about Maven, see http://maven.apache.org/.

  • Support for ECID—Execution Context ID (ECID) allows correlation of log entries across server instances and Fusion Middleware components. For more information, see ”Changing the Log Message Format” in the Oracle Fusion Middleware Developing Applications with Oracle Coherence and "Enabling ECID in Coherence Logs" in Oracle Fusion Middleware Integrating Oracle Coherence.

  • Support for Java SE Version 7—Oracle Coherence 12c (12.1.2) is supported and certified on Java SE Development Kit (JDK) 7.

  • Support for Berkeley DB Version 5—Oracle Coherence is updated with the embedded version of Berkeley DB 5.0.

  • Integration support for Hibernate release 3.3. or later—Oracle Coherence 12c (12.1.2) provides support for integrating with Hibernate release 3.3 or later. For more information, see the Coherence Community pages at the following URL: https://java.net/projects/cohhib

1.3 Oracle Coherence for Java 12c (12.1.2)

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

1.3.1 Management and Monitoring Enhancements and Fixes

  • The cache-size-report has been improved to provide an entry for every unique cache name and service name composite key, whereas formerly only the cache name was used in the key.

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

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

  • Added support for BigDecimal aggregators in COHQL select statement syntax: bd_avg, bd_max, bd_min, bd_sum.

  • Coherence console handles IOException by graceful shutdown.

  • Introduced a new SimpleStrategyMBean providing monitoring information related to SimpleAssignmentStrategy.

  • Added partition-lost notifications to SimpleStrategyMBean.

  • Execution Context ID (ECID) logging has been added to Coherence. If a client application has an active DMS Execution Context at the time it invokes a Coherence operation, Coherence includes the ECID (Execution Context ID) into any log messages that it creates during its execution on the client side. In addition, any remote exceptions thrown by Coherence while executing the client request on other nodes is propagated back to the client and logged by Coherence on the client side bearing the ECID of the request. The remote exception is then re-thrown to the client. Server side logging does not include ECIDs into its messages.

  • Fixed an issue with Near Cache re-registration.

  • Fixed an issue that caused MBeanHelper.getServerFinder() method to unnecessarily create new MBeanServerFinder instances for each call.

  • Added logClusterState operation to the cluster MBean. The operation allows you to log state of all nodes in the cluster at the same time, capturing full thread dump and outstanding polls.

  • Added MBean operations to produce simultaneous thread dumps in various cluster member subsets.

  • Fixed JMX so that it reports the correct size for the read-write-backing-map-scheme cache.

  • Added the ability to programmatically invoke a CohQL statement by using the QueryHelper.executeStatement(String) method.

  • Fixed the issue that caused the domain name of a custom MBean to be ignored and changed to "Coherence". The JMX domain name for custom MBeans registered by applications is now "retained". For more information, see Knowledge Module Doc ID 1392954.1, available from Oracle Support:

    https://support.oracle.com

  • Added a unique cluster member identifier (UID) to ClusterNodeMBean.

  • Added support for MXBeans.

1.3.2 Partitioned Cache Enhancements and Fixes

  • 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 the java.lang.ArrayIndexOutOfBoundsException that occurred when using LimitFilter.

  • Fixed an issue which could cause missing MapListener events for certain kinds of expiry or eviction changes.

  • Fixed a problem with Service MBean operation "start". It is now possible to start a service using JMX. In addition, when a service is stopped, attributes of the Service MBean reflect the actual state of the service, whereas before they remained uninitialized.

  • Fixed an issue that could lead to a ContinuousQueryCache over Extend to stop receiving events if the proxy is restarted.

  • Fixed an issue where a resource lock timeout during the getAll, putAll, and removeAll operations could result in service failure.

  • Fixed the issue that caused a java.lang.IllegalStateException: invalid minute offset error to be thrown for non-standard timezone.

  • Fixed an issue which prevented CacheMap.EXPIRY_NEVER from working properly.

  • Fixed a memory leak in transactional caches with read operations and auto commit enabled.

  • Fixed an issue that could cause two members to join the cluster from within the same DefaultCacheServer process when the cluster is explicitly shutdown.

  • Fixed an issue where AllFIlter was throwing an ArrayIndexOutOfBoundsException when initialized with an empty filter array.

  • Reduced additional memory overhead for running InvokeAll operation on PartitionedCache.

  • Fixed an issue which could cause a Coherence server out of memory (OOM) error for off-heap backup.

  • Fixed a memory leak caused by Daemon's internal use of ThreadGroups.

  • SimpleAssignmentStrategy now automatically adapts to a large cluster startup.

  • Fixed an issue with excessive logging during server startup.

  • Introduced an asynchronous backup option for Partitioned Service. It must be explicitly enabled.

  • Fixed a deadlock that could occur during query evaluation in the presence of heavy concurrent updates.

  • Fixed an issue with ReplicatedCache that could cause new service members to hold outdated lease information

  • Fixed an issue that could cause a client to be stuck waiting for re-distribution.

  • Fixed an issue that caused the aggregation of large data sets to spuriously miss partitions.

  • Fixed an issue that could result in an IllegalStateException during the removeIndex operation.

  • Improved resiliency of an index when a cache entry causes an exception during index update. The index is no longer dropped, so that queries relying on the index continue to execute efficiently. Corrupted entries are excluded from query results.

  • Fixed a memory leak of pending invocation results, triggered by high EntryProcessor load during a failover.

  • Fixed an issue that could cause ownership conflict with backup-count > 1.

  • Fixed a regression in ReadWriteBackingMap.getAll() logic that could result in insertion of null values into the cache.

  • Fixed an issue that caused an assertion to be thrown for performing single key operations while backups are being transferred.

  • Preserved the entry expiry time across partition transfer or failover when the system property tangosol.coherence.distributed.strictexpiry is specified as true.

  • Fixed a regression causing incomplete results for queries that use indexes against collection-based extractors.

  • Fixed an issue that could result in data-loss with a multi-node failure.

  • Fixed an issue that could prevent the service or cluster from restarting after abnormal failure with a RequestTimeoutException.

  • Fixed an issue that caused put requests to be blocked by eviction when storage is slow.

  • Fixed an issue related to using ConditionalIndex with PofExtractor.

  • Fixed an issue where creating an index while performing queries could stall the cache service.

  • Fixed an issue that could raise backing map events out of order when ObservableHashMap was used as a backing map.

  • Fixed an issue with EntryProcessor throwing an exception, which in turn caused the backup node to throw a NullPointerException.

  • Fixed issue that caused an ConcurrentModficiationException to be thrown during a partition transfer when Exabus is enabled.

  • Fixed an issue that caused nodes to stop due to "Incompatible BinaryDelta implementation" when a storage-disabled proxy joined a cluster with a different backup count.

  • Fixed issue with ConcurrentModificationException or NegativeArraySizeException being thrown when running index backed queries.

  • Fixed an issue where unindexed filtered invocations employed excessive locking.

  • Fixed an issue with Refresh Ahead when the object being updated is locked.

  • Fixed an issue with non-monotonic registrations of request SUIDs.

  • Introduced thread-count < 0, which allows eligible cache requests to be processed outside of the service to improve latency when running on MessageBus.

  • Triggers and Live Events interceptors can now enlist new entries when running for cache put and remove operations.

  • Fixed an issue where Live Events events for cache entries would indicate the wrong state.

  • Changed return type of internal API load() and loadAll().

  • Fixed an issue that could cause the erroneous error: RequestPolicyException ("The current quorum policy prevents PartitionSet{...} from being recovered" to be thrown.

  • Fixed an issue when using backup-count-after-writebehind and POF.

1.3.3 TCMP Enhancements and Fixes

  • Fixed an issue with PacketPublisher auto-throttling.

  • Coherence now allows the PacketSpeaker to be disabled to reduce memory consumption in large WKA clusters.

  • Optimized the IPMonitor topology so that a single member on each machine performs outgoing pings.

  • Reduced the cost of removing and recovering from timed-out members.

  • Resolved an issue where default SSL context was loaded in non-SSL configurations.

  • Added support for service-level reliable transport selection, for example:

    <distributed-scheme>
       ...
       <reliable-transport>
          datagram
       </reliable-transport>
       ...
    </distributed-scheme>
    
  • Added the ability to set the service and worker thread priorities.

  • With the introduction of this feature we have removed the ability for the user to specify the settings for the Buffer Pool, therefore message-pool and packet-pool have been removed from the XSD.

  • Added Exabus transport attributes to ServiceMBean.

  • Addressed partial network failures when running over Exabus Account for MessageBus failure which occurs independent of network/process failure.

  • Resolved an issue preventing SSL handshake from completing on some IBM JDKs.

  • Added throttling to avoid PacketPublisher thread overwhelming the PacketSpeaker.

  • With the introduction of this feature we have removed the ability for the user to specify the settings for the Buffer Pool. Therefore, message-pool and packet-pool have been removed from the XSD. The small number of customer which are using these settings.

  • To improve throughput, message deserialization is now off-loaded to the IO thread-pool when running on MessageBus.

1.3.4 Coherence*Extend Framework Enhancements and Fixes

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

  • An issue with the number of events received by key and filter listeners has been resolved.

  • An issue with an Extend client receiving multiple copies of an event has been fixed.

  • Fixed an issue where calling NamedCache.invoke using POF/Extend when payload contains circular reference resulted in java.lang.StackOverflowError.

  • Fixed an issue where ClassCastException could be thrown when LimitFilter is used with custom Comparator.

  • When the first property of a user object is not read, later reads of the object can return the type and version, rather than the actual property value.

  • Fixed missing cache event call-backs when using a custom ExtractorEventTransformer class.

  • The log level of TcpAcceptor.BufferPool messages has been raised to level 9.

  • Upgraded the Coherence REST API to use Jersey 1.17.1 libraries.

  • Fixed POF serialization inconsistency between Java and .NET when a string is empty ("").

  • Fixed an issue where incorrect results can be returned to an Extend client using a LimitFilter when the Coherence cluster has more than one storage node.

  • Fixed ExtractorEventTransformer serialization issue which caused new value extractor to be ignored on the server when different from the old value extractor.

  • Implemented named initiators for placing connect host and port information in operational configuration.

  • Implemented named acceptors for placing listening host and port information in operational configuration.

  • Added the ability to secure communication between REST clients and proxies using SSL. REST clients can also be authenticated using HTTP basic authentication, client-side certificates, or both. Additionally, the Coherence*Extend Security framework was enhanced to include support for fine-grained authorization of REST requests.

  • Removed a potential deadlock which could occur during Coherence*Extend client request timeout.

  • Added send-timeout support for Extend clients. The <request-timeout> value in <initiator-config> now limits the time to send the request, in addition to the prior behavior of limiting the time to receive the response.

  • Made the internal REST EntryProcessors POF-serializable, to support exposing POF classes by using REST.

  • Coherence now ignores a bad host name in authorized hosts, and logs a message.

  • Improved performance of SafeConfigurablePofContext by caching the "missed" classes.

  • Fixed an issue that caused an infinite loop in TcpAcceptor class.

  • Added transformer to ContinuousQueryCache.

  • The TCPAcceptor and TCPInitiator elements have been removed from the cache-config.xml configuration file.

  • Removed the redundant re-resolution of remote addresses in TcpInitiator.openConnection() method.

  • Fixed an issue with using LimitFilters from Coherence*Extend clients.

1.3.5 Coherence*Web Enhancements and Fixes

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

  • Certified Coherence*Web 12c (12.1.2) on WebSphere 8.5

  • Fixed declaring custom session cache config file using GlassFish SPI.

  • Fixed the session affinity token configuration in GlassFish SPI.

  • Fixed a potential NullReferenceException during concurrent access to a session attribute from a Traditional or Split ISessionModel.

  • Fixed a regression that caused Coherence*Web extend clients to startup TCMP services.

  • Fixed "attempt to exit session" IllegalStateException during concurrent invalidation by multiple session reapers.

  • An exception is no longer thrown when a duplicate HttpSessionListener is added in a Web application.

  • Fixed Coherence*Web to honor the JVM system property coherence.cache.configuration.path.

  • The default value for coherence-session-weblogic-compatibility-mode system property was incorrect. The default value has been changed to true.

  • Fixed the issue that caused some Coherence*Web configuration options from being registered when configured by using system properties.

  • Added Mbean attributes to control storage for Coherence Web.

  • Hybrid distribution controller automatically configured when local session attributes is enabled.

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

  • No longer use death certificate cache in Coherence*Web.

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

  • Added WebLogicHttpSessionManagerMBean for WebLogic Coherence*Web SPI.

  • Introduced a simpler way of configuring the session locking mode.

1.3.6 Exabus Framework Enhancements and Fixes

  • Optimized request latency taking advantage of exabus IO thread pooling

  • Resolved an issue in MessageBus death-detection which could have lead to the wrong service member being terminated.

  • Resolved file descriptor leak in Exabus SocketBus.

  • Resolved flow control issue causing stuck nodes for services running on Exabus SocketBus.

  • Resolved a service shutdown race condition which could result in an IllegalStateException.

1.3.7 Serialization Framework Enhancements and Fixes

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

  • Fixed an issue with PofExtractor when targeting extraction at the key and operating against the original binary

  • Made PofExtractor tolerant to null values.

  • Fixed exception handling logic to no longer hide the ClassNotFoundException when an EntryProcessor class could not be found at deserialization time in a storage member by the default serializer.

1.3.8 REST Framework Enhancements and Fixes

  • Fixed registration of custom REST aggregators and processors.

  • Upgraded Coherence REST API to work with Grizzly 2.2.1.

  • Upgraded the Coherence REST API to use Jackson 1.9.2 libraries.

  • Upgraded the Coherence REST API to use Jersey 1.17.1 libraries.

  • Added support for the registration of multiple Coherence*Extend REST applications within a single proxy.

  • Added support for handling REST requests with the Simple embedded HTTP server.

  • Added support for conditional GETs to the REST API.

  • Added support for pluggable query engines to the REST API.

  • Added support for named queries to the REST API.

  • Added support for key set retrieval to the REST API.

  • Hardened Coherence REST by including a DefaultServletConextListener that automatically shuts down a cluster member when the REST application shuts down.

1.3.9 Configuration Enhancements and Fixes

  • Fixed an issue which could cause a cluster management node to be stopped by the guardian if the cluster is configured with WKA hostnames and DNS becomes unavailable.

  • Coherence parser can now handle UTF-8 with BOM character.

  • Fixed an issue in ClassCastException with Proxy Server/Extend client when using Optimistic Cache Scheme.

  • Fixed a memory leak that occurred when auto commit was enabled for transactional caches with read operations.

  • Fixed the Coherence parser so that it can handle UTF-8 with BOM character.

  • Fixed an issue that caused TransactionalCache to fail with a DefaultConfigurableCacheFactory.

  • The default unit calculator for distributed cache backing maps is now BINARY instead of FIXED.

  • Fixed an issue which caused the host-address element under authorized-hosts in operational configuration to be ignored.

  • Incremented the schema version for 12c (12.1.2).

  • Provided a Namespace handler for Spring beans to replace the DefaultConfigurableCacheFactory extension.

  • Removed the je.jar (Berkeley DB) from coherence.jar manifest classpath.

  • Modified the XSD to allow any XML element to be overridden by using a system-property.

  • Fixed an issue which caused the custom service-failure-policy configuration to be ignored.

  • The <connect-timeout> configuration element has been moved from under <tcp-initiator> to under <initiator-config>.

1.3.10 Coherence Container Enhancements and Fixes

  • Provide a warning if a GAR file is deployed without a Coherence cluster configuration.

1.3.11 Other Enhancements and Fixes

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

  • In the previous beta release, key library files were not installed properly for the TopLink component.

  • Coherence now ships a supplemental installer for Oracle install homes created with the Quick Install. This additionally installs the Javadoc and examples in the install home.

  • Oracle Coherence 12c (12.1.2) RESTful interfaces now depend on the Jackson 1.9.2 and the Jersey 1.17.1 libraries.

  • Coherence now includes Jackson and Jersey from the class path oracle_common/modules.

  • Fixed an issue where invoking the invokeAll(colKeys, processor) method resulted in many assertion failures.

  • Fixed an issue that caused the entrySet() method to return a smaller result if the indexed value was a collection or array.

  • Made changes to Flash and RAM Journal to avoid running out of disk space.

  • Implemented hashCode method on the PartitionSet interface.

  • Improved the accuracy of machine death detection by IP monitor and reduced the likelihood of false positives.

  • Some events could be lost if the primary dies while changes have been updated on the backup but before the events could be sent to the listeners

  • Guardian thread logging now includes monitor and synchronization information. In addition to logStackTraces(), GuardSupport has two new methods: getThreadDump() and getDeadlocks().

  • Reduced contention in PortalCacheProvider.get() method during heavy concurrent access to the same key.

  • Fixed a regression causing incomplete results for queries that use indexes against collection-based extractors.

  • Fixed Issue with IllegalMonitorState being thrown while performing a query during rapid updates.

  • Updated embedded version of Berkeley DB included with Coherence to 5.0.

  • Improved the process of locating the MANIFEST.MF file.

  • Added support for the SLF4J logging framework.

  • Optimized permission checking when the security framework is used such that running a server in a Subject context (Subject.doAs) will not require repeated authentications.

  • Added the missing security permissions in security.policy.

  • Fixed an issue to make sure that the transaction timeout value is always reset when a connection is acquired from the pool. This ensures that transactions do not time out unexpectedly.

  • Fixed an issue where 0.0.0.0 (IP_ANY) could not be used to listen on all IP addresses.

  • Resolved a race condition which could result in a NullPointerException during service shutdown.

  • Fixed the incorrect Jersey library versions that appeared in the coherence-rest.jar manifest file.

  • Fixed an issue that could cause an assertion error when encountering extremely long communication delays during service startup.

  • Fixed an issue where Coherence cannot read its manifest file to obtain the version number.

  • Moved the EventDeathException class into the com.tangosol.net.events package.

  • Redirect logging to System.err if the configured logger is backlogged to avoid an overflow of the log queue.

  • Reduced memory consumption overhead for selective indices.

  • Coherence Javadoc now ships as a single JAR file in the COHERENCE_HOME:/coherence/doc/api folder. For Java, the coherence-api.htm has been removed.

  • When selected, the Coherence examples now install under the examples directory of the Coherence home.

1.4 Oracle Coherence for .NET 12c (12.1.2)

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

1.4.1 Partitioned Cache Enhancements and Fixes

  • Fixed an issue where Request.RequestStatus.WaitForResponse throws ArgumentOutOfRangeException instead of RequestTimeoutException.

  • Fixed the issue that caused a java.lang.IllegalStateException: invalid minute offset error to be thrown for non-standard timezone.

  • Fixed an issue where AllFIlter was throwing an ArrayIndexOutOfBoundsException when initialized with an empty filter array.

  • Improved resiliency of an index when a cache entry causes an exception during index update. The index is no longer dropped, so that queries relying on the index continue to execute efficiently. Corrupted entries are excluded from query results.

1.4.2 Coherence*Extend Framework Enhancements and Fixes

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

  • An issue with the number of events received by key and filter listeners has been resolved.

  • Due to a bug in TimeZone.CurrentTimeZone.GetUtcOffset() in the .NET Framework 4.5, PofStreamWriter.WriteLocalDateTime() may write an incorrect value for certain DateTime values. Coherence has implemented a workaround to avoid this problem.

  • Removed examples from the .NET distribution.

  • An issue with an Extend client receiving multiple copies of an event has been fixed.

  • Fixed an issue with the default <connect-timeout> value for Coherence for .NET.

  • When the first property of a user object is not read, later reads of the object can return the type and version, rather than the actual property value.

  • Fixed an issue where WindowsFormsCacheListener could hang processing events.

  • Fixed an issue where calling NamedCache.invoke using POF/Extend when payload contains circular reference resulted in java.lang.StackOverflowError.

  • Fixed the NullReferenceException that was thrown during deserialization of a user-defined object when <references-enabled> is set to true.

  • Fixed an issue where ClassCastException could be thrown when LimitFilter is used with custom Comparator.

  • Connection timeouts are now honored by .NET clients.

  • Fixed an issue where incorrect results can be returned to an Extend client using a LimitFilter when the Coherence cluster has more than one storage node.

  • Resolved an issue in enabling POF annotation's auto-indexing feature in .NET.

  • Added .NET Extend client support for the name service.

  • Fixed an issue on .NET and C++ where ExtractorEventTransformer methods throw NullPointerExceptions when the old or new ValueExtractor is null.

  • Added missing <logger-name> to <logging-config> in coherence.xsd for .NET.

  • Fixed ExtractorEventTransformer serialization issue which caused new value extractor to be ignored on the server when different from the old value extractor.

  • Fixed ExtractorEventTransformer.Equals to throw a NullReferenceException when old or new extractor is null.

  • Installing Coherence for .NET in quiet mode will no longer throw an error if Microsoft Help 2.x Runtime is not present.

  • Fixed .NET ContinuousQueryCache missing entries when the cache size is large.

  • Implemented named initiators for placing connect host and port information in operational configuration.

  • Support for named default serializers has been added to the configuration files.

  • Removed a potential deadlock which could occur during Coherence*Extend client request timeout.

  • Improved performance of SafeConfigurablePofContext by caching the "missed" classes.

  • Ported NamedSerializer support into .NET and C++.

  • Added transformer to ContinuousQueryCache.

  • Moved ICacheEventTransformer and ICacheTrigger from Tangosol.Util to Tangosol.Net.Cache.

  • The TCPAcceptor and TCPInitiator elements have been removed from the cache-config.xml configuration file.

  • Removed the redundant re-resolution of remote addresses in TcpInitiator.openConnection() method.

  • Fixed an issue with using LimitFilters from Coherence*Extend clients.

1.4.3 Coherence*Web Enhancements and Fixes

  • Fixed a potential NullReferenceException during concurrent access to a session attribute from a Traditional or Split ISessionModel.

  • Fixed an issue with the Asp.NET SessionCleanupListener that caused an IllegalThreadStateException to be thrown after a Cluster restart.

  • Restored the ability to specify the cache name used by the ASP.NET Session Provider with the "cacheName" attribute

  • Fixed LockRecursionException in AttributeHolder when accessing session data in Web Session Model.

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

1.4.4 Other Enhancements and Fixes

  • Coherence now ships a supplemental installer for Oracle install homes created with the Quick Install. This additionally installs the Javadoc and examples in the install home.

  • Oracle Coherence 12c (12.1.2) RESTful interfaces now depend on the Jackson 1.9.2 and the Jersey 1.17.1 libraries.

  • Coherence now includes Jackson and Jersey from the class path oracle_common/modules.

  • The Coherence .NET version number has been changed to support the .NET version convention that supports only up to 4 digits (N.N.N.N). For more details on this enhancement, see "Change to Coherence .NET Version Numbering".

  • Fixed an issue that caused the entrySet() method to return a smaller result if the indexed value was a collection or array.

  • Coherence for .NET now supports Microsoft Visual Studio 2008 or higher.

  • Example applications are no longer included in the Coherence for C++ and .NET distributions.

  • Pof Serialization of .NET Decimals now more closely follows Java's format.

  • Documented the implementation of Dispose() in INamedCache calls Release() of the cache.

  • Coherence Javadoc now ships as a single JAR file in the COHERENCE_HOME:/coherence/doc/api folder. For Java, the coherence-api.htm has been removed.

  • When selected, the Coherence examples now install under the examples directory of the Coherence home.

  • The <connect-timeout> configuration element has been moved from under <tcp-initiator> to under <initiator-config>.

1.5 Oracle Coherence for C++ 12c (12.1.2)

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

1.5.1 Partitioned Cache Enhancements and Changes

  • Fixed the issue that caused a java.lang.IllegalStateException: invalid minute offset error to be thrown for non-standard timezone.

  • Fixed an issue where AllFIlter was throwing an ArrayIndexOutOfBoundsException when initialized with an empty filter array.

  • Improved resiliency of an index when a cache entry causes an exception during index update. The index is no longer dropped, so that queries relying on the index continue to execute efficiently. Corrupted entries are excluded from query results.

1.5.2 Coherence*Extend Framework Enhancements and Fixes

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

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

  • An issue with the number of events received by key and filter listeners has been resolved.

  • An issue with an Extend client receiving multiple copies of an event has been fixed.

  • Fixed an issue where calling NamedCache.invoke using POF/Extend when payload contains circular reference resulted in java.lang.StackOverflowError.

  • Fixed an issue where ClassCastException could be thrown when LimitFilter is used with custom Comparator.

  • When the first property of a user object is not read, later reads of the object can return the type and version, rather than the actual property value.

  • Fixed a potential core dump during application shutdown.

  • Added a Coherence for C++ distribution for Solaris x86 32-bit for use with the STLport library.

  • Added support for adding map listener through configuration.

  • Implemented C++ Extend client support for the name service.

  • Made C++ LimitFilter::m_vComparator mutable, to better match how it is used.

  • Fixed an issue on .NET and C++ where ExtractorEventTransformer methods throw NullPointerExceptions when the old or new ValueExtractor is null.

  • Support for named default serializers has been added to the configuration files.

  • Fixed an issue that could cause a crash when registering POF annotated classes.

  • Fixed an issue where incorrect results can be returned to an Extend client using a LimitFilter when the Coherence cluster has more than one storage node.

  • Fixed an issue with C++ Coherence*Extend client ping requests.

  • Fixed an issue where Coherence*Extend for C++ clients may not detect a connection being closed by the proxy service.

  • Updated the Coherence for C++ distributions to include the header files for the NearCache and LocalCache classes.

  • Fixed an issue which could cause C++ Class and Allocation HeapAnalyzers to crash during initialization.

  • Fixed a syntax error in the COH_REGISTER_EXECUTABLE_CLASS macro.

  • Implemented named initiators for placing connect host and port information in operational configuration.

  • Changed C++ COH_STATIC_INIT methods to be called after library load phase to avoid DllMain dependency issues on Windows.

  • Ported NamedSerializer support into .NET and C++.

  • Added transformer to ContinuousQueryCache.

  • The TCPAcceptor and TCPInitiator elements have been removed from the cache-config.xml configuration file.

  • Removed the redundant re-resolution of remote addresses in TcpInitiator.openConnection() method.

  • Fixed an issue with using LimitFilters from Coherence*Extend clients.

1.5.3 Other Enhancements and Fixes

  • Example applications are no longer included in the Coherence for C++ and .NET distributions.

  • Fixed a potential NullReferenceException during concurrent access to a session attribute from a Traditional or Split ISessionModel.

  • Coherence now ships a supplemental installer for Oracle install homes created with the Quick Install. This additionally installs the Javadoc and examples in the install home.

  • Coherence now includes Jackson and Jersey from the class path oracle_common/modules.

  • Fixed an issue that caused the entrySet() method to return a smaller result if the indexed value was a collection or array.

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

  • Coherence Javadoc now ships as a single JAR file in the COHERENCE_HOME:/coherence/doc/api folder. For Java, the coherence-api.htm has been removed.

  • When selected, the Coherence examples now install under the examples directory of the Coherence home.

  • The <connect-timeout> configuration element has been moved from under <tcp-initiator> to under <initiator-config>.

1.6 New Features, Enhancements, and Fixes for Coherence 12c (12.1.2.0.1)

The following changes and enhancements have been made for the 12c (12.1.2.0.1) release.

1.6.1 New Features for Coherence 12c (12.1.2.0.1)

The following new features have been added to the 12.1.2.0.1 patch release for Oracle Coherence:

  • Support for Apache Tomcat application server version 7.x added to Coherence*Web—Support has been added for version 7.x of the Apache Tomcat application server. For more information, see "Supported Web Containers" in Oracle Fusion Middleware Administering HTTP Session Management with Oracle Coherence*Web.

  • POF serialization with HotCache—POF serialization can be used with HotCache but requires an update to the POF configuration file to allow for TopLink Grid framework classes to be registered. For more information, see "Using Portable Object Format with HotCache" in Oracle Fusion Middleware Integrating Oracle Coherence.

  • Wrapper Classes for TopLink Grid Applications—A new context property can enable the generation of wrapper classes for TopLink Grid applications that make Coherence cache inserts. For more information, see "Enabling Wrapper Classes for TopLink Grid Applications" in Oracle Fusion Middleware Integrating Oracle Coherence.

  • Expiration and eviction policies for RAM and flash journal—Expiration and eviction policies can restrict the number of entries to store, and automatically evict entries when the journal becomes full. Both the sizing of entries and the eviction policies can be customized. For more information, see "Using Journal Expiry and Eviction" in Oracle Fusion Middleware Developing Applications with Oracle Coherence.

  • New attribute for the ConnectionManagerMBean MBean—A new attribute, UnauthorizedConnectionAttempt, identifies the number of connection attempts that were made from unauthorized hosts. For more information, see "ConnectionManagerMBean" in Oracle Fusion Middleware Managing Oracle Coherence.

  • Concurrent access to the same session instance in Coherence*Web—A new context parameter allows you to use a cache delegator to ensure that the local cache should be used for storing and retrieving the session instance before attempting to use the distributed cache. This feature must be enabled when working with PeopleSoft applications. For more information, see "Getting Concurrent Access to the Same Session Instance" in Oracle Fusion Middleware Administering HTTP Session Management with Oracle Coherence*Web.

  • Documentation for Spring integration has been moved from the Oracle Fusion Middleware Integrating Oracle Coherence to the Coherence Community pages. For information on Integrating Coherence with Spring, see the following URL: https://java.net/projects/cohspr/

  • Starting with Coherence 12.1.2.0.1, 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.2.0.2 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.6.2 Changes and Enhancements for Oracle Coherence for Java 12c (12.1.2.0.1)

  • Hardened the PacketReciever against randomly truncated otherwise valid packets.

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

  • Updated the URL redirect to OTN Coherence documentation in the documentation.htm file.

  • Fixed an issue with the POF Configuration Generator on Windows, which produces an invalid reference in the application descriptor.

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

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

  • 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 the ConnectionManagerMBean.

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

  • Fixed an issue with Elastic Data in which subsequent to a destroy, data was not removed from the journal.

  • Fixed an issue where pof-config-gen.sh would throw an error when running on Solaris.

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

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

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

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

  • Reduced the default <thread-count-max> value for the proxy service thread pool to 4 times the number of CPU cores (down from 8 times).

  • Fixed an issue in which eviction and expiry could not be configured with Elastic Data, which are now both natively supported.

  • Fixed a potential AssertionException which could occur in Coherence*Web during an application undeployment.

  • Fixed an issue which could cause a NullPointerException for cluster with heterogeneous transports.

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

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

  • 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" in Oracle Fusion Middleware Administering HTTP Session Management with Oracle Coherence*Web.

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

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

  • Fixed an issue with the Coherence console allowing the GAR's resources to be available to the console.

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

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

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

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

  • Hardened the handling of cache deactivation calls.

  • 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 the keySet method.

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

  • Hardened the handling of cache misconfigurations by guarding against NPE and UOE to avoid service termination.

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

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

  • Fixed an InFilter serialization issue.

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

  • Fixed the NullPointerException when DefaultCacheServer.start() is followed by call to DefaultCacheServer.shutdown().

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

  • Changed DCCF.applyScopeToServiceName method name to getScopedServiceName.

  • Fixed Transactional cache to disallow '$' char as part of its cache-name.

  • Fixed a race-condition which could cause partition transfers to become stuck when using either tmb, sdmb, or imb transports under heavy load.

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

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

  • Enhanced NameService so that it runs on all nodes.

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

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

  • Fixed an issue with DefaultCacheServer validating given arguments.

  • Fixed an issue where partitions lost notifications were issued for 0 partitions lost; these notifications will no longer be issued.

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

  • Fixed an issue with DefaultCacheServer to be more tolerant with an absent MANIFEST file.

  • Fixed an issue with the console to ensure the GAR's cache configuration is used if a server command with a GAR file was previously issued.

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

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

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

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

1.6.3 Changes and Enhancements for Oracle Coherence for .NET 12c (12.1.2.0.1)

  • Fixed a .NET 4.5 framework issue with SynchronizedDictionary.

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

  • Hardened the handling of cache deactivation calls.

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

  • 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.

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

  • Fixed an InFilter serialization issue.

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

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

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

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

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

1.6.4 Changes and Enhancements for Oracle Coherence for C++ 12c (12.1.2.0.1)

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

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

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

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

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

  • Hardened the handling of cache deactivation calls.

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

  • Fixed an InFilter serialization issue.

  • Fixed adapter_map/boxing_map iterator so that it initializes correctly when the map size is 1.

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

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

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

1.7 New Features, Enhancements, and Fixes for Coherence 12c (12.1.2.0.2)

The following changes and enhancements have been made for the 12c (12.1.2.0.2) release.

1.7.1 New Features for Coherence 12c (12.1.2.0.2)

The following new features have been added to the 12.1.2.0.2 patch release for Oracle Coherence:

  • 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.2.0.2 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.7.2 Changes and Enhancements for Oracle Coherence for Java 12c (12.1.2.0.2)

  • Fixed an issue that off-heap (NIO) backing map could lost cache entries during failover.

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

  • Improved POF date and time deserialization performance.

  • Provided limited support for PofValueParser and PofNavigator when object identity/reference is enabled.

  • Fixed an issue with RefreshableAddressProvider in which previously unaccepted addresses may not be retried after successful connection.

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

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

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

  • Fixed an error encountered on Solaris x86-64 while performing OPatch.

  • Fixed a regression in the cache listener which can result in increased CPU overhead within cache servers, and performance reduction on clients, primarily impacting NearCaches.

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

  • Fixed a serialization buffer allocation performance issue.

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

  • Fixed an issue with creating custom components specified in the cache configuration when Coherence is on the boot classpath.

  • Fixed an issue which could cause services timeout during startup.

  • 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.

  • Fixed a bug where Filter queries that use indexes could return the wrong results if the query executes at the same time as multiple concurrent updates to the same cache.

  • Fixed an issue where WKA address list is unnecessarily refreshed during message serialization.

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

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

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

  • Fixed ThreadAverageActiveCount in Service MBean to report the correct value.

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

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

  • Improved the performance of BetweenFilter when there is a corresponding index available.

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

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

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

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

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

1.7.3 Changes and Enhancements for Oracle Coherence for .NET 12c (12.1.2.0.2)

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

  • Provided limited support for PofValueParser and PofNavigator when object identity/reference is enabled.

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

  • Fixed a serialization buffer allocation performance issue.

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

  • 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.

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

1.7.4 Changes and Enhancements for Oracle Coherence for C++ 12c (12.1.2.0.2)

  • Fixed a serialization buffer allocation performance issue.

  • 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.

1.8 New Features, Enhancements, and Fixes for Coherence 12c (12.1.2.0.3)

The following changes and enhancements have been made for the 12c (12.1.2.0.3) release.

1.8.1 New Features for Coherence 12c (12.1.2.0.3)

A new Weblogic Web Report (report-web-weblogic.xml) performance report is available for Coherence*Web on the WebLogic Server platform. It provides all of the information as the Web Report, with the addition of the WebLogic Server name and WebLogic Server domain name. See Section 2.13, "New Performance Report for Coherence*Web in WebLogic Server Environments."

1.8.2 Changes and Enhancements for Oracle Coherence for Java 12c (12.1.2.0.3)

  • Fixed an issue where an invocation of QueryPlus.main preceded by QueryHelper.createFilter caused a NullPointerException.

  • Fixed an issue that resulted in an AssertionException or deadlock when under high load using expiry or eviction.

  • Fixed an issue where NearCache event interceptors defined in the cache-config file are not registered when using ExtensibleConfigurableCacheFactory.

  • Fixed an issue where <maximum-size> was not taking effect for flashjournal-manager.

  • Removed improper Service.heartbeat() call from non-service thread that resulted in a concurrent checkGuardables call by service thread.

  • Fixed a concurrent access issue with UUIDs.

  • Fixed an issue where a service failed to restart when configured to use SSL.

  • Fixed an issue with InFilter that could result in poor performance if used with an initial filter that reduces the data set significantly.

  • BinaryEntry.remove(fSynthetic) will now generate synthetic delete events when fSynthetic is true.

  • Fixed an issue with UpdaterProcessor that could cause missing entry update in CacheStore, BinaryEntryStore, and Listeners.

  • Fixed an issue where internal session attribute names are returned without stripping the InternalWLSAttribute prefix.

  • Fixed a POF serialization issue for negative Dates with nonzero sub-seconds.

  • Fixed an issue where session attributes are mandated to implement java.io.Serializable.

  • Fixed an issue which could cause the server to fail to join the cluster with tmbs protocol.

  • Enhanced BetweenFilter to work like a normal ExtractorFilter rather than an AndFilter, which improves efficiency of applying indexes and evaluating values.

  • Fixed missing Live Events packages from Javadoc.

  • Fixed an issue ConfigurableCacheMap methods does not return correct values with ObservableSplittingBackingCache.

  • Changed Extend security to use the Subject provided by the client rather than the WebLogic Subject when running an Extend Proxy inside WLS 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 WLS.

  • Fixed an issue which could cause TcpAcceptor to hang when decoding non-Coherence messages.

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

  • Fixed an issue with nio-file-manager using an appropriate directory when not provided.

  • For Coherence*Web configurations on WebLogic Server, a new report "reports/report-web-weblogic.xml" is available.

1.8.3 Changes and Enhancements for Oracle Coherence for .NET 12c (12.1.2.0.3)

  • Fixed a concurrent access issue with UUIDs.

  • Enhanced BetweenFilter to work like a normal ExtractorFilter rather than an AndFilter, which improves efficiency of applying indexes and evaluating values.

1.8.4 Changes and Enhancements for Oracle Coherence for C++ 12c (12.1.2.0.3)

  • Fixed a concurrent access issue with UUIDs.

  • Fixed an issue where dependent threads of a Coherence service may fail to stop during service shutdown.

  • Enhanced BetweenFilter to work like a normal ExtractorFilter rather than an AndFilter, which improves efficiency of applying indexes and evaluating values.

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

1.9 New Features, Enhancements, and Fixes for Coherence 12c (12.1.2.0.4)

The following changes and enhancements have been made for the 12c (12.1.2.0.4) release.

1.9.1 Changes and Enhancements for Oracle Coherence for Java 12c (12.1.2.0.4)

  • Fixed an issue where a NullException was seen upon stop of a FlashJournalRM Daemon thread during service restart.

  • Fixed an issue which could cause the proxy service thread count to grow unnecessarily large.

  • Fixed an issue where daemon threads were not using the specified service classloader.

  • Fixed an issue that could cause a NoSuchElementException during Ram Journal eviction.

  • Fixed an issue resulting in guardian errors on startup when using EventInterceptors and a large number of concurrent requests per member.

  • Fixed an issue when using MultiExtractor as an index that may result in inaccurate indexed data.

  • Added support for enabling or disabling specified SSL protocols.

  • Fixed an issue where the <cipher-suites> element in a cluster configuration caused a SAXParseException.

  • Fixed an issue with invoking GuardSupport.heartbeat during execution of post commit LiveEvents.

  • Fixed an issue where an ArrayIndexOutofBoundsException occurs during a ClusterModel.getMemberIds() call due to some of cluster members going down during the operation.

1.9.2 Changes and Enhancements for Oracle Coherence for .NET 12c (12.1.2.0.4)

  • Removed "DPR" from the Coherence for .NET version string.

  • Coherence*Extend message logging can now be enabled by setting the COHERENCE_MESSAGING_DEBUG environment variable to true or by adding the <COHERENCE_MESSAGING_DEBUG>true</COHERENCE_MESSAGING_DEBUG> as a child element of <coherence> in the app.config file.

1.9.3 Changes and Enhancements for Oracle Coherence for C++ 12c (12.1.2.0.4)

There are no changes or enhancements specific to C++ in Oracle Coherence 12c (12.1.2.0.4).

1.10 Known Problems and Workarounds

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

1.10.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.10.2 Manifest File Required for GAR File Deployment

When using the DefaultCacheServer class to deploy a Grid ARchive (GAR), the deployment fails if the archive does not contain a manifest file. Use the Java jar command to create the archive and ensure that a MANIFEST.mf file is included in the META-INF directory.

1.10.3 Deploying a GAR File from the CacheFactory Console

When using the server command to deploy a GAR from the CacheFactory console, the cache configuration file in the archive fails to override the default cache configuration file that is included in the coherence.jar library. To work around this issue, start the console and ensure that all configuration files are located on the classpath before the coherence.jar file. If you are connecting to a cache server that has been started using a GAR file, then the cache configuration file on the CacheFactory client must define the same scope name being used for the GAR file on the cache server; otherwise, the client is unable to use any defined caches.

1.10.4 JVM Crashes on Linux

On Linux with JDK 1.7, the JVM may crash with a SIGSEGV at ParMarkBitMap::verify_clear() error. In JDK 1.7, "large pages" support is enabled by default. To work around this issue, use the -XX:-UseLargePages Java command line option to disable large pages support. Bug JDK-8007074 has been filed for this issue.

For more information on configuring large page sizes, see "Tune the Huge (Large) Pages Configuration" in Oracle Fusion Middleware Administering Oracle Coherence.

1.10.5 JVM Crashes Due to Offset Error

The JVM crashes and reports a guarantee(this->is8bit(imm8)) failed: Short forward jump exceeds 8-bit @ offset error during runtime compilation. To work around this issue disable the compilation of the method indicated in the crash using the Java command line option -XX:CompileCommand=exclude,fully-qualified-method-name. Bug JDK-8010437 has been filed for this issue.

1.10.6 Coherence Cache Override Not Working

This problem can occur if you are using the Coherence cache override feature in WebLogic Server. If the WebLogic Server Configuration Wizard (config.sh) is used to create a domain and the WebLogic Coherence Cluster Extension template is specified, then a Coherence cluster will be defined. The Coherence cluster will be associated with any Managed Server or WebLogic Server cluster that is also created by the Configuration Wizard. If no Managed Server or WebLogic Server cluster is created, then the Coherence cluster will be associated with the Administration Server. This association between the Coherence cluster and the servers is not completely defined using the WebLogic Server configuration tool, which results in the Coherence cache configuration override file not being detected by the Coherence cluster.

Use the following workaround:

  1. Start the domain created with the Configuration Wizard and connect using the WebLogic Server Administration Console.

  2. In the left pane of the Administration Console, expand Environment and select Coherence Clusters.

  3. Select your Coherence cluster. The Coherence cluster settings page is displayed.

  4. Select the Members tab, which displays all of the members of the Coherence cluster.

  5. Deselect the servers and clusters that are members of the Coherence cluster and click Save.

  6. Reselect the servers and clusters that are the desired members for the Coherence cluster and click Save.

This will perform a complete association between the Coherence cluster and the targeted servers, which is required to detect and use the specified Coherence cluster cache configuration override file.

For more information, see ”Overriding a Cache Configuration File” in Oracle Fusion Middleware Administering Clusters for Oracle WebLogic Server.

1.10.7 Problems with the Cache Size Report

The report for cache size is missing entries when the same cache exists on multiple services.

To workaround this problem, customize the cache size report to have a service column with the group-by tag set to true. For more information on the cache size report, see "Understanding the Cache Size Report" in Oracle Fusion Middleware Managing Oracle Coherence.

1.10.8 Building C++ Applications with OS X Mavericks (for Coherence 12.1.0.2)

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.11 Spring Support Moved to Coherence Community Projects

Spring support has been moved from the Coherence 12c (12.1.2) release to Coherence Community projects. Coherence Community projects provide example implementations for commonly-used design patterns based on Oracle Coherence. See the following URL:

https://java.net/projects/cohspr/

1.12 Deprecated Features

The following features have been deprecated or removed from the Coherence 12c (12.1.2) release.

1.12.1 ActiveCache (active-cache.jar)

ActiveCache (active-cache.jar), the collection of WebLogic Server features which allow deployed applications to easily use Coherence data caches and seamlessly incorporate Coherence*Web for session management, has been deprecated in the current release. ActiveCache can still be used with applications that have been developed to run on older versions of WebLogic Server.

Instead of ActiveCache, users must migrate to Managed Coherence Servers. For more information on Managed Coherence Servers, see Oracle Fusion Middleware Developing Oracle Coherence Applications for Oracle WebLogic Server.

1.12.2 LH Store Manager

The LH store manager is deprecated as of Coherence 12c (12.1.2) release. Use Berkeley DB for similar functionality. For more information, see "Replacement for the Deprecated LH File Manager"

1.12.3 NamedCache lock APIs

The NamedCache lock APIs are deprecated. Use the locking support that is provided by the entry processor API instead (EntryProcessor for Java and C++, IEntryProcessor for .NET). For more information, see "Replacement for the Deprecated NamedCache Lock APIs".

1.12.4 DefaultConfigurableCacheFactory Class

The com.tangosol.net.DefaultConfigurableCacheFactory class has been deprecated. It remains part of the Coherence distribution only to provide backwards compatibility for those applications that have extended it or depend on specific implementation semantics.

Developers are strongly encouraged to refactor implementations that depend on this class to use the extension mechanisms used by the ExtensibleConfigurableCacheFactory class. No further development or enhancement of this class will occur in the future.

It is strongly recommended that developers get a ConfigurableCacheFactory instance by using the CacheFactory.getCacheFactoryBuilder().getConfigurableCacheFactory() method, rather than instantiate a DefaultConfigurableCacheFactory instance directly.

1.12.5 XmlConfigurable Interface

The com.tangosol.run.xml.XmlConfigurable interface has been deprecated in the Coherence 12c (12.1.2) release. This interface is no longer required due to injection support. For a different technique to initialize implementations, see "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