diff --git a/docs/version0.43.md b/docs/version0.43.md index 66b64ea285..c1b9c2aefb 100644 --- a/docs/version0.43.md +++ b/docs/version0.43.md @@ -29,6 +29,7 @@ The following new features and notable changes since version 0.42.0 are included - [Compiler changes for Linux®](#compiler-changes-for-linux) - [Change in the large page memory allocation behavior](#change-in-the-large-page-memory-allocation-behavior) - ![Start of content that applies to Java 11 (LTS) and later](cr/java11plus.png) [New `-XX:[+|-]CRIUSecProvider` option added](#new-xx-criusecprovider-option-added) ![End of content that applies to Java 11 (LTS) and later](cr/java_close.png) +- [New `-XX:Compatibility` option added](#new-xxcompatibility-option-added) ## Features and changes @@ -64,6 +65,14 @@ You can now control the use of `CRIUSECProvider` during the checkpoint phase wit For more information, see [`-XX:[+|-]CRIUSecProvider`](xxcriusecprovider.md). ![End of content that applies to Java 11 (LTS) and later](cr/java_close.png) +### New `-XX:Compatibility` option added + +The Elasticsearch application was facing incompatibility issues when it was running on OpenJ9 and required many workarounds. With the `-XX:Compatibility` option, you can enable a compatibility mode that OpenJ9 can run in to support applications that require specific capabilities. + +In release 0.43.0, the compatibility mode is provided for the Elasticsearch application only. + +For more information, see [`-XX:Compatibility`](xxcompatibility.md). + ## Known problems and full release information To see known problems and a complete list of changes between Eclipse OpenJ9 v0.42.0 and v0.43.0 releases, see the [Release notes](https://github.com/eclipse-openj9/openj9/blob/master/doc/release-notes/0.43/0.43.md). diff --git a/docs/xxcompatibility.md b/docs/xxcompatibility.md new file mode 100644 index 0000000000..ffb08f2556 --- /dev/null +++ b/docs/xxcompatibility.md @@ -0,0 +1,47 @@ + + +# -XX:Compatibility + +This option enables a compatibility mode that OpenJ9 can run in to support applications that require specific capabilities. For example, support for applications that rely on vendor-specific command line arguments or to make available unspecified APIs. + +## Syntax + + -XX:Compatibility= + +Where, `` is the application for which the compatibility mode is provided. The `` is case-insensitive. + +In release 0.43.0, the compatibility mode is provided for the Elasticsearch application only. + + -XX:Compatibility=Elasticsearch + +If the `-XX:Compatibility` option is specified more than once, or with a mode other than "Elasticsearch" (not case-sensitive), the VM fails to start. + +Although this option is available in all OpenJDK versions, the Elasticsearch application requires OpenJDK version 17 or later. + +## Explanation + +The Elasticsearch application was facing incompatibility issues when it was running on OpenJ9 and required many workarounds. With the `Elasticsearch` compatibility mode, OpenJ9 accepts and supports HotSpot-specific options or APIs that enhance compatibility to run the Elasticsearch application. + + + diff --git a/mkdocs.yml b/mkdocs.yml index bdc75f93aa..97213fba34 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -170,6 +170,7 @@ nav: - "-Xrs:onRestore / -Xrs:syncOnRestore" : xrsonrestoresynconrestore.md - "-Xshareclasses:disableOnRestore" : xshareclassesdisableonrestore.md - "-XX:CheckpointGCThreads" : xxcheckpointgcthread.md + - "-XX:Compatibility" : xxcompatibility.md - "-XX:[+|-]CRIURestoreNonPortableMode" : xxcriurestorenonportablemode.md - "-XX:[+|-]CRIUSecProvider" : xxcriusecprovider.md - "-XX:[+|-]EnableCRIUSupport" : xxenablecriusupport.md