Appendix B - Java Version Change
Platform Container
To change the Java version on the Platform Container:
Ensure that the memory settings for Java are set correctly in STR.
Platform Default settings when using an Oracle database:
$ mzsh topo set topo://container:<container>/pico:platform/obj:config.jvmargs \ 'xmx:["-Xmx1024M"] xms:["-Xms128M"] maxMetaspace:["-XX:MaxMetaspaceSize=256M"]
Default settings when using a Derby database:
$ mzsh topo set topo://container:<container>/pico:platform/obj:config.jvmargs \ 'xmx:["-Xmx1024M"] xms:["-Xms192"] maxMetaspace:["-XX:MaxMetaspaceSize=256M"]
EC Default settings:
$ mzsh topo set topo://container:<container>/pico:<pico-name>/obj:config.jvmargs \ 'xmx:["-Xmx256M"] xms:["-Xms64M"] maxMetaspace:["-XX:MaxMetaspaceSize=196M"] maxDirect:["-XX:MaxDirectMemorySize=4096M"] args : ["-server"]'
- Install the new JDK. Do not remove the old version.
Disable all workflow groups from the Execution Manager in Desktop, or by entering an mzsh command, for example:
$ mzsh mzadmin/<password> wfgroupdisable \*
Note!
If you use the
wfgroupdisable
command, make sure that you enable all system tasks again when you are done.- Stop all workflows that are not disconnected and let them finish execution.
Ensure that all users shut down any connected Desktops.
If you want to see which Desktops that are connected, you can use the following command:$ mzsh mzadmin/<password> pico -view
Note!
This command will also display other pico instances, such as Execution Contexts.
Shut down the Platform and all ECs.
$ mzsh shutdown Platform <ec_name>
If you have set the environment variable JAVA_HOME, change it to the install path of the new JDK. Set the variable in both the current shell and the login script. This is only required if you want to override the default value in the mzsh script.
Example - Setting JAVA_HOME in the shell
export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-17.0.6.0.9-0.3.ea.el8.x86_64"
Set JAVA_HOME in
MZ_HOME/bin/mzsh
to the install path of the new JDK.Example - Setting JAVA_HOME in mzsh
$ mzsh topo env --update-java-home "/usr/lib/jvm/java-17-openjdk-17.0.6.0.9-0.3.ea.el8.x86_64"
Start the Platform and ECs.
$ mzsh startup Platform <ec_name>
- Start the real-time workflows.
- Enable the workflow groups.
Execution Container
To change the Java version on an Execution Container:
- Install the new JDK. Do not remove the old version.
If you have set the environment variable JAVA_HOME, change it to the install path of the new JDK. Set the variable in both the current shell and the login script. This is only required if you want to override the default value in the mzsh script.
Example - Setting javahome
javahome="/usr/lib/jvm/java-17-openjdk-17.0.6.0.9-0.3.ea.el8.x86_64"
Set JAVA_HOME in
MZ_HOME/bin/mzsh
to the install path of the new JDK.Example - Setting JAVA_HOME in mzsh
$ mzsh topo env --update-java-home "/usr/lib/jvm/java-17-openjdk-17.0.6.0.9-0.3.ea.el8.x86_64"
Restart the ECs and Stop the real-time workflows. To minimize downtime, restart the ECs one by one.
To restart an EC:
$ mzsh shutdown <ec name> $ mzsh startup -f <ec name>
Start the workflows on the restarted ECs.
Legacy Desktop Client
To change the Java version for the Legacy Desktop:
- Shut down all connected Legacy Desktops.
- Uninstall the existing JDK or JRE.
- Install the new JDK or JRE.
Set the environment variable
JAVA_HOME
to the new JDK/JRE install path.