最后一个幼稚的问题,java.lang.OutOfMemoryError能不能指望jboss自己恢复呢
========================================
你可以在代码可能抛出OutOfMemoryError的位置使用try catch获得这个OutOfMemoryError错误,并进行处理,通过一些策略来降低应用服务的压力;这样就软性的化解了这个错误也不会把应用挂掉
========================================
你可以在代码可能抛出OutOfMemoryError的位置使用try catch获得这个OutOfMemoryError错误,并进行处理,通过一些策略来降低应用服务的压力;这样就软性的化解了这个错误也不会把应用挂掉
解决方案 »
- 新手,问一个ssh2的问题。
- 请教JTable中键盘选择行事件响应问题
- jsp页面播放外部视频? 求完整代码,,
- jdbc连接问题
- java com.opensymphony.webwork.views.jasperreports.CompileReport 如何编译报表模板
- struts action中为什么没有mapping.findforward()方法?
- 急,POI的问题,不知道为什么会这样啊,怎么出现java.lang.NoClassDefFoundError: org/apache/log4j/Category
- 请问有谁知道如何用RMI传输文件--方案要实用
- jdbc 连接mssqlserver2000失败,操作系统为win2003.同样的配置在win2000中无任何问题
- 关于parser jsp 文件的问题?高手请进
- 搜索引擎 开发技术.QQ群10523238
- Struts的国际化的原理?
======================================================
分页是读取数据时作的即只取15条数据,还是全部取出后再选择15条记录?
这个地方及容易导致内存溢出,或者系统压力过大;觉得应该是在这个地方出现的问题
我想处理OutOfMemoryError 异常不是一件容易的事,首先我现在很难发现到底是哪里的代码导致了该异常,因为调试的时候一切正常,只是在压力测试时偶尔抛出来,然后就只能重启jboss。其次,就算找到了,一旦发生了OutOfMemoryError异常程序能不能处理呢?好象不能处理。我看了很多这方面的帖子,大概都是说怎么避免,就算catch到了系统能不能恢复我还不知道。所以我觉得如果jboss能够提供一个自己恢复的机制就太好了。
显示15条记录我是先得到全部记录的一个collection然后选择15条记录。我也觉得这不是个好办法,可是我用CMP实现持久,EJB-QL语法太笨了,根本没办法实现灵活的查询,更别说调用存储过程什么的了。反正目前还没想到好的解决办法,只好这样用了。如果大家有好分页办法欢迎开源 :)
另外,我觉得这不应该是造成内存泄露的原因,一个包含10000条记录的collection应该比一个包含10000条记录的ResultSet小的多吧,何况我clear得比谁都勤快,问题不应该在这里才对啊。
===============
显示15条记录我是先得到全部记录的一个collection然后选择15条记录
================
中,你说呢?压力测试中多线程的处理速度很快的,内存占用是hoho的;包含10000条记录的Collention和包含10000条记录的ResultSet谁占用的内存多先不说,但是占用内存是很多的;如果在一个很小的时间段,10个线程每个都取到了10000条记录,在你从10000条记录中选择15条的时间,其他的线程也取到10000条,这个很正常吧?那现在的JVM(Tomcat默认128 或者 256根据安装时内存大小定义的),很容易被耗光的;你说呢?
=========
这个也是我的盲点,但是应该能用where条件吧?就是这个函数的参数有个from to两个参数,并且作为where条件 就可以解决了取大量数据的问题;不知道对于EJB-QL语法是否可行;建议验证