1

У меня возникла проблема с tomcat, из-за которой я получаю "Слишком много открытых файлов"

25-Jul-2018 08:17:49.504 SEVERE [http-nio-443-exec-31] . /u01/app/ords/ords.18.1.1.95.1251/db_conf/m/url-mapping.xml: Too many open files
java.nio.file.FileSystemException: /u01/app/ords/ords.18.1.1.95.1251/db_conf/m/url-mapping.xml: Too many open files
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
    at java.nio.file.Files.newByteChannel(Files.java:361)

Я попытался поднять ulimit для открытых файлов до 65536, но все, что это делает, это продлевает ошибку.

tomcat@tomcatserver():/home/tomcat> ulimit -a | grep open
open files                      (-n) 65536

Я обнаружил, что ошибка исходит от приложения Apex, которое опрашивает базу данных на предмет изменений. Приложение опрашивает каждые 3 секунды. если я смотрю количество файлов lsof | grep tomcat | wc-l Я вижу, как число увеличивается, когда приложение открыто, а затем остается стабильным, когда оно закрыто. и когда открыто несколько сеансов, это число может довольно быстро расти.

Есть ли какое-либо значение конфигурации, которое я могу установить в файле server.xml или что-то на стороне apex, которое ограничит количество файлов, которые он сохраняет открытыми? Любая помощь будет оценена.

НОТА. Соединения из приложения закрываются. я могу увидеть это, выполнив netstat -a | grep client_hostname . Я вижу, как соединение exta приходит каждые 3 секунды, а затем исчезает.

0