2 Java processes being started from a single agent install

book

Article ID: 211627

calendar_today

Updated On:

Products

CA Automic One Automation

Issue/Introduction

Occasionally the JCP process will either just not start or will die a few minutes after having started successfully. The error message is always a bind address message about port 8088 being in use.

There is also an issue when starting Java agents. When starting an agent there are two processes that start when viewed in the task manager. In the UI the PID matches one of the processes, and the 'lone' PID can be killed seemingly without issue. Though the service manager dialog always only shows the second PID as being correct, the UI shows the first PID as being correct. 

Cause

The cause of this is the OS PATH environment variable using "C:\ProgramData\Oracle\Java\javapath\".

If you look at the files in C:\ProgramData\Oracle\Java\javapath\ you will see that they are actually symlinks to specific java binaries, as an example:

    <SYMLINK>      java.exe [C:\Program Files\Java\jre1.8.0_65\bin\java.exe]
    <SYMLINK>      javaw.exe [C:\Program Files\Java\jre1.8.0_65\bin\javaw.exe]
    <SYMLINK>      javaws.exe [C:\Program Files\Java\jre1.8.0_65\bin\javaws.exe]

The AE and agent installations used the direct path "C:\Program Files\Java\jre1.8.0_65\bin"

Due to this, 2 java.exe's were being started for each Java agent as well as the JCP/JWP. 

You can see this in the task manager if you add the command line to the details tab. 

Environment

Release : 12.3

Component : AUTOMATION ENGINE

Windows operating systems
Oracle Java

Additionally seen on AIX

Resolution

The resolution to this is to change the PATH variable to reflect the direct path of the Java installation to the \bin folder as:

C:\Program Files\Java|jdk-11.0.10\bin

This does not happen with the OpenJDK, only Oracle's JDK.

For AIX - the Java information is being picked up by both the PATH and LIBPATH. For the agent definitions in the .smd file set the direct path to Java. This example uses the PeopleSoft agent:

DEFINE UC4 PPSFT;/usr/java8/jre/bin/java -jar /home/uc4/executor/ps/psfs/bin/ucxjpsx.jar;/home/uc4/executor/ps/psfs/bin/

This forces the Service Manager to use this direct path to Java and starting only a single process for the agent, rather than reading PATH and LIBPATH, thus possibly starting two processes for the agent.