Coherence CE v23.09
This is the official Coherence CE v23.09 release.
Requirements:
- Java 17 or later
New Features in CE 23.09
- Virtual Threads Support
- Sorted Views
- Secured Production Mode
COH-28192
Enhanced the "closest" read-locator to allow reads from the current member.COH-28019
Added support for system propertycoherence.metrics.http.path
which can be used to specify the metrics context root path.COH-27708
Added operation onStorageManager
MBean
to get distributed cache total size.COH-27697
AddedNamedMap.isReady()
API which allows the caller to determine if a cache is ready to be used. For example, if a distributed cache service is active, but has no storage members,isReady()
would return false.COH-25882
AddedgetClusterDescription
,getServiceDescription
andgetNodeDescription
operations to the Cluster, Service and ClusterNode MBeans to retrieve details about a cluster, service and member.COH-25852
AddedclearCache
andtruncateCache
operations toStorageManagerMBean
For more information see the Core Improvements documentation.
Breaking changes in CE 23.09
The following lists subset of bugs fixed that are considered "breaking" changes:
COH-28237
Fixed an issue with the generics ofMapViewBuilder
andViewBuilder
that would prevent the proper use of themap()
function.MapViewBuilder
andViewBuilder
have had their class-level generics simplified to<K, V>
from<K, V_BACK, V_FRONT>
. Themap()
function has been changed to:public <U> ViewBuilder<K, U> map(ValueExtractor<? super V, ? extends U> mapper)
WhereU
represents the type of the extracted value. This change also necessitated similar changes to the generics ofNamedMap.view()
andNamedCache.view()
. These methods have also been simplified to<K, V>
from<K, V_BACK, V_FRONT>
. NOTE: This is a backwards-incompatible change, but will only have an impact during compilation.
Bugs fixed since Coherence CE 23.03
COH-28458
Fixed an issue whereJPMS
--add-exports java.management/sun.management=com.oracle.coherence
was required when usingBerkeley Database JE
database for storage, enabled bybdb-store-manager
, as documented in SectionUsing Java Modules to Build a Coherence Application
.COH-28400
Fixed an issue inPartitionedCache
that could result in multiple metrics-recorded gets against the backing map for a singleNearCache.get()
call.COH-28320
Fixed a potentialNullPointerException
when registering a topicMBean
COH-28319
Bumped theJLine
dependency version to 3.23.0.COH-28300
Added Helidon JEP-290 serialization configuration files to allow Coherence to work with Helidon.COH-28273
Fixed an issue where the/codeCache
management over REST endpoint is no longer supported.COH-28255
Removed deprecatedgRPC
session classes from the coherence-java-client module.COH-28237
Fixed an issue with the generics ofMapViewBuilder
andViewBuilder
that would prevent the proper use of themap()
function.MapViewBuilder
andViewBuilder
have had their class-level generics simplified to<K, V>
from<K, V_BACK, V_FRONT>
. Themap()
function has been changed to:public <U> ViewBuilder<K, U> map(ValueExtractor<? super V, ? extends U> mapper)
where U represents the type of the extracted value. This change also necessitated similar changes to the generics ofNamedMap.view()
andNamedCache.view()
. These methods have also been simplified to<K, V>
from<K, V_BACK, V_FRONT>
. NOTE: This is a backwards-incompatible change, but will only have an impact during compilation.COH-28166
Fixed an issue whereLifecycleEvent.DISPOSING
was not being emitted for the system ($SYS)ConfigurableCacheFactory
.COH-28130
Added an enhancement to allow the client auth mode to be configured for an SSL socket provider. Previously this behavior was fixed to "required" if a trust store was configured. The enhancement allows the mode to be "none", "wanted" or "required".COH-28065
Fixed an issue where Enums were not automatically discovered when enabling type discovery.COH-28060
Improved the efficiency of a number of the methods onAsyncNamedMap
andAsyncNamedCache
by eliminating unnecessary serialization or deserialization wherever possible.COH-28054
Fixed an issue where callingAsyncNamedCache.put()
ignored any expiry value configured for the cache, causing entries to never be expired.COH-28025
Addedservice-name
as an allowable child element ofnear-scheme
.COH-28010
BumpedNetty
version to 4.1.97.Final.COH-27984
Fixed an issue that would lead to a leak of a view cache service if the cluster service was restarted.COH-27983
Fixed an issue where near and local caches incorrectly share the same service name.COH-27975
Fixed an issue where deserialization ofOptional<Object>
fails withjava.lang.ClassNotFoundException
due to the incorrect ClassLoader being used.COH-27972
Fixed an issue where delayed service join may inadvertently start a DaemonPool even when DaemonPool is disabled.COH-27963
Added enhancement enabling specifying anExternalizableLiteSerializer
for anExternalizableLite
class using class annotation@ExternalizableType(serializer=ImplOfExternalizableLiteSerializer.class)
.COH-27924
Removed optionalMVEL
support by removing Mvel* classes from Coherence REST.COH-27922
Fixed a performance issue which can occur when a large number of cache entries expire at approximately the same time.COH-27859
Fixed an issue where automatic discovery of the CoherenceJSON
serializer at start-up could fail withJava 17
and above.COH-27849
Fixed a performance regression during StorageMBean
population caused by expensive collection of unique keys across index partitions, by removal of a Content attribute from a default (non-verbose)IndexInfo
string representation.COH-27455
Added<secured-production>
element in<cluster-config>
to allow user to configure Coherence to run in secured production mode.COH-27811
Refactored input handling of the Gradle Plugin in order to not cause a dependency issue with theJandex
plugin; also updated examples to useGradle 8.1.1
as the wrapper.COH-27812
Fixed an issue where the CoherencegRPC
proxy is not usable in clusters running in WebLogic Managed Coherence.COH-27804
Fixed an issue whereJPMS
--add-opens java.base/java.util=com.oracle.coherence
was required as documented in SectionUsing Java Modules to Build a Coherence Application
.COH-27803
Fixed an issue whereJPMS
--add-opens java.base/java.lang.invoke=com.oracle.coherence
was required as documented in SectionUsing Java Modules to Build a Coherence Application
. Note that any application package containing distributedlambdas
must be opened tomodule com.oracle.coherence
.COH-27715
Fixed an issue where callingAsyncNamedMap
values or entrySet methods with a Filter could fail to return all of the values or entries.COH-27695
Fixed an issue where disconnected topic subscribers may fail to automatically reconnect to a topic when the subscriber has uncompleted receive requests.COH-27680
Fixed an issue where the memory used by cache backing map entries is higher than it should be.COH-27677
Fixed an issue that incorrectly raises anAssertionException
when setting thecoherence.distributed.threads.min
system property when the property is applied to a service using the deprecated thread-count configuration that is configured with a smaller value.COH-27659
Fixed an issue where undeploying a GAR application may hang due to the underlying cache service being unable to gracefully shut down.COH-27558
Fixed an issue where recovering snapshots with indices would result in corrupted index contents.COH-27480
Fixed an issue where a topic publisher may attempt to publish to a channel before confirming that the channel count is correct across all the storage members, which will cause the publish request to fail and close the publisher.COH-27450
Fixed a performance regression introduced by theBinary.hashCode
change.COH-27405
Fixed an issue where the actual listen port was not being displayed for HTTP listeners which are configured to bind to port 0 (ephemeral).COH-27390
Enabled configuring lambdas serialization mode in the operational configuration by setting the<cluster-config/lambdas-serialization>
element to "static" or "dynamic".COH-27383
Bumped the integrated version ofASM
to 9.5.COH-27374
Fixed an issue that prevented the serialization/deserialization of lambdas withJDK 21
.COH-27342
Fixed an issue where a Coherence worker thread daemon pool may deadlock if the pool is stopped while a resize task is executing.COH-25991
Added a new Gradle plugin for POF serialization that instruments classes at build time (similar to the Coherence POF Maven plugin).COH-27283
Enhanced index support, as part of partitioning indices, to avoid index contents being stored more than necessary.COH-27337
Additional JMX attributes are now exposed as metrics on theSimpleStrategyMBean
.COH-27321
Fixed an issue with usingPersistenceToolsHelper.invokeOperationWithWait()
on slower machines, where an "Idle" condition may be falsely evaluated due to checking a persistence MBean attribute too early.COH-26992
Added system propertiescoherence.publisher.resend.interval
andcoherence.publisher.delivery.timeout
for setting the packet delivery<resend-milliseconds>
" and<timeout-milliseconds>
" element values.COH-26664
EnhancedDefaultServiceFailurePolicy.POLICY_EXIT_PROCESS
from halting the process to graceful exit, allowing registered shutdown listeners to run. The process is halted if graceful exit does not complete withincoherence.shutdown.timeout
duration.COH-25161
Fixed an issue where aConfigurableCacheFactorySession
would leak an event interceptor if constructed with an instance ofExtensibleConfigurableCacheFactory
.COH-24792
Removed the deprecated classOldCache
.COH-21066
Added an MBean operation and Management over REST endpoint to retrieve the Coherence Cluster configuration.