Skip to content

OPC UA 1.05 Maintenance Update

Pre-release
Pre-release

Choose a tag to compare

@opcfoundation-org opcfoundation-org released this 18 Nov 16:38
a2e3fc8
This release is based on the 1.05.06 Nodeset.
It contains important bug fixes which were found after the last 1.05.377 release, as well as breaking API changes.

## Changes:

- Introduced telemetry context and proper use of ILogger.
- Improve thread safe Utils methods for incrementing identifiers.
- Obsolete Synchronous Certificate Validator Methods.
- Move from .net 9 to .net 10 SDK and build new target framework .net 10.
- Restructured core and built in types into base assembly and nuget.
- Pulled ActivityTraceFlags into IClientBase.

### Server Specific:

- Pass SecureChannelContext explicitly.
- Obsolete APM & Synchronous Methods.
- Configured Thread Pool for better Server Performance.
- Refactor Publishing to work with TAP.
- Refactor SessionPublishQueue for improved throughput by removing locking on Subscription enumeration.
- Include domains and applicationName in ServerCertificate for CreateSigningRequest Method with parameter regeneratePrivateKey = true.
- Complete IAsyncNodeManager Interface with support for sync Calls using SyncNodeManagerAdapter.
- Add Async MonitoredItem Management methods to MasterNodeManager & IAsyncNodeManager.
- Implement Service Members of IAsyncNodeManager in MasterNodeManager.
- INodeManager: Propagate MonitoredItemId using Class MonitoredItemIdFactory instead of ref globalIdCounter.
- Extended MasterNodeManager with support for ReadAsync, WriteAsync, HistoryReadAsync, HistoryWriteAsync, TranslateBrowsePathAsync, ConditionRefreshAsync.
- Extended StandardServer with ActivateSessionAsync, CreateSessionAsync, FindServersAsync, GetEndpointsAsync, CloseSessionAsync.
- Improve SubscriptionManager throughput by removing lock on subscription dictionary lookups.
- Implement async transportlistener callback.
- Refactor MasterNodeManager NamespaceManagers Property to use ConcurrentDictionary for lock free lookups.
- Add an Explicit deterministic load test to test Server Performance.
- Allow non OPC-UA conform SubjectName values to AddSecurityConfigurationStores

### Client Specific:

- Obsolete APM calls.
- Set default timout hint based on OperationTimeout of the TransportChannel.

### Fixes:

- Fix memory leak of Monitored Items in CustomNodeManager2.
- Fix JsonDecoder for Unions.
- Fix NodeId.Parse() to reject invalid identifiers without type prefix.
- Fix log level for expected client disconnection scenarios (BadNoSubscription and related status codes).
- Fix client Close method to properly wait for outstanding publish requests.
- Fix InvalidCastException in GetBrowseName methods for Attributes, DataTypes, ReferenceTypes, and StatusCodes.
- Fix TranslateBrowsePath to NodeIds synchronous path in MasterNodeManager.
- Fix WriteArray in encoders to also write null.
- Fix HistoryRead bit not set in Server object EventNotifier when history capabilities are enabled

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

  • [Server] Refactor MasterNodeManager NamespaceManagers Property to use ConcurrentDictionary for lock free lookups by @romanett in #3190
  • [Server] Implement async transportlistener callback by @romanett in #3184
  • [Server] Improve SubscriptionManager throughput by removing lock on subscription dictionary lookups by @romanett in #3189
  • Make IAsyncNodeManager experimental / Remove deprecated ICertificateStoreMembers / Rename IApplicationConfigurationBuilderCreate.Create to CreateAsync by @romanett in #3187
  • [Server] Extend MasterNodeManager with support for ReadAsync, WriteAsync, HistoryReadAsync, HistoryWriteAsync, TranslateBrowsePathAsync, ConditionRefreshAsync by @romanett in #3188
  • Retry to reactivate session on BadNoCommunication and BadConnectionClosed. by @mrsuciu in #3197
  • [Server] Fix TranslateBrowsePath to NodeIds sync path in MasterNodeManager by @romanett in #3195
  • Update Microsoft nuget packages to 9.0.9 Versions by @romanett in #3205
  • Fix ExtendedNodeId not correctly json encoded #3209 by @marcschier in #3211
  • [Server] INodeManager: Propagate MonitoredItemId using Class MonitoredItemIdFactory instead of ref globalIdCounter by @romanett in #3207
  • [Server] Implement Service Members of IAsyncNodeManager in MasterNodeManager by @romanett in #3204
  • [Server] Add Async MonitoredItem Management methods to MasterNodeManager & IAsyncNodeManager by @romanett in #3217
  • Improve thread safe Utils methods for incrementing identifiers by @romanett in #3221
  • [Server] Complete IAsyncNodeManager Interface with support for sync Calls using SyncNodeManagerAdapter by @romanett in #3218
  • Introduce telemetry context and proper use of ILogger by @marcschier in #3213
  • Bump Nerdbank.GitVersioning from 3.7.115 to 3.8.118 by @dependabot[bot] in #3231
  • Bump BenchmarkDotNet from 0.15.3 to 0.15.4 by @dependabot[bot] in #3232
  • Add API back as Obsolete for samples to compile (almost) unchanged. by @marcschier in #3234
  • More missing obsoleted API to support better porting by @marcschier in #3237
  • Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.0.0 by @dependabot[bot] in #3238
  • Fix InvalidCastException in GetBrowseName methods for Attributes, DataTypes, ReferenceTypes, and StatusCodes by @Copilot in #3242
  • Immutable Encodeable factory and lookup performance improvements by @marcschier in #3241
  • Improve test stability of ValidateTransfer test, ensure thread safety in MonitoredItem by @marcschier in #3243
  • Refactor string usage for secrets (#394) by @marcschier in #3250
  • Fix log level for expected client disconnection scenarios (BadNoSubscription and related status codes) by @Copilot in #3255
  • Fix: Update Dockerfile to target .NET 9.0 by @Navaneethnanda in #3246
  • [Client] Set default timout hint based on OperationTimeout of the TransportChannel by @romanett in #3178
  • Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #3260
  • Bump NUnit3TestAdapter from 5.1.0 to 5.2.0 by @dependabot[bot] in #3261
  • Replace deprecated Uri.DnsSafeHost with Uri.IdnHost by @Copilot in #3256
  • Fix WriteArray in encoders to also write null. by @marcschier in #3266
  • Make GDS tests stable and add better logging to unit tests by @marcschier in #3271
  • Allow non OPC-UA conform SubjectName values to AddSecurityConfigurationStores by @mrsuciu in #3229
  • Check bounds for switched on values and roslyn cleanup by @marcschier in #3264
  • Fix HistoryRead bit not set in Server object EventNotifier when history capabilities are enabled by @Copilot in #3252
  • [Server] Include domains and applicationName in ServerCertificate for CreateSigningRequest Method with parameter regeneratePrivateKey = true by @romanett in #3263
  • Fix client Close method to properly wait for outstanding publish requests by @Copilot in #3254
  • Fix NodeId.Parse() to reject invalid identifiers without type prefix by @Copilot in #3284
  • [Client] Obsolete APM calls by @marcschier in #3282
  • Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #3292
  • [Server] Refactor Publishing to work with TAP by @romanett in #3289
  • 1.05.06 generated files by @marcschier in #3299
  • Added RejectCertificateUriMismatch property and explicit ApplicationUri validation after certificates are loaded by @mrsuciu in #3244
  • Populate ServerCapabilities->ModellingRules with stack-used modelling rules by @Copilot in #3291
  • Add TryParse methods to NodeId and ExpandedNodeId by @Copilot in #3302
  • Add GitHub Copilot instructions for repository context by @Copilot in #3305
  • Fix flaky failing CreateSessionApplicationUriValidationTests by @mrsuciu in #3307
  • Refactor client state persistence and add more tests by @marcschier in #3303
  • Add unit tests for standard deviation and variance aggregates by @Copilot in #3309
  • Document custom versioning scheme in NuGet README by @Copilot in #3308
  • Add an Explicit deterministic load test to test Server Performance by @romanett in #3306
  • [Server] Configure Thread Pool for better Server Performance by @romanett in #3310
  • Bump BenchmarkDotNet from 0.15.4 to 0.15.5 by @dependabot[bot] in #3311
  • Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1 by @dependabot[bot] in #3312
  • Trace and metrics for send/receive, more test coverage and additional nullable annotations by @marcschier in #3314
  • Allow sending while connecting in client channel. by @marcschier in #3315
  • Pull ActivityTraceFlags into IClientBase by @marcschier in #3319
  • [Server] Refactor SessionPublishQueue for improved throughput by removing locking on Subscription enumeration by @romanett in #3320
  • Fix JsonDecoder for Unions. by @opcfoundation-org in #3323
  • [Server] Fix memory leak of Monitored Items in CustomNodeManager2 by @romanett in #3324
  • [Reference Applications] Disable logging by default, Add file log parameter, Remove TraceLogs from MonitoredItem IsReadyToPublishCheck by @romanett in #3327
  • Use connect async instead of BeginConnect by @marcschier in #3321
  • Restructure core and built in types into base assembly and nuget by @marcschier in #3326
  • Fix strong name signing and IVT by @marcschier in #3331
  • [Server] ActivateSessionAsync / CreateSessionAsync / FindServersAsync / GetEndpointsAsync / CloseSessionAsync by @romanett in #3225
  • Move from .net 9 to .net 10 SDK and build new target framework .net 10 by @marcschier in #3333
  • [Server] Obsolete APM & Sync Methods by @romanett in #3334
  • Build Core libraries only for signing by @marcschier in #3337
  • [Server] Pass SecureChannelContext explicitly by @romanett in #3340
  • Fix built solution not the same as signed solution file by @marcschier in #3341
  • Obsolete Sync Certificate Validator Methods by @romanett in #3338
  • Update Generated Files with latest 1.5.6. by @opcfoundation-org in #3344

New Contributors

Full Changelog: 1.5.377.22...1.5.378.10-preview