perf(dcl): coalesce MxGateway alarm stream reopens across a subscribe burst (review 2026-10-21 02/P3)

This commit is contained in:
Joseph Doherty
2026-10-22 06:44:13 -04:00
parent e6406c494c
commit d8d44e0b87
7 changed files with 189 additions and 36 deletions
@@ -46,10 +46,11 @@ public class DataConnectionFactory : IDataConnectionFactory
_loggerFactory = loggerFactory;
_secretResolver = secretResolver;
var globalOptions = opcUaGlobalOptions.Value;
// Only the MxGateway supervisory-advise window is adapter-level today; the rest of
// Only the MxGateway supervisory-advise window and alarm-reopen debounce are adapter-level; the rest of
// DataConnectionOptions is consumed by the actor, which is constructed elsewhere.
var supervisoryAdviseParallelism =
(dataConnectionOptions?.Value ?? new DataConnectionOptions()).MxSupervisoryAdviseParallelism;
var dcOptions = dataConnectionOptions?.Value ?? new DataConnectionOptions();
var supervisoryAdviseParallelism = dcOptions.MxSupervisoryAdviseParallelism;
var alarmStreamReopenDebounce = dcOptions.MxAlarmStreamReopenDebounce;
// The client registration name a connection with a blank ClientName falls back to
// (review 2026-10-21 02/U1 — the option was bound and validated but never read).
var mxClientNamePrefix = (mxGatewayGlobalOptions?.Value ?? new MxGatewayGlobalOptions()).ClientNamePrefix;
@@ -70,7 +71,8 @@ public class DataConnectionFactory : IDataConnectionFactory
_loggerFactory.CreateLogger<MxGatewayDataConnection>(),
_secretResolver,
supervisoryAdviseParallelism,
mxClientNamePrefix));
mxClientNamePrefix,
alarmStreamReopenDebounce));
}
/// <summary>