weblogic最大线程

定义或什么是缠线?
 

如果线程 在设定 的时间 内连续工作(非空闲),则WebLogic Server会将其诊断为阻塞
您可以通过更改在诊断出线程被阻塞之前的时间长度( Stuck Thread Max Time ),以及通过更改服务器检查线程是否被阻塞的频率,来调整服务器的线程检测行为。 在此处查看如何更改“粘线最大时间”。

问题还是为什么“粘线”是邪恶的?
 
WebLogic Server自动检测执行队列中的线程何时变为“阻塞”状态。 由于卡住的线程无法完成其当前工作或接受新工作,因此服务器每次诊断出卡住的线程时都会记录一条消息。 如果执行队列中的所有线程都卡住,服务器将根据执行队列将其运行状况更改为“警告”或“严重”:

  • 如果默认队列中的所有线程都卡住,则服务器会将其运行状况更改为“ 严重” 。 (您可以将Node Manager应用程序设置为在严重运行状态下自动关闭和重新启动服务器。有关更多信息,请参阅“配置和管理WebLogic Server”中的“ Node Manager功能 ”。)
  • 如果weblogic.admin.HTTP,weblogic.admin.RMI或用户定义的执行队列中的所有线程都卡住了,则服务器会将其运行状况更改为“ 警告”
因此,实际上,几个“阻塞线程”可能不会使服务器崩溃,从而阻止服务器处理请求,但这是一个不好的信号。 通常,卡住的线程数将增加,并且服务器最终将崩溃。

为避免应用程序完全失败该怎么办?
 

WebLogic Server会定期检查卡住的线程(这是“ 卡住线程计时器间隔” ,您可以在此处进行调整)。 如果所有应用程序线程都卡住,则服务器实例将自身标记为失败,如果配置为失败,则退出。 您可以配置节点管理器或第三方高可用性解决方案以重新启动服务器实例以进行自动故障恢复。您可以将以下操作配置为在并非所有线程都卡住但卡住的线程数超过配置的阈值时发生:如果工作管理器卡住了线程,请关闭它。 关闭的工作管理器将通过发送拒绝消息来拒绝新工作并拒绝队列中的现有工作。 在群集中,群集客户端将故障转移到另一个群集成员。
  • 如果应用程序中存在线程阻塞,请关闭应用程序。 通过使其进入管理模式来关闭该应用程序。 属于该应用程序的所有工作管理器都将关闭,并按上述方式运行。
  • 将服务器实例标记为失败,如果服务器中存在线程阻塞,则将其关闭。 在群集中,已连接或尝试连接的群集客户端将故障转移到另一个群集成员。

如何识别问题?
 

推荐的方法是检查线程转储。 选中“ 发送电子邮件警报以查找有关带有线程转储的线程卡住的中间件魔术文章” ,使线程转储在发生时自动发送给您。

帮助您分析线程转储的工具有:

  • TDA –线程转储分析器
  • 武士

如何解决该问题?
 

确定导致卡住线程的代码(即执行所花费的时间超过堆栈线程的最大时间)后,可以使用工作管理器执行代码。 工作管理器具有“忽略卡住线程”选项,该选项使您能够执行长时间运行的作业。 见下文:

以下是有关如何创建工作管理器的一些帖子

  • 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最大线程

weblogic最大线程_处理Weblogic卡住的线程相关推荐

  1. java线程的创建线程_多线程(Thread、线程创建、线程池)

    第1章 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序, ...

  2. junit测试线程_一个在自己的线程中运行测试的JUnit规则

    junit测试线程 有时,能够在单独的线程中运行JUnit测试会很有帮助. 特别是在编写与封装的ThreadLocal或类似对象进行交互的集成测试时,这可能会派上用场. 单独的线程将隐式确保每次测试运 ...

  3. 线程池默认多少个线程_我需要多少个线程?

    线程池默认多少个线程 这取决于您的应用程序. 但是,对于那些希望对如何从生产站点购买的所有昂贵内核中挤出大量资金的人,请多多包涵,我将阐明围绕多线程 Java应用程序的奥秘. 内容针对最典型的Java ...

  4. java如何关闭一个线程_如何关闭一个java线程池

    Java 并发工具包中 java.util.concurrent.ExecutorService 接口定义了线程池任务提交.获取线程池状态.线程池停止的方法等. JDK 1.8 中,线程池的停止一般使 ...

  5. task.run 强制结束线程_图文介绍进程和线程的区别

    点击蓝色"最码农"关注我哟 加个"星标",每天下午18:03,一起学技术 进程和线程的概念 先了解一下操作系统的一些相关概念,大部分操作系统(如Windows. ...

  6. java 异常处理线程_转:Java子线程中的异常处理(通用)

    在普通的单线程程序中,捕获异常只需要通过try ... catch ... finally ...代码块就可以了.那么,在并发情况下,比如在父线程中启动了子线程,如何正确捕获子线程中的异常,从而进行相 ...

  7. python销毁线程_聊聊 Python 中的线程

    01什么是线程? 线程是操作系统能够进行运算调度的最小单位,它隶属于进程之中,也有人叫它轻量级进程.线程自己没有系统资源,它可与同属一个进程的其它线程共享进程中的资源,同一进程中的多个线程可以并发运行 ...

  8. weblogic运行项目_在WebLogic 12c上运行RichFaces

    weblogic运行项目 我最初以为我可以在几个月前写这篇文章. 但是我最终被不一样的事情所淹没. 其中之一是,它无法像我在4.0版本中那样简单地启动RichFaces展示柜. 有了所有的JMS ma ...

  9. 查看weblogic Java版本_获取WebLogic版本号有以下几种方式

    获取WebLogic版本号有以下几种方式: 1.通过命令方式,具体操作方式如下 cd $MW_HOME\weblogicxx\server\bin $MW_HOME\weblogicxx\server ...

最新文章

  1. 深度学习目标检测法进化史,看这一篇就够了
  2. mongodb模糊查询 php7_详解php7如何实现MongoDB模糊查询
  3. sql delete删除的数据怎么恢复_如何恢复按下Shift + DELETE键永久删除的文件和资料夹?...
  4. 机器学习的一些很好的博客
  5. XPath语法 在C#中使用XPath例子与用法
  6. 牛客挑战赛47 C 条件(Floyd bitset优化)
  7. ajax处理返回的xml数据,使用AJAX调用WebService返回xml不返回json原因以及解决办法...
  8. 前端学习(1483):在vue发送网络请求
  9. NCRE四级网络工程师考题详解----目录分解法
  10. Laravel 学习笔记之文件上传
  11. bat 输出变量 %变量名%
  12. 远方的人 -- 龙瑜
  13. 命令启动oracle实例,【单选题】启动oracle数据库实例的命令是
  14. 儿童节html5小游戏,2016六一儿童节主题班会小游戏大全
  15. 苹果“教主”乔布斯:一个人的世界
  16. 产品经理——从一块钱看产品推广方案
  17. Mac操作系统下怎么显示隐藏文件
  18. win10配置apache
  19. 跑步节奏音乐匹配Android项目开发和调试经验
  20. win7系统服务print spooler 无法启动解决方法(开启及关闭方法)

热门文章

  1. 非常有用的并发控制-倒计时器CountDownLatc
  2. 一百馒头一百僧,大僧三个更无争,小僧三人分一个大小和尚得几丁?
  3. SpringCloudConfig整合Nacos
  4. EasyUI(前端框架)
  5. 利用redis保存验证码并设置过期时间
  6. React功能界面的组件化编码流程
  7. spring boot建立项目 git推送giteee
  8. IDEA导入Maven项目,pom.xml文件中 有inspects a maven model for resolution problems报错 !!!!!!!!!!有用
  9. http长/短轮询和WebSocket 的介绍和比较
  10. 使用Git前的准备工作