ThreadPool::addJob fails

Questions regarding the use of the C++ SDK for Server or Client development or integration into customer products ...

Moderator: uasdkcpp

Post Reply
stenil
Sr. Member
Sr. Member
Posts: 12
Joined: 14 Sep 2016, 14:00

ThreadPool::addJob fails

Post 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.

Post Reply