6

ログメッセージのある時点で jboss-portal-2.7.2 を起動すると:

2013-01-30 20:32:02,541 ERROR [org.apache.tomcat.util.net.JIoEndpoint] Socket accept failed
java.net.SocketException: Too many open files
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
        at java.net.ServerSocket.implAccept(ServerSocket.java:462)
        at java.net.ServerSocket.accept(ServerSocket.java:430)
        at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
        at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:309)
        at java.lang.Thread.run(Thread.java:662)

deploy フォルダーには、合計 20 個の war モジュールがあります。解決策はありますか?

4

2 に答える 2

5

サーバーで tomcat を実行しているユーザーの ulimit を増やします。

ulimit を確認するには:

ulimit -n

現在のセッションで増加するには:

ulimit -n 102400

を編集して永続的な変更を加えることができます/etc/security/limits.conf

于 2013-06-26T02:12:30.990 に答える
3

このメッセージは基本的に、OS で設定されている、開くことができるファイルの最大数の制限に達したことを意味します。

これを解決する適切な方法は、出力を診断し、lsof -p <jboss_java_pid> これらの多くのファイルが開かれている原因を突き止めることです。その後、それに応じて解決策を進めてください。

迅速な解決策として、OS のグローバル最大ファイル制限を増やすか、ユーザーのファイル制限を増やすか、またはその両方を行うことができます。たとえば Fedora では、これ/proc/sys/file-maxはグローバル ファイルの最大制限と/etc/security/limits.confユーザー制限のためにファイルで設定できます。

于 2013-01-30T16:27:08.370 に答える