Environment
ESM 7.7 but may apply to other ESM versions.
Situation
When ESM is migrated from one server to another, the error message below is seen in server.log file:
[TIME STAMP][ERROR][default.com.arcsight.util.Compiler] server.rules.compiler is set to external but the JDK directory does not appear to have a Java compiler: /opt/arcsight/java/esm/current/jre/bin/javac Set JDK_HOME to a JDK, or set JAVA_HOME to either a JDK or a /jre/ directory contained in a JDK. [TIME STAMP][INFO ][default.com.arcsight.util.Compiler] JAVA_HOME is /opt/arcsight/java/esm/current/jre [TIME STAMP][INFO ][default.com.arcsight.util.Compiler] JDK_HOME is null [TIME STAMP][ERROR][default.com.arcsight.server.NGServer] com.arcsight.common.InitializationException: Exception initializing 'com.arcsight.util.Compiler': The java compiler is not found. Are JDK_HOME and JAVA_HOME correct? /opt/arcsight/java/esm/current/jre/bin/javac
The setup-java-directories.log file appears to have successfully set up the java resources for ESM:
[TIME STAMP] Creating Java links [TIME STAMP] In makeLink() linkfile = /opt/arcsight/java/esm/<esm_version> [TIME STAMP] In makeLink() target = /opt/arcsight/java/<java_version> [TIME STAMP] In makeLink() linkfileAbsoluteName = /opt/arcsight/java/<java_version> [TIME STAMP] In makeLink() targetAbsoluteName = /opt/arcsight/java/<java_version> [TIME STAMP] In makeLink() linkfileName = /opt/arcsight/java/<java_version> [TIME STAMP] OK: Link already exists: /opt/arcsight/java/esm/<esm_version> -> /opt/arcsight/java/<java_version> [TIME STAMP] In makeLink() linkfile = /opt/arcsight/java/esm/current [TIME STAMP] In makeLink() target = <esm_version> [TIME STAMP] Linking /opt/arcsight/java/esm/current to <esm_version> ‘/opt/arcsight/java/esm/current’ -> ‘<esm_version>’ [TIME STAMP] In makeLink() linkfile = /opt/arcsight/logger/current/local/jre [TIME STAMP] In makeLink() target = /opt/arcsight/java/esm/current/jre [TIME STAMP] Linking /opt/arcsight/logger/current/local/jre to /opt/arcsight/java/esm/current/jre ‘/opt/arcsight/logger/current/local/jre’ -> ‘/opt/arcsight/java/esm/current/jre’ [TIME STAMP] Removing previous JRE archive file [TIME STAMP] OK: Java setup is complete
This would cause the ESM manager process to fail to start and appears as unavailable.
Cause
ESM could not locate the java resources needed for the ESM manager service.