Назад в блог

OpenEdge 12.1 и JDK

Начиная с версии OpenEdge 12.1, в состав дистрибутива больше не будет включена Java. Вместо этого она должна быть предварительно установлена самим клиентом. Кстати говоря, подобное уже было в прошлых версиях, но, к сожалению, мы к этому вернулись вновь. И дело здесь не в желании или не желании Progress Software. В игру вмешались третьи силы. Как говорится, по не зависящим от нас причинам… Если интересно, можете почитать подробности в документе по этой ссылке: https://community.progress.com/community_groups/openedge_general/m/documents/3662

А пока попробуем разобраться, что же теперь делать нам, простым пользователям.

Почему в Progress Software исключили JDK из дистрибутива OpenEdge?

В первую очередь, конечно, причиной является изменение условий лицензирования поставщиком Java, в результате чего компания Progress Software потеряла возможность продолжать поставлять JDK, как это делала в прошлом. В частности, Oracle JDK 8 или более поздние версии, выпущенные после 1 января 2019 года, не могут распространяться корпорацией Progress Software.

Однако после тщательной оценки доступных вариантов было принято решение продолжить сертификацию всех будущих релизов OpenEdge для следующих типов JDK:

  • Oracle JDK: для клиентов, которые полагаются на платную поддержку Oracle для своих приложений в производственной среде.
  • OpenJDK: бесплатная версия, которую также можно использовать в производственной среде.

Таким образом, у нас теперь даже появился выбор. Кроме того, самостоятельная инсталляция JDK в качестве предварительного условия позволит OpenEdge-клиентам применять критические обновления, включая обновления безопасности, так часто и так быстро, как это необходимо для конкретной среды. И такой подход вполне согласуется с инструкциями и планами обновления операционных системы и применения критических обновлений.

Рассмотрим основные моменты, которые будет необходимо сделать администратору перед, во время и после инсталляции OpenEdge.

В первую очередь необходимо проверить версию установленной Java на сервере. На всякий случай напомню, как это сделать:

proenv>java -version
openjdk version "1.8.0_131" 
OpenJDK Runtime Environment (build 1.8.0_131-b12) 
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

Список минимально поддерживаемых версий Java, которые могут использоваться с OpenEdge 12.1, приведён в следующей таблице.

Операционная система Версия Java
Windows 1.8.0_101
Linux 1.8.0_101
Solaris 1.8.0_101
AIX 1.8.0_101

В следующей таблице приведены ссылки на JDK с разбивкой по операционным системам, пройдя по которым вы сможете скачать соответствующий дистрибутив.

Операционная система Расположение дистрибутива JDK
Windows Oracle - https://www.java.com/en/download/manual.jsp AdoptOpenJDK - https://adoptopenjdk.net/releases.html
Linux Oracle - https://www.java.com/en/download/manual.jsp AdoptOpenJDK - https://adoptopenjdk.net/releases.html
Solaris Oracle - https://www.java.com/en/download/manual.jsp AdoptOpenJDK - https://adoptopenjdk.net/releases.html
AIX https://developer.ibm.com/javasdk/downloads/

Установить соответствующий JDK необходимо перед установкой OpenEdge, чтобы инсталлятор мог использовать функции, которые необходимы Java. В связи с этим инсталлятор был изменён с целью использования переменной среды окружения $JAVA_HOME | %JAVA_HOME%, значение которой должно быть указано в специальном поле после ввода серийных номеров и управляющих кодов.

Если путь к каталогу JDK не был введён или введён неправильно, то будет выдано следующее сообщение об ошибке:

После указания правильного каталога инсталлятор продолжит работать в привычном для вас режиме.

Если в своей среде вы используете так называемую инсталляцию без сообщений (silent installation), или другими словами инсталляцию в пакетном режиме, например, для распространения OpenEdge на персональные компьютеры клиентов, то после основной инсталляции в каталоге install будет создан файл response.ini. В этом файле прописан параметр JavaHome, которой присвоен каталог JDK, указанный вами во время инсталляции:

;
; DESCRIPTION of Select JavaHome Dialog
;
;  JAVA_HOME - select the java home directory.
;  Result - is used as the return code for this section. Only a value of 1 is acceptable.
;
[Select JavaHome Dialog]
JavaHome=C:Program FilesAdoptOpenJDKjdk-8.0.222.10-hotspot
Result=1

Если на других компьютерах JDK расположен в другом месте, то перед стартом инсталляции в пакетном режиме необходимо изменить параметр JavaHome. За более подробной информацией о пакетной инсталляции OpenEdge перейдите по ссылке: How to create a response.ini file for a silent install?

Итак, вы завершили инсталляцию OpenEdge, но через некоторое время по каким-то причинам решили изменить каталог для JDK. Для того, чтобы OpenEdge продолжил работать, достаточно внести соответствующие изменения в текущую инсталляцию. Продукты OpenEdge ищут настройки Java в следующих местах:

  • Большинство компонент используют набор свойств JAVA_HOME из файла $DLC/properties/java.properties, например:
          JAVA_HOME=/usr1/mypath/jdk1.8.0_101
  • Существует два скрипта, которые тоже используют JAVA_HOME из файла $DLC/properties/java.properties:
          1. $DLC/servers/pasoe/bin/javacfg.sh(.bat) – для нового сервера приложений PASOE;
          2. $DLC/bin/java_env.sh(.bat) – для всего остального.

Обратите внимание, что OpenEdge не использует системную переменную среды, он просто использует одно и то же имя. Поэтому всегда необходимо указывать каталог JDK через приглашение инсталлятора или путём изменения файла java.properties.

Однако существуют некоторые исключения:

  • Некоторые инструменты Windows, такие как Standalone Debugger и proInventory, по-прежнему обращаются к реестру, чтобы узнать, какую использовать среду выполнения Java.
  • После обновления java.properties для правильной работы OpenEdge Management (OEM) необходимо выполнить следующий скрипт:
          proant -f $DLC/install/tlr/cleanup/60_fathom_tlr.xml
  • Для Progress Developer Studio (PDSOE) переменная JAVA_HOME устанавливается в файле %DLC%oeideeclipse.ini.

Что произойдёт, если JAVA_HOME не будет установлена или если версия Java в $DLC/properties/java.properties будет неверной?

В этом случае при работе с OpenEdge будут выводиться следующие ошибки:

  • JAVA_HOME could not be found
  • JAVA_HOME environment variable may not be set correctly
  • Java not found:

С каким JDK было проведено тестирование OpenEdge 12.1?

В Progress Software для тестирования OpenEdge 12.1 использовали AdoptOpenJDK.

Какую JVM из AdoptOpenJDK следует использовать с OpenEdge (Hotspot или OpenJ9)?

Для тестирования OpenEdge 12.1 в Progress Software использовался Hotspot JVM.

Какие ошибки встречаются чаще всего?

  • Была установлена только JRE, установка должна включать JDK.
  • Неправильно указан каталог в JAVA_HOME:
    • не указывайте каталог /bin;
    • не добавляйте /bin/java в конец.
  • Используется неправильная разрядность. Например, JVM 32bit не может использоваться с OpenEdge 64bit.

Можно ли обновлять версию Java, и есть ли какие-либо ограничения на уровень обновлений, которые допустимо применять?

Вы можете выполнять обновление Java, однако вы должны оставаться в пределах поддерживаемой минорной версии. Например, поддерживается версия Java 1.8.0_101, в этом случае вы можете установить любое обновления выше Java 1.8.0, включая _101.

На этом у меня всё. Если у вас остались какие-либо дополнительные вопросы по использованию Java в OpenEdge, то ответы вы наверняка найдёте в Progress Community.

Успешного перехода на OpenEdge 12!


Назад в блог