The following error is displayed in the application server log:
[Appian WorkPoller - 0 [Notifications] (originally: default-threads - 19)] ERROR com.appiancorp.ra.workpoller.WorkPoller - Could not obtain 3 thread(s) after X attempts in work poller
The Appian engines as a whole can obtain up to 30 threads at the same time from the application server to request it processes data on its behalf. Once the application server finishes the work, the response is sent back to the engines and the workpoller thread is released.
This issue occurs when the environment maxes out on these 30 threads for the engines, which suggests that the engines were sending long running work items to the application server in parallel.
To resolve the issue, perform the following (the following steps are tailored for JBoss but the same principles apply to WebLogic):
In Linux, run top, press the c key, then press Shift+H. This will show the threads sorted by highest to lowest CPU usage. Take a screenshot of the output.
In Windows, use Process Explorer or Process Monitor to show the threads for the Java process and take a screenshot of the top threads by CPU.
ps -ef | grep standalone
jstack processid > /path/threaddump-YYYYMMDD-HHMM.txt
The usual culprits are:
This article applies to all versions of Appian.
Last Reviewed: February 2017
© 2019 Appian. All rights reserved.