Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Start-Methode

Die Start-Rückmeldemethode einer Ressourcentypimplementierung wird von RGM auf einem bestimmten Cluster-Knoten aufgerufen, um die Ressource zu starten. Der Ressourcengruppenname, der Ressourcenname und der Ressourcentypname werden an die Befehlszeile übergeben. Die Start-Methode führt die Aktionen aus, die zum Starten einer Datendienstressource im Cluster-Knoten benötigt werden. In der Regel beinhaltet dies das Abrufen der Ressourceneigenschaften, das Auffinden einer bestimmten ausführbaren Datei, Konfigurationsdateien oder beides sowie das Starten der Anwendung mit den richtigen Befehlszeilenargumenten.

Bei Einsatz der DSDL wird die Ressourcenkonfiguration bereits von dem scds_initialize()-Dienstprogramm abgerufen. Die Startaktion für die Anwendung kann in einer svc_start()-Funktion enthalten sein. Eine weitere Funktion, svc_wait(), kann aufgerufen werden, um zu überprüfen, dass die Anwendung tatsächlich startet. Der vereinfachte Code für die Start-Methode lautet wie folgt:

int
main(int argc, char *argv[])
{
   scds_handle_t handle;

   if (scds_initialize(&handle, argc, argv)!= SCHA_ERR_NOERR) {
   return (1);   /* Initialization Error */
   }
   if (svc_validate(handle) != 0) {
   return (1);   /* Invalid settings */
   }
   if (svc_start(handle) != 0) {
   return (1);   /* Start failed */
   }
   return (svc_wait(handle));
}

Diese Start-Methodenimplementierung ruft svc_validate()auf, um die Ressourcenkonfiguration zu validieren. Schlägt sie fehl, passen entweder die Ressourcen- und Anwendungskonfiguration nicht oder es besteht derzeit in Bezug auf das System ein Problem an diesem Cluster-Knoten. Ein Cluster-Dateisystem, das z.B. von der Ressource benötigt wird, steht eventuell derzeit nicht an diesem Cluster-Knoten zur Verfügung. In diesem Fall ist es müßig, die Ressource an diesem Cluster-Knoten zu starten. Stattdessen sollte RGM versuchen, die Ressource auf einem anderen Knoten zu starten.

Beachten Sie jedoch, dass in der oben dargestellten Anweisung davon ausgegangen wird, dass svc_validate () sparsam vorgeht und nur die Ressourcen am Cluster-Knoten prüft, die von der Anwendung absolut benötigt werden. Andernfalls kann die Ressource eventuell nicht an allen Cluster-Knoten gestartet werden und in einen START_FAILED-Zustand gelangen. Eine Erläuterung dieses Zustands finden Sie in der Online-Dokumentation zu scswitch(1M) sowie im Sun Cluster Data Services Planning and Administration Guide for Solaris OS.

Die svc_start()-Funktion muss 0 für ein erfolgreiches Starten der Ressource auf dem Knoten zurückgeben. Wenn die Startfunktion auf ein Problem trifft, muss ein Wert ungleich Null ausgegeben werden. Bei Fehlschlagen dieser Funktion versucht RGM, die Ressource auf einem anderen Cluster-Knoten zu starten.

Um die Vorteile von DSDL so viel wie möglich zu nutzen, kann die svc_start()-Funktion das scds_pmf_start()-Dienstprogramm zum Starten der Anwendung unter der PMF (Process Monitor Facility) aufrufen. Dieses Dienstprogramm verwendet auch die Fehler-Rückrufaktion von PMF zur Ermittlung von Prozessfehlern. Eine Beschreibung des Aktionsarguments - a finden Sie in der Online-Dokumentation unter pmfadm(1M).