分享下ext异步调用产生的OutOfMemoryError错误

我们的系统前端基于ext的。后台是struts2
近段时间经常发生内存耗尽的错误,发生的时间不定,有的在操作过程中,有时候放着不动就报错:
-------------------------------
2009-10-27 5:23:02 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: Java heap space

------------------------------

这个问题相当奇怪也严重,这里分享下排查这个问题的经过:

1 jprofiler监控启动的tomcat
2 打开首页,首页正常显示
3 这时查看内存情况,发现一个list一直占用50M内存,
4 寻找此到此list调用的action,最终找到了原因

原来此调用时一个异步的调用,里面有个sql由于限定条件错误,执行会比较耗时,会取出相当大的记录,如果此记录来生成json格式返回则直接把堆内存耗尽,故出现OutOfMemoryError,
由于GridPanel异步调用数据当timeout后会不再加载,页面看起来似乎没有错误,其实后台仍然在执行中,这个时间差造成我们判断上的误区。

不过同时我也发现了jprofiler果然是大杀器,功能强!系统调优的好帮手
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值