This is the Coherence CE v24.09 release.
Requirements:
- Java 17 or higher
- Some features will work only on Java 21 or higher
Major New Features in Coherence CE 24.09
Other New Features and Enhancements in Coherence CE 24.09
Coherence CE 24.09 is now compatible with both Helidon 3.x and Helidon 4.x.
COH-30940
Added newValueExtractor
factory methods to thecom.tangosol.util.Extractors
class.COH-30800
Narrowed down the return type of factory methods inExtractors
class to eliminate the need for casting of created extractor instances.COH-30794
Narrowed down the return type of factory methods inProcessors
class to eliminate the need for casting of created processor instances.COH-30793
Narrowed down the return type of factory methods inAggregators
class to eliminate the need for casting of created aggregator instances.COH-30743
Introduced a distributed paged queue that does not have the 2GB size limit of the simple Coherence queue.COH-30731
AddedCollectionExtractor
which enables projection of values within a collection using a nestedValueExtractor
.COH-30715
Added a debug system propertycoherence.debug.operational.config
that when set totrue
, causes Coherence to dump the stack of the thread that loads the Coherence operational config to standard out.COH-30690
Enhanced thecom.tangosol.net.Coherence
classmain
method to be consistent withDefaultCacheServer
main
method.COH-30627
Added support for high-performance (raw) serialization of primitive arrays.COH-30582
AddedPofWriter.writeByteArray
overload that takes array offset and length as arguments.COH-30581
Added support for serializingProtobuf
messages using POF.COH-30576
Replaced usage of Jandex for portable type indexing and discovery with a built-in solution, in order to eliminate runtime dependency on Jandex and its index format.COH-30534
Added an element to the service list indicating the persistence mode in use.COH-30448
Improved a warning log to describe the potential communication problem due to packet delivery failures more clear and correct.COH-30435
Changed the default of system propertycoherence.metrics.legacy.names
fromtrue
tofalse
to remove thevendor:
prefix from generated Prometheus metrics as the default.COH-30388
Fixed rolling upgrade for distributed lambdas by removing production mode defaulting to static lambdas.COH-30385
Narrowed down the return type of factory methods inFilters
class to eliminate the need for casting of created filter instances.COH-30322
Marked generated__evolvableHolder$
field as@JsonbTransient
, to avoid its serialization into JSON output when using JSONB to serialize portable types.COH-30308
Added a new append method to theNamedQueue
API to add an element to a queue and return a numeric identifier for the added element.COH-30158
Added Listener Key Count, Listener Filter Count and Listener Registration Count to report-cache-storage.xml.COH-30148
Added support to allow the definition of custom executors for the remote executor service via XML configuration.COH-30142
Added support for advanced task orchestration across multiple JVMs via theRemoteExecutor
API.COH-30058
Reduced memory allocation when creating aPartitionSet
instance for a single partition, to improve memory profile of parallel queries against caches with high partition count.COH-30039
Thecoherence-json
module's POF configuration file is now auto discoverable when using POF serialization.COH-30005
Added the ability to use the Helidon 4 in place of Netty when using the Coherence Java gRPC client.COH-29969
Added support for use of Java records as portable types.COH-29934
Added support for macro parameter expansion to<cdi:bean/>
content expression.COH-29861
Added support for Java records toUniversalExtractor
.COH-29791
Enhanced POF deserialization error messages to show the ID of the field being deserialized.COH-29784
Improved the cleanup process of persistence files to handle case when data is deleted followed by a period with no cache activity.COH-29778
Added support for JDK 21 VirtualThread-per-task executors to the Coherence Executor Service.COH-29757
Reduced the overhead of key set manipulation when applying indexes.COH-29737
Improved deserialization performance of very large byte arrays (> 100MB).COH-29676
Improved the process of loadingmanagement-http-config.xml
so that the file can be overridden by placing anothermanagement-http-config.xml
file in the class path beforecoherence.jar
.COH-29598
Improved the process of loadingmanagement-config.xml
so that the file can be overridden by placing anothermanagement-config.xml
file in the class path or module path beforecoherence.jar
.COH-28552
Improved the filter reordering logic for composite filters.COH-28463
Added the ability to configure distributed service partition count using two system properties:coherence.service.partitions
andcoherence.service.<distributed-service>.partitions
.COH-27956
Added support for the use of final fields within portable types.COH-25846
Updated server-side JavaScript integration to work with GraalVM for JDK 21 and GraalVM Truffle 23.1.4 libraries.COH-24445
Added cache backed implementations ofjava.util.Queue
andDeque
, andjava.util.concurrent BlockingQueue
andBlockingDeque
.COH-17089
Made the opening of persistent stores gradual. Underlying store files, one per partition, will only be created when they start containing data.
For more information see the Core Improvements documentation.
Breaking changes in Coherence CE 24.09
The following lists subset of bugs fixed that are considered "breaking" changes:
COH-30699
Fixed an issue where theid
property of the@PortableType
annotation was not mandatory and could lead to issues with serialization compatibility and schema evolvability. This is a breaking change and requires a unique 'id' attribute to be set on all usages of the annotation.
Bugs Fixed since Coherence CE 24.03
COH-31000
Updated Protocol Buffers (protobuf) version to 3.25.5.COH-30969
Fixed an issue whereInFilter
queries could take longer to return.COH-30950
Fix equality and hashCode forUniversalExtractor
(UE), used by indexing, when UE name is a JavaBean accessor but missing method suffix, "()", , i.e.UE("getProperty")
is now equivalent toUE("getProperty()")
andReflectionExtractor("getProperty")
.COH-30939
Fixed a thread safety issue when callingremoveAll
onSafeHashMap
.COH-30928
Updated the executor servicesCronTask
to allow the user to configure whether or not the wrapped task should be cloned upon each successful execution or not where as previously, it always performed the clone which prevents the task from maintaining internal state.COH-30916
Fixed an issue where performing a rolling upgrade would cause aNullPointerException
and make the cache service restart.COH-30907
Fixed an issue that prevented the use of additional filters when usingNamedOrchestration
to orchestrate tasks to the executor service.COH-30845
Fixed an issue where entry processor invocations may never be re-sent when re-distribution takes place at the same time.COH-30841
DeprecatedImmutableArrayList.getSortedSet
for removal. Both this method and theSortedSet
interface implementation will be removed fromImmutableArrayList
in a future release.COH-30830
Fixed an issue whereContinuousQueryCache
did not handleNamedCacheDeactivationListener
registrations correctly. This can cause issues if using View Scheme on Extend or gRPC Proxy servers.COH-30828
Fixed an issue where the history file was not getting saved to disk for CohQL query console & Coherence console when using jline.jar.COH-30804
Enhanced the service startup messages for Partitioned, Invocation and Proxy services to display the serializer used.COH-30782
Fixed an issue when using Coherence with Helidon 4.x where you could get filter statusREJECTED
message.COH-30762
Fixed an issue where a rolling upgrade was not possible in some cases when using view caches due to a version compatability issue.COH-30735
Bumped the Helidon 3 version to 3.2.9.COH-30646
Fixed regression in CohQLquery.sh
by adding new command line argument "-v" to indicate that the CohQL statement should be echo'ed to output. Also fixed unhandled JLine exceptions for EOF and user interruption.COH-30570
Added an additional property (pofIndexPackages
) to the Coherence Gradle plugin to limit the Java packages to scan (by providing 1 or more package names) when indexing@PortableType
-annotated classes.COH-30539
Fixed an issue where theforceRecovery
operation was not present in themanagement-swagger.json
for Management over RESTCOH-30533
Fixed an issue where specifying a wrong value for persistence mode would be silently ignored and default toon-demand
.COH-30472
Fixed an issue where deserialization of reflection based extractors may be rejected when running in WebLogic.COH-30438
Fixed an issue that resulted in unnecessary deserialization of entry values during write-behind.COH-30431
Removed an unnecessary stack trace that is logged when an Extend connection is closed.COH-30427
Fixed an issue where version compatibility checks could fail when parsing CE versions which could manifest as serialization compatibility exceptions when doing a rolling upgrade.COH-30426
Added the ability to reference property names of JSON data and Java Record in CohQL. Note that older .NET and C++ extend clients using QueryHelper need to be upgraded to work with this change.COH-30420
Fixed an issue where new channels are not allocated to topic subscribers if a publisher increases the channel count. This particularly applies when performing a cluster restart using active persistence.COH-30323
Fixed an issue where write-delay setting onReadWriteBackingMap
wasn't honored after the initial delay.COH-30319
Fixed an issue where the Coherence health API could report ready before all services had started.COH-30298
Added defensive guards against OpenTracing tracer implementations that don't conform to the specification.COH-30247
Fixed an issue where thecoherence.distributed.partitioncount
system property was not honored when using the default cache configuration.COH-30209
Fixed an issue where rolling restart with persistence done concurrently by 2 or more nodes may result in the cache service going into theORPHANED
state and require a cluster restart.COH-30178
Fixed an issue which could prevent tasks from being executed byRemoteExecutors
.COH-30157
Fixed an issue where the cluster service may be stopped in very rare circumstances due to an unhandledUnsupportedOperationException
.COH-30132
Fixed an issue where aClassCastException
orNullPointerException
may be thrown byInvocableMap
during service config processing in some very rare scenarios.COH-30067
Fixed an issue whereCacheMappingRegistry.register()
orSchemeMappingRegistry.register()
will throw aNullPointerException
if the registry is not initialized.COH-30023
Fixed an issue where, in certain cases, remote invocation using anArrayFilter
would use excessive CPU.COH-30006
Fixed an issue where topic subscribers could become disconnected and hang attempting to reconnect.COH-29996
Fixed an issue where the expiry delay was ignored when calling put on a cache using the gRPC API with a Helidon 4 gRPC proxy server.COH-29822
Fixed an issue where XSD schema validation may fail in coherence-operational-config.xsd when using JDK22 or greater and setting-Djdk.xml.jdkcatalog.resolve=strict
.COH-29808
Updated Netty to version 4.1.108.Final.COH-29765
Fixed an issue where multiple long running tasks may prevent other tasks from being executed by concurrent Executors.COH-29725
Fixed an issue where the executor service would recreate a failed-over task upon re-execution after a yield.COH-29647
Fixed an issue where the executor service would incorrectly increment the tasks-in-progress count when re-executing a yielded task.COH-29570
Fixed serialization of supplemental (4-byte) UTF-8 characters when serializing strings.COH-29179
Fixed an issue where the service thread would not heartbeat when all daemon pool threads are stuck.COH-28721
Fixed an issue where near cache key lock(s) were not being properly released when the back map is truncated and the near cache is using thePRESENT
invalidation strategy. The observable failure is thread(s) hung waiting for near cache key locks that are never released.COH-26683
Fixed an issue whereMessageBus
would heartbeat at double the configured interval.COH-25080
Fixed an issue where persistence files could become corrupted and hamper recovery in the event of an ungraceful shutdown.COH-24703
Removed an unnecessary stack trace that is logged when a member leaves a cluster.COH-23555
Fixed an issue where near, view, and continuous query caches may contain stale data after snapshot recovery.