ActiveMQ 套接字异常

发布于 2024-11-03 16:58:29 字数 786 浏览 0 评论 0原文

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

我有一个使用 stomp 向 ActiveMQ 发送消息的 PHP 应用程序 用于使用消息的 Java 应用程序。

我在另一台服务器上有 activemq,在发送/消费消息时仅使用 java 应用程序,并且它从未像这样失败过。我觉得有一些东西 践踏错了。

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, 雄猫6.0.20, Debian 5.0.3, PHP 5.2.6, Stomp 修订版 43

I'm running into a problem every two months or so. My activemq server dies and the log is full with SocketExceptions.

I have a PHP application using stomp to send messages to ActiveMQ and
a Java application to consume the messages.

I have activemq on another server where only java applications are used when sending/consuming messages and it has never failed like this. I think there is somthing
wrong with Stomp.

The stomp code is very basic and does not send anything odd. Only messages with message properties set. The stomp code closes the connection after every message sent.

I've looked at lsof and there is nothing out of order there.

netstat does however have alot of:

tcp6 0 0 127.0.0.1:61616 127.0.0.1:46280 CLOSE_WAIT

And the ActiveMQ Log shows alot of this

2011-04-28 12:43:09,819 | ERROR |
Could not accept connection :
java.net.SocketException: Too many
open files |
org.apache.activemq.broker.TransportConnector
| ActiveMQ Transport Server:
tcp://0.0.0.0:61616

I'm using:

ActiveMQ 5.4.2,
Tomcat 6.0.20,
Debian 5.0.3,
PHP 5.2.6,
Stomp revision 43

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我的影子我的梦 2024-11-10 16:58:29

看来您在 java 程序中打开了很多连接,然后您就达到了 ulimit -n。使用后关闭连接或使用连接池。

作为解决方法,您可以通过 sysctl 提高打开文件限制,请参阅此处的教程。

It seems that you are opening a lot connections in your java program, and then you are hitting your ulimit -n. Close Connections after usage or use a connection pool.

As a wourkaround you can raise your open file limit via sysctl, see a tutorial here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文