4 Bugs Fixed and Enhancements in this Release
This chapter includes the following sections:
Oracle Coherence for Java
New features, improvements, and bug fixes added to Oracle Coherence for Java components.
Enhancements and Fixes for 12.2.1.4.0
-
The default context-path for Coherence REST API was changed from the too general
/
to/api
. REST applications explicitly configuringresource-config.context-path
are not impacted by this change. -
Fixed an issue where a number of consecutive failures in sending federation messages can cause federation to go to the
ERROR
state. -
Fixed a rare
NullPointerException
where an aggregation request is submitted concurrent to the shutting down of the associated service. -
Fixed an issue where
LimitFilter
returns missing entries (specifically), and incorrect sorted pages. The fix also removed the requirement for balanced cache data distribution across all storage nodes of the cluster. -
Added the ability to create Continuous Query cache-based
views
programmatically. See documentation for more information onview-scheme
. -
Fixed an issue where federation may throw a
NullPointerException
when attempting to federate data from a cache which has subsequently been destroyed. -
Fixed an issue where there may be cache data loss in a persistent local cache backed by a
bdb-store-manager
when the client is abnormally terminated. -
Fixed an issue where
PartitionedService
fails to start withjava.lang.IllegalArgumentException
if thread count is1
and active persistence is enabled. -
Fixed an issue where the federation partition stream identifier may not be transferred (in some rare scenarios) when partition ownership changes, which may result in some changes not being federated to destination clusters.
-
Enhanced
MBeanServerProxy
introducing JMX notification support providing notification support without relying on JMX. -
Added
TraceLogging
attribute to theFederationManagerMBean
to control whether federation trace logging is enabled (true
) or not (false
). A corresponding system property,coherence.federation.trace.logging
was also added. By default, federation trace logging is disabled. -
Fixed an issue where the service thread was blocked by cache pruning performed on a worker thread.
-
Enhanced federation to support applying federated changes at destination partition clusters as synthetic updates using the
<federate-apply-synthetic>
element in the<backing-map-scheme>
of the federation service. Synthetic updates do not triggerCacheStore.load()
operations. Note that in multi-hop federation topologies, where a participant is both an origin and destination, synthetic updates will not be federated to other destination participants. -
Fixed an issue where federation may not transition to the
ERROR
state if the member is attempting to connect to the destination cluster. -
Improved reporter performance for larger clusters containing a large number of remote MBeans.
-
Fixed an issue where federation may not transition to the
ERROR
state if the member is disconnected from the destination cluster. -
Fixed an issue where an
OutOfMemoryError
may be thrown duringMessageBus
connection migration. -
Fixed an issue where an
EventDispatcher
may timeout for events with long runningEventInterceptor
s. -
Added the ability to specify federation's
<journalcache-highunits>
using a memory based value (for example, 500MB). -
Added the ability to specify a backing map to use for federation's internal caches via the
<journalcache-backing-map-scheme>
element. -
Fixed an issue where cache entries larger than elastic data's maximum value size may not be federated.
-
Fixed an issue where a
NullPointerException
may be thrown fromAbstractSocketBus$Connection.wakeup
. -
Fixed an issue where
BinaryEntry.getExpiry()
returns an incorrect value. -
Added
view()
method toNamedCache
interface which allows the creation ofContinuousQueryCache
instances from an existingNamedCache
. -
Fixed an issue where partition distribution can hang during cluster start or rolling restart.
-
Fixed an issue where a federation destination may be stuck in the
DISCONNECTING
state in some rare scenarios. -
Fixed an issue where federation may not transition to
PAUSED
,STOPPED
, orERROR
states in some rare scenarios. -
Changed the federation
replicateAll
operation so that an exception will be thrown if federation is in a state (for example,STOPPED
orERROR
) where thereplicateAll
cannot be executed correctly. -
Fixed an issue where federation was incorrectly reporting a gap in records received on the destination cluster.
-
Added support of
PasswordProvider
interface to allow user to provide their own password provider implementation. -
Fixed an issue where federation
ReplicateAll
operations on a large cache service could result inOutOfMemoryErrors
on the destination cluster. -
Fixed an issue where a federation central topology hub participant may fail to federate data to leaf participants.
-
Reduced memory used by federation when collecting cache entries to send to remote participants.
-
Fixed an issue where the federation
<participant/batch-size>
setting was being ignored in most circumstances. -
Added additional logging information for the case where an exception is thrown while preparing or sending cache entries to a destination federation participant.
-
Removed a protected method (
checkRoleQuorum
) inClusterQuorumPolicy
to support site based quorum policy. -
Fixed the return type of the
Filters
helper class by widening toFilter
. -
Fixed an issue where distributed cache service could be terminated by
java.lang.Error: Maximum lock count exceeded
. -
Fixed an issue where cache service is terminated by the exception thrown from custom
CacheStore
during index rebuild. -
Fixed a performance issue for query with
InFilter
. -
Fixed an issue where errors from Persistence operations were not being returned and displayed in JVisualVM.
-
Added the ability to take a snapshot of all services using Management over REST.
-
Fixed an issue where operations on off-heap cache using Berkley DB could fail with
Partial failure
after service restart. -
Enhanced Coherence reports (
cache-effectiveness
andservice
) to include additional attributes. -
Fixed a problem on
OutOfMemoryError
handling in<paged-external-scheme>
when the overflow map is full to avoid deadlock among the involved threads. -
Fixed an issue where a deadlock on a cache resource may occur when using federation.
-
Enhanced the Coherence*Web context parameter
coherence-session-debug-logging-filter
to enter an includes mode as opposed to the default exclude mode (see documentation for syntax). -
Added a preconfigured system property override,
coherence.flashjournal.dir
, to specify the directory to use for FlashJournal files. -
Fixed a race condition that could cause a task being executed by the
DaemonPool
to be incorrectly canceled while the guardian is in recovery mode. -
Fixed an issue where entries marked for expiration may not be evicted from the cache if a partition transfer is currently in progress.
-
Integrated a new release of Grizzly to resolve issues with Java11+TLSv1.3.
-
Fixed an issue in NearCache where the front map can have stale values if synthetic updates occur to previously fetched entries.
-
Fixed a journal storage leak which can occur when releasing backups of elastic data during cluster partition redistribution.
-
Fixed a timing issue with persistence and dynamic quorum when nodes are first starting.
-
Added message bus related statistics to
ClusterNodeMBean
. -
Introduced a minor performance improvement to the
MessageBus
buffer allocation manager. -
Improved logic for closing SSL connections to prevent possible cpu-bound loop while the channel is closing.
-
Removed an unnecessary thread dump action and log entry that is initiated when a member aborts joining a service in the cluster.
-
Removed IMB implementation. IMB message bus configuration now defaults to TMB implementation.
-
Fixed a logical deadlock where index rebuilding could block indefinitely waiting for a backing map event to be processed while other threads are blocked waiting for the indices to be available.
-
Reduced memory pressure when issuing an on-demand persistence snapshot.
-
Fixed an issue where a session may not be reaped when HTTP servlet requests are not completed due to an error (for example, broken pipe).
-
Disabled automatic heapdumps which were added previously for debugging purposes.
-
Fixed an issue where partition distribution takes significantly longer due to a large number of caches.
-
Fixed an issue when recovering a cache interleaves with a cache destroy.
-
Fixed an issue where partition transfer does not complete to concurrent index rebuild.
-
Fixed an intermittent issue in Coherence*Web where an
IOException
may be thrown while theSessionReaperDaemon
is running. -
Fixed an issue where a near-scheme with
autostart
set totrue
backed by afederated-scheme
results in aClassCastException
on startup. -
JLine is upgraded to version 2.14.6.
-
Fixed an issue where Coherence*Extend listener registrations may result in the
ProxyService
being restarted. -
Fixed an issue where a
NullPointerException
may be thrown on a federationstartWithNoBacklog
operation. -
Fixed an issue where a TMB connection could be stuck repeatedly migrating itself.
-
Fixed an issue where a service can be terminated with
ClassCastException
if index creation takes a long time to complete. -
Fixed an issue when using GARs where a custom
ConfigurableCacheFactory
without aconfigure(XmlElement)
method throws an exception. -
Fixed an issue where an unhandled
RequestTimeoutException
onChannel
close may occur on a CPU or memory constrained Coherence*Extend client or proxy server. -
Fixed an issue where
EOFException
is thrown when reading fromPersistenceStore
. -
Fixed an issue where
UnsupportedOperationException
is thrown when a cache operation is invoked before cache storage is fully initialized. -
Added cyclic redundancy check (CRC) for message delivery to detect message corruption on wire. The feature is disabled by default and can be enabled by
-Dcom.oracle.common.internal.net.socketbus.SocketBusDriver.crc=true
. -
Fixed an issue where
MapListener
events were being issued for non mutating requests, such as aget
request onNearCache
. -
Fixed an issue where dispatching a
MEMBER_LEFT
event can lead to aNullPointerException
. -
Added the capability to specify federation direct connect addresses using the
<remote-addresses>
element. This feature can be used in deployments where it may not be possible to use the preferred address lookup mechanism of connecting to theNameService
running on the Coherence cluster port. -
Fixed an issue where calling truncate on a
NearCache
can result in its MBean being unregistered, and will remain so even after theNearCache
is repopulated. -
Fixed an issue where an
IllegalStateException
may be logged when federation changes cannot be applied due to quorum not being met. -
Added an ability to describe a cluster quorum based on the number of distinct machines or sites.
-
Fixed an issue where a federated update may be skipped and not applied at destination participants in some rare scenarios.
Enhancements and Fixes for 12.2.1.3.0
-
Added MBean support to collect heap dumps from
ClusterMBean
andClusterNodeMBean
. -
Added an
active-active
topology element to the topology-definitions for defining federation active-active topologies. -
Added the
ContainerPassThroughResourceConfig
class to allow JSON passthrough (using REST) to work correctly when in a container environment such as WebLogic Server. -
Added support for listen addresses to be configured with non-local NAT addresses.
-
Added automatic detection of persistence targeting remote file-systems and auto-enabled
je.log.useODSYNC
to ensure database integrity in such environments. -
Coherence command line utilities with
JLine
support now useJLine2
. -
Fixed an issue where having multiple local IPs on the same subnet can prevent nodes from joining the cluster.
-
Fixed an issue where accessing a cache after a service restart fails with an
IllegalStateException
in managed Coherence servers. -
Fixed a memory leak issue in the bulk key listener (de)registration which impacts
NearCaches
. -
Fixed an issue where setting an expiry against an entry in
SerializationCache
may be ignored, thus potentially affecting the uses of an external-scheme. -
Fixed an issue where extra persistence configuration parameters are not propagated to the persistence implementation.
-
Fixed an issue where using a class-scheme in the cache configuration containing both scheme-name element and custom namespace element causes the custom namespace element to be ignored.
-
Fixed an issue when a service is abruptly restarted and attempted to be accessed via a
MapListener
. -
Fixed an issue where ConcurrentModificationException during the addIndex operation causes client requests and server failover to hang.
-
Fixed an issue where two node clusters use the standard partition distribution strategy instead of the SE One active/standby mode, by default.
-
Fixed an issue where
NullPointerException
can be thrown during an addIndex operation. -
Fixed an issue where the partition distribution can be stuck due to an unreconcilable ownership conflict
-
Fixed an issue where IllegalArgumentException can be thrown when destroying a cache concurrently with partition transfer.
-
Fixed an issue where the IllegalArgumentException with unknown extent identifier can be thrown when using federation with persistence.
-
Fixed an issue where the default operational configuration was being ignored instead of being handled hierarchically when a custom operational configuration was specified.
-
Fixed the performance of cache inserts and updates when there are multiple filter based event listeners.
-
Fixed an issue where the cache prune during redistribution can result in termination of the service.
-
Fixed an issue with DaemonPool where a failure is triggered when the number of executed tasks exceeded 2,147,483,647.
-
Fixed an issue where the expiry was inadvertently encoded causing an unexpected eviction to the backup and persistent copies.
-
Fixed an issue where a Coherence Java streams implementation can cause null results.
-
Fixed an issue where
ensureCache
called during recovery from persistence was resulting inNullPointerExceptions
. -
Fixed a regression where an EvictionPolicy calling a read method on the backing map can cause a stack overflow.
-
Fixed a performance issue with proxy nodes processing MemberLeft service notifications.
-
Fixed an issue where the federation replicateAllTotalTime and replicateAllPercentComplete values can be calculated correctly.
-
Fixed an issue where the initial state setting for a federation destination may not be used if storage disabled Coherence nodes are running prior to starting any storage enabled nodes
-
Fixed the persistence mode system property to be coherence.distributed.persistence-mode instead of coherence.distributed.persistence.mode. However, coherence.distributed.persistence-mode is still used for backward compatibility.
-
Fixed an issue where Coherence fails to start if a federation custom participant is defined without a corresponding interceptor. Coherence now starts and logs a warning message about the missing interceptor.
-
Fixed an issue where the ReplciateAllPercentComplete attribute in the DestinationMBean of a federated cache in some nodes may stay at zero.
-
Fixed an issue where the ephemeral port bindings to 65535 resulted in Address already in use BindExceptions.
-
Fixed an issue where running a cluster on machines with differing MTUs can result in a cluster failure.
-
Fixed an issue in which a WKA split brain results in high rate of heartbeat packets.
-
Fixed an issue in which mutating operations can cause the partitioned cache to deadlock.
-
Fixed an issue where a misconfigured *Extend client can throw a cryptic exception on proxy nodes.
-
Fixed an issue where the CacheService.isRunning method returns incorrect results for *Extend clients.
-
Fixed the federation thread names to follow the naming convention of the Coherence threads.
-
Fixed an issue where the federation local participant name cannot be changed on a ClusterService restart.
-
Fixed an issue in the federated scheme where the erase method of CacheStore is called incorrectly on entry expiration.
-
Fixed an issue where partial object queries were not working in Coherence REST when used in multiple applications.
-
Fixed an issue where the CacheMBean.Unit attribute returns an incorrect value for caches using Elastic Data.
-
Fixed an issue where creating persistence snapshots through Coherence command line tools is not possible.
-
Fixed an issue where the
list services
command fails to list the services in a GAR deployment. -
Fixed an issue where the SerializationMap.setBinaryStore method unnecessarily loads the values from the BinaryStore instance.
-
Fixed an issue where the pre-12.2.1.x version *Extend client fails to receive notifications of updates to NearCache entries.
-
Fixed an issue where the IllegalStateException is incorrectly thrown during the execution of InvokeAll method.
-
Fixed an issue where an archived persistence snapshot for a two node cluster fails to load.
-
Fixed an issue with the JVisualVM Plug-in where the right-click options on the Member and Services tab displays an error when connected to a managed Coherence server environment.
-
Fixed an issue in the JVisualVM Plug-in where a cache byte is negative when the
unit-factor
property is used within the cache configuration file. -
Fixed the description of
connect-timeout
default value. -
Fixed an issue where a Coherence services startup race condition could result in services deadlock.
-
Fixed an issue where the log message description of the PartitionedService was missing some fields which are present in other service types.
-
Fixed an issue where the BinaryStore of the SimpleSerializationMap is not disposed when releasing the cache.
-
Fixed an issue where a federation connection may not failover properly to another Coherence server.
-
Fixed an issue where a
NullPointerException
can be thrown under certain circumstances when processing JMX requests. -
Fixed an issue where a partition transferred to another member results in service restart due to delayed processing of a mutation.
-
Fixed an issue where client requests can hang with a service worker thread stuck on ensureIndexReady operation.
-
Fixed an issue where a PartitionedCache service can be incorrectly terminated with an AssertionError in a prepareBackupAllRequest operation.
-
Fixed an issue where a partition distribution can hang indefinitely.
-
Fixed an issue where a
NullPointerException
can be thrown during partition redistribution. -
Fixed an issue with the MBean unregistration time and improved it to no longer be proportional to the number of registered MBeans.
-
Fixed the description of the connect-timeout default value
-
Fixed an issue where a Coherence services startup race condition can result in services deadlock.
-
Removed access to disposed socket when an EventDispatcher logs an unhandled exception in OnMemberLeft.
-
Fixed the TopNAggregator results to appear in descending order. If an inverseComparator is used for LowestN then the TopNAggregator results appear in ascending order.
-
Updated the Coherence REST dependency versions. See the Coherence REST pom for details.
-
Fixed an issue where reestablishment of failed TMB connections can lead to connection stalls.
-
Fixed an issue where TMB based connections between members can stall.
-
Fixed an issue during unexpected TCP disconnects where the TMB is improved to allow automatic reconnects of the underlying TCP socket.
-
Fixed an issue where a Federation may throw an OutOfMemoryException in JournalRecordGCDaemon after recovering through active Persistence.
-
Fixed an issue where Cache MBeans were not un-registered from the MBean server when the Extended MBeans feature was enabled.
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 can 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
, andcontainsKey
methods toAsyncNamedCache
. -
Added the ability for interceptors to see events from
PreLoadRequests
operations. -
Added the
ReplicateAllPercentComplete
,EstimatedReplicateAllRemainingTime
, andReplicateAllTotalTime
attributes toDestinationMBean
to monitor thereplicateAll
operation during federated caching. -
Added
ChangeRecord.getEventType
which can be used to obtain theFederatedChangeEvent
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
andSYNCED
events which can be used to track federated cachingReplicateAll
operations. -
Added the ability to allow interceptors to receive events from entries that are loaded by read-through from
get
andgetAll
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 ofcom.oracle.coherence.
prefix for system properties. -
Updated the client-side
NamedCache
to throw anIllegalStateException
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
can yield anAssertionError
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
andAsyncNamedCache.invokeAll
do not propagate exceptions correctly. -
Fixed the
toString
method inAbstractHttpSessionModel
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 callingentry.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 onChainedRequest
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 apaged-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 elementautostart
). -
Fixed an issue where cache operations which do not change an Entry's value, such as cache store write-behind, can 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 inreport-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 aNamedCache
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 theInvocableMap
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 theNamedCache
interface that is functionally equivalent toclear
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
anddestroy
) causeStorage
instance leak. -
Fixed the inability to determine the number of tasks waiting to be executed (
ServiceMBean.EventBacklog
) on theEventDispatcher
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 anObservableSplittingBackingCache
instance. -
Fixed an issue with the
UpdaterProcessor
class that can causeCacheStore
,BinaryEntryStore
, andListener
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 theStorageManagerMBean
. -
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 theextendedmbeanname
system property is set totrue
. -
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 fromGenericPrincipal
.SimplePrincipal
uses theIdentity.Name
property to determine object equality. -
Fixed an issue which causes 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
andTime
API to POF. -
Added support for optional types to the
PofReader
andPofWriter
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 tofalse
, it was also setting the in-memory backup partitioned setting tofalse
. -
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 theJMXServiceURL
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.
Parent topic: Bugs Fixed and Enhancements in this Release
Oracle Coherence for .NET
New features, improvements, and bug fixes added to Oracle Coherence for .NET components.
Enhancements and Fixes for 12.2.1.4.0
-
Added the missing
<cluster-name>
element definition in thecache-config schema
definition. This element is defined as a child element of the<remote-cache-scheme>
and<remote-invocation-scheme>
elements. -
Added
view()
method toNamedCache
interface which allows the creation of local and filterable views. -
Fixed an issue where an unhandled
RequestTimeoutException
onChannel
close may occur on a CPU or memory constrained Coherence*Extend client or proxy server. -
Fixed an issue where
MapListener
events were being issued for non mutating requests, such as a get request, onNearCaches
.
Enhancements and Fixes for 12.2.1.3.0
-
Removed access to the disposed socket where the EventDispatcher logs an unhandled exception in the
OnMemberLeft
handler. -
Fixed an issue where Channel and Codecs had incomplete descriptions in log messages.
-
Fixed the description of the connect-timeout default value
-
Fixed an issue where using TopNAggregator on .NET local caches does not work.
-
Fixed the TopNAggregator results to appear in descending order. If an inverseComparator is used for LowestN then the TopNAggregator results appear in ascending order.
-
Fixed an issue with Member location information display and improved the Member ToString() output to closely match the display of Java.
-
Fixed an issue where implementations of various AbstractProcessor, AbstractInvocable, and AbstractAggregator methods to facilitate the .NET development of these type of classes.
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 fromGenericPrincipal
.SimplePrincipal
uses theIdentity.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
andPofWriter
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}
Parent topic: Bugs Fixed and Enhancements in this Release
Oracle Coherence for C++
New features, improvements, and bug fixes added to Oracle Coherence for C++ components.
Enhancements and Fixes for 12.2.1.4.0
-
Added
view()
method toNamedCache
interface which allows the creation of local and filterable views. -
Added support to Visual Studio 2019 for C++ clients. However, support for Visual Studio 2010 is stopped.
-
Fixed an issue where an unhandled
RequestTimeoutException
onChannel
close may occur on a CPU or memory constrained Coherence*Extend client or proxy server. -
Fixed an issue where
MapListener
events were being issued for non mutating requests, such as a get request, onNearCaches
.
Enhancements and Fixes for 12.2.1.3.0
-
Added COH_OPEN_NAMESPACE_ANON and COH_CLOSE_NAMESPACE_ANON macros to facilitate declaring Coherence managed classes in pseudo anonymous namespaces when using Visual Studio 2017.
-
Added C++ classes which were missing from the API documentation.
-
Added reverse and swap methods to the Collections and Arrays utility classes.
-
Fixed an issue where implementations of various AbstractProcessor, AbstractInvocable, and AbstractAggregator methods to facilitate the C++ development of these type of classes.
-
Fixed the description of the connect-timeout default value.
-
Fixed an issue where an *Extend connection can be closed with a WSA_IO_PENDING error.
-
Fixed the formatting of log messages to be similar to that of the Coherence Java log messages.
-
Fixed the TopNAggregator results to appear in descending order. If an inverseComparator is used for LowestN then the TopNAggregator results appear in ascending order.
-
Fixed an issue with Member location information display and improved the Member toString() output to closely match the display of Java.
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 an 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
withPofExtractor
was throwing anUnsupportedOperationException
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 forcoherence::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
toMemberView m_vSetKeys
asInKeySetFilter::ensureConverted
requires thatm_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 ofObject::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}
Parent topic: Bugs Fixed and Enhancements in this Release