Appendix D - Java Version Change

This section describes how to replace the JDK and JRE products on an existing installation. For information about required third-party products Refer to System Requirements.

Platform Container

To change the Java version on the Platform Container:

  1. 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"]'

     

  2. Install the new JDK. Do not remove the old version.


  3. 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.

  4. Stop all workflows that are not disconnected and let them finish execution.

  5. 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.

  6. Shut down the Platform and all ECs.

    $ mzsh shutdown Platform <ec_name>
  7. 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"
  8. 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"
  9. Start the Platform and ECs.

    $ mzsh startup Platform <ec_name>
  10. Start the real-time workflows.

  11. Enable the workflow groups.


Execution Container

To change the Java version on an Execution Container:

  1. Install the new JDK. Do not remove the old version.

  2. 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"
  3. 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"
  4. 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>


  5. Start the workflows on the restarted ECs.

Legacy Desktop Client

To change the Java version for the Legacy Desktop:
 

  1. Shut down all connected Legacy Desktops.
     
  2. Uninstall the existing JDK or JRE.
     
  3. Install the new JDK or JRE.
     
  4. Set the environment variable JAVA_HOME to the new JDK/JRE install path.