Es posible que durante nuestro trabajo diario con Alfresco, sobre
todo durante procesos de carga masiva de datos, Alfresco deje de
funcionar y en los logs encontremos trazas parecidas a la siguiente:
[...] 13:13:44,138 User:admin ERROR [org.alfresco.fileserver] java.net.SocketException: Too many open files [...]
No se trata de un error de Alfresco ni de su ecosistema Java, el
error está provocado por una protección en GNU/Linux y se encuentra
documentado en el Manual
de instalación y configuración de Alfresco 3.3. Se trata del control
de uso de recursos de GNU/Linux, lo cual permite evitar
situaciones como denegaciones de servicio locales o limitar el número
de recursos de los que hace uso el usuario.
Podemos ver cuántos ficheros abiertos puede gestionar por defecto
nuestro usuario:
$ ulimit -n 1024
En Ubuntu por defecto podemos configurarlo en el fichero /etc/security/limits.conf.
Para solucionarlo:
$ sudo vi /etc/security/limits.conf alfresco soft nofile 4096 alfresco hard nofile 65536
Finalmente, reiniciamos la sesión de usuario. Para comprobarlo:
$ ulimit -n
Debe aparecer la misma cifra que en la primera línea que hemos añaido
a limits.conf.
Si vemos que aún así seguimos recibiendo el error, necesitaremos
aumentar el límite, podríamos limitarlo, por ejemplo, a 8192 ficheros.