Каждые два месяца я сталкиваюсь с проблемой. Мой сервер activemq умирает, а журнал полон SocketExceptions.
У меня есть приложение PHP, использующее топтание для отправки сообщений в ActiveMQ и приложение Java для использования сообщений.
У меня есть activemq на другом сервере, где при отправке / потреблении сообщений используются только java-приложения, и он никогда не терпел неудач. Я думаю, что со Стомпом что-то не так.
Код педали очень простой и не посылает ничего лишнего. Только сообщения с установленными свойствами сообщения. Стоп-код закрывает соединение после каждого отправленного сообщения.
Посмотрел lsof и там ничего не вышло.
Однако netstat имеет много:
tcp6 0 0 127.0.0.1:61616 127.0.0.1:46280 CLOSE_WAIT
И журнал ActiveMQ показывает многое из этого
2011-04-28 12: 43: 09,819 | ОШИБКА | Не удалось принять соединение: java.net.SocketException: слишком много открытых файлов | org.apache.activemq.broker.TransportConnector | Транспортный сервер ActiveMQ: tcp: //0.0.0.0: 61616
Я использую:
ActiveMQ 5.4.2, Tomcat 6.0.20, Debian 5.0.3, PHP 5.2.6, версия Stomp 43