Tomcat veröffentlicht keine Dateien [Fehler bei zu vielen offenen Dateien] (oracle APEX -> Tomcat)

474
bscullion

Ich habe ein Problem mit Tomcat, bei dem ich ständig "zu viele offene Dateien" bekomme.

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) 

Ich habe versucht, das ulimit für offene Dateien auf 65536 zu erhöhen, aber dies alles verlängert den Fehler.

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

Ich habe festgestellt, dass der Fehler von einer Apex-Anwendung stammt, die die Datenbank nach Änderungen abfragt. Die Anwendung fragt alle 3 Sekunden ab. Wenn lsof | grep tomcat | wc-lich die Anzahl der Dateien beobachte, kann ich sehen, dass sich die Anzahl erhöht, während die App geöffnet ist, und dann beim Schließen konstant bleibt. Wenn mehrere Sitzungen geöffnet sind, kann diese Zahl sehr schnell anwachsen.

Gibt es einen Konfigurationswert, den ich in der server.xml einstellen kann, oder etwas auf der Apex-Seite, der die Anzahl der geöffneten Dateien begrenzt? Jede Hilfe wird sehr geschätzt.

HINWEIS. Die Verbindungen aus der Anwendung werden geschlossen. Ich kann das sehen, indem ich tue netstat -a | grep client_hostname. Ich kann eine Exta-Verbindung alle 3 Sekunden sehen und dann verschwinden.

1

0 Antworten auf die Frage