JBoss unresponsive due to http connector threads blocked in org.apache.naming.resources.ProxyDirContext.cacheLoad()
Issue
- When performance deterioriates, a jnlp file (that launches a Swing client on a client machine) cannot be downloaded.
- Many http connector threads blocked with the following stack trace:
Thread: http-0.0.0.0-8881-35 : priority:5, demon:true, threadId:164, threadState:BLOCKED, threadLockName:org.apache.nam org.apache.naming.resources.ProxyDirContext.cacheLoad(ProxyDirContext.java:1597) org.apache.naming.resources.ProxyDirContext.cacheLookup(ProxyDirContext.java:1448) org.apache.naming.resources.ProxyDirContext.lookup(ProxyDirContext.java:282) org.apache.catalina.core.ApplicationContext.getResource(ApplicationContext.java:498) org.apache.catalina.core.ApplicationContextFacade.getResource(ApplicationContextFacade.java:178) jnlp.sample.servlet.JnlpResource.(JnlpResource.java:135) jnlp.sample.servlet.JnlpResource.(JnlpResource.java:108) jnlp.sample.servlet.JnlpResource.(JnlpResource.java:97) jnlp.sample.servlet.JnlpDownloadServlet.handleBasicDownload(JnlpDownloadServlet.java:224) jnlp.sample.servlet.JnlpDownloadServlet.locateResource(JnlpDownloadServlet.java:211) jnlp.sample.servlet.JnlpDownloadServlet.handleRequest(JnlpDownloadServlet.java:139) jnlp.sample.servlet.JnlpDownloadServlet.doGet(JnlpDownloadServlet.java:113) javax.servlet.http.HttpServlet.service(HttpServlet.java:697) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) - Thread dumps show the number of http connector threads is at the maximum value, the Connector
maxThreadsinserver.xml.
Environment
- JBoss AS 4.0.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.