When analyzing thread dumps from the WebLogic Administration Console, users will see threads with the [STUCK] label such as this:
"[STUCK] ExecuteThread: 'XX' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=XX tid=0x0000XXXXXXXX nid=XXXXXX waiting for monitor entry [0x0000XXXXXXX000]
WebLogic has a parameter named Stuck Thread Max Time, which configures the number of seconds that a thread must be continually working before the server considers the thread stuck. This value is set by the server administrator to separate threads that complete immediately and threads that do not. This is useful to narrow down threads that may be causing problems, but the [STUCK] label does not actually imply a problem.
Appian has several functions that run continuously and therefore have a few threads that work for long periods of time. In most cases, if users do not experience issues during their normal activity, the presence of [STUCK] threads can be safely ignored. It is only when issues present themselves that [STUCK] threads need to be scrutinized.
Increasing the Stuck Thread Max Time property can reduce the number of threads considered [STUCK]. You can configure this value in WebLogic Administration Console > Server > Settings > Configuration > Tuning. For more information, refer to the WebLogic documentation here: http://docs.oracle.com/html/E24401_02/taskhelp/tuning/TuningExecuteThreads.html
This article applies to all versions of Appian using WebLogic as an application server.
Last Reviewed: February 2017
© 2020 Appian. All rights reserved.