2011-02-06 18 views
2

私は問題はいつか次の例外がスローされjava.net.SocketExceptionが:開いているファイルが多すぎます

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) 

1月27日に、2011年4時54分:56 AM org.apache.tomcat.util.net.PoolTcpEndpoint acceptSocket。

その例外の主な理由を教えてください。そしてその例外がTomcatをシャットダウンすることができるのであれば?アドバンス

+0

http://amitbhayani.blogspot.com/2010/01/javanetsocketexception-too-many-open.html – Nishant

+0

ご協力いただきありがとうございます。しかし、この例外がtomcatをシャットダウンするかどうかを判断することができますか? – Ali

答えて

1

おかげで、あなたはタイトなループであなたのDBに対してSQL文の束を実行していますか?

もしそうなら、それぞれにstmt.close()を実行してください。

+0

ありがとうジョー、しかし、閉鎖されていないステートメントを見つけることができる自動ツールはありますか?ありがとうございました – Ali

+0

それについてはわかりません。うまくいけば、あなたはコードのある領域に動作を絞り込むことができます。また、アプリケーションがデータアクセスクラスを中央の場所に分けている場合は、そこを参照してリソースを解放しているかどうかを確認できます。 –

関連する問題