Ошибка обработки устаревшего файла NFS с помощью log4j

Ошибка обработки устаревшего файла NFS с помощью log4j

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

Изредка возникала ошибка устаревшего дескриптора файла NFS, когда файл журнала ротировался и записывался несколькими экземплярами процесса.

Мы сейчас думаем о том, чтобы иметь отдельный файл журнала для каждого экземпляра. Кто-нибудь уже сталкивался с этой проблемой и имеет лучшее решение.

Спасибо, Найн.

решение1

Не забывайте, что NFS — этонетфайловая система, совместимая с POSIX. Это оченьзакрыватьк соответствию POSIX, на котором обычно спотыкаются люди. Одна из областей, которая раскрывает его несоответствие, это удаление и переименование файлов и особенно каталогов.

Мой совет — избегать, если только приложение специально не закодировано для работы с NFS, доступа двух удаленных процессов к одному и тому же файлу на томе NFS.

решение2

Да, если вы удалите файл, открытый другим хостом по NFS, то вы увидите эту ошибку.

В данном случае лучшей идеей кажется использование отдельных файлов журналов (или использование syslog, или отказ от ведения журналов в NFS).

Связанный контент