ThreadPool has stuck threads
2017-01-25 11:53
459 查看
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 的解释
在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 |
相关文章推荐
- weblogic threadpool has stuck threads
- weblogic threadpool has stuck threads引发内存溢出
- 针对ThreadPool has stuck threads的处理
- Weblogic中Threadpool has stuck threads解决办法
- 求助:threadpool has stuck thread 解决办法
- When should I create threads and when should I use thread pool to run work items asynchronously?
- [未解决]The connection pool for database has been unable to grant a connection to thread 1304
- KMThreadPool: 4 – Thread Pool Step 2: SettingUp the Threads
- 2009-5-10 15:58:15 org.apache.tomcat.util.threads.ThreadPool logFull
- The connection pool for database '/data/data/....db' has been unable to grant a connection to thread
- mysql can't create threads in threadpool
- 线程池的使用 ExecutorService newFixedThreadPool(int nThreads)
- 十万火急!!!Tomcat出现org.apache.tomcat.util.threads.ThreadPool logFull问题
- PHP多线程thread出现的pthreads has detected an attempt to start threads (140089523328768), which has been previously started错误
- Modify MaxThreads of .Net ThreadPool
- Modify MaxThreads of .Net ThreadPool
- [.net]threads by new vs. threads of ThreadPool
- Can't create handler inside thread that has not called Looper.prepare()
- A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 25427 (pool-1-thread-2)
- Java Thread Programming 1.9.2 - Threads and Swing