У нас есть несколько экземпляров Java-программы, работающих независимо, но записывающих данные в один и тот же файл журнала.
Изредка возникала ошибка устаревшего дескриптора файла NFS, когда файл журнала ротировался и записывался несколькими экземплярами процесса.
Мы сейчас думаем о том, чтобы иметь отдельный файл журнала для каждого экземпляра. Кто-нибудь уже сталкивался с этой проблемой и имеет лучшее решение.
Спасибо, Найн.
решение1
Не забывайте, что NFS — этонетфайловая система, совместимая с POSIX. Это оченьзакрыватьк соответствию POSIX, на котором обычно спотыкаются люди. Одна из областей, которая раскрывает его несоответствие, это удаление и переименование файлов и особенно каталогов.
Мой совет — избегать, если только приложение специально не закодировано для работы с NFS, доступа двух удаленных процессов к одному и тому же файлу на томе NFS.
решение2
Да, если вы удалите файл, открытый другим хостом по NFS, то вы увидите эту ошибку.
В данном случае лучшей идеей кажется использование отдельных файлов журналов (или использование syslog, или отказ от ведения журналов в NFS).