Вращение входа в систему Tomcat Солярис с logdam создает растущий блок пустых указателей

Моя установка базового клиента имеет Firefox, Adobe Acrobat Reader, Среду выполнения Java С 7 zip и шпаклевку.

1
задан 3 September 2009 в 03:02
2 ответа

Это - точно это; Tomcat (catalina.sh, чтобы быть конкретным) не открывает свой файл журнала с O_APPEND, и таким образом записи происходят в предыдущем положении, создавая дыру (аннулирует, не поднимая дискового пространства) до той точки.

Одна опция состоит в том, чтобы иметь post_command для перезапуска Tomcat после вращения.

Другой должен сделать catalina.out именованным каналом и иметь программу, читающую из него и делающую "правильную вещь". Дефект с этим - то, что, если программа не работает, Tomcat заполнит буфер канала и затем блок, пока это не будет истощено.

1
ответ дан 3 December 2019 в 19:58

На самом деле catalina.sh действительно намеревается открыть catalina.out с помощью O_APPEND : >> "$ CATALINA_OUT "2> & 1 &

Основная причина - оболочка: #! / Bin / sh . Оболочка Solaris по умолчанию ( / bin / sh ) неправильно интерпретирует >> , чтобы открыть выходной файл с помощью O_APPEND .

Это не проблема в Linux. Вы можете обойти это для Solaris с помощью совместимой со стандартами оболочки: / usr / xpg4 / bin / sh (см. man sh )

Изменить catalina.sh и замените #! / bin / sh на #! / usr / xpg4 / bin / sh . Недостатком является то, что каждый раз, когда вы обновляете Tomcat, вам нужно переделывать его.

Легко проверить, открывается ли catalina.out с помощью O_APPEND или нет, используя команду pfiles .

1: S_IFREG mode:0644 dev:32,5 ino:13738 uid:0 gid:0 size:10170
      O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE
   /opt/tomcat6/logs/catalina.out

Вы можете видеть, что ] / usr / xpg4 / bin / sh открывает catalina.out с помощью O_APPEND .

2
ответ дан 3 December 2019 в 19:58

Теги

Похожие вопросы