fswan:
很明显的内存泄漏,程序结构的问题,写了那么多
[阅读: 955] 2006-05-16 01:04:29
程序没写好,EJB常见的问题。
2G的内存占用完肯定是比较长时间的运行才可能产生的,内存回收不会比不上消耗的。
别外就是程序问题。
如果是用Entity Bean,那么每个记录都会生成一个实例,如果对某个很大的表的调用是通过Entity Bean的话,有的人写程序会先把所有的实例生成再查找,或分页或别的操作,这样消耗的内存是巨大的,出问题是肯定的。
还有,句柄注意要释放,不然内存管理器释放不了一样会产生问题。
或者是线程死锁,死循环都可能发生这个问题。
长期解决办法:
总体设计,重要的环节一定要经验丰富的人写(或者审代码),必须经过严格的测试。
短期解决办法:
找一个JAVA的内存查看器,看一下到底是什么对象占了内存,然后有针对的修改。
最主要一点:我建议不要用EJB,实在不行不要用ENTITY BEAN,改用Session Bean