首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

tomcat不稳定时间长老报这个错麻烦大家给个好的解决方案!解决方案

2012-01-22 
tomcat不稳定时间长老报这个错麻烦大家给个好的解决方案!开始正常,运行一段时间tomcat就死掉拉。这是最近的

tomcat不稳定时间长老报这个错麻烦大家给个好的解决方案!
开始正常,运行一段时间tomcat就死掉拉。这是最近的日志大家给我看看有没有好的解决方案啊。

              at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
                at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
                at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
                at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
                at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
                at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
                at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
                at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

                at   org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
                at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
                at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
                at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
                at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
                at   java.lang.Thread.run(Thread.java:595)
select   convert(varchar,a.typeid)   str_typeid,   a.typename,     (select   convert(varcha
r,count(1))   from   bigclass   b   where   b.typeid   =   a.typeid   and   b.bigclassview=1)   str_
count_bigclass     from   type   a   where   typeview=1   order   by   a.typeorder
java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]Unhandled   toke
n   type:   ROW
                at   com.microsoft.jdbc.base.BaseExceptions.createException(Unknown   Source
)
                at   com.microsoft.jdbc.base.BaseExceptions.getException(Unknown   Source)
                at   com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown


  Source)
                at   com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unkn
own   Source)
                at   com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown   Sour
ce)
                at   com.microsoft.jdbc.sqlserver.tds.TDSCursorRequest.closeCursor(Unknown
  Source)
                at   com.microsoft.jdbc.sqlserver.tds.TDSCursorRequest.completeRowProcessi
ng(Unknown   Source)
                at   com.microsoft.jdbc.sqlserver.SQLServerImplResultSet.close(Unknown   Sou
rce)
                at   com.microsoft.jdbc.base.BaseResultSet.close(Unknown   Source)
                at   org.apache.commons.dbcp.DelegatingResultSet.close(DelegatingResultSet
.java:193)
                at   org.apache.commons.dbcp.DelegatingStatement.passivate(DelegatingState
ment.java:248)
                at   org.apache.commons.dbcp.DelegatingStatement.close(DelegatingStatement
.java:177)
                at   com.bonc.javax.DataCenter.retrieve(DataCenter.java:354)
                at   com.bonc.javax.DataCenter.retrieve(DataCenter.java:377)
                at   com.shangdunet.cmsadmin.action.BaseAction.setMenuInfo(BaseAction.java
:138)
                at   com.shangdunet.cmsadmin.action.BaseAction.execute(BaseAction.java:63)

                at   org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:431)
                at   org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:236)
                at   org.apache.struts.action.ActionServlet.process(ActionServlet.java:119
6)
                at   org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
                at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
                at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF


[解决办法]
是你的web app问题
[解决办法]
tomcat内存溢出了。楼主可能没有对你的tomcat进行调优,tomcat默认只使用64M的内存,随便一个应用就会导致内存溢出的。
打开bin目录,找到catalina.bat(windows系统)或catalina.sh(linux系统),在前边一堆的#号注释结束之后增加如下配置
windows的:
set CATALINA_OPTS= "-server -Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Dcom.sun.management.jmxremote "
linux的:
CATALINA_OPTS= '-server -Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Dcom.sun.management.jmxremote '



重启tomcat即可。如果不确定这些配置是否起效,可部署probe来对tomcat进行监控,这也是用来查出你的问题的一个办法。
[解决办法]
sql有问题
java.lang.OutOfMemoryError: Java heap space
select convert(varchar,a.typeid) str_typeid, a.typename, (select convert(varcha
r,count(1)) from bigclass b where b.typeid = a.typeid and b.bigclassview=1) str_
count_bigclass from type a where typeview=1 order by a.typeorder
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unhandled toke
n type: ROW

你确定你的sql在分析器里能正常的执行?
[解决办法]
上面已经有人告诉你了,增大你的tomcat所使用的jvm的heap size。如果想真正解决,你需要用一个Profiler工具,先确定你的应用在特定压力下的memory footprint,再检查是否有内存泄露。
[解决办法]
把probe.war拷贝到webapps目录下
打开conf/tomcat-users.xml,增加如下内容
<role rolename= "manager "/>
<role rolename= "tomcat "/>
<role rolename= "admin "/>
<role rolename= "poweruser "/>
<role rolename= "probeuser "/>
<user username= "admin " password= "admin " roles= "admin,user,manager,poweruser,probeuser "/>

启动tomcat后访问/probe
输入这里配置的用户名和密码即可登录probe管理界面
首先可以查看一下tomcat内存情况,最大值和已使用值等等,看是否和你配置的优化参数相符,然后再查看其他的参数。
[解决办法]
是程序的某一个地方执行时占用了大量的内存,这问题以前也遇到过.只有去程序里找了.
[解决办法]
严重: An exception or error occurred in the container during the request process
ing
java.lang.OutOfMemoryError: Java heap space
select convert(varchar,a.typeid) str_typeid, a.typename, (select convert(varcha
r,count(1)) from bigclass b where b.typeid = a.typeid and b.bigclassview=1) str_
count_bigclass from type a where typeview=1 order by a.typeorder
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unhandled toke
n type: ROW

应该是这个问题,限制一下得到的记录条数
[解决办法]
建议做一下压力测试吧
然后再跟踪一下
[解决办法]
在tomcat的bin/catalina.bat文件中
rem Set JVM Memery Size
set JAVA_OPTS=-Xms800m -Xmx2048m

热点排行