При установке или обновлении платформы 1С:Предприятие на Linux-системах (RPM или DEB) многие системные администраторы обращают внимание на наличие каталогов с расширением .jar. На первый взгляд кажется странным, что классическое приложение, написанное на C++, требует Java-библиотеки. В этой статье мы подробно разберем, какую роль играют эти файлы, можно ли исключить их из установки и как они влияют на стабильность и производительность серверного кластера.
Начиная с версии 8.3.13, компания 1С начала активно внедрять вспомогательные сервисы, написанные на языке Java. Это решение продиктовано необходимостью создания кроссплатформенных инструментов, которые работали бы идентично как в Windows, так и в Linux-среде. Рассмотрим основные механизмы, которые опираются на эти библиотеки.
Во-первых, это механизм реструктуризации информационной базы второй версии (v2). Все файлы, находящиеся в каталоге dmf (Data Modification Framework), представляют собой Java-приложение, которое берет на себя наиболее тяжелые операции по изменению структуры таблиц в СУБД. В отличие от старого механизма, который выполнял операции последовательно через ядро сервера, версия v2 позволяет выполнять реструктуризацию в несколько потоков, значительно сокращая время простоя системы при обновлении конфигурации.
Во-вторых, это утилита управления 1C:Enterprise Ring. Она является ключевым звеном в современной инфраструктуре 1С. Без библиотек Java невозможно полноценное использование консольной утилиты ring, которая отвечает за:
Проанализируем ситуацию, с которой сталкивается администратор при установке RPM-пакетов. Jar-файлы не выделены в отдельный пакет, они являются частью базового пакета 1c-enterprise83-common. Это означает, что технически крайне сложно установить сервер, исключив только эти файлы.
Выясним, будет ли работать сервер, если эти файлы все же будут удалены или если в системе не будет установлена среда исполнения Java (JRE). Рассмотрим последствия такого решения:
dmf, он автоматически перейдет на первую версию реструктуризации. Это не приведет к немедленной остановке сервера, но сделает процесс обновления крупных баз данных (например, ERP или УПП) в разы медленнее.rphost и rmngr будут запущены, целостность системы будет нарушена, что может привести к непредсказуемым «падениям» при выполнении регламентных заданий.Для того чтобы включенные в дистрибутив jar-файлы корректно функционировали, в операционной системе должна быть установлена среда Java (OpenJDK или Oracle JRE) версии не ниже 8. Разберем по шагам, как проверить готовность сервера к работе с этими компонентами.
Проанализируем состояние переменных окружения. Платформа 1С ищет исполняемый файл Java либо в стандартных путях системы, либо по переменной JAVA_HOME. Если вы используете специфическую версию Java, рекомендуется явно указать путь к ней.
Пример проверки установленной версии в консоли Linux:
java -version
# Ожидаемый вывод: openjdk version "1.8.0_..." или выше
Если Java установлена, но компоненты 1С выдают ошибки, необходимо проверить права доступа к каталогу /opt/1cv8/x86_64/common/lib/ (или аналогичному пути для вашей версии). Файлы должны быть доступны для чтения пользователю, от имени которого запущен сервер 1С (обычно это пользователь usr1cv8).
Рассмотрим подробнее использование утилиты ring, так как именно она чаще всего требует наличия jar-файлов. Если вам необходимо активировать лицензию на сервере без графической оболочки, вы будете использовать команды следующего вида:
/opt/1C/1CE/components/1c-enterprise-ring-0.1.0+7-x86_64/ring license activate --pin 111-222-333-444-555 --serial 123456789
В этом примере ring обращается к своим внутренним библиотекам, которые как раз и упакованы в те самые jar-файлы. Если исключить их из системы, данная команда вернет ошибку отсутствия класса или модуля.
Выясним причину, по которой 1С настоятельно рекомендует использовать вторую версию реструктуризации. При использовании старого метода (v1) любое изменение структуры таблицы (например, добавление реквизита) приводило к созданию временной таблицы, копированию туда всех данных, удалению старой таблицы и переименованию новой. Это требовало двойного объема дискового пространства и занимало огромное количество времени.
Механизм dmf (те самые jar-библиотеки) реализует более интеллектуальный подход:
Важный момент: Хотя для базовой работы «Реструктуризации v2» лицензия КОРП не обязательна, некоторые продвинутые функции управления кластером, реализуемые через Java-интерфейсы, могут требовать КОРП-лицензию. Однако наличие самих файлов в дистрибутиве обязательно для всех версий.
Подведем итог нашему анализу. Удаление jar-файлов из каталога установки или попытка «облегчить» дистрибутив путем их исключения является плохой практикой по нескольким причинам:
ring.Таким образом, наличие каталога lib с jar-файлами в серверной части 1С:Предприятия для Linux — это не ошибка сборки, а необходимый элемент современной архитектуры системы. Мы рекомендуем обеспечить наличие установленной JRE в системе и не вмешиваться в структуру установленных пакетов 1С, чтобы гарантировать стабильную и производительную работу вашего сервера.