Alive-Mechanismus bei Managerverbindungen
Der Alive-Mechanismus in WinCC OA dient zum Überwachen der Verbindungen zwischen den einzelnen Managern.
Jeder Manager sendet Alive-Telegramme in einstellbaren zeitlichen Abständen. Dieser Mechanismus dient dazu Verbindungsausfälle zwischen einzelnen Managern zu erkennen.
TCP selbst stellt zwar sicher, dass eine unterbrochene Verbindung erkannt wird, allerdings sind die Zeiten, um das zu erkennen sehr hoch. Durch Alive-Telegramme wird garantiert, dass innerhalb der parametrierten Zeit eine unterbrochene Verbindung verlässlich erkannt wird.
Jeder Manager in WinCC OA kann Alive-Telegramme senden und empfangen. Alive-Telegramme werden in einem eigenen Thread gesendet und in einer eigenen TCP-Verbindung gesendet, damit ein blockierender Manager nicht fälschlicherweise als unterbrochene Verbindung angesehen wird. Zusätzlich schickt jeder Manager auch über die normale Managerverbindung Alive-Telegramme, um einen Ausfall dieser Verbindung zu erkennen. Da dieses aber im Hauptthread erfolgt, wird hier nicht das Alive-Timeout geprüft, stattdessen würde der Sender vom Betriebssystem benachrichtigt werden, wenn das Senden fehlgeschlagen ist. Per default schicken alle Manager Alive-Telegramme zu allen verbundenen Managern, die nicht auf dem gleichen Host laufen.
In dieser Konfiguration weiß der Event-Manager, dass er alle 10 Sekunden mindestens 1 Alive-Telegramm vom UI über den UDP-Port bekommen muss. Das UI schickt zusätzlich über die TCP-Verbindung im gleichen Zeitraster ein Alive-Telegramm, um einen eventuellen Ausfall der Verbindung zu erkennen.
Alive-Telegramme werden mit folgendem Eintrag in der Config-Datei parametriert:
aliveTimeout: Dieser Eintrag gibt an, in welchen maximalen Zeitabständen (in Sekunden) dieser Manager Alive-Telegramme sendet. Tatsächlich werden in dieser Zeit ca. 10 Alive-Telegramme verschickt. Beim Verbindungsaufbau wird dieser Wert zum anderen Manager übertragen und dieser startet dann die Überwachung des Alive Timeouts. Negative Werte bedeuten, dass Alive-Telegramme nur über Verbindungen geschickt werden, die zu einem Manager auf einem anderen Rechner führen. Das Alive Timeout ist in dem Fall der absolute Wert. Positive Werte bedeuten, dass Alive-Telegramme über alle Verbindungen geschickt werden, auch dann, wenn diese zu einem Manager auf dem gleichen Rechner (localhost) führen. Es ist möglich, für einen Manager einer Verbindung Alive-Telegramme auszuschalten und für den anderen diese einzuschalten. Der Wert gilt für alle Verbindungen, die dieser Manager hat.
alivePriortiyClass: Dieser Eintrag setzt die Priorität, unter der der Alive Thread läuft:
0 bedeutet normale Priorität,
1 bedeutet hohe Priorität und damit eine bessere Garantie, dass der Alive Thread auch dann regelmäßig ausgeführt wird, wenn der Rechner ausgelastet ist.
Debug-Levels
Der Empfang der Alive-Telegramme kann durch Debug-Ausgaben der jeweiligen Manager im Log Viewer kontrolliert werden.
Debug-Level | Beschreibung |
---|---|
-rcv 1 | Der Empfang der Alive-Telegramme über die TCP-Verbindung kann mit dieser Option ausgegeben werden. Alle paar Sekunden gibt es eine System Message KEEP_ALIVE. |
-dbg alive | Debugausgaben für das Senden und Empfangen von Alive- Telegrammen. |