Зачем сервер 1С запускает Java-машину (java.exe) и как это работает?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

С выходом обновлений платформы 1С:Предприятие 8.3.22 многие системные администраторы и разработчики заметили появление в списке процессов нового активного участника — java.exe. Этот процесс запускается автоматически при старте службы сервера 1С и потребляет определенный объем оперативной памяти, что часто вызывает вопросы: не является ли это вирусной активностью, частью стороннего ПО или обязательным компонентом конфигурации? В этой статье мы подробно разберем, какую роль играет Java в современной экосистеме 1С, почему фирма «1С» отошла от использования исключительно собственного кода и как правильно эксплуатировать сервер в новых реалиях.

Новая архитектура полнотекстового поиска

Основная причина появления Java-машины в составе серверного кластера — это глобальное обновление системы полнотекстового поиска (ППД). Проанализируем ситуацию: до версии 8.3.22 механизмы поиска были жестко вшиты в код рабочих процессов rphost. Начиная с указанной версии, 1С начала поэтапный переход на новую микросервисную архитектуру. Теперь за поиск отвечает отдельный компонент — Модуль поиска (Search Module).

Рассмотрим структуру командной строки, которую мы видим в диспетчере задач или через ps aux в Linux. Типичная строка запуска выглядит следующим образом:


"C:\Program Files\1cv8\8.3.22.1704\bin/jre\bin\java.exe" 
-Dconsole=none 
"-Dcfg=C:\Program Files\1cv8\8.3.22.1704\bin/sm-searcher/elc-fts-1.*.cfg" 
-Dhost=0.0.0.0 
-Dport=1577 
-Droot=H:\Log_Actual_1C_dev/reg_2041 
"-Duser.dir=C:\Program Files\1cv8\8.3.22.1704\bin"

Разберем эти параметры, чтобы понять, что именно делает процесс. Флаг -Dcfg указывает на конфигурационные файлы модуля поиска, а -Dport=1577 определяет порт, по которому основной кластер 1С взаимодействует с поисковым движком. Обратите внимание на аббревиатуру FTS (Full Text Search) — она прямо подтверждает предназначение процесса. Модуль часто обозначается кодовым именем ELC (Enterprise Language Core).

Почему 1С выбрала Java?

Выясним причины такого технологического выбора. Переход на Java не был случайным. Проанализируем ключевые факторы:

  1. Кроссплатформенность: Современная 1С должна одинаково стабильно работать как на Windows, так и на многочисленных дистрибутивах Linux (Astra Linux, РЕД ОС, Ubuntu и др.). Java предоставляет готовую среду исполнения, которая минимизирует различия между операционными системами.
  2. Использование мировых стандартов поиска: Вместо того чтобы «изобретать велосипед», разработчики 1С интегрировали проверенные временем библиотеки (такие как Apache Lucene), которые нативно работают на Java и обеспечивают высокую скорость индексации огромных массивов данных.
  3. Изоляция процессов: Вынос поиска в отдельный процесс java.exe значительно повышает общую отказоустойчивость системы. Если при индексации сложного PDF-файла произойдет критическая ошибка, упадет только поисковый модуль, в то время как пользователи продолжат работу в rphost.
  4. Партнерство с BellSoft: Для работы 1С используется Liberica JRE — российская сборка Java, которая имеет необходимые сертификаты и оптимизирована для работы в отечественных инфраструктурах.

Особенности работы в ОС Linux

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


/opt/1cv8/x86_64/8.3.22.1709/jre/bin/java 
-Dconsole=none 
-Dcfg=/opt/1cv8/x86_64/8.3.22.1709/sm-searcher/e1c-fts-1.*.cfg 
-Dhost=0.0.0.0 
-Dport=1576 
-Droot=/root/.1cv8/1C/1cv8/reg_1541 
-Duser.dir=/opt/1cv8/x86_64/8.3.22.1709/sm-searcher 
-Dapp=sm-searcher-480e46f1 
-classpath /opt/1cv8/x86_64/8.3.22.1709/sm-searcher/* com.e1c.fts.app.FtsApp

Здесь мы видим явное указание главного класса приложения com.e1c.fts.app.FtsApp. Важно помнить, что в Linux Java может требовать дополнительных настроек лимитов открытых файлов (ulimit), так как индексация затрагивает множество мелких файлов в каталоге поиска.

Рекомендации по настройке и эксплуатации

Работа Java-машины может вызвать повышенное потребление ресурсов. Разберем шаги по оптимизации производительности:

1. Управление оперативной памятью. Java склонна резервировать («откусывать») память заранее. Если вы замечаете, что java.exe занимает слишком много места, можно попробовать ограничить параметры кучи (Heap size) через конфигурационные файлы в папке sm-searcher, используя параметры -Xmx (максимальный размер) и -Xms (начальный размер). Однако делать это стоит осторожно: недостаток памяти приведет к остановке службы поиска.

2. Сетевые порты. Убедитесь, что порты, указанные в строке запуска (например, 1576, 1577), открыты во внутреннем брандмауэре сервера. Несмотря на то что обмен идет внутри одного хоста, блокировка этих портов приведет к невозможности использования поиска в программе.

3. Исключения антивируса. Это критический момент. Проанализируем нагрузку: модуль поиска постоянно записывает и читает данные из каталога reg_2041 (или аналогичного для вашего кластера). Обязательно добавьте папку с индексами полнотекстового поиска в исключения антивирусного сканера. В противном случае «тормоза» системы гарантированы, так как антивирус будет проверять каждый обновляемый индекс.

4. Стабильность версий. В первых релизах ветки 8.3.22 наблюдались утечки памяти в Java-модуле. Если вы используете ранние версии (например, 8.3.22.1704), рекомендуется обновиться до актуальных исправленных сборок платформы.

Где еще в 1С используется Java?

Важно понимать, что полнотекстовый поиск — не единственное место применения Java. Рассмотрим другие компоненты:

Итоги

Подводя итог, можно сказать: появление Java в серверной части 1С — это не ошибка и не «лишний» компонент, а стратегическое направление развития платформы. Переход к микросервисам позволяет 1С использовать лучшие мировые практики обработки данных. Для администратора это означает необходимость мониторинга нового процесса и более тщательной настройки дисковой подсистемы и оперативной памяти сервера.

Рассмотренные нами механизмы показывают, что 1С становится более гибкой и современной системой, хотя это и требует от специалистов новых навыков в администрировании сред исполнения Java.

← На главную