Repository navigation
feat(data): raise the archive state from the catalogue - #142
Merged
Merged
Conversation
The status bar's archive indicator and its ConnectionLost entry came from the live-edge poll, which a later slice replaces with OPC UA. The poll also turned any failure, a missing trends table included, into ConnectionLost, and the status bar and the read loop each wrote their own entry for one outage. PenCatalogueSync now publishes ArchiveConnectionState through a sink of ArchiveReadLoop; MarkerSync passes none. The loop raises ConnectionLost after three connection-class failures in a row and Connected on the first success and the first success after a fault. Connection class is ArchiveFault.Unreachable, widened to SQLSTATE class 08, 57P01-57P03 and 53300 so a restart's recovery is not ReadFailed. Other kinds keep their own entries; one outage makes one entry from the loops and the bar. The catalogue command gets a 5 s bound instead of the 300 s backstop, and the window reads the catalogue at open, so the first Connected and the failure run start at window open. IDataProvider.ConnectionFaults, its republish in TrendCoordinator and the poll's state machine are deleted; the poll keeps its statements and samples.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The status bar's archive indicator and its
ConnectionLostentry came from the live-edge poll, which alater slice of the OPC UA live edge (#116) replaces. The poll turned any failure, a missing
trendstableincluded, into
ConnectionLost. One outage also made two panel entries: the read loop's third-failurereport and the status bar's fault report. The catalogue read inherited the 300 s connection backstop, so
a stalled server would have taken about 15 minutes to raise a fault through it.
What changed
PenCatalogueSyncpublishesArchiveConnectionStatethrough a sink ofArchiveReadLoop;MarkerSyncpasses none.
ConnectionLostafter three connection-class failures in a row,Connectedon the firstsuccess and on the first success after a fault. One outage makes one entry from the loops and the bar.
ArchiveFault.Unreachable.ArchiveExceptionMapperwidens it to SQLSTATE class08,57P01-57P03and53300;57014staysQueryTimedOut. TheUnreachabletexts in both resxfiles widen to match.
CommandTimeout. The window reads the catalogue at open.IDataProvider.ConnectionFaults,TrendCoordinator.ConnectionFaultsand the poll's state machine aredeleted. The poll keeps its statements, samples, 10 s tick bound and failure warning.
data-integration.md(section renamed to "The connection state the catalogue read reports",residual cases under "No failure stops at the log"),
overview.md,charting.md,trend-interaction.md,testing-strategy.md,AGENTS.md.Known residual until the poll is deleted in a later slice of this roadmap: a non-connection poll failure
reaches the panel only through the minimap's band reads or the next history read. The list is in
data-integration.md#no-failure-stops-at-the-log.How it was verified
dotnet build SemiPlot.slnx: 0 errors.dotnet format SemiPlot.slnx --verify-no-changes: exit 0;dotnet terseover the 40 touched.csfiles:exit 0.
SemiPlot.Tests.Unit: 2297/2297.SemiPlot.Tests.Integration: 196/196.TrendWindowTests.ThreeUnreachableCatalogueReads_TurnTheBarToFault_WithOneConnectionLostEntryandTheWindowReadsTheCatalogueAtOncewere red before the wiring change.automated suites stand in for it in this unattended roadmap run.
PenEditorViewTests.ANameTypedWhileARefreshRuns_ReachesNoFieldAndWritesNothingfailed once and thenpassed 5/5; it is outside this change.
Per-task commits before collapse