To configure an existing EPM 11.1.2.4 Environment to use Java 7. This document applies to all EPM Products. If your product is not specifically mentioned, then it probably does not require any additional steps besides those mentioned in the provided solution.
This document is for both Unix and Windows and assumes that you already have a working EPM 11.1.2.4 environment. Reconfiguring EPM to use Java7 is a manual process. Java7 replaces both jdk1.6 and jrocket1.6. There are two ways to upgrade EPM to use Java 7. Each has its own caveats.
Note that 11.1.2.4 is the only EPM version currently certified for Java7.
The paths shown are for Windows. Just change the slashes if you are on Unix.
Preparing for Java 7
1. Create a folder in the Middleware directory called Java6 and move both the jdk160_35 and jrockit_160_37 to the Java6 directory.
2. Download the latest Java7 patch provided in the quarterly Critical Patch Update Advisory for your OS and install to F:\Oracle\Middleware
In this instance, Patch 26916855 from the Oracle Critical Patch Update Advisory – October 2017 was used, which resulted in the creation of F:\Oracle\Middleware\jdk1.7.0_161. You can use any version of Java 7 your wish.
After completion of the above steps, you have two choices for configuration of EPM 11.1.2.4 to use Java 7
Choice One – The Easier Way
This method creates links in the Oracle\Middleware directory so that any reference to jdk160_35 and jrockit_160_37 goes to jdk1.7.0_161. The upside for this approach is that you do not have as many modifications to make to the various EPM configuration files that reference jdk160_35 and jrockit_160_37. Any reference to jdk160_35 and jrockit_160_37 will go to Java 7. If you upgrade to a later patch level of Java7 at a later time, you will not have to make any modifications except for recreating the links. The only downside is that when you get a listing from task manager or via the Unix PS command it will appear that you are still running Java 6.
1. Create a links in the Middleware directory so that both Oracle/Middleware/jdk160_35 and Oracle/Middleware/jrockit_160_37 both refer to jdk1.7.0_161
On Windows:
a. From a cmd prompt change directory to Drive:\Oracle\Middleware and execute the following two commands:
mklink /D jdk160_35 jdk1.7.0_161
mklink /D jrockit_160_37 jdk1.7.0_161
b. Change Directory to F:\Oracle\Middleware\jdk1.7.0_161\jre\bin and execute the following command:
mklink /D jrockit server
On Unix:
a. From a shell prompt change directory to /Oracle/Middleware and execute the following two commands:
ln -s jdk1.7.0_161 jdk160_35
ln -s jdk1.7.0_161 jrockit_160_37
2. For both Windows and Unix, Change directory to /Oracle/Middleware/user_projects/epmsystem1/bin/deploymentScripts and backup all scripts. Modify each of the setCustomParamsProduct.sh scripts and add the -XX:+UnlockCommercialFeatures option before the existing -XX:-FlightRecorder parameter. In Java 7 you need to add the -XX:+UnlockCommercialFeatures parameter in order to use FlightRecorder.
Failure to add the new option may result in your WebLogic Web Apps failing to start.
3. The following steps are necessary to run the WebLogic Admin Server and to be able to start an App via the startManagedWebLogic.cmd script. All Windows Services should already be functional at this point.
Change directory to F:\Oracle\Middleware\user_projects\domains\EPMSystem\bin
a. Windows ONLY – Make a backup of the startWebLogic.cmd file and then make the following modification:
Add the line set JAVA_VM=-server directly below the line that reads @REM START WEBLOGIC
@REM START WEBLOGIC
set JAVA_VM=-server
b. Windows ONLY – Make a backup of the setDomainEnv.cmd file and then make the following modification:
Change: set EXTRA_JAVA_PROPERTIES=%EXTRA_JAVA_PROPERTIES% -Dem.oracle.home=F:\Oracle\Middleware\oracle_common -Djava.awt.headless=true
To: set EXTRA_JAVA_PROPERTIES=-XX:PermSize=64m -XX:MaxPermSize=256m %EXTRA_JAVA_PROPERTIES% -Dem.oracle.home=F:\Oracle\Middleware\oracle_common -Djava.awt.headless=true
c. Make a backup of the setEpmEnv.cmd (Windows) or setEmpEnv.sh (Unix) file and then make the following modification:
Change: set JAVA_OPTIONS=%JAVA_OPTIONS%
To: set JAVA_OPTIONS=-XX:+UnlockCommercialFeatures -XX:-FlightRecorder %JAVA_OPTIONS%
4. Windows ONLY – Make a backup of startManagedWeblogic.cmd and then make the following modification:
Uncomment this line: @REM Set JAVA_VM=-server
Comment this line: set JAVA_VM
5. Start all services and Test
If using EAL and or FCM see steps 11 & 12 below.
If you have a compact Web Logic Deployment see possible issues and solutions at end of this document.
Choice Two – Changing EPM configuration files that reference Java
This approach requires several file modifications to EPM configuration files. This method does not use links which means you have to replace all occurrences of jdk160_35 and jrockit_160_37 in the files where they are referenced. The upside to this approach is that when you get a listing from task manager or via the Unix PS command, you will see that you are running Java 7. The downside is that there are quite few changes that would have to be made each time you upgrade Java7 to a later version.
1. Change Directory to F:\Oracle\Middleware\EPMSystem11R1\common\config\11.1.2.0 and backup the setJavaRuntime.(bat/sh) script. Then change all occurrences of jdk160_35 to jdk1.7.0_161
2. Change Directory to F:\Oracle\Middleware\user_projects\domains\EPMSystem\bin
a. Backup the setDomainEnv.cmd (Windows) or setDomainEnv.sh (Unix) file and then change all occurrences of jrockit_160_37 to jdk1.7.0_161
b. Backup the setEpmEnv.cmd (Windows) or setEmpEnv.sh (Unix) file and then make the following modification:
Change: set JAVA_OPTIONS=%JAVA_OPTIONS%
To: set JAVA_OPTIONS=-XX:+UnlockCommercialFeatures -XX:-FlightRecorder %JAVA_OPTIONS%
3. Windows Only – Backup the Hyperion Solutions Branch of the Windows Registry via the regedit command
4. Windows Only – Update the Windows Registry via the regedit. For ALL EPM Services under HKEY_LOCAL_MACHINE\SOFTWARE\Hyperion Solutions
a. Change the JavaDLL to F:\Oracle\Middleware\jdk1.7.0_161\jre\bin\server\jvm.dll
b. Identify the JVMOption that starts with -Djava.class.path= and then locate and change jrockit_160_37\lib\tools.jar to jdk1.7.0_161\lib\tools.jar
c. Identify the JVMOption that starts with -Djava.library.path= and then locate and change jrockit_160_37\jre\bin to jdk1.7.0_161\jre\bin
5. Change directory to /Oracle/Middleware/user_projects/epmsystem1/bin/deploymentScripts and backup all scripts. Modify each of the setCustomParamsProduct.sh scripts and add the -XX:+UnlockCommercialFeatures option before the existing -XX:-FlightRecorder parameter. In Java 7 you need to add the -XX:+UnlockCommercialFeatures parameter in order to use FlightRecorder.
Failure to add the new option -XX:+UnlockCommercialFeatures may result in your WebLogic Web Apps failing to start.
6. Windows Only – The following step is necessary to run the WebLogic Admin Server.
Change directory to F:\Oracle\Middleware\user_projects\domains\EPMSystem\bin
a. Make a backup of the startWebLogic.cmd file and then make the following modification:
Add the line set JAVA_VM=-server directly below the line that reads @REM START WEBLOGIC
@REM START WEBLOGIC
set JAVA_VM=-server
7. Windows ONLY – Make a backup of startManagedWeblogic.cmd and then make the following modification:
Uncomment this line: @REM Set JAVA_VM=-server
Comment this line: set JAVA_VM
8. Update the JAVA_HOME values in the following file.
Linux/Unix: /Oracle/Middleware/wlserver_10.3/common/bin/commEnv.sh Change JAVA_HOME=”../Oracle/Middleware/jrockit_160_37″ TO JAVA_HOME=”../Oracle/Middleware/jdk1.7.0_161″
Windows: DRIVE:\Oracle\Middleware\wlserver_10.3\common\bin\commEnv.cmd Change set JAVA_HOME=D:\Oracle\Middleware\jrockit_160_37 TO set JAVA_HOME=D:\Oracle\Middleware\jdk1.7.0_161
Note that the commEnv.sh(cmd) file is used during java application redeployment
9. For Essbase –
a. Change directory to F:\Oracle\Middleware\user_projects\epmsystem1\config\OPMN\opmn and backup the opmn.xml file. Open the opmn.xml file and change the one occurrence of jdk160_35 to jdk1.7.0_161
b. Change directory to F:\Oracle\Middleware\EPMSystem11R1\opmn\bin and backup the opmnctl and opmnctl.tmplt files. Modify the opmnctl and opmnctl.tmplt files changing two occurrences of jdk160_35 to jdk1.7.0_161 in each file.
c. Unix only – Backup the opmnctl file in /Oracle/Middleware/user_projects/epmsystem1/bin. Edit the opmnctl file in this location changing two occurrences of jdk160_35 to jdk1.7.0_161
d. By default Essbase gets the location of Java from OPMN, but you should modify the references to Java in the essbase.cfg and setEssbaseEnv.sh anyway.
Change Directory to F:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin and backup both the the essbase.cfg and setEssbaseEnv.bat file. Change jdk160_35 to java1.7.0_161 in both files
10. For Profitability – the option “-XXcompressedRefs:size=32GB” should be removed from the corresponding setCustomParams file.
11. For EPMA Server – Modify the Path to the jvm.dll in F:\oracle\Middleware\user_projects\epmsystem1\config\EPMA\BPMA_Server_Config.xml
Change From: <JvmPath>%EPM_ORACLE_HOME%\..\jdk160_35\jre\bin\server\jvm.dll</JvmPath>
Change To: <JvmPath>%EPM_ORACLE_HOME%\..\jdk1.7.0_161\jre\bin\server\jvm.dll</JvmPath>
12. For EAL – If you have EAL AnalyticsLink installed on the machine you should continue to use Java 6 for the EAL Analytics Link Service Only as Java 7 is not supported on EAL <Doc Id 2529126.1>
13. For FCM – SOA is still in use for FCM Task Scheduling and Automation. If you do not update the setSOADomainEnv.cmd when changing to JDK 7, then “java.lang.OutOfMemoryError: PermGen space” may occur when starting soa_server1. The steps to address the error are as follows:
a) Go to X:\Oracle\Middleware\user_projects\domains\EPMSystem\bin
b) Create a backup copy the existing setSOADomainEnv.cmd file
c) Edit the current setSOADomainEnv.cmd file to include -XX:PermSize=256m -XX:MaxPermSize=768m for line with EXTRA_JAVA_PROPERTIES as follows:
set EXTRA_JAVA_PROPERTIES=-XX:PermSize=256m -XX:MaxPermSize=768m %EXTRA_JAVA_PROPERTIES% -da:org.apache.xmlbeans…
d) Remove the -XXcompressedRefs:enable=false parameter from the same file
14. Client Changes
EssbaseAdministration Console
Change Directory to F:\Oracle\Middleware\EPMSystem11R1\products\Essbase\eas\console\bin\admincon.bat
Modify the admincon.bat and change jdk160_35 to jdk170_161
Financial Reporting Client
Change Directory to F:\Oracle\Middleware\EPMSystem11R1\products\financialreporting\bin
Modify the setJavaRuntime.cmd script changing jdk160_35 to jdk170_161
15. Start all services and Test
Additional Information: Step 5 for Windows would have to be repeated each time you apply a patch that updates the JavaDLL. Step 6 for both Windows and Unix would have to be repeated each time you apply a patch that requires that you redeploy as this typically updates the setCustomParams for that Web Application. Step 1 -11 would need to be repeated if you upgrade to a later version of Java 7.
Possible Issues and Solutions:
- If you are on Unix and have a compact WebLogic Deployment you must remove the parameter -XXcompressedRefs:size=32GB from the /Oracle/Middleware/user_projects/epmsystem1/bin/deploymentScripts/setCustomParamsEPMServer.sh file or else EPMServer0 will fail to start.
- If you have configured SOA to start as windows service, replace the existing CmdLine parameters (Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services) in the Windows Registry for the SOA Service with the following parameters:
1. change -jrockit to -server
2. change Xms and Xmx and add Maxpermsize minimum to -Xms768m -Xmx1536m -XX:PermSize=256m -XX:MaxPermSize=768m
The resulting start of the CMDLINE is: -server -Xms768m -Xmx1536m -XX:PermSize=256m -XX:MaxPermSize=768m
Note: If you still have issues starting your SOA Service you may just have to recreate it using the following KM (Doc Id 1415946.1)
- If you have configured the WebLogic Admin to start as a windows service, replace the CmdLine (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services) in the Windows Registry for the WL Admin Service with the following parameters:
1. change -jrockit to -server
2. change Xms and Xmx and add Maxpermsize minimum to -Xms1024m -Xmx2048m -XX:MaxPermSize=512m
3. Add -XX:+UnlockCommercialFeatures
The resulting start of the CMDLINE is: -server -Xms1024m -Xmx2048m -XX:MaxPermSize=512m -Dweblogic.ProductionModeEnabled=true -XX:+UnlockCommercialFeatures -XX:-FlightRecorder
Note: If you still have issues starting your WebLogic Admin Service you may just have to recreate it using the following KM (Doc Id 1415946.1)
- Regarding EAS Console browser access on a windows server:
Normally users run the EAS client from a browser on a client machine, not on the server. That said, if you wish to run the EAS console via a browser on the server, I suggest installing another version of jre1.7 in the default C:\Program Files (x86)\Java location. Note that you should install an earlier version of the jre. As of 7u161 and 6u171, Java SE 7 and Java SE 6 No Longer Contain Deployment Technology. This means it does not include javaws which the EAS client needs to run.
- Additional step if SSL is used and SSL certs were imported to the previous Jrockit/JDK keystores. Remember to import the certificate(s) into the Java 7 keystore.
Thanks,
~KKT~