如何处理java.net.SocketException:打开的文件太多

San*_*and 2 struts2 socketexception java-ee

我们是一个Struts2 java webapplication,使用hibernate 3.5 ORM.当我们在应用程序上执行一些并行操作时,我们得到以下异常,并且java进程cpu利用率处于最大值.

May 15, 2012 12:39:59 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
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:59)
    at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:210)
    at java.lang.Thread.run(Thread.java:662)
Run Code Online (Sandbox Code Playgroud)

请相应地建议我们.

Kor*_*gen 6

我猜你是在基于Linux的操作系统上?似乎你需要增加最大数量.每个进程的文件句柄.

看看这里:http://ehaselwanter.com/en/blog/2009/03/13/tomcat-too-many-open-files/