近期生产某系统中多次出现weblogic应用程序的线程被置为粘滞STUCK,导致weblogic的线程阻塞和cpu占用率上升,引起weblogic服务挂起现象。

因此特对Weblogic线程的状态进行总结和分类。

活动线程(ACTIVE Thread):

有资格处理传入请求的线程被归类为ACTIVE线程。

当线程需求增加时,Weblogic将开始将线程从待机状态提升到活动状态,这将使他们能够处理未来的客户端请求

阻塞线程(block Thread):

"weblogic.kernel.Default"是从客户端提交请求后产生的线程所在的队列名。这个队列的线程数默认是30个。若30个线程使用完毕,特别是存在大量粘滞线程无法释放,则会造成线程堵塞,后续大量线程被置为 block状态。则部署的应用将不能访问。

如果发送该请求较多,很有可能会导致weblogic的线程阻塞,严重会引起weblogic挂起现象。

可以通过以下几种方法解决:

1)修改StuckThreadMaxTime参数,将默认的600s改成1200s,或者其它适合的值。

2)增大线程数MaxPoolSize,防止线程阻塞问题。

3)优化程序,减少处理时间。

粘滞线程(Stuck Thread):

就是那些执行时间超过“粘滞线程最长时间”(默认是600秒)的线程。“StuckThreadMaxTime”的默认值为10分钟。

如果执行线程处理某个请求的粘滞时间超过了配置的粘滞线程最大时间,则为“真”。

可以通过控制台的设置来增大或减小这个值: 控制台 >> 环境 >> 服务器 >> MedRecSvr1 >> 配置 >> 优化 >> 粘滞线程最长时间。

但修改这个值没有太大意义,大部分线程处于Stuck,都是应用存在异常导致,增加时间并不能解决问题。

WebLogic把某些线程标记为Stuck Thread,是为了提醒那些线程执行的时间过长。

应该去分析线程为什么需要那么长时间才能执行完(甚至永远执行不完)。

独占线程(Hogging Thread):

如果根据调度程序的自动观察,某个请求独占执行线程的时间超过了正常执行时间,则为“真”。

WebLogic要把一个线程标记为Hogging Thread需要满足两个条件:

(1)线程执行时间超过了“正常执行时间”。

(2)线程执行时间还没有超过“粘滞线程最长时间”。

随着时间的推移,Hogging Thread会出现两种不同的状态变化:

(1)在超过“粘滞线程最长时间”之前,请求执行完毕,Hogging Thread被释放,重新回到线程池,等待下一个请求的到来。

(2)超过“粘滞线程最长时间”之后请求还没有执行完毕,Hogging Thread被标记为Stuck Thread,直到最后执行完毕(虽然有可能永远执行不完)。

待机线程(STANDBY Thread):

等待标记为有资格处理传入请求的线程被归类为STANDBY线程。 这些线程保留在备用池中。处理当前工作负载不需要的线程被指定为备用线程并添加到备用池中。

当需要更多线程时,将激活这些线程。这些线程是从JVM线程转储创建并可见的,但尚不可用于处理客户端请求。

转载于:https://juejin.im/post/5bac7cbfe51d450e61602a9b

Oracle weblogic线程Thread status分类和总结相关推荐

  1. Weblogic 线程的几种状态 - STUCK,ACTIVE,STANDBY - 你了解它们的含义吗

    文章目录 1. STUCK 2. HOGGER 3. ACTIVE 4. STANDBY 5. IDLE Oracle Fusion Middleware.Oracle Enterprise Mana ...

  2. Java核心(一)线程Thread详解

    一.概述 在开始学习Thread之前,我们先来了解一下 线程和进程之间的关系: 线程(Thread)是进程的一个实体,是CPU调度和分派的基本单位. 线程不能够独立执行,必须依存在应用程序中,由应用程 ...

  3. .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调、APM、EAP、TPL、aysnc、await

    windows系统是一个多线程的操作系统.一个程序至少有一个进程,一个进程至少有一个线程.进程是线程的容器,一个C#客户端程序开始于一个单独的线程,CLR(公共语言运行库)为该进程创建了一个线程,该线 ...

  4. Android Framework中的线程Thread及它的threadLoop方法

    当初跟踪Camera的代码中的时候一直追到了HAL层,而在Framework中的代码看见了许许多多的Thread.它们普遍的特点就是有一个threadLoop方法.按照字面的意思应该是这个线程能够循环 ...

  5. Oracle WebLogic 最新补丁的绕过漏洞分析 cve-2020-2883

    今年早些时候,作者在博客中公开了一个Oracle WebLogic Server中的反序列化漏洞.此漏洞是由Oracle补丁的,并分配了CVE-2020-2555.但是,VNPT ISC的研究员Quy ...

  6. java 线程 Thread 使用介绍,包含wait(),notifyAll() 等函数使用介绍

    (原创,转载请说明出处!谢谢--http://www.cnblogs.com/linguanh/) 此文目的为了帮助大家较全面.通俗地了解线程 Thread 相关基础知识! 目录: --线程的创建: ...

  7. 进程(process)和线程(thread)

    进程(process)和线程(thread) 来源:阮一峰 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握. 其实做一个很好的类比,就可以把它们解释地清 ...

  8. 并发基础篇(六):线程Thread类的start()方法和run()方法

    点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...

  9. Android 线程 thread 两种实现方法!

    这篇文章中有三点需要提前说明一下, 一: 在android中有两种实现线程thread的方法: 一种是,扩展java.lang.Thread类 另一种是,实现Runnable接口 二: Thread类 ...

最新文章

  1. simplePagination API
  2. JDK1.8 Lambda 使用详解(转)
  3. 首发:徐亦达老师的机器学习课件及下载(中文目录)
  4. JSON与js对象序列化
  5. std::vectorChannel2* m_allChannels;容器,以及如何根据channelid的意义
  6. MFC实现 MSN QQ 窗口抖动
  7. mysql 深入视图和索引
  8. javascript深入浅出——学习笔记(六种数据类型和隐式转换)
  9. 64位系统使用Access数据库文件的彻底解决方法
  10. 7月第3周社交网站综合排行Top10:新浪微博居首
  11. 关于导弹飞行控制系统的滚转稳定
  12. 苹果手机屏幕镜像搜索不到电视_康佳电视投屏不了,3个办法解决!
  13. C++最简单的日期计算
  14. 小虎整合:电商浏览器插件工具常用的有哪些?在哪里可以找到?
  15. python实现web可视化_数据可视化怎么做【python数据可视化的效果如何在web页面中展示】...
  16. 复旦大学2019计算机考研,2019年复旦961软件工程专硕考研初试363+复试经验分享
  17. SQL Server 安全篇——SQL Server加密(1)——加密概念
  18. 计算机程序员求职信英语作文,英文程序员求职信
  19. 攻防世界-Web(新手区)
  20. c语言保留小数点后n位_C语言(2)- 定点数和浮点数

热门文章

  1. 1.75万亿参数,刚刚智源发布了全球最大预训练模型“悟道2.0”
  2. 深度强化学习的现在,将来与未来
  3. AutoML综述更新 【AutoML:Survey of the State-of-the-Art】
  4. 机器学习模型越来越大,开发者应该如何部署?
  5. 2019年上半年收集到的人工智能LSTM干货文章
  6. 科学家王海峰:从百度十篇论文入选ACL 2019说起
  7. 自然语言处理NLP基本知识小结
  8. (已解决)pycharm调试报错-UnicodeDecodeError:‘utf-8‘ codec can‘t decode byte 0xe8 in position 1023
  9. 时空AI技术:深度强化学习在智能城市领域应时空AI技术:深度强化学习在智能城市领域应用介绍...
  10. 神经科学如何影响人工智能?看DeepMind在NeurIPS2020最新《神经科学人工智能》报告,126页ppt...