java.net.SocketException:打开的文件太多

时间:2011-02-06 08:45:23

标签: java

我有一个使用AppFuse和mysql数据库的应用程序

问题是有时抛出以下异常:

Jan 27, 2011 4:54:56 AM org.apache.tomcat.util.net.PoolTcpEndpoint acceptSocket
SEVERE: Endpoint ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8080] ignored exception: java.net.SocketException: Too many open files
java.net.SocketException: Too many open files
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
    at java.net.ServerSocket.implAccept(ServerSocket.java:453)
    at java.net.ServerSocket.accept(ServerSocket.java:421)
    at  org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.acceptSocket(PoolTcpEndpoint.java:368)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:549)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:619)

2011年1月27日上午4:54:56 org.apache.tomcat.util.net.PoolTcpEndpoint acceptSocket。

任何人都可以告诉我这个例外的主要原因吗?如果该异常可以导致tomcat被关闭?

先谢谢

1 个答案:

答案 0 :(得分:1)

你是在紧密循环中对你的数据库执行一堆sql语句吗?

如果是这样,请确保对每个人执行stmt.close()。