This Annex describes behaviour that a diagnostics Client needs to be aware of when looking at a system that is composed of multiple vendor / ConnectionManager implementations. The behaviour of a ConnectionManager is described in 13.
A ConnectionManager could monitor both sides of Connection it has created, it could monitor only one side of a Connection (the side that is in the local AutomationComponent) or it could not monitor Connections at all (see Figure G.1). The ConnectionManager has capabilities (see 6.7.6) indicating the behaviour it supports. A diagnostics Client should be aware of the differences between each of the ConnectionManagers.
Figure G.1 – ConnectionManager Monitor Overview
If collecting diagnostics from a ConnectionManager that monitors both sides of a Connection (CM2 in illustration), the diagnostics Client will only need to subscribe to the AggregatedCurrentState reported by the ConnectionManager. It will not need to connect to each AutomationComponent. If collecting diagnostics from a ConnectionManager that monitors only one side of a Connection ( CM1 in illustration), then the diagnostics Client will need to subscribe to status information from the remote AutomationComponent. If the ConnectionManager does not monitor Connection Status, then the diagnostics Client will have to obtain status from each of the AutomationComponents participating in the Connection (see AutomationComponent_2 internal connection in illustration).
If a ConnectionManager reports an error, then the diagnostics Client would have to read the ConnectionDiagnostics array from each ConnectionConfigurationSet to determine which ConnectionConfigurationSet (and actual Connection) has encountered a problem.
For some error cases, sufficient information is provided in the ConnectionDiagnostics array to diagnose the issue. In other cases, the LogObject associated with the ConnectionManager would have to be used to retrieve the detailed error information.
ConnectionState describes the state of an established Connection. A Connection is considered to be established when all ConnectionEndpoints required by it (see 5.5.1) exist.
Bibliography
OPC 10000-15 – OPC Unified Architecture - Part 15: Safety
https://opcfoundation.org/documents/10000-15/
OPC 10000-82 – OPC Unified Architecture - Part 82: OPC UA FX Networking
https://opcfoundation.org/documents/10000-82/