Page 1 of 1

ThreadPool::addJob fails

Posted: 23 Dec 2019, 16:04
by stenil
Hi,
I have a situation where the logs sometimes print:
"ThreadPool::addJob cannot find available thread for processing"
Could this be related to some improper combination of config settings?
At the time, 14 clients were connected.
The people using the client are saying that OPCUA variables are not updated/written by our server SW, and the message above is everything I find so far that looks suspicious (with <UaAppTraceLevel>Info</UaAppTraceLevel>, which we will increase for further trouble shooting)

Some config settings:
<!--Maximum number of sessions the server allows to create. Default value 0 is unlimited-->
<MaxSessionCount>100</MaxSessionCount>
<!--Maximum number of messages in the republish queue the server allows per Subscription.-->
<MaxRetransmissionQueueSize>20</MaxRetransmissionQueueSize>
<!--Maximum size of monitored item data queues.-->
<MaxDataQueueSize>100</MaxDataQueueSize>
<!--Maximum size of monitored item event queues.-->
<MaxEventQueueSize>10000</MaxEventQueueSize>

<!--Settings for the thread pools used in the server application-->
<ThreadPoolSettings>
<MinSizeTransactionManager>1</MinSizeTransactionManager>
<MaxSizeTransactionManager>10</MaxSizeTransactionManager>
<MinSizeSubscriptionManager>1</MinSizeSubscriptionManager>
<MaxSizeSubscriptionManager>10</MaxSizeSubscriptionManager>
</ThreadPoolSettings>

<!--Settings for the thread pools used in the OPC UA Stack-->
<StackThreadPoolSettings>
<!--Controls whether the secure listener uses a thread pool to dispatch received requests-->
<Enabled>true</Enabled>
<!--The minimum number of threads in the thread pool-->
<MinThreads>5</MinThreads>
<!--The maximum number of threads in the thread pool-->
<MaxThreads>5</MaxThreads>
<!--The length of the queue with jobs waiting for a free thread-->
<MaxJobs>20</MaxJobs>
<!--If MaxJobs is reached the add operation can block or return an error-->
<BlockOnAdd>true</BlockOnAdd>
<!--If the add operation blocks on a full job queue, this value sets the maximum waiting time. 0 is infinite-->
<Timeout>0</Timeout>
</StackThreadPoolSettings>


The SDK version is 1.5.2.