我有个工程,tomcat5.0.28 spring hibernate struts ;10几个用户服务器一起访问,过会就会出错,
java.lang.OutOfMemoryError
我设置了大内存1024,也会出错,所以我在本机做个测试:
public ActionForward test(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
List list = new ArrayList();
for(int i=0;i<500;i++){
list = getCodeService().list();
}
MessageUtils.addMessage(request, list.size()+"!!!");
return mapping.findForward("error");
}getCodeService().list() 是:
protected List list() {
ContextInfo.recoverQuery();
DetachedCriteria dc = DetachedCriteria.forClass(TXjCodetype.class).addOrder(Order.asc("typeOrder"));
return this.hibernateTemplate.findByCriteria(dc);
}DetachedCriteria dc = DetachedCriteria.forClass(TXjCodetype.class).addOrder(Order.asc("typeOrder"));
查询数据库得到list 100条左右,我打开三个ie 轮流不停的刷新,大约20秒,就出下面的错误了,我觉得调大内存不是办法!
请教有什么好办法吗?错误:
classpath=/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/classes/;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/FCKeditor-2.3.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/acegi-security-1.0.0.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/activation.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/ant.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/antlr-2.7.6rc1.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/asm-attrs.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/asm.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/axis.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/barbecue-1.5-beta1.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/bsh-2.0b4.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/cglib-nodep-2.1_3.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/coheg-security-1
cp=D:\qwareEclipse\tomcat-5.0.28\bin\bootstrap.jar
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\classes
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\lib\FCKeditor-2.3.jar
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\lib\acegi-security-1.0.0.jar
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\lib\activation.jar
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\lib\ant.jar
.....................很多包。。
work dir=D:\qwareEclipse\tomcat-5.0.28\work\Catalina\localhost\patrol
extension dir=C:\Program Files\Java\j2re1.4.2\lib\ext
srcDir=D:\qwareEclipse\tomcat-5.0.28\work\Catalina\localhost\patrol
include=org/apache/jsp/jsp/patrol/specialty/specialty_005fentry_jsp.java [Security] ERROR [http-80-Processor13] Compiler.generateClass | Error compiling file: /D:/qwareEclipse/tomcat-5.0.28/work/Catalina/localhost/patrol//org/apache/jsp/jsp/patrol/specialty\specialty_005fentry_jsp.java [javac] Compiling 1 source fileThe system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryErrorThe system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
我设置了大内存1024,也会出错,所以我在本机做个测试:
public ActionForward test(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
List list = new ArrayList();
for(int i=0;i<500;i++){
list = getCodeService().list();
}
MessageUtils.addMessage(request, list.size()+"!!!");
return mapping.findForward("error");
}getCodeService().list() 是:
protected List list() {
ContextInfo.recoverQuery();
DetachedCriteria dc = DetachedCriteria.forClass(TXjCodetype.class).addOrder(Order.asc("typeOrder"));
return this.hibernateTemplate.findByCriteria(dc);
}DetachedCriteria dc = DetachedCriteria.forClass(TXjCodetype.class).addOrder(Order.asc("typeOrder"));
查询数据库得到list 100条左右,我打开三个ie 轮流不停的刷新,大约20秒,就出下面的错误了,我觉得调大内存不是办法!
请教有什么好办法吗?错误:
classpath=/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/classes/;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/FCKeditor-2.3.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/acegi-security-1.0.0.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/activation.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/ant.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/antlr-2.7.6rc1.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/asm-attrs.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/asm.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/axis.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/barbecue-1.5-beta1.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/bsh-2.0b4.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/cglib-nodep-2.1_3.jar;/D:/qwareEclipse/WebQingHai/product/dist/target/WEB-INF/lib/coheg-security-1
cp=D:\qwareEclipse\tomcat-5.0.28\bin\bootstrap.jar
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\classes
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\lib\FCKeditor-2.3.jar
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\lib\acegi-security-1.0.0.jar
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\lib\activation.jar
cp=D:\qwareEclipse\WebQingHai\product\dist\target\WEB-INF\lib\ant.jar
.....................很多包。。
work dir=D:\qwareEclipse\tomcat-5.0.28\work\Catalina\localhost\patrol
extension dir=C:\Program Files\Java\j2re1.4.2\lib\ext
srcDir=D:\qwareEclipse\tomcat-5.0.28\work\Catalina\localhost\patrol
include=org/apache/jsp/jsp/patrol/specialty/specialty_005fentry_jsp.java [Security] ERROR [http-80-Processor13] Compiler.generateClass | Error compiling file: /D:/qwareEclipse/tomcat-5.0.28/work/Catalina/localhost/patrol//org/apache/jsp/jsp/patrol/specialty\specialty_005fentry_jsp.java [javac] Compiling 1 source fileThe system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryErrorThe system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError
解决方案 »
- 请问有谁会JSF的,请帮一下忙,谢谢!
- Spring Hibernate JbossCache配置
- 如何让页面中的一部分不变,而别的区域变动
- 能不能在指定超链接的时候将制定的参数传入这个链接页面????
- JSP中为何引不到javascript
- ServletRequestWrapper?
- 大家好:小弟有个问题想请教各位关于HttpServletResponse的输出???
- javabean遇到的莫名其妙的问题,有谁遇到过!帮忙一下
- (急急-在线等)怎样插入多条记录???
- Servlet连接数据库时,Junit测试正常,Servlet的service报错,求指点
- applet嵌入html问题!急!!
- servlet部署问题
list = getCodeService().list();
}
你每次次取 100 条循环500次,10几个用户一起刷20秒,如果机器配置不好的话肯定会内存溢出,gc又不是马上去清理。这样的刷法,如果是普通的用户机器,肯定会内存溢出的。
list = getCodeService().list();
} 不知道你这里的for循环加了是什么意思,从逻辑上讲完全没啥意义。
是为了测试负载么?
今天放在weblogic集群上了,可以负载,应该不会内存溢出了吧;
总觉得hibernate配置没有优化好,查询一个表,看后台刷了sql语句很多次查询,
我一个表里有很多外键
<many-to-one name="txjCodetype" class="com.coheg.patrol.code.domain.TXjCodetype" fetch="select" not-found="ignore">
<column name="TYPE_ID" length="32" />
</many-to-one>这样的很多个,我看查询一个需要很多语句啊
.........
映射文件中有两个外键
<many-to-one name="gta" class="com.A" update="false" insert="false" fetch="select" not-found="ignore">
<column name="GT_A" length="32" />
</many-to-one><many-to-one name="gtb" class="com.B" update="false" insert="false" fetch="select" not-found="ignore">
<column name="GT_B" length="32" />
</many-to-one>list 查询 gt 得到100条记录,我看控制台下面就打印有101次查询
select ..... from gt (1次)
select ..... from gta (100次)为什么啊, gta和gtb一样的啊,谁遇到过这样的问题?