You need to upgrade the Java Runtime Environment (JRE) used by EEM and iGateway to a newer minor version for security compliance.
When attempting to upgrade using symbolic links or configuration changes, the service may fail to start, or logs may show errors loading the JVM.
ERROR MESSAGE: "JVMLoader::loadJVM: unable to load jvm [ jvmpath: libjvm.so ] Error Code [0]"
SYMPTOMS:
iGateway service fails to start or load the JVM.
Error appears in igateway.log.
Symbolic links to the new JRE directory fail to work.
CONTEXT: This issue typically occurs when updating the embedded JRE to a newer release (e.g., 17.0.14 to 17.0.17) to address security vulnerabilities.
OS: Linux/Unix
Component: iGateway (S99igateway), EEM 12.6.X, 12.7.X
Application: Autosys Workload Automation ( AutoSys) 12.x,24.X
There are three supported methods to upgrade the JRE.
Note: Method 3 requires a script modification to function correctly.
METHOD 1: IN-PLACE DIRECTORY REPLACEMENT (Standard) This method replaces the contents of the default JRE directory.
STOP SERVICES Command: ./S99igateway stop
BACKUP EXISTING JRE Navigate to the EEM installation directory (e.g., /opt/CA/SharedComponents/EmbeddedEntitlementsManager/). Rename the existing jre folder (e.g., jre17_orig).
REPLACE FILES Create a new folder matching the original name (e.g., jre17). Copy the contents of the new JRE version into this folder.
VERIFY PERMISSIONS Ensure the owner is root:root (or the specific service owner). Ensure permissions are set to 755 (or 700) recursively. Command: chown -R root:root jre17 && chmod -R 755 jre17
START SERVICES Command: ./S99igateway start
METHOD 2: CONFIGURATION UPDATE This method points the application to a different JRE location via configuration.
STOP SERVICES Command: ./S99igateway stop
EDIT CONFIGURATION Open igateway.conf (located in $IGW_LOC). Locate the <JVMSettings> section. Update the <javahome> tag with the full path to the new JRE.
Example: <javahome>/path/to/new/java17_current</javahome>
START SERVICES Command: ./S99igateway start
METHOD 3: SYMBOLIC LINK (Requires Script Patch) This method uses a symlink to point the default JRE folder to a shared JRE location. You must patch the startup script for this to work.
PREPARE SYMLINK Stop iGateway. Rename the original jre17 folder to backup. Create a symbolic link named jre17 pointing to your target JRE. Command: ln -s /path/to/shared/jre17 jre17
PATCH STARTUP SCRIPT Open the startup script ($IGW_LOC/S99igateway AND /etc/init.d/igatewayd). Locate the setJVMPath function. Find the lines executing the find command for libjvm.so and libjava.so.
MODIFY FIND COMMAND: Add the -L flag to the find command to allow following symbolic links.
Navigate to $IGW_LOC.
Stop the igateway service.
Original:
JVMLOC1='find $JRE_PATH -name libjvm.so 2>/dev/null | head -n 1`
JVMLOC2=`find $JRE_PATH -name libjava.so 2>/dev/null | head -n 1`
Updated:
JVMLOC1='find -L $JRE_PATH -name libjvm.so 2>/dev/null | head -n 1`
JVMLOC2=`find -L $JRE_PATH -name libjava.so 2>/dev/null | head -n 1`
NOTE: Apply this change to /etc/systemd/system/igatewayd if using systemd.
START SERVICES Command: ./S99igateway start
VERIFY SUCCESS:
iGateway starts without errors.
igateway.log shows successful JVM load.
Process allows login to EEM.
IMPORTANT VERSION SUPPORT: Upgrades are ONLY supported within the same Major Version family.
Supported: Upgrading JRE 1.8.20 to the latest 1.8.x.
Supported: Upgrading JRE 17.0.x to the latest 17.0.x.
NOT Supported: Upgrading from JRE 1.8 to JRE 11 or JRE 17 without a full product upgrade.
ROOT CAUSE: The JVMLoader error when using symbolic links occurs because the standard find command in the startup script does not follow symbolic links by default. Adding the -L flag resolves this.
RELATED RESOURCES:
Defect ID: DE661511 (Permanent fix scheduled for future release)
PREVENTION: Ensure permissions on the new JRE directory match the original installation (typically root ownership and 755 permissions).