Appendix B - Java Version Change
Platform Container
To change 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/ECSA 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.
ECSAs can be disconnected from the Platform. This allows workflows and services to continue processing throughout the Java change procedure. The downtime of the workflows will be minimized to the restart of the ECSAs.
However, there are certain prerequisites that need to be fulfilled in order to do this:
- The traffic protocol must support failover.
- You cannot keep Standalone Execution Contexts running when there have been changes in the storage models for Aggregation, Inter Workflow, Usage Management, PCRF, or Routing Control.
For information about changes in the storage models, see the Release Notes.
For more details about these prerequisites, see the System Administrator's Guide.
To disconnect the ECSAs, run the following command:$ mzsh mzadmin/<password> disconnect <ecsa_name> ...
Note!
Disconnected Standalone Execution Contexts may still attempt to contact the Platform. These attempts will fail and case warning messages (No open connection to <Platform host>) in the
<ecsa name>.log
. Ignore these warning messages.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 EC and ECSAs that have not been disconnected.
$ mzsh shutdown Platform <ec_name>
If you have set the environment variable JAVA_HOME, change it to the install path of the new JDK. Se the variable in both in the current shell and in 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/open-jdk"
Set JAVA_HOME in
MZ_HOME/bin/mzsh
to the install patth of the new JDK.Example - Setting JAVA_HOME in mzsh
$ mzsh topo env --update-java-home "/usr/lib/jvm/open-jdk"
Start the Platform and EC/ECSAs.
$ mzsh startup Platform <ec_name>
- Start the real-time workflows.
- Enable the workflow groups.
Execution Container
To change 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. Se the variable in both in the current shell and in 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/open-jdk"
Set JAVA_HOME in
MZ_HOME/bin/mzsh
to the install patth of the new JDK.Example - Setting JAVA_HOME in mzsh
$ mzsh topo env --update-java-home "/usr/lib/jvm/open-jdk"
Restart the disconnected ECSAs and start the real-time workflows. In order to minimize downtime, restart the disconnected ECSAs one by one.
To stop running real-time workflows and restart an ECSA:
$ mzsh shutdown <ecsa name> $ mzsh startup -f <ecsa name>
Start the workflows on the restarted ECSAs.
Client
To change the Java version for the Desktop:
- Shut down all connected Desktops.
- Uninstall the existing JDK or JRE.
- Install the new JDK or JRE.
Set the environment variable
JAVA_HOME
to the install path of the new JDK/JRE.