OPCFoundation / UA-.NETStandard

OPC Unified Architecture .NET Standard
Other
1.97k stars 950 forks source link

[Server] Improve publishing operation to avoid discarding values in edge cases #2763

Open romanett opened 2 months ago

romanett commented 2 months ago

Proposed changes

This PR improves publishing operation to avoid discarding values when a large queueSize is used for DataValues / Events or a large number of monitored items is created in a single subscription.

This fix changes the MonitoredItem Interface for the Publish Methods.

Types of changes

Checklist

Further comments

This PR is needed for reliable operation of durable subscriptions.

codecov[bot] commented 2 months ago

Codecov Report

Attention: Patch coverage is 88.57143% with 4 lines in your changes missing coverage. Please review.

Project coverage is 55.40%. Comparing base (a29d871) to head (409a51b). Report is 8 commits behind head on develop/main374.

Files with missing lines Patch % Lines
...raries/Opc.Ua.Server/Subscription/MonitoredItem.cs 92.85% 1 Missing and 1 partial :warning:
...braries/Opc.Ua.Server/Subscription/Subscription.cs 71.42% 1 Missing and 1 partial :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop/main374 #2763 +/- ## =================================================== + Coverage 54.84% 55.40% +0.55% =================================================== Files 349 349 Lines 66070 66081 +11 Branches 13556 13565 +9 =================================================== + Hits 36235 36611 +376 + Misses 25902 25486 -416 - Partials 3933 3984 +51 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

mregen commented 1 month ago

due to the breaking interface changes it has to be merged after a version bump

romanett commented 1 month ago

This PR does not need to be merged to develop/durable as it is already included in #2683

mregen commented 1 month ago

@romanett lets keep this PR as draft for now, maybe we want to use it already before the durable subscription release is ready.