This chapter describes the changes and enhancements made to the Oracle Coherence product for the 3.6 release. This document is accurate at the time of publication. Oracle updates the release notes periodically after the software release.
Go to My Oracle Support to download the latest software patches.
https://support.oracle.com/CSP/ui/flash.html
See the README file in the patch distribution for up-to-date information on the software fixes provided by the patch.
Login to My Oracle Support.
Click the Patches & Updates tab.
Under the Patch Search tab, select Product or Family (Advanced Search), and select the Include all patches in a product family check box.
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.
The following new functionality has been added to the Coherence 3.6 release.
Introduced a new MVCC-based Transaction Framework that provides ACID transaction guarantees across partitions and caches even in the event of failure, and supports the use of NamedCache operations, queries, aggregation, and entry processors within the context of a transaction. The three components that are included are a <transactional-scheme> cache configuration element, a Connection-Based API and a fully XA-Compliant Resource Adapter.
Introduced the Coherence Query Language (CohQL) which provides a light-weight SQL-like syntax that can be used to perform cache operations on a Coherence cluster. The language can be used both programmatically and from a new command-line tool.
Introduced Quorum support which provides a mechanism that allows customers to configure how Coherence should behave at various service and/or cluster sizes.
Introduced the Coherence ASP.NET Session Management module which allows you to manage ASP.NET session state in a Coherence cluster in the same way Coherence*Web provides session management in JEE containers.
Introduced user-defined indexes, which can be used to control what entries are added to an index. User-defined indexes are typically used to reduce the memory and processing overhead required to maintain an index.
Introduced a new BinaryEntryStore interface, which is similar to the CacheStore, but operates on BinaryEntry objects. The interface allows implementations to use optimistic concurrency for database updates (using the OriginalValue accessor) and interoperate with the backing map by modifying the entry's value.
Added deterministic process-level death detection to TcpRing.
Added the BroadPartitioningStrategy implementation, for use with key association, that "spreads" the partition assignment for a given group based on a "span" value.
New features, improvements, and bug fixes have been added to these Oracle Coherence for Java components:
The following is a list of new features, improvements, and bug fixes to Coherence*Extend for the 3.6 release.
Fixed an issue in which a misconfiguration of network filters by clients could terminate the proxy service.
Hardened NamedCacheProxy.unregisterChannel() to protect against a concurrent release or destroy of the wrapped cache.
Fixed an issue in which WrapperSet.$KeySet.remove() could potentially result in multiple RemoveRequests.
Fixed an issue in which multiple network filters were being applied in inverse order for send and receive.
Hardened the TCPAccepter behavior when null is returned from the configured AddressProvider.
Initiator.openConnection() now respects the connect timeout setting.
The following is a list of new features, improvements, and bug fixes to Coherence*Web for the 3.6 release.
Introduced a Coherence*Web-specific report for the Reporter that consolidates the more relevant JMX statistics for managing and monitoring Coherence*Web.
Added support for restricting the return of session cookies over secure protocols only.
Implemented a Tomcat 6.0 DefaultFactory to support the Servlet 2.5 API.
Added various optimizations and fixed several issues with session reaping.
Optimized session reaping by implementing parallel reaping routines.
Hardened deserialization routines involving SessionExpiryExtractor by using Binary decorations.
Added a new locking mode that allows concurrent updates to the session by way of a "last writer wins" policy.
Hardened support for single session ID referencing of a unique HttpSession instance in each Web application using WebLogic Server SPI.
Optimized WebLogic Server SPI session and session attribute event dispatching.
Hardened AbstractHttpSessionCollection.isExistent() implementation for cases when session ID is null.
Introduced enforcement of consistent Coherence*Web configuration across Web applications that share session data.
Introduced ability for users to explicitly disable the automatic suspect attribute.
Introduced the ability to customize attribute serialization.
Introduced the ability to configure Coherence*Web to automatically print a thread dump on a node holding a session lock.
Optimized the update of session attributes when using the split session model.
Introduced a configuration parameter to allow session ownership to be lazily acquired.
Optimized flush behavior on the HttpSession model by deferring the flush until the last concurrent request completes.
Converted to using StringBuilder rather than StringBuffer.
Decoupled local session attributes from sticky session optimization.
Added the coherence-session-get-lock-timeout context parameter to configure lock timeouts for Coherence*Web.
Introduced the ability to override context parameters by using system properties.
Fixed the IllegalStateException: session is not in a 'active' state exception that could occur if thread locking is disabled and there are concurrent requests for the same session.
Fixed the issue where Coherence*Web would not honor the session-timeout value configured in the web.xml file.
Fixed a potential deadlock that could occur during remote include and forward when using Coherence*Web with the WebLogic Server SPI.
Fixed session ownership issues after executing WebLogic Server proprietary logout methods.
Introduced the caching of HttpSessions after application redeployment in WebLogic Server.
Fixed ClassNotFoundException that could occur if multiple Web applications were deployed when using application or EAR-scoped cluster nodes.
Hardened ServletRequestListener session exit behavior after it executes.
Fixed instances where JSP XML files could potentially be improperly encoded by the installer.
Hardened update rejections on sessions that have been concurrently invalidated when using the optimistic locking mode.
Fixed an issue regarding the management of non-serializable attribute retention.
Fixed issue with JBoss and TagLibs caused by com.tangosol.coherence.servlet.api23.JspServlet not implementing _jspInit().
The following is a list of new features, improvements, and bug fixes to the management framework for the 3.6 release.
Added ability to reduce the number of registered MBeans based on the name patterns
Added the MemberDeparted attribute to the ClusterMBean showing a list of recently departed members.
Added the QuorumStatus attribute to the ClusterNodeMBean and ServiceMBean.
Fixed ClassCastException when using DoubleSum.process with the Reporter.
Fixed the rolename attribute initialization issue that could occur when running with JRockit.
Hardened CacheMBean to insulate itself from the cache being concurrently destroyed.
Fixed an issue with reporting negative values when services are restarted.
The following is a list of new features, enhancements and bug fixes to the security framework for 3.6.
Added pluggable identity handling between client and proxy to enable identity validation and custom security tokens.
Added subject scoping to automatically associate Subjects with remote cache and invocation service references.
Added ability to wrap remote cache service and remote invocation service to allow custom authorization code in the proxy.
Fixed bug that would ignore security exceptions for expired certificates.
Fixed concurrency bug in security framework when under heavy load.
The following is a list of new features, improvements, and bug fixes to the serialization framework for the 3.6 release.
Optimized PacketPublisher by replacing the use of streams with buffers.
Optimized aggregator and entry processor serialization by using LiteMap and LiteSet.
Fixed an issue with PofExtractor where it could fail to extract values from uniform collections.
Fixed issue with PofBufferReader.getParentParser() accessor, where the wrong parent could be returned.
The following is a list of other improvements and bug fixes for the 3.6 release.
Allowed for a disabled guardian to monitor and log SLA violations.
Optimized configuration updates during distribution of partitions.
Added support for KeyExtractor-based filter to the ContinuousQueryCache.
Added the ability to determine which node a partition is backed up on.
Added support for custom filtering of the authorized hosts, determining if a host is allowed to join the cluster.
Optimized forward index by reusing previously extracted Collection references
Scaled-back the aggressiveness of write-delay after a failure.
Hardened the ReadWriteBackingMap implementation to protect the write-behind queue from excessive growth.
Changed the default setting for rollback-cachestore-failures to true.
Improved cluster join protocol to enforce the cluster size limitation imposed by maximum packet size.
Added the ability to scroll through the history of commands in the command line tool.
Fixed a race condition during simultaneous service start (with ownership-disabled senior), which could potentially lead to ownership desynchronization.
Resolved race condition related to well-known and non-well-known members forming a cluster.
Fixed an issue where ServiceEvents were potentially not dispatched during a hard stop.
Fixed issue where a malformed or rogue SeniorMemberHeartbeat could result in cluster restart.
The following is a list of new features, improvements, and bug fixes in Oracle Coherence for .NET 3.6:
Added connection-specific information to the ConnectionException class.
Improved the information reported when a ConnectionException occurs due to socket disconnect.
Optimized RemoteNamedCache.BinaryCache.Query() by using ImmutableMultiList.
Introduced the ability to associate identity with cache and service references.
Fixed an issue where GetLocalHostAddress() could potentially return the IP address of a DNS Server.
Fixed an issue where network filters were being applied in inverse order, for send and receive.
Initiator.OpenConnection() now respects the connect timeout setting.
Fixed issue with PofBufferReader getParentParser() accessor, where the wrong parent could be returned.
The following is a list of new features, improvements, and bug fixes in Oracle Coherence for C++ 3.6:
Improved the information reported when a ConnectionException occurs upon socket disconnect.
Optimized the buffering of reads and writes to the underlying Socket in TcpInitiator::readMessageLength() and writeMessageLength().
Optimized RemoteNamedCache::BinaryCache::query() by using ImmutableMultiList.
Added static Array<T>::hashCode(const T*) helper.
Fixed issue where network filters were being applied in inverse order for send and receive.
Initiator::openConnection() now respects the connect timeout setting.
Fixed potential deadlock between TcpInitiator and TcpReader during shutdown.
Fixed segmentation faults that could occur when unloading the Coherence library.
Fixed issue with PofBufferReader::getParentParser() accessor, where the wrong parent could be returned.