J BOSS 6.0.0 服务器在使用 AJP 协议时崩溃。系统连续显示以下异常。
2012-08-21 16:12:51,750 ERROR [org.apache.tomcat.util.net.JIoEndpoint] (ajp-0.0.0.0-8009-Acceptor-0) Socket accept failed: java.net.SocketException: Too many open files
at java.net.PlainSocketImpl.socketAccept(Native Method) [:1.6.0_24]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) [:1.6.0_24]
at java.net.ServerSocket.implAccept(ServerSocket.java:462) [:1.6.0_24]
at java.net.ServerSocket.accept(ServerSocket.java:430) [:1.6.0_24]
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61) [:6.0.0.Final]
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:343) [:6.0.0.Final]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_24]
问题是由于在服务器.xml JBOSS服务器中设置的最大线程数和连接超时。
AJP 协议的连接超时默认值为无限。
因此,连接超时值设置为 120000(2 分钟)。
因此,问题(打开的文件过多)从未复制。最好设置最佳配置设置而不是默认值。
为了帮助解决此问题,还进行了一些其他配置更改。这些是,
ajp 协议的“最大线程数”值从 1500 更改为 150。
“ulimit -n” 值已从 1024 更改为 8192。