关于JSF的内存泄漏问题,请大家指点!!!!

lifeboy2002 2009-03-03
       
SqlText += this.getOrderbySql();
        // SqlText  为带?的sql语句 ,this.getRowSet()的得到的实体类型是CachedRowSetXImpl
         this.getRowSet().setCommand(SqlText);

        // 下面是把?中的参数,一个一个的赋值
        if (this.getQueryList().size()>0){
            for (int i=1;i<=this.getQueryList().size();i++){
                this.getRowSet().setObject(i,this.getQueryList().get(i-1));
            }
        }

关闭页面的时候,我把session给关掉了,

但是执行n次以后,用jmap发现内存不断增长,而且存在许多的PreparedStatement对象没有放掉

各位高手帮我分析一下,我是不是有需要关掉的地方,没有关掉而引起的内存泄漏,而且PreparedStatement是JSF自动生成的,我想释放也是由JSF自己负责,但是现在就是没有释放,是不是有接口需要关闭一下,谢谢!
       
terryzhou 2009-03-06
你用的什么组件?
大多组件本身都不直接执行SQL,只是调用后台提供的方法,应该是你BO方法没控制好
lifeboy2002 2009-03-06
我们因为组件不好,修改不方便,效率不高,所以没用,我们现在用的是WEB UI,netbeans5.5 自带的,我们用的是com.sun.data.provider.impl.CachedRowSetDataProvider里面的功能。但是现在碰到这个问题,请指教!
lifeboy2002 2009-03-06
经过测试发现,CachedRowSetDataProvider是引起内存泄漏的原因,但是找不到里面有可以关闭内存的方法,每跑一次,里面就增加一个PreparedStatement,请各位帮忙!谢谢
terryzhou 2009-03-06
找SOURCE,debug..crack it
xzdmms 2014-01-11
Session引用对象没释放 https://webinf.me/post/jsf-site-optimizing-in-action.html
Global site tag (gtag.js) - Google Analytics