Java в OpenEdge 12.1 не будет?
Начиная с версии OpenEdge 12.1, в состав дистрибутива больше не будет включена Java. Вместо этого она должна быть предварительно установлена самим клиентом. Кстати говоря, подобное уже было в прошлых версиях, но, к сожалению, мы к этому вернулись вновь. И дело здесь не в желании или не желании Progress Software. В игру вмешались третьи силы. Как говорится, по не зависящим от нас причинам… Если интересно, можете почитать подробности в документе по этой ссылке.
А пока попробуем разобраться, что же теперь делать нам, простым пользователям.
Почему в 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_181 |
В следующей таблице приведены ссылки на 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-directory>\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 Files\AdoptOpenJDK\jdk-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:
- $DLC/servers/pasoe/bin/javacfg.sh(.bat) – для нового сервера приложений PASOE;
- $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%\oeide\eclipse.ini.
Что произойдёт, если JAVA_HOME не будет установлена или если версия Java в $DLC/properties/java.properties будет не верной?
В этом случае при работе с OpenEdge будет показано следующее сообщение:
С каким 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!
Метка:OpenEdge RDBMS