Sun Cluster Handbuch Datendienst für Sun Java System Application Server für Solaris OS

Funktionsweise des Fehler-Monitors von Sun Cluster HA for Sun Java System Application Server

In diesem Abschnitt wird der Fehler-Monitor von Sun Cluster HA for Sun Java System Application Server erläutert.

In diesem Abschnitt werden folgende Informationen bereitgestellt.

Erweiterungseigenschaften

Der Fehler-Monitor von Sun Cluster HA for Sun Java System Application Server verwendet folgende Erweiterungseigenschaften. Sie können diese Erweiterungseigenschaften einstellen.

Tabelle 1–3 Erweiterungseigenschaften von Sun Cluster HA for Sun Java System Application Server

Name/Datentyp 

Beschreibung  

Confdir_list(Zeichenketten-Array)

In dieser Erweiterungseigenschaft wird der vollständige Pfad zum Sun Java System Application Server-Konfigurationsverzeichnis eingestellt.  

Standard: None

Einstellbar: Bei Erstellung

Monitor_Uri_List (Zeichenkette)

Ein einzelner URI oder eine Liste mit URIs, die vom Fehler-Monitor zum Testen der Funktionalität von Sun Java System Application Server verwendet werden kann. Der Fehler-Monitor testet den Anwendungsserver anhand von HTTP GET für den URI. Die Erweiterungseigenschaft Monitor_Uri_List kann zum Testen der bereitgestellten Anwendungsfunktionalität verwendet werden. Testen Sie verteilte Anwendungen durch Einstellen einer Eigenschaft auf einen oder mehrere URIs, die von den Anwendungen auf dem Server mit Sun Java System Application Server bereitgestellt werden. Wenn der Rückgabecode des HTTP-Servers 500 (interner Serverfehler) lautet oder wenn die Verbindung nicht hergestellt werden kann, werden im Rahmen des Testsignal-Verfahrens entsprechende Maßnahmen getroffen. Weitere Einzelheiten finden Sie unter "Testsignal-Methode".

Standard: Null

Einstellbar: Jederzeit

Testen des Algorithmus und Funktionalität

Das Testsignal-Verfahren für Sun Cluster HA for Sun Java System Application Server sendet eine Anfrage an den Server, um den Zustand des Sun Java System Application Server-Servers abzufragen. Im Testsignal-Verfahren werden folgende Schritte ausgeführt:

  1. Testet die Sun Java System Application Server-Instanz gemäß des mit der Probe_timeout-Ressourceneigenschaft eingestellten Zeitüberschreitungswertes.

  2. Stellt eine Verbindung mit den Kombinationen aus IP-Adresse und Port her, die von der Netzwerkressourcenkonfiguration und der Einstellung Port_list für die Ressourcengruppe definiert werden. Wenn die Ressource ohne eine leere Port_list konfiguriert wurde, wird dieser Schritt übersprungen. Wird die Verbindung hergestellt, trennt das Testsignal-Verfahren die Verbindung. Kann die Verbindung nicht hergestellt werden, wird der Fehler aufgezeichnet.

    Hoher Netzwerkverkehr, hohe Systemlasten und fehlerhafte Konfigurationen können zum Fehlschlagen der Abfrage führen. Eine fehlerhafte Konfiguration kann dann gegeben sein, wenn Sie den Server mit Sun Java System Application Server nicht zum Überwachen aller Kombinationen aus IP-Adresse und Port konfiguriert haben, die getestet werden. Der Server mit Sun Java System Application Server muss jeden Port für jede IP-Adresse bedienen, die für die Ressource angegeben ist.

  3. Stellt eine Verbindung mit dem Server mit Sun Java System Application Server her und führt eine HTTP 1.1 GET-Prüfung aus, indem an alle URIs in Monitor_Uri_List HTTP-Anfragen gesendet und Antworten empfangen werden.

    Das Ergebnis der HTTP-Anfragen ist entweder ein Fehler oder eine erfolgreiche Ausführung. Wenn alle Anfragen eine Antwort vom Server mit Sun Java System Application Server erfolgreich empfangen, wird das Testsignal-Verfahren mit dem nächsten Zyklus aus Testen und Ruhen fortgesetzt.

    Hoher Netzwerkverkehr, hohe Systemlasten und fehlerhafte Konfigurationen können zum Fehlschlagen des HTTP GET-Tests führen. Eine falsch konfigurierte Eigenschaft Monitor_Uri_List kann einen Fehler verursachen, wenn ein URI in Monitor_Uri_List einen falschen Port oder Hostnamen beinhaltet. Beispiel: Wenn die Anwendungsserverinstanz den logischen Host schost-1 überwacht und der URI als http://schost-2/servlet/monitor angegeben ist, wird im Testsignal-Verfahren versucht, eine Verbindung mit schost-2 herzustellen, um /servlet/monitor anzufordern.

  4. Zeichnet einen Fehler im History-Protokoll auf, wenn die Antwort an das Testsignal-Verfahren nicht innerhalb von Probe_timeout empfangen wird. Das Testsignal-Verfahren betrachtet dieses Szenario als Fehler seitens des Sun Java System Application Server-Datendienstes. Bei einem Testsignal-Fehler von Sun Java System Application Server kann es sich um einen Totalfehlschlag oder einen Teilfehlschlag handeln.

    Empfängt das Testsignal-Verfahren die Antwort innerhalb des Probe_timeout-Grenzwertes, wird der HTTP-Antwortcode geprüft. Lautet der Antwortcode 500 “Interner Serverfehler”, wird der Test als Totalfehlschlag betrachtet. Alle anderen Antwortcodes werden ignoriert.

    Es folgen Testsignal-Totalfehlschläge.

    • Bei einem fehlgeschlagenen Verbindungsversuch mit dem Server wird folgende Fehlermeldung empfangen. %s gibt den Hostnamen und %d die Port-Nummer an.


      Failed to connect to the host <%s> and port <%d>. Receiving a response code of 500 “Internal Server Error” HTTP GET Response Code for probe of %s is 500. Failover will be in progress

    • Die folgende Fehlermeldung wird bei einem Fehler empfangen, um die Testsignal-Zeichenkette erfolgreich an den Server zu senden. Das erste %s gibt den Hostnamen, %d die Port-Nummer und das zweite %s gibt weitere Einzelheiten zum Fehler an.


      Write to server failed: server %s port %d: %s.

  5. Der Monitor sammelt so lange Teilfehlschläge, die innerhalb der Einstellung Retry_interval der Ressourceneigenschaft auftreten, bis sie einem Totalfehlschlag entsprechen.

    Es folgen Testsignal-Teilfehlschläge:

    • Die folgende Fehlermeldung wird empfangen, wenn ein Fehler bei der Verbindungstrennung auftritt, ehe die Probe_timeout-Einstellung abläuft. Das erste %d gibt die Port-Nummer und das %s den Ressourcennamen an.


      Failed to disconnect from port %d of resource %s.

    • Werden nicht alle Testsignal-Schritte innerhalb der in Probe_timeout eingestellten Zeit abgeschlossen, handelt es sich um einen Teilfehlschlag.

    • Folgende Fehlermeldung wird empfangen, wenn die Daten auf dem Server aus anderen Gründen nicht gelesen werden können. Das erste %s gibt den Hostnamen und %d die Port-Nummer an. Das zweite %s gibt weitere Fehlerdetails an.


      Failed to communicate with server %s port %d: %s

  6. Auf Grundlage des Fehlerverlaufs kann ein Fehler entweder einen lokalen Neustart oder ein Failover des Datendienstes verursachen.