请问哪位高手可以解决目前我们公司网站的疑问,目前网站一直不稳定,偶尔会报503服务暂时不可用的报错。供应商一直没有办法解决。还说可能不是程序或tomcat-apache配置上的问题,你们怎么看?所以我不得不自己想办法,如果你或你的公司可以帮忙解决,以后我会考虑有业务给你们做,以作为答谢。我自己看了tomcat的日志代码和apache的访问日志,以下是两段日志记录,我们不知道是不是错误的记录。请过目,如果还想了解更多信息,也请提出。请尽快能答复我。十分感谢!我们的系统是tomcat+apache+win2003svrApache log:
220.181.56.2 - - [26/Dec/2007:17:23:11 +0800] "GET /product/images/product_title_06_1.jpg HTTP/1.1" 200 503 "http://www.fa.omron.com.cn/product/ProductClass.jsp" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MAXTHON 2.0)"
Tomcat log:
2007-12-26 17:10:24 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.Buffer.getBytes(Buffer.java:198)
at com.mysql.jdbc.Buffer.readLenByteArray(Buffer.java:318)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1366)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2333)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:435)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2040)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1443)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1777)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3243)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3172)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1197)
at com.mysql.jdbc.Connection.buildCollationMapping(Connection.java:1667)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4017)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2906)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at src.manage.db.DBManager.<init>(DBManager.java:50)
at org.apache.jsp.support.Q_0026ADetail_jsp._jspService(Q_0026ADetail_jsp.java:74)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

解决方案 »

  1.   

    修改tomcat的启动时的初始内存大小,具体的你可以看下面的两个连接。http://fanqiang.chinaunix.net/app/web/2005-03-24/3021.shtml
    http://csbin.itpub.net/post/8077/101265
    具体的可以上google搜索“tomcat内存设置”
      

  2.   

    Java   heap   space 
    缓存不足
      

  3.   

    内存溢出,请参考这篇文章http://www.java2000.net/viewthread.jsp?tid=187修改tomcat的启动内存参数
    tomcat/bin/catalina.bat 如果是linux 就是 catalina.sh 在rem 的后面增加如下参数 
    复制内容到剪贴板代码:
      
    set JAVA_OPTS= -Xms256m -Xmx256m -XX:MaxPermSize=64m  前2个参数根据你机器的内存大小可以自己调整,建议256/512/1024 
      

  4.   

    就是 内存不够用了,如果不设置 内存 ,默认 使用 32MB, 楼上  的方法 也只能 提高  Tomcat  的 java 内存使用,但希望 能 找找 源代码 是不是 出了问题!  比如说 : 在 web 页面上 进行  Excel 的 报表导出 时  的 处理机制, 一些耗内存的 操作 应该 去优化 .而不是 只 解决 内存 大小, 跑时间长了,内存耗尽 还是会出现 问题的!
      

  5.   

    请注意,不是Out of Memory! 而是
    Java   heap   space 在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息也就是说,你的代码根本不能在32M的heap上面运行,你找代码也没有。照你的想法,我们干脆给tomcat 100K 内存算了。
    什么?太少了!不能运行,改代码去!我就给你100K,多了没有。哈哈! 开个玩笑!
      

  6.   

    还有看看这个文章,你可以自己检测jvm的内存情况,有助于你调整参数http://www.java2000.net/viewthread.jsp?tid=178
      

  7.   

    我们供应商经过修改后,一段时间蛮稳定。现在又出现这样的问题。搞不懂是怎么回事。请问我该如何查看哪里的设置问题? 2008-01-22   11:23:48   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception 
    java.lang.OutOfMemoryError:   Java   heap   space 2008-01-22   11:23:55   StandardWrapperValve[QuestionAnswerServlet]:   Servlet.service()   for   servlet   QuestionAnswerServlet   threw   exception 
    java.lang.OutOfMemoryError:   Java   heap   space 2008-01-22   11:23:55   StandardWrapperValve[default]:   Servlet.service()   for   servlet   default   threw   exception 
    java.lang.OutOfMemoryError:   Java   heap   space 2008-01-22   11:23:57   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception 
    java.lang.OutOfMemoryError:   Java   heap   space 2008-01-22   11:24:02   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception 
    java.lang.OutOfMemoryError:   Java   heap   space 2008-01-22   11:24:02   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception 
    java.lang.OutOfMemoryError:   Java   heap   space 2008-01-22   11:24:04   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception 
    java.lang.OutOfMemoryError:   Java   heap   space 2008-01-22   11:24:04   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception 
    java.lang.OutOfMemoryError:   Java   heap   space 2008-01-22   11:24:04   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception 
    java.lang.IllegalStateException:   getOutputStream()   has   already   been   called   for   this   response 
    at   org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:599) 
    at   org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.java:163) 
    at   org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:122) 
    at   org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115) 
      

  8.   

    你这是内存溢出。
    没有可用的内存提供给垃圾回收器。
    你这光改jvm的内存也不行,你这好像是程序有问题,在什么地方消耗的内存特别多,没有销毁,估计是源代码出问题了