我每两个月左右就会遇到一个问题。我的 activemq 服务器死了,日志充满了 SocketExceptions。
我有一个使用 stomp 向 ActiveMQ 发送消息的 PHP 应用程序和一个使用消息的 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 传输服务器:tcp://0.0.0.0:61616
我正在使用:
ActiveMQ 5.4.2、Tomcat 6.0.20、Debian 5.0.3、PHP 5.2.6、Stomp 修订版 43