3 Known Issues and Workarounds
This chapter includes the following sections:
mvn Dependency Convergence Failures with Jackson
Issue
Resolving dependency convergence warnings with jackson modules when using coherence management, metrics and/or rest.
A developer using mvn enforcer plugin with dependencyConvergence rule will observe a number of jackson dependency warnings when using coherence-management, coherence-metrics and/or coherence-rest dependencies. There are discrepancies on jackson module versions to use between coherence modules, jackson and jersey modules.
Sample warning:
[Warning] Dependency convergence error for com.fasterxml.jackson.core:jackson-databind:2.9.9.2 paths to dependency are: +-com.oracle.example-use:some-service:1.0-SNAPSHOT +-com.oracle.coherence:coherence-rest:12.2.1-4-0-74841 +-com.fasterxml.jackson.core:jackson-databind:2.9.9.2 and +-com.oracle.example-use:some-service:1.0-SNAPSHOT +-com.fasterxml.jackson.core:jackson-databind:2.9.9 and +-com.oracle.example-use:some-service:1.0-SNAPSHOT +-com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.9 +-com.fasterxml.jackson.core:jackson-databind:2.9.9
Workaround
To resolve these discrepancies in versions, add the following to your mvn pom.xml <dependencies> element.
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.9.2</version> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-base</artifactId> <version>2.9.9</version> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>2.9.9</version> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.22.4</version> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-base</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </exclusion> </exclusions> </dependency>
Note:
This workaround must only be used for Coherence 12.2.1.4.0. This issue will be corrected in the next patch.Parent topic: Known Issues and Workarounds
Changing the Partition Count When Using Active Persistence
Issue
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.
Workaround
To recover the data:
-
Shutdown the entire cluster.
-
Remove the current active directory contents for the cluster and service affected on each cluster member.
-
Copy (recursively) the contents of the trash directory for each service to the active directory.
-
Restore the partition count to the original value.
-
Restart the cluster.
Parent topic: Known Issues and Workarounds
Impact of Generics
When using generics with Federated Caching and Persistence, you must:
-
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.
-
Ensure that recoverable caches are consistently configured to use the same types during restarts as no runtime-type-checking is performed.
Parent topic: Known Issues and Workarounds
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.
Parent topic: Known Issues and Workarounds
Disable Inlining in Java Versions Greater than 8
When using Java versions greater than Java 8 (for examle, Java 11), one of the directives below should be provided as a JVM Option (on the command line). This step is to avoid a segmentation fault (SIGSEGV) that has been observed due to a compiler bug that is being worked on by the Java team.
Note:
Release 12.2.1.4 does not certify against versions above Java 8.-
-XX:CompileCommand=exclude,com/tangosol/coherence/component/util/daemon/queueProcessor/service/Grid.onInterval
-
-XX:-Inline
The first option will exclude the problematic method from being inlined by the compiler while the latter will disable inlining altogether.
Parent topic: Known Issues and Workarounds