Изменение регистрации в Tomcat не работает должным образом - PullRequest
0 голосов
/ 29 августа 2018

У меня неправильно работает приложение под Tomcat на MSWindows. Чтобы настроить систему для лучшего понимания того, что не работает, я пытаюсь добавить ведение журнала GC, но пока мои попытки не увенчались успехом.

Изначально я установил CATALINA_OPTS в setenv.bat - но они были проигнорированы при перезапуске службы.

Затем я попытался добавить параметры, используя Tomcat8w.exe:

-Xloggc:"C:\PerfLogs\gc-tomcat.log"
-XX:+UseGCLogFileRotation 
-XX:NumberOfGCLogFiles=10 
-XX:GCLogFileSize=5M 
-XX:+PrintGCDetails
-verbose:gc
-XX:+PrintGCDateStamps 
-XX:+HeapDumpOnCtrlBreak

Служба не запускается с «ошибкой 4». Просмотр событий показывает:

Служба Apache Tomcat 8.0 Tomcat8 прервана из-за следующей специфичной для службы ошибки: Система не может открыть файл.

Я проверил путь, и пользователь SYSTEM имеет полный контроль. В журнале Tomcat stderr нет сообщений об ошибках - только одна запись:

Commons Daemon procrun stdout initialized

Я не вижу, чтобы к другим файлам журнала добавлялось ничего.

Удаление указанных выше параметров позволяет запустить службу. Использование вышеупомянутого конфига с двойными кавычками на пути не имеет никакого влияния. Создание исходного файла журнала перед запуском службы не оказывает влияния.

Как включить ведение журнала GC? Как я могу узнать, почему это в настоящее время не удается?

(к сожалению, переход на более удобную для пользователя операционную систему невозможен).

Обновление Я нашел еще несколько записей журнала - на этот раз в common-daemon-YYYY-MM-DD.log:

[2018-08-29 11:04:52] [info]  [ 4068] Running 'Tomcat8' Service...
[2018-08-29 11:04:52] [info]  [ 2560] Starting service...
[2018-08-29 11:04:52] [error] [ 4200] CreateJavaVM Failed
[2018-08-29 11:04:52] [error] [ 4200] The system could not find the environment option that was entered.
[2018-08-29 11:04:52] [error] [ 2560] Failed to start Java
[2018-08-29 11:04:52] [error] [ 2560] ServiceStart returned 4
[2018-08-29 11:04:52] [info]  [ 4068] Run service finished.
[2018-08-29 11:04:52] [info]  [ 4068] Commons Daemon procrun finished

и, в случае необходимости:

java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

1 Ответ

0 голосов
/ 29 августа 2018

После долгих размышлений я обнаружил, что MSWindows jvm, очевидно, второсортный гражданин в мире Java. Согласно документации Oracle ядро ​​MSWindows Java не поддерживает ротацию журналов. Удаление следующих параметров из конфигурации позволило JVM начать с регистрации GC: * ​​1003 *

-XX:+UseGCLogFileRotation 
-XX:NumberOfGCLogFiles=10 
-XX:GCLogFileSize=5M 

Почему это сообщается как "Система не может открыть файл", я понятия не имею.

Теперь мне просто нужно разобраться, что происходит, когда файлы журнала заполняются / как мне это предотвратить.

...