Configuring the Java Version on your Groundplex

In this article

Overview

The Snaplex Linux installers include a bundled OpenJDK-based JRE 11 distribution. You can follow the instructions in this document to change the Java version on your Linux and Windows Snaplex instances. You might need to change the Java version to update the JRE in order to receive security and functionality fixes in the newer JRE distribution. Even if your organization has a license for a different JRE distribution, you can use the procedure in this article to configure the Groundplex to use the said JRE.

We support only Java 11-based distributions; Java 12 or newer versions are not yet certified by SnapLogic. Java 8 or earlier versions are not supported. 

JRE Version Update Process

To update the JRE version on your Groundplex node:

  1. Start the upgrade process on your development and testing Orgs.

  2. Verify the functioning of your Pipelines in the development Orgs and then update the JRE version on the production Orgs.

  3. Switch the nodes that you want to upgrade to Maintenance mode. This allows running Pipelines to complete executing before the upgrade is done.
  • When upgrading multiple nodes, we recommend that you upgrade one node at a time.
  • New Pipelines are not sent to the JCC node in Maintenance mode.

Updating JRE Version by Installing a New SnapLogic RPM/DEB on Linux

To update the JRE version:

  1. On the Linux terminal, stop the existing JCC node by running the following command:
    $ sudo /opt/snaplogic/bin/jcc.sh stop

  2. Download the new Snaplex installer and install the Groundplex, running the RPM, DEB, or Docker installers as appropriate.
    • For RPM systems, run the following command:
      rpm -U --force snaplogic-snaplex.rpm
    • For DEB systems, run  the following command:
      dpkg -i snaplogic-snaplex.deb
    • For Docker, stop the existing container and start a new container using the latest image.

  3. Start the JCC node by running the following command:
    $ sudo /opt/snaplogic/bin/jcc.sh start.

The Snaplex will start with the JRE bundled along with the SnapLogic installer. 

Configuring a Custom JRE Version

The Snaplex installer defaults to openjdk-11.0.10+9-jre. To update to a JRE installed at another location, create a file /etc/sysconfig/jcc with SL_JAVA_HOME pointing to the desired JRE location.

To create the /etc/sysconfig directory and /etc/sysconfig/jcc file as well as grant read permissions to all users, run the following command:

sudo mkdir -p /etc/sysconfig; sudo sh -c "echo 'export SL_JAVA_HOME=/opt/snaplogic/pkgs/jdk-11.0.10+9-jre/' >> /etc/sysconfig/jcc"

Change SL_JAVA_HOME in the above command to point to the custom JRE location as needed.

Updating Java on Windows

To update the Java version on Windows: 

  1. In the Windows command prompt, stop the JCC node by running the following command:
    c:\opt\snaplogic\bin\jcc.bat stop

    This step is required if there is an existing Snaplex installation on the node.

  2. Download the new installer Zip and extract the contents to the following location:
     c:\opt\snaplogic

  3. Download and install the OpenJDK-based Java 11 installer.

  4. Update the c:\opt\snaplogic\bin\jcc.bat file and update the JAVA_HOME to point to the location of the Java 11 installation.

  5. Start the JCC nodes:
    1. If you are running the Snaplex as a service, run the following commands: 
      jcc.bat remove_service
      jcc.bat install_service

    2. Run the following command:

      c:\opt\snaplogic\bin\jcc.bat start

After you configure Java, go to the SnapLogic Dashboard and verify that the Additional Information dropdown list displays the Java version as 11.0.10_9 or higher.

Snaplex Node Customizations 

When updating the Java version on a node or when adding a new node to a Snaplex, any customizations done on the node will have to be manually copied over, including the following:

  • Custom trust store entries: The JRE uses a cacerts trust store file at <JAVA_HOME>/lib/security/cacerts that has the trusted root certificates. If there are Snap endpoints that are using certificates signed by other providers, then the providers need to be added to the cacerts file. The update needs to be done every time the JRE version is updated or when a new node is being provisioned.
  • ulimit changes: If the file and process limits are customized, then the changes have to be applied again when a new node is being provisioned to the Snaplex.
  • Custom binaries: Some Snaps require customer binaries to be installed on the Snaplex node, like native libraries for SAP and bulk loading tools for database Snaps. These changes have to be applied manually when a new Snaplex node is being provisioned.

If you are using configuration management tools like Puppet/Chef/Ansible, then making these changes in the IAC configuration ensures that new node provisioning is automated.