2016-06-09 3 views
0

Я не получаю, пока EAR не разворачиваются автоматически в jboss-as-7.1.1.Final.EAR автоматически разворачиваются в jboss-as-7.1.1.Final

Я могу видеть эти журналы:

ERROR org.apache.tomcat.util.net.JIoEndpoint$Acceptor [run] Socket accept failed: java.net.SocketException: Too many open files 

WARN com.kpn.tie.ejbs.dao.webservice.tt.WebServiceProcessor [invoke] WebService unavailable. The request could not be completed due to technical problems. ; nested exception is:  java.net.SocketException: Too many open files 

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

Для обхода проблемы перезапуск jboss в определенный промежуток времени разрешит эту проблему?

ответ

0

java.net.SocketException: Слишком много открытых файлов

В Linux вы можете увеличить количество одновременно открытых файлов с

ulimit -n 2048 

Это позволит 2048 открыт на то же время в текущей сессии. Команда должна быть вставлена ​​в конфигурацию сеанса (например, .bashrc или аналогичная, зависит от используемой оболочки) или в сценарии запуска JBoss.

Чтобы показать текущий предел можно использовать

ulimit -n 
1

Причину может быть, что приложение перегружено или настройка дескриптора файла слишком низок. Из-за этого JVM не может открыть какой-либо новый дескриптор файла, поэтому вы получаете Socket accept failed для входящих запросов. Через некоторое время вступает в игру Deployment-Scanner (по умолчанию 5 секунд) и пытается проверить папку развертывания, что невозможно, поскольку он не может открыть какой-либо файл-дескриптор. Поэтому он запутывается и останавливает развернутые приложения.

Первое решение может быть: Деактивировать сканер так, чтобы он проверяет только один раз во время загрузки или удаления подсистемы сканера развертывания и использовать только CLI для развертывания.

Второе решение может быть: Увеличение лимита файл обработчика (открытый размер файлов)

Смежные вопросы