Tag Archives: stuck

Weblogic “ThreadPool has stuck threads” [How to Solve]

Error: 

<2014-12-23
上午09时58分33秒CST><Error><WebLogicServer>
<BEA-000337><[STUCK]ExecuteThread:'1'forqueue:
'weblogic.kernel.Default(self-tuning)'hasbeenbusyfor"603"seconds
workingontherequest
"weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl@a738be",which
ismorethantheconfiguredtime(StuckThreadMaxTime)of"600"seconds.
Stacktrace:
oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3447)
weblogic.jdbc.wrapper.Connection.forcedCleanup(Connection.java:151)
weblogic.common.resourcepool.ResourcePoolImpl.timeoutInactiveResources(ResourcePoolImpl.java:1933)
weblogic.common.resourcepool.ResourcePoolImpl.access$600(ResourcePoolImpl.java:40)
weblogic.common.resourcepool.ResourcePoolImpl$ResourcePoolMaintanenceTask.timerExpired(ResourcePoolImpl.java:2411)
weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
&>

[cause analysis]:

1. Thread execution time is too long, blocking problem occurs, analyze the log to view the thread class name of the problem.

2. The execution time of SQL statement is too long.

 

[solution]:

It can be solved by the following methods:
1) modify the stuckthreadmaxtime parameter, change the default 600s to 1200s, or other suitable values.
2) Increase the number of threads to prevent thread blocking.
3) Optimize the program and reduce the processing time.

 

Optimize the SQL statement:
1) optimize the info_ Sign, PPMC and other fields to establish a standard table, query from the database, try to reduce the use of in
2) do not use & lt; &> operators, use &> or & lt; instead
3) try to reduce the use of sorting order by, rownum, only in the critical moment, other time can not use it.