簡體   English   中英

如何處理java.net.SocketException:打開文件過多

[英]How to handle java.net.SocketException: Too many open files

我們的是使用休眠3.5 ORM的Struts2 Java Web應用程序。 當我們在應用程序上執行一些並行操作時,我們得到以下異常,並且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)

請據此建議我們。

我猜您在基於Linux的操作系統上? 似乎您需要增加最大數量。 每個進程的文件句柄。

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

它超出了打開文件描述的限制數。 解決方案:增加打開文件數的硬性限制和軟性限制。

軟nofile 999999硬nofile 999999在/etc/security/limits.conf文件中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM