Track Galaxy Platform and AppEngine runtime state via ScanState probes and proactively invalidate descendant variable quality on Stopped transitions so operators can detect a stopped runtime host before downstream clients read stale data and so the bridge delivers a uniform bad-quality signal instead of relying on MxAccess per-tag fan-out

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-04-13 15:40:44 -04:00
parent 8f340553d9
commit 9d49cdcc58
18 changed files with 1831 additions and 14 deletions

View File

@@ -45,7 +45,8 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
IUserAuthenticationProvider? authProvider = null,
SecurityProfileConfiguration? securityConfig = null,
RedundancyConfiguration? redundancyConfig = null,
AlarmObjectFilter? alarmObjectFilter = null)
AlarmObjectFilter? alarmObjectFilter = null,
MxAccessConfiguration? mxAccessConfig = null)
{
_config = config;
_mxAccessClient = mxAccessClient;
@@ -56,8 +57,11 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
_securityConfig = securityConfig ?? new SecurityProfileConfiguration();
_redundancyConfig = redundancyConfig ?? new RedundancyConfiguration();
_alarmObjectFilter = alarmObjectFilter;
_mxAccessConfig = mxAccessConfig ?? new MxAccessConfiguration();
}
private readonly MxAccessConfiguration _mxAccessConfig;
/// <summary>
/// Gets the active node manager that holds the published Galaxy namespace.
/// </summary>
@@ -239,7 +243,9 @@ namespace ZB.MOM.WW.LmxOpcUa.Host.OpcUa
_server = new LmxOpcUaServer(_config.GalaxyName, _mxAccessClient, _metrics, _historianDataSource,
_config.AlarmTrackingEnabled, _authConfig, _authProvider, _redundancyConfig, applicationUri,
_alarmObjectFilter);
_alarmObjectFilter,
_mxAccessConfig.RuntimeStatusProbesEnabled,
_mxAccessConfig.RuntimeStatusUnknownTimeoutSeconds);
await _application.Start(_server);
Log.Information(