JVM Requirements for Java Services

If JVM-based adapters, server-side graphics, XBRL, or user-written CALLJAVA applications are to be used, a Java Runtime Environment (JRE) JVM must be installed on the machine, and the server must be configured to use it.

The minimum JVM release level is 8 or higher, due to required internal components of the server. As already noted, only Java release 8 and release 11 are explicitly tested, and use of any other release must be self-certified by the customer if they choose to not use release 8 or release 11. The Java Listener will not start unless 8 (or higher) is in use. Prior 7.x releases would allow the listener to start with any release, and sub-components would fail if they required a higher Java Level. The primary reason for this change is that Java 1.5 (and prior releases) are past their End of Service Life (EOSL) dates, and, as such, are unsupportable, in addition to lacking newer functionality. The following URL has Java EOL and EOSL information:

http://www.oracle.com/technetwork/java/eol-135779.html

Installing maintenance updates to the EDAHOME of an existing server running releases prior to production 7.7.05 will also have the requirement of moving up all dependent configurations to use Java 8 or Java 11 (as instructed in this section).

You may install a Java JRE or a Java SDK. When you install a Java SDK, the JRE component (where the JVM is installed) is included, so either is allowed. If using servlet, the Java SDK is required for the jar command, so it is generally preferred over the Java JRE. The SDK or JRE build type must also match the bit size of the server, which is 64-bit. If an appropriate JVM from a JRE or SDK is not found on the library path or using variables as described below, or is not the appropriate bit type, a Failed to find JVM message will be displayed. Further Java Services debugging information about loading the JVM will be written to the server start log indicating JSCOM3 start failed, as well as additional information that may be useful in resolving the problem. JSCOM3 is the actual process name for the Java Services Listener and the terms are often used interchangeably.

The JDK JRE bin and server (or client) subdirectories must be specified in the load library path environment variable. A server restart is required, plus the appropriate JVM must be on the path if switching JRE levels. The load library path will be prompted at installation time if JVM-based adapters or features are required. Otherwise, it can be manually set by editing the EDAENV file using any of the following methods.

  • For Java JDK, set JDK_HOME (to the install home location) in the server environment configuration file (EDAENV).
  • For Java JRE, set JAVA_HOME (to the install home location) in the server environment configuration file (EDAENV).
  • Use library path (LIBPATH) to set explicit pathing. Use of JDK_HOME or JAVA_HOME is preferred as they are less prone to error. The JRE bin and server (or client) subdirectories must be specified in a path-based environment variable and a server restart is required.

To change or add operating system environment variables, set and export the variable in a .profile or script that always gets called during a server start. It is very common to place variables in the server edastart script, but it is recommended that they be placed in a script that in turn calls edastart (so that the edastart script remains vanilla).

To change or add a variable in a server environment start-up file (EDACONF bin\edaenv.cfg), either edit the file in a text editor before starting the server or:

  1. Start the server (services like Java Listener may fail until configured and the server is restarted).
  2. Open the WebFOCUS Reporting Server browser interface and log on using an administrator ID.
  3. Select Workspace from the main menu.
  4. In the navigation pane, open the Configuration Files and Miscellaneous folders.
  5. Right-click Environment - edaenv.cfg and select Edit.
  6. Make the desired edit.
  7. Save the file.
  8. Restart the server (changes are not effective until the server is restarted).

The format of the edaenv.cfg variables is one per line in name=value pairs. Spaces before and after the equal sign are optional. Values with embedded spaces do not require quotation marks. Variables are always uppercase.

If JVM-based adapters or features are not required, and the JVM environment is not configured, the message Failed to find JVM is normal and can be ignored.

To add classes to the JVM class path for customer-written CALLJAVA applications, set and export the CLASSPATH variable to the operating system level before server start-up or use the WebFOCUS Reporting Server browser interface to set the Java Listener IBI_CLASSPATH property.