If you are getting below error on STUCK threads in
weblogic, there are few steps to tune it so that you won’t get any/minimize the
number of times it comes.
Usually these STUCK threads get unstuck after some
time but to improve performance its better to tune it avoid uncertainty.
ERROR When
STUCK:
####<Dec
8, 2012 9:50:31 AM EDT> <Error> <WebLogicServer>
<abcsystems.orass.com> <server-cc113sp> <[ACTIVE] ExecuteThread:
'34' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS
Kernel>> <> <> <1278597031843> <BEA-000337>
<[STUCK] ExecuteThread: '55' for queue:
'weblogic.kernel.Default
(self-tuning)' has been busy for "650" seconds working on the request
"Http Request: /deo/hfiles.do", which is more than the configured
time (StuckThreadMaxTime) of "600" seconds.
LOG When
becomes UNSTUCK:
####< Dec
8, 2012 2:59:16 PM EDT> <Info> <WebLogicServer>
<abcsystems.orass.com> <server-cc113sp> <[STUCK]
ExecuteThread:'52' for queue: 'weblogic.kernel.Default (self-tuning)'>
<<WLS Kernel>> <> <> <1278608356902> <BEA-000339>
<[STUCK] ExecuteThread: '52' for queue: 'weblogic.kernel.Default
(self-tuning)' has become "unstuck".>
The error may / may not disappear. It will
disappear if the interval is longer than the processing time of the request.
The optimal value need to be set according to the
processing time of the requests. If you don’t expect the requests take so long
to complete, then you need to tune the system.
If you are seeing a thread exceeding the stuck
thread max time, then the request is taking a long time to complete, more than
the defualt value of 10 minutes.
In some circumstances this is expected, it depends
on what the thread is actually doing – An example of a normal warning like this
is that you have a SQL query that is taking too long because it’s badly
written.
If you are seeing a lot of threads getting stuck,
then it suggests that you have a bottleneck in one key components and you may
have to tune your system,
but it’s a question of identifying which component
needs tuning. In either case, you will probably need to take a number of thread
dumps with short (15 sec) interval between them, at the time you see the
warning reported to start to identify the issue.
The best approach is to identify what thread is
causing this. I would recomend capturing a thread dump to find out what is
goign on withing that thread.
before increasing max thread stuck time please
take thread dump and analyze which threads are getting stuck. Fo example based
on your analysis if you feel your database is little bit slow due to which
threads are getting stuck, try to increase thread stuck time.
Thanks,
Babu