2

2か月に1回程度、問題が発生しています。ActiveMQ サーバーが停止し、ログが SocketExceptions でいっぱいです。

ストンプを使用して ActiveMQ にメッセージを送信する PHP アプリケーションと、メッセージを消費する Java アプリケーションがあります。

メッセージの送信/消費時にJavaアプリケーションのみが使用される別のサーバーにactivemqがあり、このように失敗したことはありません。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

4

1 に答える 1

2

Java プログラムで多くの接続を開いているようで、ulimit -n に達しています。使用後に接続を閉じるか、接続プールを使用します。

回避策として、sysctl を介して開いているファイルの制限を上げることができます。こちらのチュートリアルを参照してください。

于 2011-04-28T12:21:22.130 に答える