Progress Openedge 11.6 with it's own java components

Hello,

we have a Progress Openedge 11.6 version (upgrades are being planned), we have a scanning tool for vulnerabilities and it has flagged the Java 7.0.45 as vulnerable.
This is shipped with this version of Progress which is 7.0.45m but it should be possible to update with Java 8 which is supported with Progress 11.6.

Does anyone know what the steps are to update it?

Kind Regards,
Ryszard
 
Hi, thanks for the links. I actually need this on my RH Linux box, so found that all I have to do is to change the script :
Modify the script $DLC/bin/java_env by replacing the above lines with the location of the desired Java installation:

From (two separate locations):
JDKHOME=${JDKHOME-$DLC/jdk}
JREHOME=${JREHOME-$DLC/jre}

To:
JDKHOME=/opt/java/jdk
JREHOME=/opt/java/jdk/jre


I don't have any /opt/java/jdk folders, I got this:
[root@accordvrush /]# readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin/java

When I run this, it seems I have JDK installed:
[root@S1 ~]# java -version
openjdk version "1.8.0_382"
OpenJDK Runtime Environment (build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)


These are all the folders I have in /usr/lib

drwxr-xr-x. 2 root root 6 Jul 2 2015 java
drwxr-xr-x. 2 root root 6 Jul 2 2015 java-1.5.0
drwxr-xr-x. 2 root root 6 Jul 2 2015 java-1.6.0
drwxr-xr-x. 2 root root 6 Jul 2 2015 java-1.7.0
drwxr-xr-x. 2 root root 6 Jul 2 2015 java-1.8.0
drwxr-xr-x. 2 root root 6 Jul 2 2015 java-ext
drwxr-xr-x. 5 root root 4096 Sep 23 09:38 jvm
drwxr-xr-x. 2 root root 6 Jul 2 2015 jvm-commmon
drwxr-xr-x. 3 root root 162 Sep 23 09:38 jvm-exports
drwxr-xr-x. 4 root root 122 Sep 23 09:38 jvm-private


More in /usr/lib/jvm
Code:
[root@accordvrush jvm]# ls -ld *
drwxr-xr-x. 3 root root 17 Oct 16  2022 java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64
drwxr-xr-x. 3 root root 17 Jan 13  2023 java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
drwxr-xr-x. 3 root root 17 Jul 14 11:14 java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
lrwxrwxrwx. 1 root root 21 Sep 23 09:38 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root 27 Sep 23 09:38 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx. 1 root root 35 Sep 23 09:38 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
lrwxrwxrwx. 1 root root 51 Sep 23 09:38 jre-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 -> java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jr                              e
lrwxrwxrwx. 1 root root 29 Sep 23 09:38 jre-openjdk -> /etc/alternatives/jre_openjdk

If you don't have any suggestions, I'll have to log it with Red Hat support to get the correct answers.

Thanks
Richard
 

TomBascom

Curmudgeon
If you don't have any suggestions, I'll have to log it with Red Hat support to get the correct answers.

You seem to have found an upgraded Java and figured out how to use it so what is the question that you need answers for?
 
Hi, the article says I should to this:
JDKHOME=/opt/java/jdk
JREHOME=/opt/java/jdk/jre



It looks like I would have to do this:
JDKHOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
JREHOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre

This is the question, would this be correct?

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin
[root@accordvrush bin]# ./java -version
openjdk version "1.8.0_382"
OpenJDK Runtime Environment (build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)


I have one process (admin server) that is running Java from /bcp/dlc/jdk/jre/bin/java.

Code:
#current java in Progress
/bcp/dlc/jdk/jre/bin/java -classpath /bcp/dlc/java/progress.jar:/bcp/dlc/java/osmetrics.jar:/bcp/dlc/java/prorepl.jar:/bcp

/dlc/java/ext/xercesImpl.jar:/bcp/dlc/java/ext/xmlParserAPIs.jar:/bcp/dlc/java/ext/soap.jar:/bcp/dlc/java/ext/wsdl4j.jar:/bcp/dlc/java/ext/jettison-1.3.4.jar -Dsun.lang.C

lassLoader.allowArraySyntax=true -Dadmsrv.jvm=/bcp/dlc/jdk/jre/bin/java -Djava.command=java -Duser.country=GB -DWork.Dir=/usr/wrk -Djava.endorsed.dirs=/bcp/dlc/jdk/jre/li

b/endorsed -Dsun.jnu.encoding=UTF-8 -Djava.security.policy=/bcp/dlc/java/java.policy -Dfile.encoding=UTF-8 -DInstall.Dir=/bcp/dlc -Djava.awt.headless=true -Djvmstart.debu

g=0 -Xmx384m -XX:MaxPermSize=128m -Djava.awt.headless=true -Dsun.lang.ClassLoader.allowArraySyntax=true com.progress.chimera.adminserver.AdminServerStarter
 

TomBascom

Curmudgeon
The article is saying that you should put your actual path to Java in java_env and providing a simple example.

You must also adjust: "The new value of the JAVA_HOME environment variable in <DLC>/properties/java.properties"
 
I do not have these folders:
DKHOME=/opt/java/jdk
JREHOME=/opt/java/jdk/jre


I also do not have <DLC>/properties/java.properties", does not exist.

I raised a ticket with Red Hat to see what suggestions they have.
 

TomBascom

Curmudgeon
I do not have these folders:
DKHOME=/opt/java/jdk
JREHOME=/opt/java/jdk/jre

Those are the example directories. You do have /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 etc. So, as you indicated above, you should change java_env to be:

JDKHOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
JREHOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre

I also do not have <DLC>/properties/java.properties", does not exist.

<DLC> is shorthand for "where OpenEdge is installed". Often that is actually "/usr/dlc" but it could be somewhere else. I don't know where you installed OpenEdge so I cannot be more specific.

I raised a ticket with Red Hat to see what suggestions they have.

That seems very odd. Why wouldn't you be opening a ticket with Progress?

You also mentioned:
I have one process (admin server) that is running Java

Is that the only reason that you need Java? Just to run the admin server? Are you actually using the admin server for anything? Runinng appservers or something? Are you running any SQL92 servers? If all you ever use Java for is running an admin server and that admin server is otherwise unused then there isn't any real need for Java...

Also, I guess I should mention that 11.6 was released in 2017 and retired in 2019. The current OpenEdge 11 release is 11.7.18. OE11.7 is a long term support release which is scheduled to be retired in April of 2025.
 
Hi,

we cannot contact Progress support directly, we can only go via our third party ( I know, it's a nightmare) and they aren't very responsive.
Our third party installed Progress. I will have to ask our third party to pass it to Progress, so trying to push this onto them.

Is that the only reason that you need Java?

I am not that much of an expert on how Progress uses Java. I have a test server and will do some testing with the new settings. I can't find any document that would say "Progress uses Java for X,Y,Z".

I also do not have <DLC>/properties/java.properties", does not exist.

I wrote in short hand, what I meant is I ran this as ROOT:
find / -name java.properties

There is no such file. I think the instructions with changing the "java_env" still stand.

The problem is with the setting to point to /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 is not ideal, a bit long and if there is a newer Java patch I would have to amend the script again. A more generic location would be better, but it's a bit confusing which should be used:

Code:
[rmusielak@server jvm]$ pwd
/usr/lib/jvm
[rmusielak@server jvm]$ ls -l
total 0
drwxr-xr-x. 3 root root 17 Oct 16  2022 java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64
drwxr-xr-x. 3 root root 17 Jan 13  2023 java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
drwxr-xr-x. 3 root root 17 Jul 14 11:14 java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
lrwxrwxrwx. 1 root root 21 Sep 23 09:38 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root 27 Sep 23 09:38 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx. 1 root root 35 Sep 23 09:38 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
lrwxrwxrwx. 1 root root 51 Sep 23 09:38 jre-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 -> java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre
lrwxrwxrwx. 1 root root 29 Sep 23 09:38 jre-openjdk -> /etc/alternatives/jre_openjdk

$ which java
/usr/bin/java

$ file /usr/bin/java
/usr/bin/java: symbolic link to `/etc/alternatives/java'
$ file /etc/alternatives/java
/etc/alternatives/java: symbolic link to `/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin/java'

Maybe it should be /usr/lib/jvm/ and /usr/lib/jvm/jre ?

Thanks,
Richard
 

TomBascom

Curmudgeon
You could always create a symbolic link to a shorter path. For instance, if /opt/java/jdk does not exist:

# mkdir -p /opt/java
# ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 /opt/java/jdk
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
$DLC/properties/java.properties only exists in OE 12.1 and later, according to the referenced article.

It also mentions, for earlier releases, a file called $DLC/properties/JavaTools.properties that must be modified if you use OEE or OEM.
 
Top