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

Servlet500并发量时出现的有关问题

2011-12-08 
Servlet500并发量时出现的问题下面是Servlet的代码(很简单):publicclassReceiveextendsHttpServlet{public

Servlet500并发量时出现的问题
下面是Servlet的代码(很简单):
  public   class   Receive   extends   HttpServlet   {
        public   void   doPost(HttpServletRequest   request,   HttpServletResponse   response)throws   ServletException,   IOException   {

                String   msg=null;
                InputStream   is=request.getInputStream();
                DataInputStream   dis=new   DataInputStream(is);
                msg=dis.readUTF();
                is.close();
                dis.close();
        }
}
WEB服务器:Tomcat5.028
系统:W2003

我用Microsoft   Web   Application   Strees   Tool   做了一个简单的压力测试,并发设为500

出现如下错误:
2007-01-20   15:04:40   StandardWrapperValve[Receive]:   Servlet.service()   for   servlet   Receive   threw   exception
java.net.SocketException:   Connection   reset
at   java.net.SocketInputStream.read(SocketInputStream.java:168)
at   org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:747)
at   org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRead(InternalInputBuffer.java:777)
at   org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:710)
at   org.apache.coyote.Request.doRead(Request.java:429)
at   org.apache.coyote.tomcat5.InputBuffer.realReadBytes(InputBuffer.java:290)
at   org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:374)
at   org.apache.coyote.tomcat5.InputBuffer.read(InputBuffer.java:305)
at   org.apache.coyote.tomcat5.CoyoteInputStream.read(CoyoteInputStream.java:179)
at   java.io.DataInputStream.readFully(DataInputStream.java:266)
at   java.io.DataInputStream.readUTF(DataInputStream.java:639)
at   java.io.DataInputStream.readUTF(DataInputStream.java:610)
at   com.qytx.servlet.Receive.doPost(Receive.java:31)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
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)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)


at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
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.ContainerBase.invoke(ContainerBase.java:929)
at   org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at   java.lang.Thread.run(Thread.java:534)

小弟向高人请教原因.有同样问题者可以一起讨论


[解决办法]
不懂,帮你UP

有没有数据库连接,如果有,可以改成连接池!
[解决办法]
Socket出现异常,估计是你的CPU跟不上了,呵呵
[解决办法]
程序没问题,提高服务器性能试试
[解决办法]
不懂,帮你顶
[解决办法]
我也遇到此问题了
[解决办法]
并发500,能撑成这样,已经很不错了。
你的CPU的L2 CACHE不会超过512K吧?
L1 CACHE不会超过128K吧?

你的TOMCAT有进行专门的优化吗?
你的OS也只是为了。NET而设计的SERVER吧?

热点排行