Professional OPC
Development Tools

logos

Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

Subscribing and reading large number of tags.

More
24 Aug 2022 15:43 #11077 by support
Hello.

As far as I can tell, this is the expected behavior. The incoming notifications are stacking up in the queues, if the processing code cannot cope with the influx. Every physical system has its limits.

Best regards

Please Log in or Create an account to join the conversation.

More
24 Aug 2022 04:50 #11076 by yong
Hello

We are testing a large number of tag subscriptions.
I tested with 10k tags and tested with 100k tags, but gradually the agent can't keep up with the processing speed.

Is there anything I need to set to subscribe to a large number of tags?

The current source code is the image below.


Thank you, and best regards
Attachments:

Please Log in or Create an account to join the conversation.

More
20 May 2022 12:33 #10873 by support
Hello.

The EasyDAClient.SharedParameters.Engine.TopicLruSize was basically an artificial limit on how many items can be subscribed at the same time. It has been completely removed and is effectively "infinite".

Use EasyDAClient.SharedParameters.ClientParameteres.RequestQueueSize instead of EasyDAClient.SharedParameters.Client.RequestQueueSize. It is not directly related to performance, though - it is a size limit on a queue that sits between your code and the low-level execution of your requests. Set it to at least a number that is higher than the number of items you are subscribing to in a single operation. Also set EasyDAClient.SharedParameters.Client.ResponseQueueSize to the same value or higher. EasyDAClient.SharedParameters.Client.LinkCallbackQueueSize may also need an increase - the value it difficult to asses because it depends on how updates are "chunked" by the server - but there is not much harm in setting any of these limits too high.

You may experiment by setting EasyDAClient.SharedParameters.Client.TopicProcessingIntervalTimeout and EasyDAClient.SharedParameters.Client.TopicProcessingTotalTimeout to higher values (e.g. both 2 times as high, and if that helps, repeat that increase etc.). They influence how/whether the client code will split your single large SubscribeMultipleItems into chunks.

All of the above applies only when you target .NET Framework and use the "native client" implementation (the default). When targeting .NET Core/.NET 5+ or when you switch to "NetAPI client", the settings are ignored.

Note that 100K is very large number.

Best regards
The following user(s) said Thank You: yong

Please Log in or Create an account to join the conversation.

More
18 May 2022 05:47 #10870 by yong
Hi
We are testing the performance of OPC Subscription.
I've looked at the following posts for some guidance:
However I'm still unclear what is the best approach for subscribing to a large number of tags.

Subscribing to a large number of tags slows it down.(SubscirbeMultipleItems(), 100K)
Is there anything I need to set to subscribe to a large number of tags?

The settings shown in the previous post are not available.

Thank you, and best regards
Attachments:

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.054 seconds