Da die xfnts_start-Methode scds_pmf_start() zum Starten des Dienstes unter PMF verwendet, verwendet xfnts_stop zum Stoppen des Dienstes scds_pmf_stop().
Der erste Aufruf in xfnts_stop findet an scds_initialize () statt, das einige erforderliche housekeeping-Funktionen ausführt. Der Abschnitt scds_initialize()-Funktion und die Online-Dokumentation zu scds_initialize(3HA) enthalten weitere Informationen.
Die xfnts_stop-Methode ruft die svc_stop()-Methode, die in der Datei xfnts.c definiert ist, wie folgt auf:
scds_syslog(LOG_ERR, "Issuing a stop request."); err = scds_pmf_stop(scds_handle, SCDS_PMF_TYPE_SVC, SCDS_PMF_SINGLE_INSTANCE, SIGTERM, scds_get_rs_stop_timeout(scds_handle)); if (err != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, "Failed to stop HA-XFS."); return (1); } scds_syslog(LOG_INFO, "Successfully stopped HA-XFS."); return (SCHA_ERR_NOERR); /* Successfully stopped */
Beachten Sie folgende Punkte beim Aufruf in svc_stop() an die scds_pmf_stop()-Funktion:
Das SCDS_PMF_TYPE_SVC-Argument identifiziert das Programm so, dass es als Datendienstanwendung gestoppt wird. Diese Methode kann auch einen Fehler-Monitor oder eine andere Anwendung stoppen.
Das SCDS_PMF_SINGLE_INSTANCE-Argument identifiziert das Signal.
Das SIGTERM-Argument identifiziert das zum Stoppen der Ressourceninstanz zu verwendende Signal. Wenn dieses Signal die Instanz nicht stoppen kann, sendet scds_pmf_stop() das SIGKILL-Signal, um die Instanz zu stoppen. Wenn dieses Signal ebenfalls fehlschlägt, wird ein Zeitüberschreitungsfehler zurückgegeben. Weitere Informationen finden Sie in der Online-Dokumentation zu scds_pmf_stop(3HA).
Der Zeitüberschreitungswert ist der Wert der Stop_timeout-Eigenschaft der Ressource.
Vor der Beendigung ruft die xfnts_stop-Methode scds_close() auf, um Ressourcen wiederzuverwenden, die von scds_initialize () zugewiesen wurden. Weitere Informationen finden Sie im Abschnitt scds_initialize()-Funktion sowie in der Online-Dokumentation zu scds_close(3HA).