Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

xfonts_probe-Hauptschleife

Die xfonts_probe-Methode implementiert eine Schleife. Vor dem Implementieren der Schleife führt xfonts_probe folgende Aktionen aus:

Die xfnts_probe-Methode implementiert die Schleife folgendermaßen:


for (ip = 0; ip < netaddr->num_netaddrs; ip++) {
         /*
          * Hostname und Port für Überwachung der
          * Fehlerfreiheit erfassen.
          */
         hostname = netaddr->netaddrs[ip].hostname;
         port = netaddr->netaddrs[ip].port_proto.port;
         /*
          * HA-XFS unterstützt nur einen Port. Daher den Port-Wert
          * aus dem ersten Eintrag im Port-Array abrufen.
          */
         ht1 = gethrtime(); /* Testsignal-Startzeit festhalten */
         scds_syslog(LOG_INFO, "Dienst auf Port: %d. testen", port);

         probe_result =
         svc_probe(scds_handle, hostname, port, timeout);

         /*
          * Testsignalhistorie des Dienstes aktualisieren,
          * bei Bedarf Aktionen ausführen.
          * Testsignal-Endzeit festhalten.
          */
         ht2 = gethrtime();

         /* In Millisekunden konvertieren */
         dt = (ulong_t)((ht2 - ht1) / 1e6);

         /*
          * Fehlschlaghistorie berechnen und
          * bei Bedarf Aktionen ausführen
          */
         (void) scds_fm_action(scds_handle,
             probe_result, (long)dt);
      }   /* Jede Netzressource */
   }    /* Endlos weitertesten */

Die svc_probe()-Funktion implementiert die Testsignallogik. Der Rückgabewert von svc_probe() wird an scds_fm_action() übergeben. Diese Funktion entscheidet, ob die Anwendung neu gestartet, ein Failover der Ressourcengruppe ausgeführt werden oder nichts geschehen soll.