On 17/08/2010 10:48, sasidhar prabhakar wrote: > Tomcat hangs ever few hours.
*Exact* Tomcat, JVM and OS versions? > In server.xml maxThreads are 300. > > In thread dump I observed every thread doing the same thing. > In my code I sends sms to users by using HttpURLConnection. > I am using this code for months I didn't get the problem earlier. > For few days I am getting this problem consistently. Whenever tomcat hangs I > takes the thread dump, > every time it shows the same results. > > Here is my one of threads dump. this is common for all remaining threads. > > Somebody guide me to solve this problem. I am trying but unable to do this If each request processor thread is dependent on an inline request to an external resource, and that resource is unavailable or otherwise slow to respond then your app will inevitably run out of threads. You should consider offloading the request to a thread pool (see the Java Concurrency API in recent JVMs) with appropriate timeouts. p > "http-80-300" daemon prio=1 tid=0x76890ef0 nid=0x6bb6 runnable > [0x6def0000..0x6def0db0] > at java.net.SocketInputStream.socketRead0(Native Method) > at java.net.SocketInputStream.read(SocketInputStream.java:129) > at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) > at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) > at java.io.BufferedInputStream.read(BufferedInputStream.java:313) > - locked <0xb1332658> (a java.io.BufferedInputStream) > at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:681) > at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626) > at > sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:983) > - locked <0xb1332690> (a sun.net.www.protocol.http.HttpURLConnection) > at SendSms.sendToSingleRecipientNoNpri(SendSms.java:89) > at CreateAccountAction.execute(CreateAccountAction.java:86) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at com.amulyam.servlet.RedirectFilter.doFilter(RedirectFilter.java:56) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) > at java.lang.Thread.run(Thread.java:595) >
0x62590808.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature