diff --git a/Libraries/Opc.Ua.Server/Subscription/SubscriptionManager.cs b/Libraries/Opc.Ua.Server/Subscription/SubscriptionManager.cs index 3ba5afad24..0f847a799a 100644 --- a/Libraries/Opc.Ua.Server/Subscription/SubscriptionManager.cs +++ b/Libraries/Opc.Ua.Server/Subscription/SubscriptionManager.cs @@ -260,6 +260,7 @@ namespace Opc.Ua.Server // close the publish queue for the session. SessionPublishQueue queue = null; IList subscriptionsToDelete = null; + uint publishingIntervalCount = 0; lock (m_lock) { @@ -304,6 +305,16 @@ namespace Opc.Ua.Server // delete subscription. subscription.Delete(context); + + // get the count for the diagnostics. + publishingIntervalCount = GetPublishingIntervalCount(); + + lock (m_server.DiagnosticsWriteLock) + { + ServerDiagnosticsSummaryDataType diagnostics = m_server.ServerDiagnostics; + diagnostics.CurrentSubscriptionCount--; + diagnostics.PublishingIntervalCount = publishingIntervalCount; + } } // mark the subscriptions as abandoned.