Wertigkeiten werden vom Manager während eines Managerzyklus definiert. Zu Beginn des Managerzyklus ruft der Manager die aktuellen Wertigkeiten von der Executor-Funktion ab. Der Manager verwendet diese Werte als die letzte bekannte Wertigkeit, um festzustellen, ob sich der Status eines Servers geändert hat.
Wenn Sie einen Befehl zum Herunterfahren eines Servers absetzen, z. B. dscontrol server down, speichert die Executor-Funktion die aktuelle Wertigkeit des Servers und ordnet dem Server eine neue Wertigkeit von -1 zu. Wenn Sie einen Befehl zum Hochfahren eines Servers absetzen, z. B. dscontrol server up, wird ein Aufruf an die Executor-Funktion abgesetzt, um die Wertigkeit des Servers auf den gespeicherten Wert zurückzusetzen. Das System setzt ein Flag, um anzuzeigen, dass der Server vom Benutzer nicht mehr als inaktiv markiert wird.
Wenn der Befehl zum Hochfahren des Servers direkt nach dem Abruf der Wertigkeiten durch den Manager erfolgt, überschreibt die Executor-Funktion die verwendete Wertigkeit, um festzustellen, ob sich der Serverstatus geändert hat. Dieser Prozess hat keine Nebeneffekte, sofern der Server nicht auch stillgelegt wurde.
Ein stillgelegter Server hat die Wertigkeit 0. Diesen Wert hat auch ein Server, der von der Advisor-Funktion als inaktiv erkannt wird. Wenn Sie den Befehl "server up" für einen stillgelegten Server ausführen, speichert die Executor-Funktion den Wert 0 für die Wertigkeit, die bestimmt, ob sich der Status des Servers geändert hat. Wenn die Stilllegung des Servers aufgehoben wird, kann das Script "serverUp" wegen dieses gespeicherten Werts ausgeführt werden.
Das Risiko, dass dieses Problem auftritt, steigt bei größeren Konfigurationen, weil die Ausführung des Managerzyklus länger dauert. Außerdem besteht eine höhere Wahrscheinlichkeit, dass der Managerzyklus immer noch aktiv ist, wenn der Befehl zum Hochfahren des Servers abgesetzt wird.