1,系统环境:
操作系统:AIX 5.3。
JDK版本:JDK5_64(64位jdk)。
WEB服务器:WEBLOGIC 9.2.3. mp3。
2,异常提示:
java.net.SocketException: Too many open files。
java.io.FileNotFoundException: /home/ap/sfyx/webapps/ccb/build/js/resources/images/default/window/right-corners.png (Too many open files)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:135)
        at weblogic.utils.classloaders.FileSource.getInputStream(FileSource.java:25)
        at weblogic.servlet.internal.WarSource.getInputStream(WarSource.java:62)
        at weblogic.servlet.FileServlet.sendFile(FileServlet.java:397)
        Truncated. see log file for complete stacktrace
<Nov 30, 2010 9:00:48 AM GMT+08:00> <Critical> <Server> <BEA-002616> <Failed to listen on channel "Default" on 30.0.63.61:9002, failure count: 10, failing for 45 seconds, java.net.SocketException: Too many open files>之前jdk版本不是64位,系统运行时没有报出这种异常。
哪位朋友碰到过同样的问题,还望指教,谢过了。

解决方案 »

  1.   

    这种情况有可能是打开这个文件后没有释放
    导致文件的filereader stream或类似的打开过多造成的
    检查一下程序或对应逻辑
      

  2.   

    可能是系统句柄不够用了.
    在类UNIX系统,任何东西都是句柄,打开的文件,SOCKET,管道什么的.
    你可以检查你的代码是不是哪儿有未释放的资源,或都查查ulimit 的值是不是够大.
    ulimit -a
      

  3.   

    经过查看,java进程打开的文件数并不多,/proc/java pid/fd/打开的文件并不多的,根本没有超过限制啊。代码方面也检查了下,打开的文件都关闭了的。
      

  4.   

    这是javacore出来的文件中的部分内容:
    1CIUSERLIMITS  User Limits (in bytes except for NOFILE and NPROC)
    NULL           ------------------------------------------------------------------------
    NULL           type                            soft limit           hard limit
    2CIUSERLIMIT   RLIMIT_AS                        unlimited            unlimited
    2CIUSERLIMIT   RLIMIT_CORE                     1073741312            unlimited
    2CIUSERLIMIT   RLIMIT_CPU                       unlimited            unlimited
    2CIUSERLIMIT   RLIMIT_DATA                      unlimited            unlimited
    2CIUSERLIMIT   RLIMIT_FSIZE                     unlimited            unlimited
    2CIUSERLIMIT   RLIMIT_NOFILE                         8192                 8192
    2CIUSERLIMIT   RLIMIT_RSS                        33554432            unlimited
    2CIUSERLIMIT   RLIMIT_STACK                      33554432           4294967296