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.

Subscriptions to more than 100 servers ,some servers do not respond .

More
03 Mar 2022 15:41 #10690 by support
Hello.

In general, both approaches - using multiple EasyUAClient object, or using just one - are correct. However, I would recommend using just one, unless there is a reason to use more; the reason could be e.g. that some settings that are available on the client object need to be set differently (which probably isn't your case).

The reason for this recommendation is that the EasyUAClient object is relatively heavy-weight in terms of resource consumption - each such object "eats" from available memory and threads etc. To illustrate why is that, consider that each of them has a dedicated thread and queue to serve the event notifications to your code; this thread and queue assures that even if your code "blocks" in the event handler, the QuickOPC code should remain unaffected. Internally, however, there is a single "source" of these events (the "engine") anyway. Therefore, having more EasyUAClient objects gives you more flexibility (for example, you know without extra coding that the event notifications cam from the server you subscribed to), but it comes at a cost. And there are other similar consideration that speak in favor of just one, or at least a small number, of EasyUAClient objects. In addition, at least in .NET Core, the threads come from a pool, and with a large number of them, there may be no more available at least temporarily, which could explain the behaviors you are observing. I am not saying that I know that it is the cause, but it can be.

There are no "hard-coded" limits to the number of servers or tags, in the sense you have asked.

So I would a) monitor the # of threads, just to get a picture of what is happening, b) recode to use just one EasyUAClient, and c) test with the current version (2021.3), just in case.

Best regards

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

More
02 Mar 2022 09:23 - 02 Mar 2022 09:30 #10683 by Sleepless
Hi Support,
Our team met a problem about OPC UA subscribtions.
Scenario 1: We used one EasyUAClient to connect with more than 100 servers(one server per host). Some servers did not respond,which we could not get any useful information or error messages from Events of EasyUAClient .

Scenario 2:Some servers connected successfully but some tags of subscription group did not fire the event after value changed.
We wonder if there is limition about connecting servers or tags.Or we do not use EasyUAClient in right way when connect to large number of servers.

Here is our information:
.NET Runtime: .NET Core 3.1
Windows OS: Server 2016
OPC UA SDK : 5.57

Would you please help me to overcome this issue?

With regards.
Last edit: 02 Mar 2022 09:30 by Sleepless.

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

Moderators: support
Time to create page: 0.042 seconds