How to avoid Java Runtime failures during CF upgrade on older DX systems
Applies to
HCL Digital Experience version 8.5 and higher
Introduction
Starting from Cumulative Fix (CF) 238, CF packages include Java 8 binaries. Your HCL DX environment must run Java 8 before you apply new CFs. Environments that run on Java 7 fail during upgrade with class version incompatibility errors.
Important
This requirement is a permanent baseline for future CF upgrades. All new CF packages require Java 8. No fallback path exists for Java 7 environments.
Instructions
To avoid Java Runtime Environment (JRE) failures during CF upgrades, perform the following steps:
Installing Java 8 using the IIM
The IBM Java 8 Software Development Kit (SDK) for the WebSphere Application Server (WAS) is distributed as a fix pack through IBM Fix Central and installed using the IBM Installation Manager (IIM). Do not replace the Java Development Kit (JDK) manually. Install it through IIM to ensure proper package tracking.
Before using the IIM for this upgrade path, ensure the IIM runtime itself is running on Java 8 or newer. For more information, refer to Java Runtime Environment.
-
Download the IBM Java 8 SDK package:
- Go to IBM Fix Central.
- Under Find product, in the Product selector box, search for and select WebSphere Application Server.
- In the Installed Version box, select your version (for example, 8.5.5.0).
- In the Platform box, select your platform (for example, AIX), and then select Continue.
- Search for Individual fix IDs matching the pattern
8.5.5.*-WS-IBMWASJAVA*(for example,8.5.5.24-WS-IBMWASJAVA-LinuxX64), and then select Continue. - Download the appropriate SDK package for your OS and architecture.
-
Install the IBM Java 8 SDK using the IIM in silent mode:
${IIM_INSTALL_ROOT}/eclipse/tools/imcl install \ com.ibm.java.jdk.v8 \ -repositories /path/to/sdk/repo \ -installationDirectory ${WAS_INSTALL_ROOT}/AppServer \ -acceptLicense/path/to/sdk/repo: The directory containing the extracted SDK package.-
com.ibm.java.jdk.v8: The offering ID that installs the IBM Java 8 SDK into the WAS installation directory.To confirm the exact offering ID in your downloaded package:
imcl listAvailablePackages -repositories /path/to/sdk/repo
-
Verify that WAS recognizes the new SDK:
${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.sh -listAvailable${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.bat -listAvailableYou should see an entry for
1.8in the output.
Switching WAS profiles to Java 8
Installing the SDK does not automatically switch profiles to use it. Each profile must be explicitly updated using the managesdk command. For more information, refer to managesdk command and Upgrading to Java 8.
-
To switch to a specific profile:
${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.sh \ -enableProfile \ -profileName <ProfileName> \ -sdkname 1.8_64${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.bat \ -enableProfile \ -profileName <ProfileName> \ -sdkname 1.8_64<ProfileName>: The profile name (For example,wp_profile)1.8_64: The exact SDK name. To check the SDK name, run-listAvailable.
-
To switch all profiles at once:
${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.sh \ -enableProfileAll \ -sdkname 1.8_64${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.bat \ -enableProfileAll \ -sdkname 1.8_64This command updates every profile registered under the WAS installation to use Java 8.
-
To set Java 8 as the default SDK for WAS:
${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.sh \ -setNewProfileDefault \ -sdkname 1.8_64${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.bat \ -setNewProfileDefault \ -sdkname 1.8_64This ensures future profile creations default to Java 8.
-
To set Java 8 as the command-line default:
${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.sh \ -setCommandDefault \ -sdkname 1.8_64${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.bat \ -setCommandDefault \ -sdkname 1.8_64This command configures administrative scripts to use Java 8 by default.
Verifying end-to-end resolution
Confirm that the ConfigEngine JRE, the profile JVM, and the IIM JRE all resolve to Java 8, not Java 7.
-
To verify ConfigEngine JRE:
${WAS_INSTALL_ROOT}/AppServer/java/bin/java -version"${WAS_INSTALL_ROOT}\AppServer\java\bin\java.exe" -version -
To verify that all profiles run Java 8:
${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.sh -listEnabledProfileAll${WAS_INSTALL_ROOT}/AppServer/bin/managesdk.bat -listEnabledProfileAllAll profiles used during the CF application process must show
1.8(Java 8). -
To verify IIM JRE:
${IIM_INSTALL_ROOT}/eclipse/jre/bin/java -version"${IIM_INSTALL_ROOT}\eclipse\jre\bin\java.exe" -version
Applying CF packages to your environment
Once all Java versions are verified, proceed with the upgrade. For details, refer to Applying a Combined Cumulative Fix
There is no supported path to apply a new CF while remaining on Java 7. This requirement applies to all future CFs.
Troubleshooting
| Scenario | Symptom | Resolution |
|---|---|---|
| Java 8 is installed on the machine but the profile still points to Java 7. | Class version errors during applyCF.sh |
Run managesdk to switch the profile to Java 8. |
| WAS SDK and profiles are on Java 8, but the IIM JRE is still running on Java 7. | Class version errors | Update IIM to use Java 8. |
| Multiple nodes in the topology use inconsistent SDK versions. | Runtime class and method resolution failures (for example, NoSuchMethodError) on non-upgraded nodes. |
Update all nodes to Java 8 SDK. |
Related information
Java installation instructions:
- Installing a Java SDK using Installation Manager
- Migrating to Java Platform, Standard Edition 7 or 8
- managesdk command
- Java Runtime Environment
- IBM Fix Central (SDK downloads)
- WAS 8.5.5 system requirements
- Switching Java of WebSphere Profiles
- Switching Java for all Nodes in Cluster
Operating system-specific SDK upgrade procedure:
Other related topics: