Oracle® Fusion Middleware

Release Notes for Oracle Coherence

12c (12.2.1.2.0)

E77776-01

September 2016

Oracle Fusion Middleware Release Notes for Oracle Coherence, 12c (12.2.1.2.0)

E77776-01

Copyright © 2008, 2016, Oracle and/or its affiliates. All rights reserved.

Primary Author: Joseph Ruzzi

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

Contents

Preface

- Audience

- Documentation Accessibility

- Related Documents

- Conventions

1 Technical Changes and Enhancements

- 1.1 Download and Install the Latest Software Patch

- 1.2 New and Improved Coherence Data Grid Functionality

- 1.3 Oracle Coherence for Java

- 1.4 Oracle Coherence for .NET

- 1.5 Oracle Coherence for C++

2 Known Problems and Workarounds

- 2.1 Changing the Partition Count When Using Active Persistence

- 2.2 Inconsistent Data in Federated Caches During Snapshot Recovery

- 2.3 Impact of Generics

- 2.4 Support for JVisualVM Plugin

3 Deprecated and Desupported Features

- 3.1 Deprecated Features

- 3.1.1 BACKUP CACHE and RESTORE CACHE

- 3.1.2 Managed Coherence Server MBean Attributes

- 3.1.3 Coherence*Web Container Support

- 3.1.4 ActiveCache (active-cache.jar)

- 3.1.5 Thread Count

- 3.1.6 Specifying Ports in the WKA List

- 3.1.7 Specifying tangosol in System Properties

- 3.1.8 TopLink Implementations

- 3.1.9 Object::toStream Deprecated

- 3.1.10 ParallelAwareAggregator

- 3.1.11 Remote Addresses

- 3.2 Desupported Features

- 3.2.1 Encryption Network Filters

4 Documentation Errata

Preface

This document describes changes and enhancements that have been made to Oracle Coherence.

- Audience

- Documentation Accessibility

- Related Documents

- Conventions

Audience

This document is intended for users of Oracle Coherence.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Related Documents

For more information, see the following documents in the Oracle Coherence documentation set:

- Administering Oracle CoherenceAdministering Oracle Coherence

- Administering HTTP Session Management with Oracle Coherence*Web

- Developing Applications with Oracle Coherence

- Developing Remote Clients for Oracle Coherence

- Installing Oracle Coherence

- Integrating Oracle Coherence

- Managing Oracle Coherence

- Securing Oracle Coherence

- Java API Reference for Oracle Coherence

- .NET API Reference for Oracle Coherence

- C++ API Reference for Oracle Coherence

Conventions

The following text conventions are used in this document:

Convention

Meaning

boldface

Boldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary.

italic

Italic type indicates book titles, emphasis, or placeholder variables for which you supply particular values.

monospace

Monospace type indicates commands within a paragraph, URLs, code in examples, text that appears on the screen, or text that you enter.

1 Technical Changes and Enhancements

Technical changes and enhancements made to Oracle Coherence. Oracle updates the release notes periodically after the software release. This document is accurate at the time of publication.

This chapter includes the following sections:

- Download and Install the Latest Software Patch

- New and Improved Coherence Data Grid Functionality

- Oracle Coherence for Java

- Oracle Coherence for .NET

- Oracle Coherence for C++

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.

To download and install the latest software 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 is the industry's leading distributed in-memory data grid product. This release contains many new features that help reduce complexity, ease configuration, and accelerate time to market of scalable solutions.

New and Improved for 12.2.1.2.0

- Custom Federation Participants – Custom participants allow applications to federate data to multiple non-Coherence end-points or resources. For example, cache data can be federated to a database, message bus, log file, and so on. Custom participants are implemented as event interceptors and are configured as part of a federation topology. For more information, see "Federating Events to Custom Participants" in Administering Oracle Coherence.

- HotCache Enhancements – Coherence includes new HotCache functionality. The functionality includes:

- HotCache JPA properties – JPA properties can be used to configure HotCache behavior. For more information, see "Configuring HotCache JPA Properties" in Integrating Oracle Coherence.

- Warming Caches – HotCache can be used to warm caches by loading an initial dataset. For more information, see "Warming Caches with HotCache" in Integrating Oracle Coherence.

- Support for Oracle SDO_GEOMETRY and XMLType types – Oracle-specific data types that are supported by EclipseLink can be used by HotCache. For more information, see "Support for Oracle Data Types" in Integrating Oracle Coherence.

New and Improved for 12.2.1.1.0

- Dynamic Active Persistence Quorum Policy – The dynamic recovery quorum policy is used with active persistence and automatically configures the persistence recovery quorum based on a predefined algorithm. For more information, see "Using the Dynamic Recovery Quorum Policy" in Administering Oracle Coherence.

- Simplified Federation Participant Configuration – An address port is no longer required when configuring Federation participants. For more information, see "Defining Federation Participants" in Administering Oracle Coherence.

- Federation Support for Read-Through Caching – Cache entries that are loaded into a cache using a CacheStore implementation can now be federated across clusters. For more information, see "Plugging in a Cache Store Implementation" in Developing Applications with Oracle Coherence.

- Updated Federation Management – The DestinationMBean MBean now includes management information for replicateAll operations. For more information, see "DestinationMBean" in Managing Oracle Coherence.

- Federating HTTP Sessions – HTTP Session caches can now be federated. For more information, see "Federated Session Caches" in Administering HTTP Session Management with Oracle Coherence*Web.

- Disabling Federation – Federated caching can be disabled for specific caches. For more information, see "Excluding Caches from Being Federated" in Administering Oracle Coherence.

- Coherence Session API – The Coherence Session API provides applications with a new way to get a reference to a NamedCache instance. For more information, see "Getting a Cache Instance" in Developing Applications with Oracle Coherence.

- HTTP Acceptor Management – Management information is now provided for proxy servers and includes the number of connections across each proxy server and the total messages that were sent and received. Management attributes are included on the ConnectionManagerMBean MBean and are viewable on the Proxy HTTP Report and the HTTP Servers tab in the Coherence-JVisualVM Plug-in. For more information, see "Understanding the Proxy HTTP Report" in Managing Oracle Coherence.

- Two Member Partition Assignment – The default partition assignment strategy now uses an active-passive distribution algorithm for clusters with only two storage-enabled members. The algorithm provides optimal distribution for SEOne use cases. For more information, see "Changing the Partition Distribution Strategy" in Developing Applications with Oracle Coherence.

- Simplified Persistence and Federation in WebLogic Server – Persistence and federation can now be configured in the WebLogic Server Administration Console or using WebLogic Server MBeans. For more information, see "Configuring Cache Persistence" and "Configuring Cache Federation", respectively in Administering Clusters for Oracle WebLogic Server.

- Zero Down-Time Support – Coherence Applications that are deployed in WebLogic Server can now participate in zero down-time patching. For more information, see the options argument in "Using WLST to Initiate and Monitor Workflows" in Administering Zero Downtime Patching Workflows.

- IBM WebSphere Liberty Support – Coherence*Web supports IBM WebSphere Liberty 8.5 and higher. Support for all other IBM WebSphere versions has been removed. For more information, see "Supported Web Containers" in Administering HTTP Session Management with Oracle Coherence*Web.

New and Improved for 12.2.1.0.0

- Persistence – Coherence persistence is a set of tools and technologies that manage the persistence and recovery of Coherence distributed caches. Cached data is persisted so that it can be quickly recovered after a catastrophic failure or after a cluster restart due to planned maintenance. For more information, see "Persisting Caches" in Administering Oracle Coherence.

- Federated Caching – Federated caching replicates and synchronizes cache data across multiple geographically dispersed clusters. Cached data is replicated across clusters to provide redundancy, off-site backup, and multiple points of access for application users in different geographical locations. For more information, see "Replicating Caches Across Clusters" in Administering Oracle Coherence.

- Security Enhancements – Coherence includes new security functionality. The functionality includes:

- Audit logs – Audit logs are used to record user access to cluster operations. For more information, see "Enable Security Audit Logs" in Securing Oracle Coherence.

- Access control authorization – Access control authorization allows applications to define their own authorization logic to limit access to cluster operations. For more information, see "Authorizing Access to Server-Side Operations" in Securing Oracle Coherence.

- Additional JAAS permissions – JAAS permissions protect various parts of the Coherence API using the Java Security Manager. For more information, see "Programmatically Specifying Local Permissions" in Securing Oracle Coherence.

- SSL Protocols and Cipher Suites – An SSL socket provider can be configured to control the use of potentially weak ciphers or specific protocol versions. For more information, see "Controlling Cipher Suites and Protocol Version Usage" in Securing Oracle Coherence.

- Support for Java 8 Features – The Coherence API has been updated so that you can use programming features that were introduced in the Java 8 release. The features include lambda, streams, and default methods. These features provide ease of use and flexibility when performing data grid operations. For more information, see "Support for Java 8 Features" in Developing Applications with Oracle Coherence.

- Support for Generics – Java Generics provide compile and runtime type checking together with compile type-inference. The Coherence API has been refactored to support Java Generics. In addition, types can be explicitly configured as part of the NamedCache API. For more information, see "Support for Generics" in Developing Applications with Oracle Coherence.

- Cluster Port and Address Management – Port and address selection has been changed to simplify cluster management and to allow the sharing of cluster ports and addresses among multiple clusters. For most use cases, ports and addresses do not need to be explicitly set.

- Coherence port selection has been simplified to facilitate port management. Coherence now includes a common cluster port that is used for multicast communication, well known addresses, and extend proxies that are using the name service. In addition, unicast ports are automatically assigned. For more information, see "Setting Up a Cluster" in Developing Applications with Oracle Coherence and "Configuring Extend Proxies" in Developing Remote Clients for Oracle Coherence.

- Coherence address selection has been simplified to facilitate address management. For unicast communication, Coherence automatically selects a routable IP with the highest MTU for computers that have multiple IPs or NICs. For well known addresses, Coherence selects the IP which is routable to the IPs on the WKA list. In addition, Coherence can now automatically resolve IP addresses (at runtime) that are associated with a DNS name. Well known addresses and proxy addresses can be stored in a DNS server and centrally managed and updated in real time. For more information, see "Setting Up a Cluster" in Developing Applications with Oracle Coherence.

- Multitenancy – Coherence applications that are deployed using managed Coherence servers can take full advantage of the density and operational efficiencies that are provided by Weblogic Server Multitenant. Coherence features include: isolating caches across domain partitions, sharing caches across domain partitions, and tooling support exposed through WLST and Fusion Middleware Control. For more information, see "Configuring Coherence" in Using WebLogic Server MT.

- Asynchronous NamedCache API – The AsyncNameCache interface allows cache operations to be completed in parallel and can improve throughput and result in more responsive user interfaces. For more information, see "Performing NameCache Operations Asynchronously" in Developing Applications with Oracle Coherence.

- Truncate Operation – The truncate method on the NamedCache interface clears a cache but does not raise any entry-level cache events. This new API significantly reduces the memory pressure on the server side and dramatically reduces the network consumption for caches with listeners and is especially beneficial for near caching.

- Sliding Expiry – Sliding expiry extends the expiry of cache entries that are being accessed. Sliding expiry is enabled by default for cache entries that are updated, but can also be enabled based on read operations and operations that are non-mutative. For more information, see "Capacity Planning" in Developing Applications with Oracle Coherence.

- Dynamic Management Mode – Dynamic management elects one of the nodes in the cluster to be the management node. This is the default management mode for managed Coherence servers. Cluster members no longer need to be explicitly configured for JMX management. For more information, see "Using Dynamic Management Mode" in Managing Oracle Coherence.

- Dynamic Thread Pools – All Coherence services use dynamically sized daemon thread pools. Dynamic thread pools are enabled by default and are configured for a service using the <thread-count-max> and <thread-count-min> elements when defining a cache scheme.

- Coherence-JVisualVM Plug-In – A new version of the Coherence-JVisualVM plug-in is available and includes new functionality. The functionality includes: reporting node state, displaying near cache statistics, displaying partition statistics, managing cache persistence, and managing federated caching. For more information, see "Using the Coherence-JVisualVM Plug-In" in Managing Oracle Coherence.

- Coherence CohQL – New functionality is included in Coherence CohQL. The functionality includes: support for loading GAR modules, support for WLS Multitenant, and support for cache persistence. For more information, see, "Using Coherence Query Language" in Developing Applications with Oracle Coherence.

- Server-Sent Events – Server-sent events allow Coherence REST applications to automatically receive cache events from the Coherence cluster. For more information, see "Using Server-Sent Events" in Developing Remote Clients for Oracle Coherence.

1.3 Oracle Coherence for Java

New features, improvements, and bug fixes added to Oracle Coherence for Java components.

Enhancements and Fixes for 12.2.1.2.0

- Added the setLocalOnly and isLocalOnly methods to the ChangeRecord interface to specify that a ChangeRecord object must not be federated.

- Added a ParticipantType attribute to the DestinationMBean and TopologyMBean MBeans.

- Added a listNonFederatedCaches operation to the FederationManagerMBean MBean that gets a list of the caches that belong to a Federated Cache service but are not being federated.

- Added a Member attribute to the DestinationMBean and OriginMBean MBeans.

- Added two new start operations to the FederationManagerMBean MBean: startWithNoBacklog, which clears the backlog before the start operation; and startWithSync, which performs a ReplicateAll operation to the destination after the start operation.

- Fixed a HotCache limitation where cache writes were always synthetic and prevented the federation of HotCache-refreshed caches. The use of synthetic cache writes can now be configured on a JPA entity class basis.

- Fixed an issue with HotCache where UPDATE operations performed on a primary key in the database were not reflected in a Coherence cache. When a database UPDATE operation involved other updates in addition to the primary key, then HotCache would only merge the non-primary key updates to the existing cache-entry and skip the updates to primary keys. This caused the cache to have incorrect data as compared to the database. The keys in the cache were old and obsolete as compared to the database primary keys.

- Fixed an issue with HotCache where a change to the primary key in a database row did not cause a cache refresh.

- Fixed an issue where a LicenseException exception was being thrown incorrectly when registering an *Extend MapListener implementation.

- Fixed an issue where a REST XML query for cache keys resulted in a collection of keys without a delimeter.

- Fixed an issue where a Coherence Partitioned Cache service process is terminated due to an unhandled exception when using more than one ContinuousQueryCache instance on the same cache.

- Fixed an issue where a license exception was being thrown in thread main due to licensing checks.

- Fixed an issue where releasing or destroying a cache with listeners that use an InKeySetFilter filter can result in an error.

- Fixed an issue where query related requests can yield incorrect result during a rolling restart.

- Fixed an issue with transactional concurrency.

- Fixed an issue resulting in the failure to remove a persistent snapshot.

- Fixed the isDestroyed and isReleased methods for a remote near cache and local cache.

- Fixed an issue where HTTP sessions are not saved when Coherence*Web is being used in PeopleSoft applications.

- Fixed an issue where the LRU eviction policy does not work in a standalone local cache.

- Fixed an issue with the BinaryEntry API where the synthetic flag is not always honored.

- Fixed an issue when using a large number of lambda invocations.

- Fixed an issue in the Coherence-JVisualVM Plug-in Server tab where the average request time field was showing the incorrect number of decimals.

- Fixed a HotCache issue where insert operations that represented updates to rows in materialized views were being ignored. HotCache can now be configured to honor redundant inserts on a JPA entity type basis.

- Fixed an issue where a deadlock may occur in an *Extend client when the connection to the proxy server is closed.

- Fixed an issue where entries that are enlisted by a MapTrigger implementation are not federated.

- Fixed the BufferManager API to avoid excessive native memory allocation.

- Fixed an issue that resulted in the false death detection of Coherence cluster members due to short network outages when using Windows TCP.

- Fixed an issue in CohQL where detailed error messages were being suppressed when persistence commands failed.

- Fixed a failure in the DaemonPool implementation that was triggered when the number of executed tasks exceeded 2,147,483,647.

- Fixed an issue where a partition distribution could get stuck due to an ownership conflict error.

- Fixed an issue in the Coherence-JVisualVM Plug-in where cache bytes can become negative when a unit-factor is configured within a cache configuration file.

- Fixed an issue where a Partitioned Cache service InvocationContext instance is set to a committed state prematurely when a deadlock occurs during the execution of the invokeAll method.

- Fixed an issue that can result in duplicate keys in an index map.

Enhancements and Fixes for 12.2.1.1.0

- Added size, isEmpty, clear, and containsKey methods to AsyncNamedCache.

- Added the ability for interceptors to see events from PreLoadRequests operations.

- Added the ReplicateAllPercentComplete, EstimatedReplicateAllRemainingTime, and ReplicateAllTotalTime attributes to DestinationMBean to monitor the replicateAll operation during federated caching.

- Added ChangeRecord.getEventType which can be used to obtain the FederatedChangeEvent type.

- Added the ability to specify a connection retry timeout for federation participants using the <connect-retry-timeout> element within the <participant> element.

- Added the ability to configure federation participant addresses without specifying a port.

- Added the ability to perform a FORCE RECOVERY operation using CohQL and JVisualVM when using the Dynamic Active Persistence Quorum Policy.

- Added federated cache replication support for entries loaded by read-through caching when the backing map is backed by a CacheStore implementation.

- Added FederatedPartitionEvent SYNCING and SYNCED events which can be used to track federated caching ReplicateAll operations.

- Added the ability to allow interceptors to receive events from entries that are loaded by read-through from get and getAll operations.

- Updated the minimum required JDK version for JVisualVM Plugin to JDK 7 Update 79 or JDK 8 Update 40.

- Updated the Coherence JVisualVM Plugin to use coherence. prefix instead of com.oracle.coherence. prefix for system properties.

- Updated the client-side NamedCache to throw an IllegalStateException when referencing a cache destroyed by another client.

- Increased the machine-name string length limit from 32 to 66 bytes.

- Fixed an issue where releasing or destroying a cache with listeners that use InKeySetFilter could yield an AssertionError error.

- Fixed a null pointer exception issue when calling BackingMapContext.getReadOnlyEntry for a newly enlisted entry.

- Fixed a near cache issue on a storage disabled node where the front map is not cleared upon backing map truncation.

- Fixed an issue with NamedCache.truncate to ensure it is executed as a silent operation on all ownership enabled nodes.

- Fixed a null pointer exception when an SSL definition is added inline in an operational configuration file.

- Fixed an issue where AsyncNamedCache.invoke and AsyncNamedCache.invokeAll do not propagate exceptions correctly.

- Fixed the toString method in AbstractHttpSessionModel to have proper checks so that exceptions are not thrown on non-standard use.

- Fixed a memory leak of SafeNamedCache for a client or proxy when repeatedly calling create and destroy on unique named caches.

- Fixed an issue where UnsupportedOperationException was being thrown while calling entry.setValue from an entry processor.

- Fixed a memory leak in ContinuousQueryCache.

- Fixed an issue with ContinuousQueryCache.release which may not unregister from the service and thus can not be reclaimed by the garbage collector.

- Fixed an issue with binary keys being decorated twice in rare scenarios.

- Fixed an issue where the Coherence JVisualVM Plugin is not using the Java logger correctly.

- Fixed an issue where ensureCache unnecessarily performs access.

- Fixed an issue where a connection hangs during SSL handshake by including the handshake within any configured connect timeout.

- Fixed an issue where an IndexOutOfBoundsException exception was being thrown on ChainedRequest modification.

- Fixed an issue where configured interceptors are not registered if the associated service scheme is referenced by a near cache.

- Fixed an issue where the page-duration element was not being recognized in a paged-external-scheme element definition.

- Fixed an issue that caused a hang during configuration processing due to a recursive macro value in a system property (that is, -Dtangosol.pof.enabled=$ Unknown macro: {tangosol.pof.enabled} ) where OS system property was not set.

- Fixed an issue with resolving Coherence configuration element names against system properties (that is, system property autostart will not override Coherence configuration element autostart).

- Fixed an issue where cache operations which do not change an Entry's value, such as cache store write-behind, could result in an UnsolicitedCommitEvent event.

- Fixed AsyncNamedCache operations to return empty collection instead of null.

- Fixed an issue where asynchronous ownership is requested by WLS SPI code for coherence web.

- Fixed an issue where the partitioned cache configuration and statistics MBeans for a cache are unregistered when the cache is closed. These are now unregistered when the cache is destroyed.

- Fixed an issue with the Coherence JVisualVM Plugin where the Machine tab and Load Average graph were blank when connected to a cluster using IBM JDK on AIX.

- Fixed an issue where the ReportTime column is missing in report-cache-size.xml report.

- Fixed an issue that caused unnecessary unregister MBean messages sent to a managed node after a cache is destroyed.

- Fixed an issue where using CohQL to query JSON data stored in the cache may return a local class incompatible error.

- Fixed an issue with transactional concurrency.

- Fixed an issue when submitting an AsynchronousEntryProcessor on a storage-enabled node while primary ownership is being changed.

Enhancements and Fixes for 12.2.1.0.0

- The read-write backing map now accelerates store and write operations for entries that are being evicted but that have not yet been written to the cache store.

- Added SamplingEventTransformer class that implements server-side event throttling.

- Added asynchronous NamedCache API support (AsyncNameCache interface).

- Added support for non-blocking invocable. The NonBlockingInvocable interface is designed to allow the invocation service thread to execute the corresponding task and get an invocation result without blocking.

- Added support for callbacks to asynchronous entry processors.

- Added support for streaming aggregation to reduce memory overhead and improve performance.

- Added support for the use of Java Generics.

- Added the <key-type> and <value-type> elements within the <cache-mapping> element to declare the types that are supported by a NamedCache cache.

- Added support for lambdas to the NamedCache API

- Added support for dynamic lambda execution.

- Added support for default Map methods introduced in Java 8 to the InvocableMap interface.

- Added the ability to rebuild index data structures asynchronously after a partition transfer or failover to significantly reduce the time to recovery.

- Added support for executing asynchronous aggregators.

- Added support in Elastic Data to use pure RAM Journal without overflowing to Flash.

- Improved near cache performance when using the present invalidation strategy.

- Added the ability to enforce filter evaluation order for array based filters (for example, AndFilter, AnyFilter).

- Enhanced CohQL so that it is possible to provide a custom value extractor (for example POFExtractors) to be used in CohQL queries.

- Added the truncate method to the NamedCache interface that is functionally equivalent to clear but doesn't raise any entry-level cache events. This new API significantly reduces the memory pressure on the server side and dramatically reduces the network consumption for caches with listeners and is especially beneficial for near caching.

- Added support for sliding expiry. The expiry of cache entries are extended upon read access.

- Cache entries are proactively evicted from a backing map after the cache expiry time is reached and no longer require a cache operation to initiate the eviction.

- Fixed inconsistent duplicate event interceptor registration behavior when using name and identifier.

- Fixed a problem causing a slow memory leak for map listeners that receive local-only (in-process) events.

- Fixed an issue where repeated calls to NamedCache operations (create, write and destroy) cause Storage instance leak.

- Fixed the inability to determine the number of tasks waiting to be executed (ServiceMBean.EventBacklog) on the EventDispatcher thread, or the total number of tasks executed (ServiceMBean.EventCount).

- Fixed an issue where the NamedCache.lock(key, -1) call does not wait until the lock is available.

- Fixed an issue where the addIndex method that is run in a non-synchronized thread gave the wrong results for a replicated cache.

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

- Fixed an issue with invoking the GuardSupport.heartbeat method during execution of post commit live events.

- Fixed an issue with the use of expiry or eviction together with high load causes an AssertionException exception or deadlock.

- Fixed an issue where near cache event interceptors that are defined in a cache configuration file are not registered when using the ExtensibleConfigurableCacheFactory class.

- Fixed an issue that caused asynchronous entry processors to be deferred after a service is suspended and resumed.

- Fixed an issue with ConfigurableCacheMap methods returning incorrect values when using an ObservableSplittingBackingCache instance.

- Fixed an issue with the UpdaterProcessor class that could cause CacheStore, BinaryEntryStore, and Listener instances to miss entry updates.

- Fixed an issue where a backing map listener does not process events immediately and can result in a stale backup value to be returned.

- Fixed an issue where precommit transaction events (COMMITTING) show entries that have not changed.

- Fixed an issue where the front map of a near cache does not get cleared when the back cache is destroyed.

- Fixed an issue where the front cache of a near cache is not updated after all storage nodes are restarted.

- Added an ability to call MBeanServer remotely.

- Added a new dynamic management mode that elects one of the nodes in the cluster to be the management node.

- Added an attribute called IndexTotalUnits in the StorageManagerMBean.

- Improved index size accuracy.

- Add the ability to pass report file and report group XML as a string when using ReporterMBean operations.

- Fixed an issue where the ClusterMBean.logClusterState method call is not generating thread dumps if the extendedmbeanname system property is set to true.

- Fixed a bug where a value set for the <default-domain-name> element in an operational override configuration file was being ignored.

- The default unicast listener address is derived from the Well Known Address (WKA) list when available, selecting a local IP on the same subnet as the WKA addresses.

- The WKA lists can be represented using a single hostname where DNS has been configured to return a list of IPs.

- Coherence uses port 7574 as the default cluster port for multicast communication as well as for the Name Service. Unicast ports are automatically selected.

- Multiple clusters can now share a cluster port and Multicast or WKA address. For most use cases, there is no reason to change the cluster port, or multicast address.

- Added an ability to authorize access to cache data

- Added the ability to capture audit logs to record user access to clustered data.

- Added additional JAAS permissions to protect various parts of the Coherence API using the Java Security Manager.

- Added the ability to configure an SSL socket provider to control the use of potentially weak ciphers or specific protocol versions.

- The Proxy service now binds to the same address as the Name service.

- Coherence*Extend clients can be redirected by a proxy server that is at its connection limit.

- Added Guardian support to the NameService interface to auto-restart the acceptor.

- Added support for server-sent events to Coherence REST.

- The <key-class> and <value-class> elements can either be defined within the <resource> element in the REST configuration file or within the <cache-mapping> element in the cache configuration file.

- Added support for Coherence*Extend clients to use JCache.

- Added support for Jetty HTTP server to Coherence REST.

- Oracle Traffic Director (OTD) can be used to load balance Coherence*Extend connections.

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

- Fixed an issue which could cause the proxy server TcpProcessor thread to get stuck in a CPU busy loop.

- Removed the ConnectionManager MBean from the name service.

- Fixed a concurrent access issue with UUIDs.

- The <connect-timeout> element has been removed from the <tcp-initiator> element. It is defined in the <initiator-config> element instead.

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

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

- Added a new HTTP session reaping mechanism that uses entry processors to increase performance when deleting sessions.

- Added the ability to have HTTP session caches replicated across federated clusters.

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

- Added support for Java 8 Date and Time API to POF.

- Added support for optional types to the PofReader and PofWriter interfaces.

- Fixed an issue with the POF configuration generator not allowing directories with spaces as a root directory of class files.

- Fixed a POF serialization issue for negative dates with nonzero subseconds.

- Coherence JCache POF ids were moved from 700-799 in previous releases to 610-699 in order to avoid collisions with transaction POF ids.

- Coherence system property names no longer require the tangosol prefix.

- The <port-auto-adjust> element has been changed to support either a boolean value or an upper bound on the port range.

- Added support for enabling or disabling specified SSL protocols.

- Added the ability to use system properties for element values in configuration files. The syntax is:

${system.property default_value}

- Fixed an issue with the partitioned setting of the backing map. When explicitly set to false, it was also setting the in-memory backup partitioned setting to false.

- Fixed an issue where resources containing # character in filename or path failed to load.

- Added a new dynamic management mode that elects one of the nodes in the cluster to be the management node. This is the default management mode for managed Coherence servers.

- A GAR file can reference shared libraries.

- A GAR file can be deployed across multiple domain partitions and used by all tenants. Isolation is provided at the domain partition level and is transparent to the application.

- Added the ability override cache properties for each domain partition.

- Added the ability to allow all domain partitions in a cluster to share caches.

- Added the ability to use JCache with managed Coherence servers.

- The coherence REST library (coherence-rest.jar) is located on the WebLogic Server classpath by default and does not need to be packaged and deployed as part of an application.

- Fixed an issue where internal session attribute names are returned without stipping the InternalWLSAttribute prefix.

- The MBeanServerFinder interface has a new method to return the JMXServiceURL value for the MBean server.

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

- Added support for log4j 2.

- Fixed an issue with Windows command scripts that fail to handle JAVA_HOME path containing spaces and parenthesis.

1.4 Oracle Coherence for .NET

New features, improvements, and bug fixes added to Oracle Coherence for .NET components.

Enhancements and Fixes for 12.2.1.2.0

- Fixed an issue with the .NET serialization of surrogate pairs where java.io.UTFDataFormatException was being thrown.

- Fixed an issue where differing locales between a POF client and the cluster caused problems with decimals in .NET.

- Fixed an issue where a deadlock may occur in an *Extend client when the connection to the proxy server is closed.

- Fixed an issue that resulted in the false death detection of Coherence cluster members due to short network outages when using Windows TCP.

Enhancements and Fixes for 12.2.1.1.0

- Fixed a memory leak in ContinuousQueryCache.

- Fixed an issue with ContinuousQueryCache.release which may not unregister from the service and thus can not be reclaimed by the garbage collector.

- Fixed a concurrent access issue on CacheFactory methods.

- Fixed an issue where attributes that exceed the SplitSessionModel minimum size may require a retry or delay before access by the client.

- Fixed .csproj files for the .NET examples bundled in the Java install to target .NET framework 4.0.

Enhancements and Fixes for 12.2.1.0.0

- .NET clients can now configure POF configuration files in the cache configuration file rather than the application configuration file. Note that a custom serializer must now implement a constructor which initializes the <init-params> of the <serializer> element in the cache configuration file.

- The default connect time out value is consistent across platforms.

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

- The <connect-timeout> element has been removed from the <tcp-initiator> element. It is defined in the <initiator-config> element instead.

- Fixed an issue with client read and write lock acquisition.

- Fixed an issue where the SynchronizedDictionary.AcquireWriteLock method may hide thread interrupts.

- Fixed a concurrent access issue with UUIDs.

- Added support for optional types to the PofReader and PofWriter interfaces.

- Fixed an issue in the ValueChangeEventFilter class to correctly extract the value used by the filter.

- Fixed an issue where SimpleMapIndex instances that use key-based extractors are very slow.

- Fixed an issue where the front cache of a near cache is not updated after all storage nodes are restarted.

- Cache entries are proactively evicted from a backing map after the cache expiry time is reached and no longer require a cache operation to initiate the eviction.

- Coherence system property names no longer require the tangosol prefix.

- Added the ability to use system properties for element values in configuration files. The syntax is:

${system.property default_value}

1.5 Oracle Coherence for C++

New features, improvements, and bug fixes added to Oracle Coherence for C++ components.

Enhancements and Fixes for 12.2.1.2.0

- Added the ConnectionException.hpp header file to make connection exceptions public.

- Fixed an issue with client-side NamedCache reference handling where intermittent network failures caused a Cache service to restart and inactive NamedCache references to be released.

- Fixed an issue in the SafeNamedCache class that caused a memory leak when repeatedly creating and destroying a unique NamedCache instance.

- Fixed an issue where a deadlock may occur in an *Extend client when the connection to the proxy server is closed.

- Fixed an issue where a memory leak occurs if an attempt to connect to a proxy server fails or a proxy server connection is lost.

- Fixed an issue that resulted in the false death detection of Coherence cluster members due to short network outages when using Windows TCP.

- Fixed and issue where the CacheFactory::shutdown member function may hang if Coherence services are subject-scoped.

- Fixed an issue where constructors and deconstructors of statics may be called more than once on Solaris.

- Fixed an issue where the ClassBasedHeapAnalyzer class may deadlock on initialization.

Enhancements and Fixes for 12.2.1.1.0

- Fixed a memory leak in ContinuousQueryCache.

- Fixed an issue with ContinuousQueryCache.release which may not unregister from the service thus can not be reclaimed by the garbage collector.

- Fixed an issue whereby LimitFilter with PofExtractor was throwing an UnsupportedOperationException exception.

- Fixed an issue where C++ Extend clients incorrectly validated UTF8 strings.

Enhancements and Fixes for 12.2.1.0.0

- Added support for STLport on all Solaris distributions.

- Added support for C++11.

- Added support for Windows 64 bit BackTrace.

- Added a Thread::isAlive method.

- Added new methods to the coherence::util::Map interface, as per the Java 1.8 JDK additions. These methods implement the defaults but can be overridden. See the API documentation for coherence::util::Map for more information.

- Added property tangosol.coherence.heap.logging to enable logging details about the thread local memory allocator hit and miss rate.

- Changed FinalView InKeySetFilter.f_vSetKeys to MemberView m_vSetKeys as InKeySetFilter::ensureConverted requires that m_vSetKeys be modifiable.

- The <connect-timeout> element has been removed from the <tcp-initiator> element. It is defined in the <initiator-config> element instead.

- The Object::toStream method has been deprecated in favor of Object::toString.

- The default value for connect timeout is now consistent across platforms.

- Fixed an issue with getting debug stack traces.

- Fixed an issue where TreeMap::put returns the new value instead of the old value.

- Fixed an issue with strict-aliasing compilation warnings that occurred from the use of the -O3 optimization option.

- Fixed an issue with the memory allocator always running with heap padding diagnostics enabled.

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

- Fixed a serialization buffer allocation performance issue.

- Fixed a concurrent access issue with UUIDs.

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

- Fixed an issue in the ValueChangeEventFilter class to correctly extract the value used by the filter.

- Added support for outputting managed objects to std::wostream.

- Fixed an issue where SimpleMapIndex instances that use key-based extractors are very slow.

- Fixed an issue where the front cache of a near cache is not updated after all storage nodes are restarted.

- Cache entries are proactively evicted from a backing map after the cache expiry time is reached and no longer require a cache operation to initiate the eviction.

- Coherence system property names no longer require the tangosol prefix.

- Added the ability to use system properties for element values in configuration files. The syntax is:

${system.property default_value}

2 Known Problems and Workarounds

known problems at the time of release.

This chapter includes the following sections:

- Changing the Partition Count When Using Active Persistence

- Inconsistent Data in Federated Caches During Snapshot Recovery

- Impact of Generics

- Support for JVisualVM Plugin

2.1 Changing the Partition Count When Using Active Persistence

The partition count cannot be changed when using active persistence. If you change a services partition count, then on restart of the services all active data is moved to the persistence trash and must be recovered after the original partition count is restored. Data that is persisted can only be recovered to services running with the same partition count.

Ensure that the partition count is not modified if active persistence is being used. If the partition count is changed, then a message similar to the following is displayed when the services are started:

<Warning> (thread=DistributedCache:DistributedCachePersistence, member=1):
Failed to recover partition 0 from SafeBerkeleyDBStore(...); partition-count
mismatch 501(persisted) != 277(service); reinstate persistent store from
trash once validation errors have been resolved

The message indicates that the change in the partition-count is not supported and the current active data has been copied to the trash directory. To recover the data:

1. Shutdown the entire cluster.

2. Remove the current active directory contents for the cluster and service affected on each cluster member.

3. Copy (recursively) the contents of the trash directory for each service to the active directory.

4. Restore the partition count to the original value.

5. Restart the cluster.

2.2 Inconsistent Data in Federated Caches During Snapshot Recovery

There is a known issue that can result in inconsistent data when using federated caching together with cache persistence. Currently, a recovered snapshot of a service is not propagated to federated clusters. The cached data on the originating cluster is recovered, but the cache data on the destination cluster may still contain the cached data that was present prior to the recovery. Support for this use case is scheduled for the next patch release.

2.3 Impact of Generics

- Care should be taken to ensure that federated caches across a federation are configured to use the same types as no runtime-type-checking is performed between clusters in a federation.

- Care should be taken to ensure that recoverable caches are consistently configured to use the same types during restarts as no runtime-type-checking is performed.

2.4 Support for JVisualVM Plugin

The Coherence JvisualVM Plugin is supported for Coherence 3.7.1.X and above. Using the plugin to connect to older clusters is not supported.

3 Deprecated and Desupported Features

A listing of features that have been deprecated and desupported.

This chapter includes the following sections:

- Deprecated Features

- Desupported Features

3.1 Deprecated Features

Coherence features that are deprecated.

- BACKUP CACHE and RESTORE CACHE

- Managed Coherence Server MBean Attributes

- Coherence*Web Container Support

- ActiveCache (active-cache.jar)

- Thread Count

- Specifying Ports in the WKA List

- Specifying tangosol in System Properties

- TopLink Implementations

- Object::toStream Deprecated

- ParallelAwareAggregator

- Remote Addresses

3.1.1 BACKUP CACHE and RESTORE CACHE

The BACKUP CACHE and RESTORE CACHE commands in CohQL are deprecated. A new set of snapshot commands has been provided for use with the new the persistence feature. For details, see "Persisting Cache Data to Disk" in Developing Applications with Oracle Coherence.

3.1.2 Managed Coherence Server MBean Attributes

The following MBean attributes are deprecated in Managed Coherence Server:

- CoherenceClusterParamsBean.UnicastListenPort

- CoherenceClusterParamsBean.UnicastPortAutoAdjust

- CoherenceClusterParamsBean.MulticastListenPort

- CoherenceClusterWellKnownAddressBean.ListenPort

The following deprecated MBean attribute is removed:

- CoherenceClusterParamsBean.UnicastListenAddress

3.1.3 Coherence*Web Container Support

Coherence*Web no longer supports the following web containers: Apache Tomcat 5.5.n, Apache Tomcat 6.0.n, Caucho Resin 3.1.n, IBM WebSphere 5.n, IBM WebSphere 6.n, IBM WebSphere 7.n, Sun GlassFish 2.n, Sun Application Server 8.n, Oracle OC4J 10.1.3.n, Oracle OC4J 10.1.2.n, Oracle GlassFish 3.n, Oracle GlassFish 4.n, Jetty 6.1.n, Jetty 5.1.n, JBoss Application Server. Applications that require Coherence HTTP session management must be migrated to use a supported web container version. For details, See Administering HTTP Session Management with Oracle Coherence*Web.

3.1.4 ActiveCache (active-cache.jar)

ActiveCache (active-cache.jar) has been deprecated. ActiveCache can still be used with applications that have been developed to run on older versions of WebLogic Server.

ActiveCache functionality has been replaced by Managed Coherence Servers. For more information on Managed Coherence Servers, see Oracle Fusion Middleware Developing Oracle Coherence Applications for Oracle WebLogic Server.

3.1.5 Thread Count

The <thread-count> element is deprecated. Use the <thread-count-min> and <thread-count-max> elements instead.

3.1.6 Specifying Ports in the WKA List

The functionality to specify ports in the WKA list is deprecated as of the of the 12.2.1 release. Support for this feature will be removed in a future release.

3.1.7 Specifying tangosol in System Properties

Coherence system property names no longer require the tangosol prefix. For example, the system property tangosol.coherence.distributed.localstorage can now be written as coherence.distributed.localstorage. System properties that only contained the tangosol prefix now use the coherence prefix. For example, the system property tangosol.pof.enabled can now be written as coherence.pof.enabled. The changes are also applicable to Unix-based environments. For example TangosolCoherenceCacheConfig can be written as CoherenceCacheConfig.

System properties that include the tangosol prefix are still supported; however, support may be removed in a future release.

3.1.8 TopLink Implementations

The TopLinkCacheLoader and TopLinkCacheStore implementations are deprecated as of the of the 12.2.1 release.

3.1.9 Object::toStream Deprecated

The Object::toStream method has been deprecated. Applications should use the Object::toString method instead.

3.1.10 ParallelAwareAggregator

The ParallelAwareAggregator interface has been deprecated and should no longer be used. Applications should use the StreamingAggregator interface to implement custom aggregators. For details, see "Performing Data Grid Aggregation Using Streams" in Developing Applications with Oracle Coherence.

3.1.11 Remote Addresses

The <remote-addresses> element, within the <participant> element, that is used to configure federation cluster participants in an operational configuration file is deprecated. Use the <name-service-addresses> element instead.

3.2 Desupported Features

This section describes features that have been removed in this release.

- Encryption Network Filters

3.2.1 Encryption Network Filters

Encryption network filters, which were deprecated in Coherence 3.7, have been removed and are no longer supported as of the 12c (12.2.1) release. TCMP inter-cluster and *Extend TCP connections should be secured using SSL instead. The following APIs have been removed:

- com.tangosol.net.security.AbstractEncryptionFilter.java

- com.tangosol.net.security.AsymmetricEncryptionFilter.java

- com.tangosol.net.security.BlockCipherInputStream.java

- com.tangosol.net.security.BlockCipherOutputStream.java

- com.tangosol.net.security.ClusterEncryptionFilter.java

- com.tangosol.net.security.PasswordBasedEncryptionFilter.java

- com.tangosol.net.security.SymmetricEncryptionFilter.java

4 Documentation Errata

The documentation errata lists any corrections to the Oracle Coherence documentation.

The Coherence documentation can be found at the following URL:

http://docs.oracle.com/en/middleware/

There are currently no corrections to the Oracle Coherence documentation.

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2018, Oracle and/or its affiliates. All rights reserved.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

Pre-General Availability Draft Documentation Notice

If this document is in public or private pre-General Availability status:

This documentation is in pre-General Availability status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

Private Pre-General Availability Draft Documentation Notice

If this document is in private pre-General Availability status:

The information contained in this document is for informational sharing purposes only and should be considered in your capacity as a customer advisory board member or pursuant to your pre-General Availability trial agreement only. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in this document remains at the sole discretion of Oracle.

This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this confidential material is subject to the terms and conditions of your Oracle Master Agreement, Oracle License and Services Agreement, Oracle PartnerNetwork Agreement, Oracle distribution agreement, or other license agreement which has been executed by you and Oracle and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.