我每两个月左右就会遇到一个问题。我的activemq服务器死了,日志中满是SocketExceptions。
我有一个使用stomp向ActiveMQ发送消息的PHP应用程序和一个使用这些消息的Java应用程序。
我在另一台服务器上使用了activemq,它在发送/消费消息时只使用java应用程序,而且从未像这样失败过。我觉得Stomp有什么问题。
stomp代码是非常基本的,不发送任何奇怪的东西。只有设置了消息属性的消息。每次发送邮件后,stomp代码都会关闭连接。
我已经看过了,没有什么不正常的地方。
不过,netstat确实有很多:
tcp6 61616 127.0.0.1:61616 127.0.0.1:46280 CLOSE_WAIT
ActiveMQ日志显示了很多这方面的内容
2011-04-28 12:43:09,819 \x{e 010}无法接受连接: java.net.SocketException:打开的文件太多org.apache.activemq.broker.TransportConnector \ ActiveMQ传输服务器: tcp://0.0.0.0:61616
我在用:
ActiveMQ 5.4.2,Tomcat 6.0.20,Debian5.0.3,PHP5.2.6,Stomp修订版43
发布于 2011-04-28 12:21:22
您似乎在java程序中打开了许多连接,然后您就进入了ulimit -n。使用后关闭连接或使用连接池。
作为一个工具,您可以通过sysctl提高您打开的文件限制,请参阅这里的教程。
https://stackoverflow.com/questions/5818136
复制相似问题