最近做个网站 ,访问量比较大,基本上3天就得需要重启weblogic。
在linux下知道修改打开文件数,windows下怎么解决呢?

解决方案 »

  1.   

    liunx下修改文件句柄数就可以了吗?我估计只能延缓,还是仔细检查程序
      

  2.   

    IO操作的很少啊,也就是下载文件用到了,文件流也正常关闭了。
    下面是代码response.setContentType("text/x-msdownload");
      //response.addHeader("Content-Disposition","attachment; filename=\"" + new String(abc.getBytes("GBK"),"utf-8") + "\"");
                response.addHeader("Content-Disposition","attachment; filename=\"" + new String(newsName.getBytes(),"ISO-8859-1") + "\"");
                java.io.OutputStream os = null;
    java.io.FileInputStream fis = null;
    try {
    os = response.getOutputStream();
    fis = new java.io.FileInputStream(aFilePath + temp_name);
    byte[] b = new byte[1024];
    int j = 0;
    while ((j = fis.read(b)) > 0) {
    os.write(b, 0, j);
    }

    os.flush();

    } catch (Exception e) {
    e.printStackTrace();
    }finally{
    if(fis!=null){
    fis.close();
    }

    if(os!=null){
    os.close();
    }
    }
      

  3.   

    weblogic后台信息没有提到memory,现在是找不到问题出在哪!!!
      

  4.   

    对了,应该有更完整的错误信息吧?因为你提到了too many open files
    简单分析就像楼上他们提到的打开文件后未及时关闭导致超出可承受文件打开数范围
    但是要找到哪里未及时关闭凭这点信息无法具体判断,应该存在一些强力的工具可以分析当前文件乃至内存使用状态。
      

  5.   

    过多并发到是有可能,服务器没做集群,问题一直找不到,权宜之计是做个定时计划任务每天重启weblogic。你说的监测工具是什么软件?
      

  6.   

    不过话说回来,对于文件访问,系统难道是不加限制任由自由访问,然后超限了就报too many open files!?
    暂且认为是这样,这个限对于xp系统是在c:\windows\system32\config.nthttp://www.beaverlog.com/therapist/dos_support/windows_nt_2000_xp.htm
      

  7.   

    跟楼主一样碰到过该问题,幸好是Linux下的,产生这个的原因是并发线程过多,每个线程里面使用了第三方的jar里面开启流过多导致的,不知道楼主是这个问题不?仔细找一下优化一下代码,尤其是并发多的地方。
      

  8.   

    小结一下吧首先确定这个too many open files的所产生的原因是什么,如果不是因为使用文件后流未关闭等不应该的错误所导致,那就是超出了系统允许上限,那就主要有两个途径:
    1. 提高系统文件打开数许可上限(但这可能算是治标不治本的方法,因为仍没有完美杜绝超限的可能性)
    2. 当用户打开数将超过使用上限时是不是可以对其加以限制,这里方法很多,比如将其加入排队等候队列或直接提示用户数过多无法下载等。
      

  9.   

    我初步找了下,对windows 2003 控制文件打开数的地方貌似找不到。