ActiveMQ SocketException

时间:2011-04-28 11:51:58

标签: spring tomcat6 activemq stomp

我每两个月左右就遇到一个问题。我的activemq服务器死了,日志已满SocketExceptions。

我有一个使用stomp的PHP应用程序向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 Log显示了很多这个

  

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,   重踏版本43

1 个答案:

答案 0 :(得分:2)

似乎你在java程序中打开了很多连接,然后你正在打你的ulimit -n。使用后关闭连接或使用连接池。

作为wourkaround,您可以通过sysctl提高打开文件的限制,请参阅tutorial here