Я сталкиваюсь с проблемой каждые два месяца или около того. Мой сервер activemq умирает, и журнал полон с SocketExceptions.
У меня есть приложение PHP, использующее stomp для отправки сообщений в ActiveMQ и
Java-приложение для потребления сообщений.
У меня есть activemq на другом сервере, где при отправке / использовании сообщений используются только java-приложения, и он никогда не завершался таким образом. Я думаю, что-то есть
не так с Stomp.
Код Stomp очень прост и не дает ничего странного. Только сообщения с установленными свойствами сообщений. Код Stomp закрывает соединение после каждого отправленного сообщения.
Я посмотрел на 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:
ТСР: //0.0.0.0: 61616
Я использую:
ActiveMQ 5.4.2,
Tomcat 6.0.20,
Debian 5.0.3,
PHP 5.2.6,
Stomp ревизия 43