Best practice during mass data updating

Unified Architecture topics related to OPC UA Specification, compliant behavior and any technical issues of OPC UA, like Security, Information Model, Companion Specs DI, PLCopen, ADI, ...

Moderator: Support Team

Post Reply
Jr. Member
Jr. Member
Posts: 2
Joined: 19 Mar 2021, 09:52

Best practice during mass data updating

Post by husy_oui »

If a client tries to access OPC UA Server when the server is in the progress of mass data updating, the retrieved data may not be reliable. In this case, what is the best practice to block the Client access temporarily?

One such example is that when the Address Space hierarchy is changing drastically due to some maintenance work, Client may run into inconsistent data. The time to complete the updating may range from a few seconds to 2 minutes. So it is better to block the access until the updating is completed.

However, simply setting server state to Suspended or other values than Running does not work. Client can still access the Server functions even if Server State is not Running. Could you give some advise?

Thank you!

User avatar
Support Team
Hero Member
Hero Member
Posts: 2679
Joined: 18 Mar 2011, 15:09

Re: Best practice during mass data updating

Post by Support Team »


are you talking about data value update or are you reconfiguring the adress space? In case of reconfguring the complete address space, if a client does not "respect" the server status, the server can close/drop its endpoints (disconnect all clients on all endpoints). From outside (from clientside) it looks like not reachable, client will go into reconncect loop, and try again until the server is available (shows it's endpoints) again, client must recreate session and all subscriptions, and hence figures out if nodes still exist or not. However, for changes at runtime the ModelChangeEvent is the prefered solution (of course should be fired only if new nodes are ready to use), assuming the client is handling the ModelChangeEvent and reacts accordingly.

Note: changing data and changing model is to completely different things.
Best regards
Unified Automation Support Team

Post Reply