加为好友发送私信在线聊天
- pengble
- 等级:
- 可用分等级:乞丐
- 总技术分:0
- 总技术分排名:327011
- 结帖率:100.00%
|
发表于:2008-02-22 21:30:07楼主 |
我用Java开发的web应用老是出现内存快速增长,最后内存溢出的问题。我用的tomcat5,JDK1.4.2,内存最大设为1498M,有时候也很平稳,但快速增长时,则只增不降,很快就内存溢出了。最近站点登录人数平均一天100人吧,即使几十人也有可能内存溢出。但登录人数多出现这种情况会更频繁。我查阅了很多技术资料,在一些内存开销大的模块都加了System.gc()语句,但都无法解决内存溢出。这次我采用的是四层架构,现将示例代码贴出来,请各位技术高手看看有没有问题。 1、WebUser类是映射web_user表字段的值对象类。 2、DbWebUserImpl实现了数据库表记录进行进行基本的增删改的类。 public class DbWebUserImpl implements DbWebUser{ Connection conn = null;
public Connection getConnection() { return conn; }
public void setConnection(Connection connection) { this.conn=connection; }
public void updateWebUser(WebUser webUser) throws Exception { String strSql="update web_user set account=?,passwd=?,nickname=? where user_id=?"; PreparedStatement pstm=null; try{ pstm=conn.prepareStatement(strSql); int i=1; pstm.setString(i++,webUser.getAccount()); pstm.setString(i++,webUser.getPasswd()); pstm.setString(i++,webUser.getNickname()); pstm.setInt(i++,webUser.getUser_id().intValue()); pstm.executeUpdate(); }finally{ if(pstm!=null){ pstm.close(); pstm=null; } } } } 3、WebUserService是服务层,调用数据访问类的方法,表示层(jsp或action)就直接调用WebUserService类的方法 public class WebUserService extends BaseService{ private DbWebUser dbWebUser=DbFactory.getDbWebUser();
public boolean updateWebUser(WebUser webUser){ Connection conn = null; try{ conn=DataConnect.getConnection(); dbWebUser.setConnection(conn); dbWebUser.updateWebUser(webUser);
return true; }catch(Exception ex){ ex.printStackTrace(); message=ex.getMessage(); return false; }finally{ try{ if(conn!=null) conn.close(); }catch(Exception ex){ ex.printStackTrace(); } } } } 4、表示层(jsp或action)通过调用WebUserService类的updateWebUser方法,来更新web_user表的记录。 例如: WebUserService webUserService=new WebUserService(); Authorization authorization=(Authorization)session.getAttribute("authorization");
WebUserForm f=(WebUserForm)form; WebUser webUser=webUserService.getWebUser(authorization.getAccount()); webUser.setNickname(f.getNickname()); boolean bret=webUserService.updateWebUser(webUser); //webUser=null; 请问各位高手,如果这里不加webUser=null,会不会造成内存泄漏?但我将很多类似的模块都加上了Object=null,仍不能解决内存溢出。
这个问题困惑了我很久,一直无法解决。现在论坛提出,请各位老师帮帮忙,非常感谢!
|
|
|
问题点数:150 回复次数:22显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复 |
|
相关推荐
完美解决java读取excel内存溢出问题,希望可以帮到大家
JAVA内存溢出问题总结
JAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.doc
Java内存溢出解决办法 加大Tomcat使用Jvm内存(转载) 注重版权 Caused by: java lang OutOfMemoryError: Java heap space 错误原因及解决方法
java内存泄露、溢出检查方法和工具。 步骤: 1,使用linux命令生存堆栈文件 2,用MemoryAnalyzer.exe工具打开 3,根据工具生成的饼状图可以清晰的找出内存泄漏源
java解决大批量数据导出Excel产生内存溢出的方案
内存溢出配置,内存溢出配置内存溢出配置内存溢出配置
Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
kettle内存溢出(Java heap space)以及解决方法
【Java面试题】Java内存溢出
java IBM websphere 内存溢出 javacore deapdump CPU内存分析工具
软件开发 数据库 内存泄露 内存溢出
JAVA内存溢出:探索代码世界的极限
Java内存溢出的详细解决方案 Java内存溢出的详细解决方案
Java内存溢出解决办法,很普遍的问题,希望能有所帮助。
tomcat内存溢出处理方法适用于java,开发工具myeclipse或eclipse
OOM全称”Out Of Memory”,即内存溢出。 内存溢出已经是软件开发历史上存在了近40年的“老大难”问题。在操作系统上运行各种软件时,软件所需申请的内存远远超出了物理内存所承受的大小,就叫内存溢出。 内存溢出...
websphere 内存溢出 javacore分析工具jca456 分析javacore的好工具 分析javacore的好工具
java 使用 poi 解析导入大数据量(几万数据量+)时,报出OOM。这是使用POI 第二种处理方法,解决大数据量导入内存溢出问题,并提升效率
解决Java程序内存溢出的几种办法和处理问题的一些经验