作者: BeanSoft@WebLogic 日期: 2010-10-09 转载本站文章请务必注明出处!


案例: jsp页面请求超时问题 http://bbs.weblogicfans.net/viewthread.php?tid=3062
请教高手,该问题如何解决。

####<Sep 20, 2010 8:05:08 PM GMT+08:00> <[STANDBY] ExecuteThread: ’21’ for queue: ‘weblogic.kernel.Default (self-tuning)’> <> <> <> <1284984308770> <[STUCK] ExecuteThread: ‘4’ for queue: ‘weblogic.kernel.Default (self-tuning)’ has been busy for "671" seconds working on the request "Http Request: /CspWeb/csp/integrateAccept/custManage/selectCustomer.do", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:         java.lang.ClassLoader.loadClass(ClassLoader.java:563)         weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:161)         weblogic.utils.classloaders.FilteringClassLoader.findClass(FilteringClassLoader.java:83)         weblogic.utils.classloaders.FilteringClassLoader.loadClass(FilteringClassLoader.java:68)         java.lang.ClassLoader.loadClass(ClassLoader.java:589)         java.lang.ClassLoader.loadClass(ClassLoader.java:589)         java.lang.ClassLoader.loadClass(ClassLoader.java:563)         sun.misc.Unsafe.defineClass(Native Method)         sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)         sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:399)         java.security.AccessController.doPrivileged(AccessController.java:193)         sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:395)         sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:77)         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:52)         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         java.lang.reflect.Method.invoke(Method.java:615)         javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:1545)         com.sun.faces.renderkit.html_basic.TextRenderer.getEndTextToRender(TextRenderer.java:85)         com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:204)         javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)         com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)         com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:157)         javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)         javax.faces.component.UIData.encodeBegin(UIData.java:879)         org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:280)         org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)         org.ajax4jsf.renderkit.html.AjaxOutputPanelRenderer.encodeChildren(AjaxOutputPanelRenderer.java:78)         javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)         org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)         org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:124)         org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)         org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)         org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)         org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)         org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)         org.ajax4jsf.component.AjaxViewRoot.encodeAjax(AjaxViewRoot.java:682)         org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:553)         javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)         com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)         org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)         org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196)         com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)         com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)         com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)         javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)         weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)         weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)         weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)         weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)         weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)         org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)         com.tydic.sso.client.filter.UrlFilter.verifyUrl(UrlFilter.java:124)         com.tydic.sso.client.filter.UrlFilter.doFilter(UrlFilter.java:113)         com.tydic.sso.client.filter.AbstractUrlFilter4Seam.doFilter(AbstractUrlFilter4Seam.java:42)         org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)    &#16

0;    org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
        org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
        org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
        org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
        org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
        org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
        org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
        org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
        org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
        org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
        weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3242)
        weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2010)
        weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1916)
        weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
        weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

 

解决方案: WebLogic 默认的超时参数是600秒, 导致处理结果无法正常返回. 如何修改此超时设置?
答案: http://download.oracle.com/docs/cd/E13222_01/wls/docs92/ConsoleHelp/taskhelp/tuning/TuningExecuteThreads.html
中文版: 调整阻塞线程检测行为 http://edocs.weblogicfans.net/wls/docs92/ConsoleHelp/taskhelp/tuning/TuningExecuteThreads.html

转载请注明:WebLogic Android 博客 » WebLogic JSP Servlet 线程超时设置参数