紧急求助,glassfish报出outofmemory 怎么办?

31 views
Skip to first unread message

unread,
Aug 4, 2009, 10:44:12 PM8/4/09
to GlassFish_China
[#|2009-08-05T10:05:39.003+0800|SEVERE|sun-appserver2.1|
javax.enterprise.system.container.web|
_ThreadID=15;_ThreadName=httpSSLWorkerThread-80-0;_RequestID=57fe71e8-964b-4b7e-
aaac-3256f1c1484c;|StandardWrapperValve[jsp]: PWC1406: Servlet.service
() for servlet jsp threw exception
java.lang.OutOfMemoryError: Java heap space
at oracle.jdbc.driver.OracleStatement.prepareAccessors
(OracleStatement.java:870)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe
(OracleStatement.java:1047)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe
(T4CPreparedStatement.java:850)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout
(OracleStatement.java:1134)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal
(OraclePreparedStatement.java:3339)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery
(OraclePreparedStatement.java:3384)
at com.iss.cpf2.util.SessionOB.checkClient(SessionOB.java:
1988)
at com.iss.cpf2.util.SessionOB.login(SessionOB.java:584)
at org.apache.jsp.Authenticate_005fadmin_jsp._jspService
(Authenticate_005fadmin_jsp.java:363)
at org.apache.jasper.runtime.HttpJspBase.service
(HttpJspBase.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
831)
at org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:389)
at org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:486)
at org.apache.jasper.servlet.JspServlet.service
(JspServlet.java:380)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
831)
at
org.apache.catalina.core.ApplicationFilterChain.servletService
(ApplicationFilterChain.java:427)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:333)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:214)
at com.iss.cpf2.servlet.SetCharacterEncodingFilter.doFilter
(SetCharacterEncodingFilter.java:37)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:246)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:313)
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke
(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke
(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:
94)
at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke
(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke
(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke
(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:587)



我在应用上做了一个压力测试,然后操作到100个用户,2个小时左右时,后台就报错,outofmemory。。。。。
请问这应该如何解决?
1.如何让glassfish重新运用起来
2.什么原因会让glassfish产生这种错误


谢谢

Judy Tang

unread,
Aug 5, 2009, 12:00:14 AM8/5/09
to glassfi...@googlegroups.com
"我在应用上做了一个压力测试,然后操作到100个用户,2个小时左右时,后台就报错,outofmemory。。。。。"

谢谢你的试用,如果你用的不是最新版的 v2.1, 可以试试最新版,也许问题在最新版里得到了解决。
如果还出现同样问题,并且可以重复的话,请你开个 Bug [1], 谢谢你!

对了,可以把 PermGen 调高,[2]是GlassFish v2说明书。

[1] https://glassfish.dev.java.net/servlets/ProjectIssues
[2]GlassFish v2 doc: http://docs.sun.com/app/docs/coll/1343.5?l=en

Judy

Luo, Yong

unread,
Aug 5, 2009, 12:25:37 AM8/5/09
to glassfi...@googlegroups.com

如果不能升级服务器只能多分配点内存 -Xmx1024m

王琮

unread,
Aug 5, 2009, 1:33:16 AM8/5/09
to glassfi...@googlegroups.com
谢谢你
内存已经分配到2G,但是还是报错!
问题还是找不到原因
 


 
2009/8/5, Luo, Yong <Yong...@acs-inc.com>:

guangquanzhang

unread,
Aug 5, 2009, 4:07:24 AM8/5/09
to glassfi...@googlegroups.com
你先检查检查你的程序吧,是不是每次读出来的数据太多? 或者读出来的数据都没有及时处理掉?


王琮 写道:
--
Thanks

>> What I said is licenced under CC-by-nd :)

Email: java...@baturu.com
Welog: http://blog.baturu.com

Judy Tang

unread,
Aug 5, 2009, 4:21:20 AM8/5/09
to glassfi...@googlegroups.com
Luo Yong,  guangquanzhang, 你们好,谢谢你们的帮助 !

“如果不能升级服务器”,很对噢,要升级服务器不是那么说做就能做到的事,以后会记得给建议时
要考虑到具体的情况 。。。

希望王琮能找到原因 !

杨军

unread,
Aug 5, 2009, 4:47:37 AM8/5/09
to glassfish_china

杨军

unread,
Aug 5, 2009, 4:49:21 AM8/5/09
to glassfish_china
建议你使用 VisualVM 工具 监控内存使用情况,看是什么对象在一直占有内存。


没有广告的终身免费邮箱,www.yeah.net

Judy Tang

unread,
Aug 5, 2009, 11:07:16 AM8/5/09
to glassfi...@googlegroups.com
谢谢杨军,这是很好的建议,如果客户购买GlassFish Portfolio,里面就有Enterprise Manager,
里面就有VisualVM 工具 。。。

傲风

unread,
Aug 6, 2009, 5:41:46 AM8/6/09
to glassfish_china
建议:在提这类问题时最好能给一个比较详细的配置说明,方便大家分析问题。否则很难定位问题。
 
例如:GlassFish的版本,JDK版本,JVM的配置(是使用GlassFish的默认配置还是自定义的配置,如果是自定义的配置请给出配置项及配置值的清单)。JV
 
 
 

傲风
2009-08-06

发件人: Judy Tang
发送时间: 2009-08-05 23:07:21
收件人: glassfish_china
抄送:
主题: Re: 紧急求助,glassfish报出outofmemory_怎么办?
 
谢谢杨军,这是很好的建议,如果客户购买GlassFish Portfolio,里面就有Enterprise Manager,
里面就有VisualVM 工具 。。。

杨军 wrote:

Luo, Yong

unread,
Aug 6, 2009, 7:44:39 AM8/6/09
to 傲风, glassfi...@googlegroups.com

我感觉是应用程序的问题

 


Wendal Chen

unread,
Aug 6, 2009, 9:17:20 AM8/6/09
to GlassFish_China
内存泄露?

On 8月6日, 下午7时44分, "Luo, Yong" <Yong....@acs-inc.com> wrote:
> 我感觉是应用程序的问题
>
> ________________________________
>
> From: 傲风 [mailto:aofengem...@126.com]
> Sent: Thursday, August 06, 2009 5:42 PM
> To: glassfish_china; glassfish_china
> Subject: Re: Re: 紧急求助,glassfish报出outofmemory_怎么办?
>
> 建议:在提这类问题时最好能给一个比较详细的配置说明,方便大家分析问题。否则很难定位问题。
>
> 例如:GlassFish的版本,JDK版本,JVM的配置(是使用GlassFish的默认配置还是自定义的配置,如果是自定义的配置请给出配置项及配置值的清单)。JV
>
> ________________________________
>
> 傲风
>
> 2009-08-06
>
> ________________________________
>
> 发件人: Judy Tang
>
> 发送时间: 2009-08-05 23:07:21
>
> 收件人: glassfish_china
>
> 抄送:
>
> 主题: Re: 紧急求助,glassfish报出outofmemory_怎么办?
>
> 谢谢杨军,这是很好的建议,如果客户购买GlassFish Portfolio,里面就有Enterprise Manager,
> 里面就有VisualVM 工具 。。。
>
> 杨军 wrote:
>
> 建议你使用 VisualVM 工具 监控内存使用情况,看是什么对象在一直占有内存。
>
> 在2009-08-05 16:21:20,"Judy Tang" <Judy.J.T...@Sun.COM> <mailto:Judy.J.T...@Sun.COM> 写道:
>
> Luo Yong, guangquanzhang, 你们好,谢谢你们的帮助 !
>
> "如果不能升级服务器",很对噢,要升级服务器不是那么说做就能做到的事,以后会记得给建议时
> 要考虑到具体的情况 。。。
>
> 希望王琮能找到原因 !
>
> guangquanzhang wrote:
>
> 你先检查检查你的程序吧,是不是每次读出来的数据太多? 或者读出来的数据都没有及时处理掉?
>
> 王琮 写道:
>
> 谢谢你
>
> 内存已经分配到2G,但是还是报错!
>
> 问题还是找不到原因
>
> 2009/8/5, Luo, Yong <Yong....@acs-inc.com>:
> Email: javaf...@baturu.com
> Welog:http://blog.baturu.com
>
> ________________________________
>
> 没有广告的终身免费邮箱,www.yeah.net<http://www.yeah.net/?from=footer>

Luo, Yong

unread,
Aug 9, 2009, 8:50:17 PM8/9/09
to glassfi...@googlegroups.com

极有可能

clt

unread,
Sep 17, 2009, 2:40:34 AM9/17/09
to GlassFish_China

在glassfish的bin目录下执行以下命令用于调整java虚拟机的大小
asadmin delete-jvm-options -- -Xmx512m
asadmin delete-jvm-options "-XX\:MaxPermSize=198m"

asadmin create-jvm-options "-XX\:MaxPermSize=512m"
asadmin create-jvm-options -- -Xmx512m

asadmin list-jvm-options --help 可以查看帮助

Reply all
Reply to author
Forward
0 new messages