Настройка SOS Job Scheduler 1.13 для работы с AdoptOpenJDK

Вопрос или проблема

Кто-нибудь знает, как заставить работать SOS Job Scheduler версии 1.13 с AdoptOpenJDK JDK 8 на Windows? Сам Job Scheduler, похоже, работает, но инструмент JOC не запускается, не может найти JVM.

Служба Windows для JOC зависает в состоянии “Запуск”, и в ее журнале появляется следующее:

[2019-12-08 12:14:36] [info]  [ 2168] Commons Daemon procrun (1.0.15.0 64-bit) запущен
[2019-12-08 12:14:37] [info]  [ 2168] Работа службы 'sos_joc'...
[2019-12-08 12:14:37] [error] [ 2916] Невозможно найти среду выполнения Java.

В настоящее время я использую SOS Job Scheduler 1.11 и смог запустить его, указав свойства vm в config\factory.ini и config\sos.ini на bin\server\jvm.dll внутри установки AdoptOpenJDK. Я установил те же параметры в конфигурации Job Scheduler 1.13. Но я не нахожу в конфигурационных файлах “Jetty” для JOC 1.13 возможности сделать подобную настройку.

Я добавил каталог JRE AdoptOpenJDK в системную переменную %PATH%, как предложено в конфигурационных файлах SOS, но это не оказало очевидного эффекта. Я также установил системные переменные %JAVA_HOME% и %JRE_HOME% на путь к AdoptOpenJDK; тоже никакого эффекта. Я бы предпочел не делать это, так как это глобальные настройки, которые повлияют и на другие приложения, работающие на этом сервере.

Мы не используем Oracle JDK/JRE из-за новых условий лицензирования Oracle, при которых больше нет бесплатного использования в производстве.

Это на Windows Server 2016 Datacenter на Azure.

Это может быть немного поздно, но я заставил это работать. Ваши пути могут отличаться, поэтому я бы проверил их перед выполнением команд. Вот как.

Установите OpenJDK13U-jdk_x64_windows_openj9_13.0.2_8_openj9-0.18.0.msi из
https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_windows_openj9_13.0.2_8_openj9-0.18.0.msi

Убедитесь, что системная переменная окружения JAVA_HOME установлена на путь AdoptOpenJDK.
У меня это C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-openj9\bin, и это должна быть установка по умолчанию.

Также убедитесь, что системная переменная окружения PATH включает путь к AdoptOpenJDK.

Откройте командную строку с правами администратора, выполните следующие команды-

"C:\Program Files\sos-berlin.com\joc\service\set_java_home_for_jetty_windows_service.cmd" "C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-openj9"
cd "C:\Program Files\sos-berlin.com\joc\jetty_base"
"C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-openj9\bin\java" -jar "C:\Program Files\sos-berlin.com\joc\jetty\start.jar" --create-startd --add-to-start=jsp

Вы все равно получите ошибку, похожую на эту:

Ошибка сканирования записи com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class из jar файла:///C:/Users/Username/.m2/repository/com/ibm/icu/icu4j/2.6.1/icu4j-2.6.1.jar"

Это известная проблема с этой версией файла icu4j-2.6.1.jar. Вам нужно заменить его.
Скачайте файл icu4j-65_1.jar из
https://github.com/unicode-org/icu/releases/download/release-65-1/icu4j-65_1.jar.

Файл C:\ProgramData\sos-berlin.com\joc\jetty_base\webapps\joc.war необходимо обновить новым файлом icu4j.

Скопируйте joc.war в отдельную временную папку.
Запустите следующую команду в открытой командной строке:

cd C:\YourTempFolder
jar -xvf joc.war

Удалите файл icu4j-2.6.1.jar в папке WEB-INF\lib.
Скопируйте файл icu4j-65_1.jar в папку WEB-INF\lib.

Запустите следующую команду в открытой командной строке:

rm joc.war   
jar -cvf joc.war *
rename "C:\ProgramData\sos-berlin.com\joc\jetty_base\webapps\joc.war" "C:\ProgramData\sos-berlin.com\joc\jetty_base\webapps\joc.war.old"
copy joc.war C:\ProgramData\sos-berlin.com\joc\jetty_base\webapps

Перезагрузите машину.

Откройте Диспетчер задач, выберите вкладку Службы и убедитесь, что служба sos_scheduler_YourMachinename_40444 работает.
Если нет, убедитесь, что служба sos_joc остановлена, а затем запустите службу sos_scheduler_YourMachinename_40444.
Когда она будет работать, запустите службу sos_joc.

Щелкните по ссылке на рабочем столе, чтобы открыть JOC.
Должно все заработать.

Обратите внимание на путь к вашей Java Runtime, например:

c:\Program Files\jdk8u422-b05-jre\

Убедитесь, что переменные JAVA_HOME и Path установлены в вашей системе.

  • в Панели управления откройте “Система и безопасность”, а затем Переменные среды.
  • Установите JAVA_HOME:
  • В разделе Системные переменные нажмите Новая.
  • имя переменной = JAVA_HOME.
  • значение = путь установки JDK (без подпапки bin).

Установите PATH:

  • Добавьте расположение папки bin установки JDK в переменную PATH в Системных переменных.
  • Следующее является типичным значением для переменной PATH:
  • C:\WINDOWS\system32;C:\WINDOWS;%JAVA_HOME%\bin

После установки JOC вам нужно запустить скрипт

set_java_home_for_jetty_windows_service.cmd

"c:\Program Files\sos-berlin.com\joc\service\set_java_home_for_jetty_windows_service.cmd" "c:\Program Files\jdk8u422-b05-jre\"

Затем проверьте значение, сохраненное в реестре, используя REGEDIT. Иногда оно может быть создано неправильно с завершающим символом двойной кавычки; “

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\sos_joc\Parameters\Java
JavaHome = c:\Program Files\jdk8u422-b05-jre\

Ответ или решение

Для решения проблемы интеграции SOS Job Scheduler версии 1.13 с AdoptOpenJDK на Windows Server 2016 Datacenter, необходимо выполнить несколько шагов. Ниже представлено детальное руководство, которое поможет вам успешно настроить систему.

1. Установка AdoptOpenJDK

Сначала убедитесь, что у вас установлена правильная версия AdoptOpenJDK. Рекомендуется использовать JDK 8, так как именно такая версия требуется для работы SOS Job Scheduler 1.13. Вы можете скачать OpenJDK с официального сайта или из репозитория GitHub.

2. Настройка переменных окружения

Создайте и задайте переменные окружения для Java. Это необходимо для того, чтобы система могла найти исполняемые файлы Java.

  • JAVA_HOME: Задайте значение JAVA_HOME на путь установки AdoptOpenJDK, например, C:\Program Files\AdoptOpenJDK\jdk-8.

  • PATH: Добавьте путь к bin директории вашего JDK в переменную PATH. Это может выглядеть так:

    C:\WINDOWS\system32;C:\WINDOWS;%JAVA_HOME%\bin

3. Настройка SOS Job Scheduler

Анализ конфигурации

Для версии SOS Job Scheduler 1.13 на момент работы с AdoptOpenJDK важно настроить файлы конфигурации. Обычно вам нужно изменить следующие моменты:

  • Откройте файл factory.ini и sos.ini, которые находятся в директории config. Направьте свойства vm на файл jvm.dll, который находится в папке bin\server вашего JDK.

  • В конфигурации JOC (Job Organizational Center) вам не нужно делать изменений в файлах Jetty, так как эти параметры определяются в служебных файлах и скриптах.

Установка служб

После установки и настройки Job Scheduler и JOC, вам необходимо установить необходимые службы. Если службы зависают в состоянии "Запуск", это может быть связано с неправильной настройкой Java.

  1. Откройте командную строку с правами администратора.
  2. Запустите следующий скрипт, который указывает путь к Java:
    "C:\Program Files\sos-berlin.com\joc\service\set_java_home_for_jetty_windows_service.cmd" "C:\Program Files\AdoptOpenJDK\jdk-8"

4. Замена библиотеки ICU4J

Если вы столкнётесь с ошибками, связанными с библиотекой icu4j, вам нужно будет заменить её:

  1. Скачайте новую версию библиотеки, такую как icu4j-65_1.jar.
  2. Извлеките файл joc.war в временную папку:
    cd C:\ВашТемпФолдер
    jar -xvf joc.war
  3. Замените старый файл icu4j-2.6.1.jar в папке WEB-INF\lib и вставьте новый icu4j-65_1.jar.
  4. Запакуйте joc.war обратно:
    jar -cvf joc.war *

5. Перезагрузка и проверка служб

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

  • Убедитесь, что служба sos_scheduler_YourMachinename_40444 запущена.
  • Если служба sos_joc не запущена, сначала остановите её, а затем запустите службу sos_scheduler.

6. Проверка работоспособности

В заключение, после успешного запуска всех служб, вы сможете открыть JOC по ссылке на рабочем столе. Теперь SOS Job Scheduler должен корректно работать с AdoptOpenJDK.

Этот процесс требует внимания к деталям, и каждый шаг важен для достижения успешной интеграции. Если возникнут дополнительные вопросы или сложности, рекомендуется обращаться в службу поддержки SOS или активные группы пользователей.

Оцените материал
Добавить комментарий

Капча загружается...