weblogic 10后台出现警告,原因:ThreadPool has stuck threads

在WEBLOGIC中如果一个线程执行时间超过了Stuck Thread Max Time规定的时间,

WEBLOGIC会把它认为是STUCK线程,并记录在日志中。

我们也可以通过'Dump Thread Stacks' 来捕获STUCK状态的进程。

Home > Summary of Servers > AdminServer>Monitoring>Performance>'Dump Thread Stacks'

 但并不是每次'Dump Thread Stacks' 都能捕获Stuck状态的进程。

 只有在线程执行时间超过了Stuck Thread Max Time规定的时间

 我们才有可能通过'Dump Thread Stacks' 或WEBLOGIC的日志捕获它。

通常我们通过'Dump Thread Stacks'能捕获到以下信息。

"[STUCK] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'" RUNNABLE native

jrockit.NET.SocketNativeIO.readBytesPinned(Native Method)

jrockit.Net.SocketNativeIO.socketRead(SocketNativeIO.Java:32)

java.net.SocketInputStream.socketRead0(SocketInputStream.java)

java.net.SocketInputStream.read(SocketInputStream.java:129)

java.io.BufferedInputStream.fill(BufferedInputStream.java:218)

java.io.BufferedInputStream.read1(BufferedInputStream.java:256)

java.io.BufferedInputStream.read(BufferedInputStream.java:313)

com.informix.asf.IfxDataInputStream.readFully(IfxDataInputStream.java:146)

com.informix.asf.IfxDataInputStream.readSmallInt(IfxDataInputStream.java:453)

在WEBLOGIC的日志中我们能看到如下信息:

<2010-11-8 下午02时38分28秒 CST> <Error> <WebLogicServer> <BEA-000337> <[STUCK]
 ExecuteThread: '189' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "115" seconds
 working on the request "Http Request: /prpall/business/selectPolicy.do", which is more than the configured
 time (StuckThreadMaxTime) of "30" seconds. Stack trace:
        java.net.SocketInputStream.socketRead0(Native Method)
        java.net.SocketInputStream.read(SocketInputStream.java:129)
        java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
        java.io.BufferedInputStream.read(BufferedInputStream.java:313)
        com.informix.asf.IfxDataInputStream.readFully(IfxDataInputStream.java:146)
        com.informix.asf.IfxDataInputStream.readSmallInt(IfxDataInputStream.java:453)
        com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2495)
        com.informix.jdbc.IfxSqli.a(IfxSqli.java:1752)
        com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1704)
        com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1635)
        com.informix.jdbc.IfxResultSet.a(IfxResultSet.java:206)
        com.informix.jdbc.IfxStatement.executeQueryImpl(IfxStatement.java:1229)
        com.informix.jdbc.IfxPreparedStatement.executeQuery(IfxPreparedStatement.java:376)
        weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:100)

在压力测试阶段为了捕获执行时间长的进程我们可以调整

weblogic中的Stuck Thread Max Time 为一个较小的值。

来捕获并发测试时stuck状态的进程。比如30秒。

通常在产品环境中设置此参数值为600秒。

Home > Summary of Servers > AdminServer  >Tuning >Stuck Thread Max Time

以下是weblogic的联机文档中对Stuck Thread Max Time 的解释

 

The number of seconds that a thread must be continually working before this server considers the thread stuck.

For example, if you set this to 600 seconds, WebLogic Server
considers a thread to be "stuck" after 600 seconds of continuous use.

In Web Logic Server 9.x and later, it is recommended that you use the
ServerFailureTriggerMBean in the OverloadProtectionMBean. The
ServerFailureTriggerMBean transitions the server to a FAILED state after
the specified number of stuck threads are detected. The
OverloadProtectionMBean has options to suspend or shutdown a failed
server.

MBean Attribute:
ServerMBean.StuckThreadMaxTime

Minimum value: 0

Maximum value: 2147483647

Changes take effect after you redeploy the module or restart the server

ThreadPool has stuck threads的更多相关文章

  1. weblogic threadpool has stuck threads

    https://blog.csdn.net/wyx713510713/article/details/12705221 最近项目启动时出问题,weblogic的nohup日志文件中找到下面一段(红色部 ...

  2. weblogic threadpool has stuck threads引发内存溢出

    转至:https://blog.csdn.net/wyx713510713/article/details/12705221?utm_source=copy 最近项目老是出问题,weblogic的no ...

  3. 云计算之路-阿里云上:从ASP.NET线程角度对“黑色30秒”问题的全新分析

    在这篇博文中,我们抛开对阿里云的怀疑,完全从ASP.NET的角度进行分析,看能不能找到针对问题现象的更合理的解释. “黑色30秒”问题现象的主要特征是:排队的请求(Requests Queued)突增 ...

  4. Apache Thrift 跨语言服务开发框架

    Apache Thrift 是一种支持多种编程语言的远程服务调用框架,由 Facebook 于 2007 年开发,并于 2008 年进入 Apache 开源项目管理.Apache Thrift 通过 ...

  5. Microshaoft WinDbg cmdtree

    windbg ANSI Command Tree 1.0 title {"Microshaoft Commands"} body {"cmdtree"} {&q ...

  6. Quartzs -- Quartz.properties 配置

    Quartzs -- Quartz.properties 配置 文件加载位置 默认:优先顺序 Classpath:quartz.properties --> org/quartz/quartz. ...

  7. Thread Pool Engine, and Work-Stealing scheduling algorithm

    http://pages.videotron.com/aminer/threadpool.htm http://pages.videotron.com/aminer/zip/threadpool.zi ...

  8. 使用C++11 实现的线程池

    最近打算做一个服务器端程序,每来一个客户端请求新开一个线程进行处理.在网上查了一些资料后,准备使用线程池来做这个东西.使用C++11新的库处理想线程问题比以前简单了许多,在网上找到一份线程池的实现,h ...

  9. 多线程 Worker Thread 模式

    Worker是“工人”的意思,worker thread pattern中,工人线程(worker thread)会一次抓一件工作来处理,当没有工作可做时,工人线程会停下来等待心得工作过来. Work ...

随机推荐

  1. C#视频播放器【转】

    1对于视频播放器来说,最重要的功能,莫过于播放视频文件了这就要用到VS自带的控件——Windows Media Player windows media player 将Windows Media P ...

  2. JavaWeb学习笔记:ServletConfig()和ServletContext()

    ServletConfig()和ServletContext() 1.ServletConfig() ServletConfig是一个接口,它由server提供商来实现. ServletConfig封 ...

  3. Android -- 图像处理(信息量超大)

    Android的图像处理提供的API很帮,但是不适合用来写游戏,写游戏还是用专门的引擎比较好. Android的图像处理还有3D的处理的API,感觉超屌. 我先分享一下Android的一般的处理,比如 ...

  4. 如何在CentOS 7中添加新磁盘而不用重启系统

    导读 对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一.因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重 ...

  5. HYSBZ 1012 最大数maxnumber

    思路:在单调队列不更新列首.由于查询区间大小不确定,所以不能保证下次是否还用到它 #include <cstdio> #include <cstring> #include & ...

  6. (C++)虚函数表解析(转)

    (文章出处不详,转自:http://blog.csdn.net/hairetz/article/details/4137000) C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用 ...

  7. C# Dictionary通过value获取对应的key值[转发]

    1:最直白的循环遍历方法,可以分为遍历key--value键值对以及所有的key两种表现形式 2:用Linq的方式去查询(当然了这里要添加对应的命名空间 using System.Linq) 如下为一 ...

  8. C++设计模式实现--职责链(Chain of Responsibility)模式

    一. 概述 职责链模式: 使多个对象都有机会处理请求.从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 二. 举个样例 员工要求加薪 ...

  9. 【CentOS6.5】MySQL安装和配置

    1./etc/my.cnf 这是mysql的主配置文件 2.数据存放位置 3.错误存放位置

  10. 教你在Ubuntu系统下保存屏幕亮度设置

     本文保留屏幕亮度方法适合使用笔记本的朋友,大家都知道,过亮的屏幕不但刺眼而且缩短LCD屏幕寿命,不幸的是,Ubuntu默认关机后并不保存当前屏幕亮度配置数据,每次开机都要重新设置亮度,很不方便.本文 ...