weblogic最大线程
问题还是为什么“粘线”是邪恶的?
WebLogic Server自动检测执行队列中的线程何时变为“阻塞”状态。 由于卡住的线程无法完成其当前工作或接受新工作,因此服务器每次诊断出卡住的线程时都会记录一条消息。 如果执行队列中的所有线程都卡住,服务器将根据执行队列将其运行状况更改为“警告”或“严重”:
- 如果默认队列中的所有线程都卡住,则服务器会将其运行状况更改为“ 严重” 。 (您可以将Node Manager应用程序设置为在严重运行状态下自动关闭和重新启动服务器。有关更多信息,请参阅“配置和管理WebLogic Server”中的“ Node Manager功能 ”。)
- 如果weblogic.admin.HTTP,weblogic.admin.RMI或用户定义的执行队列中的所有线程都卡住了,则服务器会将其运行状况更改为“ 警告” 。
为避免应用程序完全失败该怎么办?
- 如果应用程序中存在线程阻塞,请关闭应用程序。 通过使其进入管理模式来关闭该应用程序。 属于该应用程序的所有工作管理器都将关闭,并按上述方式运行。
- 将服务器实例标记为失败,如果服务器中存在线程阻塞,则将其关闭。 在群集中,已连接或尝试连接的群集客户端将故障转移到另一个群集成员。
如何识别问题?
帮助您分析线程转储的工具有:
如何解决该问题?
以下是有关如何创建工作管理器的一些帖子
- https://blogs.oracle.com/jamesbayer/entry/work_manager_leash_for_slow_js
- http://jdeveloperfaq.blogspot.com/2011/05/faq-34-using-weblogic-work-managers-to.html
测试:如何创建卡死线程?
如何创建“卡住线程”以测试您的weblogic设置? 将断点放在请求所调用的支持bean或模型方法中。 如果您在断点处等待“最大线程停留时间”,则会注意到服务器日志中将显示“线程滞留”跟踪:
<16 =?? 2011 12:28:22 ?? EET><Error><WebLogicServer><BEA-000337><[STUCK] ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)' has been busy for "134" seconds working on the
request "weblogic.servlet.internal.ServletRequestImpl@6e6f4718[
GET /---/---/----/---/days.xhtml HTTP/1.1
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: JSESSIONID=DYG5TDTZSnKLTFw5CMMdLCD9sPsZS4Jqlmxj9wdGNyt1BnPcfNrR!-1520792836
]", which is more than the configured time (StuckThreadMaxTime) of "60" seconds. Stack trace:
--------------------------------------------(--------------------.java:83)
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:285)
com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:55)
org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
org.primefaces.component.fieldset.FieldsetRenderer.encodeContent(FieldsetRenderer.java:95)
org.primefaces.component.fieldset.FieldsetRenderer.encodeMarkup(FieldsetRenderer.java:76)
org.primefaces.component.fieldset.FieldsetRenderer.encodeEnd(FieldsetRenderer.java:53)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:55)
org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:229)
org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:152)
更多挖掘:
- 弗兰克·芒茨(Frank Munz)的精彩文章: WebLogic卡住了线程:创建,理解和处理它们 。 已针对Weblogic 12c更新。 还包括用于创建“粘滞线程”的示例应用程序。
- http://stackoverflow.com/questions/2709410/weblogic-stuck-thread-protection
src:
- Maxence Button的精彩文章: http : //m-button.blogspot.com/2008/07/using-wlst-to-perform-regular.html
- http://download.oracle.com/docs/cd/E13222_01/wls/docs81/perfor/WLSTuning.html#1125714
- http://download.oracle.com/docs/cd/E21764_01/web.1111/e13701/overload.htm
- http://java.sys-con.com/node/358060?page=0,0
参考:在ADF和Weblogic How To博客上, 与我们的JCG合作伙伴 Spyros Doulgeridis 处理Weblogic的粘滞线程 。
翻译自: https://www.javacodegeeks.com/2012/05/dealing-with-weblogic-stuck-threads.html
weblogic最大线程