说 明:小弟从事的项目 架构为 tomcat(5.0.30)+struts(1.0)+oracle(9),在tomcat下的应用为6个应用,5个客户同时在线大约100人(即共500人)。1个应用同时可能为10人
已采用的方法:修改了tomcat的初始内存的大小为1024m 和几乎把所有的公共类包 放到了tomcat的Tomcat 5.5\common\lib下
服 务 器: 采用sun公司性能不错的480 8g的内存
操 作 系 统:solaris9
现 象:是内存溢出!
现 象 频 率:不到一周也就 5天
现 象 内 容:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet execution threw an exception
com.ezcross.cmhk.oa.filter.SetCharacterEncodingFilter.doFilter(Unknown Source)
root cause java.lang.OutOfMemoryError: unable to create new native thread
java.lang.Thread.start0(Native Method)
java.lang.Thread.start(Thread.java:574)
java.lang.ref.Finalizer$1.run(Finalizer.java:113)
java.security.AccessController.doPrivileged(Native Method)
java.lang.ref.Finalizer.forkSecondaryFinalizer(Finalizer.java:121)
java.lang.ref.Finalizer.runFinalization(Finalizer.java:126)
java.lang.Runtime.runFinalization0(Native Method)
java.lang.Runtime.runFinalization(Runtime.java:686)
com.ezcross.rdas.client.DataAccess.closeSession(Unknown Source)
com.ezcross.util.SMS10_ServCommon.closeDbAccess(Unknown Source)
com.ezcross.cmhk.oa.db.portal.interfaces.ora.OADuBanPortalIF_ORA.classSelect(Unknown Source)
com.ezcross.cmhk.oa.db.portal.interfaces.ora.OADuBanPortalIF_ORA.OAMainPage_SMSSelect(Unknown Source)
com.ezcross.cmhk.oa.db.portal.IndexDataBO.setOa_Duban(Unknown Source)
com.ezcross.cmhk.oa.action.portal.IndexAction.setEntityData(Unknown Source)
com.ezcross.cmhk.oa.action.portal.IndexAction.doExecute(Unknown Source)
com.ezcross.cmhk.oa.util.base.OaBaseAction.execute(Unknown Source)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.ezcross.cmhk.oa.filter.SetCharacterEncodingFilter.doFilter(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.
已采用的方法:修改了tomcat的初始内存的大小为1024m 和几乎把所有的公共类包 放到了tomcat的Tomcat 5.5\common\lib下
服 务 器: 采用sun公司性能不错的480 8g的内存
操 作 系 统:solaris9
现 象:是内存溢出!
现 象 频 率:不到一周也就 5天
现 象 内 容:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet execution threw an exception
com.ezcross.cmhk.oa.filter.SetCharacterEncodingFilter.doFilter(Unknown Source)
root cause java.lang.OutOfMemoryError: unable to create new native thread
java.lang.Thread.start0(Native Method)
java.lang.Thread.start(Thread.java:574)
java.lang.ref.Finalizer$1.run(Finalizer.java:113)
java.security.AccessController.doPrivileged(Native Method)
java.lang.ref.Finalizer.forkSecondaryFinalizer(Finalizer.java:121)
java.lang.ref.Finalizer.runFinalization(Finalizer.java:126)
java.lang.Runtime.runFinalization0(Native Method)
java.lang.Runtime.runFinalization(Runtime.java:686)
com.ezcross.rdas.client.DataAccess.closeSession(Unknown Source)
com.ezcross.util.SMS10_ServCommon.closeDbAccess(Unknown Source)
com.ezcross.cmhk.oa.db.portal.interfaces.ora.OADuBanPortalIF_ORA.classSelect(Unknown Source)
com.ezcross.cmhk.oa.db.portal.interfaces.ora.OADuBanPortalIF_ORA.OAMainPage_SMSSelect(Unknown Source)
com.ezcross.cmhk.oa.db.portal.IndexDataBO.setOa_Duban(Unknown Source)
com.ezcross.cmhk.oa.action.portal.IndexAction.setEntityData(Unknown Source)
com.ezcross.cmhk.oa.action.portal.IndexAction.doExecute(Unknown Source)
com.ezcross.cmhk.oa.util.base.OaBaseAction.execute(Unknown Source)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.ezcross.cmhk.oa.filter.SetCharacterEncodingFilter.doFilter(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.
解决方案 »
- 不知到我这段代码老是报404错误?
- user相关问题
- 各位谁能传给我一个hibernate的开发包呢?
- 一个servlet中能不能创建多个cookie?
- MS SQL Driver 的isClosed()方法不能够用?如何检验连接是否可用?
- 我最头痛的问题,那位大哥帮我根除一下
- 一个写好的servlet程序应该以什么后缀名保存,如何在IE中访问
- Jsp中怎样读取客户端的文本文件?急!!!!!
- 用jspsmartupload上传文件遇到的问题
- ????如何使用showMessage(String title,String message)
- 信息管理与信息系统专业的毕业生,做开发的多吗?若是,请来报到啊!
- 如何让HIBERNATE在查询的时候不会把所有关联子表的记录都查询出来呀????
在tomcat配置文件server.xml中的<Connector ... />配置中
修改maxProcessors,和acceptCount
<Connector port="8080"
maxThreads="250" minSpareThreads="50" maxSpareThreads="150"
enableLookups="false" redirectPort="8443" acceptCount="200"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
我觉得这个参数已经应该够用了!但还是会出现内存溢出的。
建议看看java进程的线程计数
2、 JAVA线程第三版
搜捕一下
http://www.ibook8.com/
max_thread_proc nkthread nproc
java -green 好像Solaris支持
apache+Tomcat集群,以这台机器的配置,可以开5个Tomcat. 一个tomcat肯定是不够用的
tks!正在一点的找呢。