我们服务器用的是weblogic。主要功能有3个,FTP下载,解析XML,添加数据。解析XML和添加数据在一个方法里。解析完直接添加数据到数据库。现因为年初,客户工作量大。为了提高效率,便启用多线程。最开始流程是这样的。开启线程下载,如果下载完XML,就再开启线程进行解析。(没一个线程下载,只会解析一个XML)。
一般是所有的东西下载完后才会解析XML。但让我奇怪的是,在解析XML的过程中报内存溢出,每次的位置都不一样。我记得内存不是应该在方法执行完的时候就会释放吗?我记得有一次,在循环调用添加方法的时候,内出溢出。我不知道为什么会出这种错误。哪位大神有解?

解决方案 »

  1.   

    使用什么方法解析的xml,如果是dom的话就会一次性把文件全部加载到内存中,有可能会导致内存溢出。采用事件解析xml可以避免此问题
      

  2.   

    用的确实是demo4j,但XML不大,最大的也就是50M左右。如果是因为demo4j的话,那么解析后就会报错,会造成解析中断,但我的已经解析完了
      

  3.   

    用的是demo4j,不过XML最大50多M,而且weblogic加大了内存,如果是demo4j影响的话一开始就不应该在循环调用添加方法的时候报错吧?
      

  4.   

    用XML传送50m的数据...
    利用流式的解析方式吧,读一点解析一点。
      

  5.   


    汗~你先试下dom4j解析20M的XML吧