关于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
|