Skip to content

OPC UA 1.05 Maintenance Update

Latest
Compare
Choose a tag to compare
@opcfoundation-org opcfoundation-org released this 24 Jan 10:07
ef645f6

1.05.374 roll up until Jan 22nd.

This release is based on the 1.05.03 Nodeset with generated files from the ModelCompiler.
The focus in this release was on perf improvements and bug fixes.
This is also the last official release without ECC support...

Server improvements

  • NodeIdDictionary

The underlying dictionary of the commonly used NodeIdDictionary in node managers is now a ConcurrentDictionary. (see CustomNodeManager2 changes)
Perf comparisons with NodeId hashes showed that the lookup of entries is comparable to the previously used Dictionary, but doesn't require locking in the NodeManager. Now all implementations of GetManagerHandle can be accessed without locking the node manager, which should reduce contention between service calls. Still, most calls need to be synchronized with locks, but the GetManagerHandle call is decoupled.

Client improvements

  • A client fast datachange callback gets now access to the MoreNotifications flag, which makes it easier to reshuffle received data changes spread across multiple publish responses. To save the cost of a list translation, the notificationMessage gets a StringCollection for the StringTable instead of a List of strings.

Encoder/Decoder perf improvements

  • Taking advantage of stackalloc and Span ins some areas to reduce allocations and JSON escaping.

.NET 9 lib issues

  • Linking with .NET 8 LTS caused some issues with referenced .NET9 assemblies, now only .NET 8 flavors are referenced.

Other bug fixes as below

What's Changed

  • Fix regression in Node AccessRestrictions: change return type from uint32 to ushort by @romanett in #2883
  • fix nullreferenceException in NodeState by @romanett in #2894
  • Fix server time and move all readerwriter locks outside of try/finally by @mregen in #2903
  • Fix errors and warnings building on other Linux distributions by @mregen in #2908
  • Add SetHiResClockDisabled & fix Rejected Store Creation in ApplicationConfigurationBuilder by @romanett #2909
  • [Server] Improve GetManagerHandle & introduce a threadSafe NodeIdDictionary by @romanett in #2915
  • [Client] Fix match endpoints by @romanett in #2925
  • Handle status code Uncertain according to the specification by @larws in #2898
  • Merge cherrypicks from master in develop branch by @mregen in #2928
  • Fix race condition on Nuget build by @mregen in #2930
  • Some .NET 9 maintenance and JSON encoder improvements by @mregen in #2922
  • Merge develop/main374 in release branch by @mregen in #2944

Full Changelog: 1.5.374.158...1.5.374.168