![]() | |
Sun Java System Application Server Enterprise Edition 8.1 2005Q1 |
Einrichten des High Availability Failover
Bei Verwendung der im vorherigen Kapitel beschriebenen Konfiguration verlieren die Benutzer beim Abstürzen einer Server-Instanz den Sitzungsstatus. In diesem Abschnitt (dem zweiten von zwei weiterführenden Themen) wird der Installationsvorgang für die High Availability-Datenbank (HADB) erläutert. Es wird ein High Availability Cluster erstellt und die HTTP Session Persistence (Zuverlässigkeit der Sitzung) getestet.
Application Server unterstützt sowohl HTTP Session Persistence als auch Persistence für Stateful Session Beans. In diesem Kapitel werden die Vorgehensweisen für HTTP Session Persistence beschrieben.
Es wird vorausgesetzt, dass Sie die vorherigen Kapitel dieser Kurzreferenz bereits durchgearbeitet haben. Die Schritte sind in der Reihenfolge aufgeführt, in der sie auch durchgeführt werden sollten.
Hinweis
Zum Ausführen der hier aufgelisteten Schritte benötigen Sie ggf. zusätzliche Hardware-Ressourcen.
Info über High Availability Cluster und HADBEin Highly Availability Cluster in Sun Java System Application Server Enterprise Edition integriert einen Statusreplikationsdienst mit den zuvor erstellten Clustern und dem Lastungsausgleichssystem. Dabei wird das Failover von HTTP-Sitzungen aktiviert.
HttpSession-Objekte und Stateful Session Bean-Status sind in der HADB, einer High Availability-Datenbank (Hochverfügbarkeitsdatenbank) zum Speichern des Sitzungsstatus, gespeichert. Dieser horizontal skalierbare Statusverwaltungsdienst kann unabhängig von der Application Server-Ebene verwaltet werden. Der Dienst unterstützt bis zu 99,999% Dienst- und Datenverfügbarkeit inklusive Lastenausgleichs-, Failover- und Statuswiederherstellungsfunktionen.
Es wird empfohlen, die Statusverwaltung getrennt von Application Server auszuführen. Die Zyklen von Application Server-Instanzen werden als skalierbare Hochleistungs- Java 2 Platform Enterprise Edition (J2EE-Plattform)-Container ausgeführt, die Statusreplikationen an einen externen High Availability-Statusdienst delegieren.. Aufgrund dieser locker verknüpften Architektur können Sie Application Server-Instanzen schnell und einfach einem Cluster hinzufügen oder daraus löschen. Der HADB-Statusreplikationsdienst kann separat auf optimale Verfügbarkeit und Performance skaliert werden. Wenn eine Application Server-Instanz auch Replikationen durchführt, verschlechtert sich die Performance von J2EE-Anwendungen ggf. aufgrund von langen „Datensammelpausen“.
Da jeder HADB-Knoten 512 MB Speicherplatz erfordert, benötigen Sie zum Ausführen von zwei HADB-Knoten auf demselben Rechner 1 GB Speicherplatz. Wenn nicht so viel Speicherkapazität vorhanden ist, richten Sie die beiden Knoten auf verschiedenen Rechnern ein. Das Ausführen einer Datenbank mit zwei Knoten auf einem Host zur Bereitstellung wird aufgrund von Fehlerintoleranz nicht empfohlen.
Vorbereiten der HADB-InstallationIm Folgenden werden die gängigsten Vorbereitungsaufgaben zur Installation beschrieben. Informationen über weitere Themen zur Vorbereitung der Installation, darunter die Voraussetzungen für die HADB-Installation, Konfigurieren der Netzwerkredundanz und Unterstützung des Dateisystems finden Sie im High Availability Administration Guide.
- Richten Sie den Root-Zugriff ein.
- Definieren Sie Variable für den gemeinsamen Speicher.
Unter Solaris:
- Fügen Sie die folgenden Zeilen der Datei /etc/system hinzu (wenn diese Zeilen in der Datei als Kommentare gekennzeichnet sind, heben Sie diese Kennzeichnung auf und prüfen Sie, dass die Werte mit den unten stehenden Werten übereinstimmen):
set shmsys:shminfo_shmmax=0x80000000
set shmsys:shminfo_shmseg=20
set semsys:seminfo_semmni=16
set semsys:seminfo_semmns=128
set semsys:seminfo_semmnu=1000
Setzen Sie den Wert shminfo_shmmax auf die gesamte Speicherkapazität in Ihrem System (in hexadezimaler Notierung wird für 2 GB Speicher der Wert 0x80000000 angezeigt).
Wenn die Variablen seminfo_* bereits definiert sind, erhöhen Sie sie um die angezeigten Werte.
- Starten Sie den Computer über den folgenden Befehl neu:
sync; sync; reboot
Unter Linux:
- Fügen Sie die folgenden Zeilen der Datei /etc/sysctl.conf hinzu (wenn diese Zeilen in der Datei als Kommentare gekennzeichnet sind, heben Sie diese Kennzeichnung auf). Setzen Sie den Wert auf den Wert des physischen Speichers des Computers. Geben Sie den Wert in Byte als Dezimalzahl an. Geben Sie für einen Computer mit 512 MB physischen Speicher folgenden Wert an:
kernel.shmmax=536870912
kernel.shmall=536870912
- Starten Sie den Computer über den folgenden Befehl neu:
sync; sync; reboot
- Wenn Sie bei der Standalone-Installation von Application Server eine vorhandene JDK-Software verwendet haben, ist für die HADB Version Sun JDK 1.4.1_03 oder höher erforderlich (die neuesten Informationen über JDK-Versionen finden Sie in den Anmerkungen zur Version). Prüfen Sie die installierte Version und setzen Sie die Umgebungsvariable JAVA_HOME ggf. auf das Installationsverzeichnis von JDK.
- Starten Sie nach dem Neustart ggf. die Domäne, den Web Server und den Knotenagenten neu.
Starten Sie die Domäne mit dem Befehl asadmin start-domain domain1 neu.
Starten Sie den Web Server mit dem Befehl web_server_install_dir/https-Hostname/start neu.
Starten Sie den Knotenagenten mit dem Befehl asadmin start-node-agent Hostname neu. Setzen Sie anstelle der Variablen Hostname den Namen des Hosts, auf dem Application Server ausgeführt wird.
Installieren von HADBIn diesem Abschnitt wird die Installation der High Availability-Datenbank (HADB) beschrieben.
Hinweis
Wenn Sie HADB auf dem Application Server-Comuter ausführen möchten und wenn Sie HADB zusammen mit Application Server installiert haben, wechseln Sie zum Abschnitt Starten von HADB.
Sie können die HADB-Komponente auf dem gleichen Rechner installieren, auf dem auch das Application Server-System läuft. Sie benötigen dazu 2 GB Speicher und 1 bis 2 CPUs. Verwenden Sie anderenfalls zusätzliche Hardware. Beispielsweise:
So installieren Sie HADB:
Starten von HADBIn diesem Abschnitt wird der Startvorgang des HADB-Verwaltungsagenten über das Ausführen des Skripts ma-initd beschrieben. Starten Sie den Verwaltungsagenten in einer Produktionsumgebung als einen Dienst, damit er immer verfügbar ist. Weitere Informationen finden Sie im High Availability Administration Guide.
Wenn Sie eine Datenbank mit HADB-Knoten auf mehreren Hosts starten, müssen Sie den Verwaltungsagenten auf jedem Host starten.
Java Enterprise System-Installation:
Standalone-Installation von Application Server:
Konfigurieren eines Clusters und einer Anwendung für High Availability
- Konfigurieren Sie den FirstCluster für die HADB auf dem Rechner mit dem Domain Administration Server mit dem folgenden Befehl:
asadmin configure-ha-cluster --hosts hadb_hostname,hadb_hostname --devicesize 256 FirstCluster
wobei hadb-Hostname der Hostname des Rechners ist, auf dem die HADB ausgeführt werden soll. Bei Verwendung eines einzelnen Computers müssen Sie den Namen zweimal eingeben.
Bei diesem vereinfachten Beispiel werden zwei Knoten der HADB auf dem gleichen Rechner ausgeführt. Für Produktionseinstellungen wird die Verwendung von mehreren Rechnern empfohlen.
Hinweis
Führen Sie zum Reduzieren des Speicherabdrucks der HADB (zu Demonstrationszwecken) den folgenden Befehl aus: hadbm. Sie werden zur Eingabe des Adminstrations-Passworts aufgefordert.
- Konfigurieren Sie die clusterjsp-Anwendung für HTTP Session Persistence durch Aktivieren von High Availability:
- Erweitern Sie in der Admin-Konsole den Knoten Anwendungen.
- Erweitern Sie Enterprise Applications.
- Klicken Sie auf clusterjsp.
- Aktivieren Sie im rechten Fensterbereich auf der Registerkarte Allgemein das Kontrollkästchen Verfügbarkeit aktiviert.
- Klicken Sie auf Speichern.
Die Verfügbarkeit wird standardmäßig auf der Server-Instanz und auf Container-Ebene aktiviert.
Neu starten des ClustersSo starten Sie den Cluster neu:
Prüfen eines HTTP-Sitzungs-FailoverDer Vorgang zum Testen eines Sitzungsdaten-Failovers ähnelt der Vorgehensweise zum Testen des Lastungsausgleichs (siehe Überprüfen des Lastenausgleichs). In diesem Fall werden die Sitzungsdaten nach dem Failure beibehalten. Failover ist benutzertransparent, da die Konfiguration der Beispielanwendung automatisch einen neuen Versuch nach dem Auftreten des Failures auslöst.
- Geben Sie folgenden URL in Ihren Browser ein, um die erste Seite der Anwendung clusterjsp anzuzeigen:
http://Lokaler_Host:Web_server-Anschluss/clusterjsp
Setzen Sie anstelle der Variablen Lokaler_Host den Namen des Systems, auf dem der Web Server ausgeführt wird.
Ersetzen Sie die Variable Web_Server-Anschluss durch den Wert des Anschlussattributs des LS-Elements im Web_Server-Installationsverzeichnis/https-Hostname/config/server.xml. Für dieses Beispiel wird Anschluss 38000 verwendet.
Es wird eine Seite angezeigt, die der im Abschnitt Überprüfen der Cluster-Anwendung abgebildeten Seite ähnelt.
- Prüfen Sie die angezeigten Sitzungs- und Hostinformationen. Beispielsweise:
- Vom Server ausgeführt: Lokaler_Host
- Serveranschlussnummer: 38000
- Ausgeführte Server-IP-Adresse: 192.18.145.133
- Sitzungs-ID: 41880f618e4593e14fb5d0ac434b1
- Sitzung erstellt: Wed Feb 23 15:23:18 PST 2005
In den Protokolldateien zum Serverzugriff finden Sie Informationen, welche Application Server-Instanz die Anwendung bedient. Sie finden die Protokolldateien unter den folgenden Pfaden:
- Solaris Java Enterprise System-Installation:
/var/opt/SUNWappserver/nodeagents/Name_des_Knotenagenten/i1/logs/access/server_access_log
/var/opt/SUNWappserver/nodeagents/Name_des_Knotenagenten/i2/logs/access/server_access_log- Linux Java Enterprise System-Installation:
/var/opt/sun/appserver/nodeagents/Name_des_Knotenagenten/i1/logs/access/server_access_log
/var/opt/sun/appserver/nodeagents/Name_des_Knotenagenten/i2/logs/access/server_access_log- Standalone-Installationen von Application Server:
Installationsverzeichnis/nodeagents/Name_des_Knotenagenten/i1/logs/access/server_access_log
install_dir/nodeagents/Name_des_Knotenagenten/i2/logs/access/server_access_log- Halten Sie die Application Server-Instanz für diese Seite an.
- Erweitern Sie im linken Fensterbereich der Admin-Konsole den Knoten Clusters.
- Klicken Sie auf FirstCluster.
- Klicken Sie im rechten Fensterbereich auf die Registerkarte Instanzen.
- Aktivieren Sie das Kontrollkästchen neben der Server-Instanz für diese Anforderung und klicken Sie auf die Schaltfläche Stopp.
- Laden Sie die clusterjsp-Beispielanwendungsseite erneut.
Die Sitzungs-ID und die Daten der Sitzungsattribute sind noch vorhanden.
- Prüfen Sie das Zugriffsprotokoll der anderen Application Server-Instanz. Diese Instanz ist jetzt für die Anforderung zuständig.
Die Statusfailover-Funktionen funktionieren, da die HTTP-Sitzung dauerhaft in der HADB gespeichert ist. Zusätzlich zum HTTP-Sitzungsstatus kann Application Server auch den Status von EJB Enterprise Beans in der HADB speichern.
BereinigenFür den Bereinigungsvorgang können Sie die Application Server-Installation deinstallieren, indem Sie die Schritte unter Option 1: Deinstallieren der Installation durchführen. Sie können den Beispielcluster, den Sie soeben erstellt haben, aber auch einfach mithilfe der Schritte unter Option 2: Entfernen des Beispielclusters löschen.
Option 1: Deinstallieren der Installation
Vollständige Deinstallation:
- Halten Sie den Application Server-Prozess mithilfe der folgenden Befehle an:
asadmin stop-cluster FirstCluster
asadmin remove-ha-cluster --hosts hadb-Hostname,hadb-Hostname FirstCluster
wobei hadb-Hostname der Hostname des Rechners ist, auf dem die HADB ausgeführt werden soll. Bei Verwendung eines einzelnen Computers müssen Sie den Namen zweimal eingeben.
asadmin stop-node-agent hostname
asadmin stop-domain domain1
- Halten Sie den HADB-Verwaltungsagenten wie folgt an:
Java Enterprise System-Installation:
- Wechseln Sie in das Verzeichnis etc/init.d:
cd /etc/init.d
- Geben Sie den Befehl zum Anhalten des Agenten ein.
./ma-initd stop
Standalone-Installation von Application Server:
- Wechseln Sie in der Application Server-Installation in das HADB-Verzeichnis bin:
cd Installationsverzeichnis/hadb/4/bin
- Geben Sie den Befehl zum Anhalten des Agenten ein.
./ma-initd stop
An dieser Stelle werden alle mit Sun Java System Application Server verbundenen Prozesse angehalten.
- Deinstallieren Sie Application Server.
Führen Sie in einer Java Enterprise System-Installation den Befehl var/sadm/prod/entsys/uninstall aus und befolgen Sie die Anweisungen im Deinstallationsassistenten.
Führen Sie in einer Standalone-Installation von Application Server den Befehl install_dir/uninstall aus und befolgen Sie die Anweisungen im Deinstallationsassistenten.
- Wenn Sie für diese Übung eine neue Web Server-Instanz erstellt hatten, löschen Sie sie wie folgt:
- Führen Sie zur Deinstallation des Web Server-Produkts das Deinstallationsprogramm im Web_Server-Installationsverzeichnis aus.
Option 2: Entfernen des Beispielclusters
So entfernen Sie nur FirstCluster (den High Availablility-Beispielcluster) und die während dieser Übung verwendete Beispielanwendung:
- Halten Sie die Application Server-Prozesse an und bereinigen Sie die Konfiguration:
asadmin stop-cluster FirstCluster
asadmin remove-ha-cluster --hosts hadb-Hostname,hadb-Hostname FirstCluster
wobei hadb-Hostname der Hostname des Rechners ist, auf dem die HADB ausgeführt werden soll. Bei Verwendung eines einzelnen Computers müssen Sie den Namen zweimal eingeben.
asadmin disable-http-lb-server FirstCluster
asadmin delete-http-lb-ref --config MyLbConfig FirstCluster
asadmin delete-http-lb-config MyLbConfig
asadmin delete-instance i1
asadmin delete-instance i2
asadmin delete-cluster FirstCluster
asadmin undeploy clusterjsp
- Halten Sie die Web Server-Instanz an, die als Lastenausgleichssystem fungiert:
Web_server-Installationsverzeichnis/https-Hostname/stop
- Benennen Sie die Datei loadbalancer.xml unter Web_server-Installationsverzeichnis/https-Hostname/config in loadbalancer.xml.sav um.
- Halten Sie den HADB-Verwaltungsagenten wie folgt an:
Java Enterprise System-Installation:
- Wechseln Sie in das Verzeichnis etc/init.d:
cd /etc/init.d
- Geben Sie den Befehl zum Anhalten des Agenten ein.
./ma-initd stop
Standalone-Installation von Application Server:
- Wechseln Sie in der Application Server-Installation in das HADB-Verzeichnis bin:
cd Installationsverzeichnis/hadb/4/bin
- Geben Sie den Befehl zum Anhalten des Agenten ein.
./ma-initd stop
In diesem Abschnitt haben Sie HADB installiert, konfiguriert und gestartet. Sie haben einen Cluster und eine Anwendung für High Availability konfiguriert. Außerdem haben Sie das System für die weitere Verwendung bereinigt.
Herzlichen Glückwunsch! Sie haben die Schritte der Kurzreferenz für Application Server abgeschlossen.
Weitere LektüreEs stehen noch weitere Dokumentationen zur Verfügung, wenn Sie noch mehr über die Application Server-Software und ihre Verwendung erfahren möchten. Dies sind: