Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat线程转储-可能的线程卡住_Java_Tomcat - Fatal编程技术网

Java Tomcat线程转储-可能的线程卡住

Java Tomcat线程转储-可能的线程卡住,java,tomcat,Java,Tomcat,我在运行Tomcat的生产服务器上运行了三次线程转储,间隔10秒。我发现相同的线程(相同的线程id)出现在所有三个线程转储中,并且正在做完全相同的事情——处理JSP页面。这是否意味着它被卡住了?或者可能是Tomcat线程池中的同一个线程不断地被分配相同的任务 这是一个中等规模的应用程序,有很多servlet/JSP页面、业务逻辑和数据库。而且,它相当繁忙(大约每秒20个请求)。Tomcat是独立运行的(不在Apache之后) 编辑1(附加信息):主页通常需要明显少于10秒的时间来呈现,因此这不能

我在运行Tomcat的生产服务器上运行了三次线程转储,间隔10秒。我发现相同的线程(相同的线程id)出现在所有三个线程转储中,并且正在做完全相同的事情——处理JSP页面。这是否意味着它被卡住了?或者可能是Tomcat线程池中的同一个线程不断地被分配相同的任务

这是一个中等规模的应用程序,有很多servlet/JSP页面、业务逻辑和数据库。而且,它相当繁忙(大约每秒20个请求)。Tomcat是独立运行的(不在Apache之后)

编辑1(附加信息):主页通常需要明显少于10秒的时间来呈现,因此这不能是对主页的典型单个请求

编辑2:几个小时后,我又进行了一次线程转储(但没有重新启动Tomcat),而这个特定线程正在执行其他操作。这是否意味着线程没有被卡住?

以下是该特定线程的线程转储部分(仅列出一个线程,因为其他两个线程完全相同):

“http-bio-8080-exec-220”守护进程prio=10 tid=0x00007f5c801de800 nid=0x3151可运行[0x00007f5c74d28000]
java.lang.Thread.State:可运行
位于java.net.SocketOutputStream.socketWrite0(本机方法)
位于java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
位于java.net.SocketOutputStream.write(SocketOutputStream.java:159)
位于org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215)
位于org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
位于org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
位于org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:240)
位于org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:119)
位于org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192)
位于org.apache.coyote.Response.doWrite(Response.java:517)
位于org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:408)
位于org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
位于org.apache.catalina.connector.OutputBuffer.realWriteChars(OutputBuffer.java:487)
位于org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:312)
位于org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:528)
位于org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:152)
位于org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:119)
位于org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:336)
在java.io.Writer.write(Writer.java:157)
位于org.apache.jasper.runtime.JspWriterImpl.print(JspWriterImpl.java:473)
位于org.apache.taglibs.standard.tag.common.core.UrlSupport.doEndTag(UrlSupport.java:127)
在org.apache.jsp.WEB\u 002dINF.jsp.site.home\u jsp.\u jspx\u meth\u c\u 005furl\u 005f22(home\u jsp.java:1172)
在org.apache.jsp.WEB_002dINF.jsp.site.home_jsp._jspx_meth_c_005fif_005f2(home_jsp.java:1141)
在org.apache.jsp.WEB\u 002dINF.jsp.site.home\u jsp.\u jspx\u meth\u c\u 005fforEach\u 005f1(home\u jsp.java:1102)
在org.apache.jsp.WEB\u 002dINF.jsp.site.home\u jsp.\u jsp服务(home\u jsp.java:308)
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
位于org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
位于org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
位于org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
在inspirasites.servlets.HomeServlet.doGet(HomeServlet.java:102)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
在inspirasites.filters.CharEncodingFilter.doFilter(CharEncodingFilter.java:23)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于inspirasites.filters.SiteFilter.doFilter(SiteFilter.java:45)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
在org.apac
"http-bio-8080-exec-220" daemon prio=10 tid=0x00007f5c801de800 nid=0x3151 runnable [0x00007f5c74d28000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
    at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215)
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
    at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:240)
    at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:119)
    at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192)
    at org.apache.coyote.Response.doWrite(Response.java:517)
    at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:408)
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
    at org.apache.catalina.connector.OutputBuffer.realWriteChars(OutputBuffer.java:487)
    at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:312)
    at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:528)
    at org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:152)
    at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:119)
    at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:336)
    at java.io.Writer.write(Writer.java:157)
    at org.apache.jasper.runtime.JspWriterImpl.print(JspWriterImpl.java:473)
    at org.apache.taglibs.standard.tag.common.core.UrlSupport.doEndTag(UrlSupport.java:127)
    at org.apache.jsp.WEB_002dINF.jsp.site.home_jsp._jspx_meth_c_005furl_005f22(home_jsp.java:1172)
    at org.apache.jsp.WEB_002dINF.jsp.site.home_jsp._jspx_meth_c_005fif_005f2(home_jsp.java:1141)
    at org.apache.jsp.WEB_002dINF.jsp.site.home_jsp._jspx_meth_c_005fforEach_005f1(home_jsp.java:1102)
    at org.apache.jsp.WEB_002dINF.jsp.site.home_jsp._jspService(home_jsp.java:308)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
    at inspirasites.servlets.HomeServlet.doGet(HomeServlet.java:102)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at inspirasites.filters.CharEncodingFilter.doFilter(CharEncodingFilter.java:23)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at inspirasites.filters.SiteFilter.doFilter(SiteFilter.java:45)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    - locked <0x00000000e12fb330> (a org.apache.tomcat.util.net.SocketWrapper)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)