In diesem Abschnitt werden bekannte Probleme mit der Hochverfügbarkeits-Datenbank (HADB) und zugehörige Lösungen erläutert.
Unter Solaris SPARC ist eine HADB-Konfiguration für zwei Netzwerke in zwei Teilnetzen problemlos möglich. Auf Solaris x86- und Linux-Plattformen führen jedoch Betriebssystem- bzw. Netzwerktreiberprobleme dazu, dass eine doppelte Netzwerkkonfiguration nicht immer einwandfrei ausgeführt wird. Dadurch entstehen folgende HADB-Probleme:
Unter Linux werden bei der Meldungsübermittlung einige der HADB-Prozesse blockiert. Dadurch werden HADB-Knoten neu gestartet und eine Netzwerkpartitionierung durchgeführt.
Unter Solaris x86 führt ein Netzwerkfehler dazu, dass nicht auf die andere Netzwerkschnittstelle gewechselt werden kann. Da dies nicht andauernd passiert, ist es immer noch besser, anstelle nur eines Netzwerks zwei Netzwerke zu haben. Diese Probleme sind in Solaris 10 teilweise gelöst.
Abschneiden wird nicht unterstützt.
HADB unterstützt keine doppelte Netzwerkkonfiguration unter Windows 2003 (Nr. 5103186).
Die Erstellung einer neuen Datenbank kann fehlschlagen und folgenden Fehler ausgeben, der besagt, dass zu wenig gemeinsame Speichersegmente verfügbar sind:
HADB-E-21054: Systemressource nicht verfügbar: HADB-S-05512: Anhängen des gemeinsamen Speichersegments mit Schlüssel "xxxxx" fehlgeschlagen, OS-Status=24 OS-Fehlermeldung: Zu viele Dateien geöffnet.
Stellen Sie sicher, dass der gemeinsame Speicher konfiguriert wurde und die Konfiguration funktioniert. Prüfen Sie insbesondere unter Solaris 8 die Datei /etc/system und stellen Sie sicher, dass der Wert der Variable shmsys:shminfo_shmseg mindestens die sechsfache Anzahl der Knoten pro Host beträgt.
Das Verwaltungssystem prüft beim Erstellen von Datenbanken und beim Hinzufügen von Knoten die Ressourcenverfügbarkeit. Die Verfügbarkeit der Ressourcen wird jedoch nicht geprüft, wenn mit hadbm set die Puffergröße des Geräts oder des Hauptspeichers geändert wird.
Stellen Sie sicher, dass auf allen Hosts genügend freier Festplatten-/Arbeitsspeicher zur Verfügung steht, bevor Sie die Konfigurationsattribute devicesize bzw. buffersize erhöhen.
Es ist nicht möglich, ein und dasselbe Software-Paket unter demselben Namen in verschiedenen Pfaden auf unterschiedlichen Hosts zu registrieren, zum Beispiel:
hadbm registerpackage test --packagepath=/var/install1 --hosts europa11 Paket erfolgreich registriert. hadbm registerpackage test --packagepath=/var/install2 --hosts europa12 hadbm:Fehler 22171: Ein Software-Paket wurde bereits unter dem Paketnamen test registriert. |
HADB unterstützt keine heterogenen Pfade für Knoten eines Datenbank-Clusters. Stellen Sie sicher, dass das Installationsverzeichnis des HADB-Servers (--packagepath) auf allen teilnehmenden Hosts identisch ist.
Wenn der Management-Agent auf einem Host mit mehreren Netzwerkschnittstellen ausgeführt wird, kann der Befehl createdomain fehlschlagen, wenn sich nicht alle Netzwerkschnittstellen im selben Teilnetz befinden:
hadbm:Fehler 22020: Die Management-Agents konnten keine Domäne herstellen. Prüfen Sie, ob die Hosts mit UDP Multicast kommunizieren können. |
Die Management-Agenten verwenden (falls nicht anders konfiguriert) die "erste" Schnittstelle für UDP-Multicasts (die "erste" gemäß Definition durch das Ergebnis von java.net.NetworkInterface.getNetworkInterfaces() ).
Die beste Lösung besteht darin, dem Management-Agenten vorzuschreiben, welches Teilnetz er verwenden soll (setzen Sie ma.server.mainternal.interfaces in der Konfigurationsdatei, z. B. ma.server.mainternal.interfaces=10.11.100.0). Alternativ kann der Router zwischen den Teilnetzen so konfiguriert werden, dass er Multicast-Pakete weiterleitet (der Management-Agent verwendet die Multicast-Adresse 228.8.8.8).
Bevor Sie einen Versuch mit einer neuen Konfiguration der Management-Agenten unternehmen, müssen Sie eventuell die Management-Agent-Repository bereinigen. Beenden Sie alle Agenten in der Domäne und löschen Sie alle Dateien und Verzeichnisse im Repository-Verzeichnis (wird durch repository.dr.path in der Konfigurationsdatei des Management-Agenten identifiziert). Dies muss auf allen Hosts durchgeführt werden, bevor die Agenten mit einer neuen Konfigurationsdatei erneut gestartet werden.
Unter Solaris 10 Opteron kann das Starten, Stoppen und erneute Konfigurieren der HADB mit dem Befehl hadbm fehlschlagen oder das System nicht mehr reagieren, wobei einer der folgenden Fehler ausgegeben wird:
hadbm:Fehler 22009: Der ausgegebene Befehl erzielte in den letzten 300 Sekunden keinen Fortschritt. HADB-E-21070: Der Vorgang konnte innerhalb des Zeitlimits nicht abgeschlossen werden, wurde jedoch nicht abgebrochen und wird eventuell zu einem späteren Zeitpunkt abgeschlossen. |
Dies tritt u. U. auf, wenn es Unstimmigkeiten hinsichtlich des Lesens/Schreibens in eine Datei (nomandevice) gibt, die vom Prozess clu_noman_srv verwendet wird. Dieses Problem kann erkannt werden, indem in den HADB-Protokolldateien nach den folgenden Meldungen gesucht wird:
n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Untergeordneter Prozess noman3 733 reagiert nicht. n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Keine Reaktion von ihm in 104.537454 Sek. n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Untergeordneter Prozess noman3 733 wurde nicht gestartet. |
Die folgende Problemlösung wurde noch nicht verifiziert, da das Problem noch nicht manuell reproduziert wurde. Jedoch sollte durch Ausführung dieses Befehls für den betroffenen Knoten das Problem gelöst werden.
hadbm restartnode --level=clear nodeno dbname |
Beachten Sie, dass alle Geräte für den Knoten neu initialisiert werden. Eventuell müssen Sie den Knoten stoppen, bevor Sie ihn neu initialisieren.
Beim Start auf einem Host, auf dem Solaris 8 ausgeführt wird und verschiedene NIC-Karten installiert sind, kann es passieren, dass bei Vorhandensein einer Mischung von Karten mit aktiviertem IPv6 und IPv4 der Management-Agent beendet wird und der Ausnahmefehler "IPV6_MULTICAST_IF fehlgeschlagen" auftritt."
Legen Sie die Umgebungsvariable JAVA_OPTIONS auf -Djava.net.preferIPv4Stack=true fest; zum Beispiel:
export JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true" |
Alternativ verwenden Sie Solaris 9 oder höher. Dort tritt dieses Problem nicht auf.
In der 64-Bit-Version von Red Hat Enterprise Linux 3.0 gibt es einen Bug, der dazu führt, dass der Prozess clu_trans_srv in einem Modus endet, der nicht unterbrochen werden kann, wenn asynchrones I/O ausgeführt wird. Das bedeutet, dass der Befehl kill -9 nicht funktioniert und das Betriebssystem neu gebootet werden muss.
Verwenden Sie eine 32-Bit-Version von Red Hat Enterprise Linux 3.0.
Großbuchstaben in Passwörtern werden in Kleinbuchstaben umgewandelt, wenn das Passwort in hadb gespeichert wird.
Verwenden Sie keine Passwörter, die Großbuchstaben enthalten.
Beim Downgrading auf eine vorherige HADB-Version kann der Management-Agent mit verschiedenen Fehlercodes fehlschlagen.
Es ist zwar möglich, einen Downgrade der HADB-Datenbank auszuführen, jedoch kann kein Downgrade für den Management-Agent ausgeführt werden, wenn Änderungen an den Repository-Objekten vorgenommen wurden. Nach einem Downgrade müssen Sie weiter den Management-Agent von der letzten HADB-Version verwenden.
Hinsichtlich der Installation/Deinstallation der HADB c-Paketversion (Solaris: SUNWhadbc, Linux: sun-hadb-c) <m.n.u-p> wird symlink /opt/SUNWhadb/<m> nicht mehr verändert, sobald dieser Symlink vorhanden ist. Daher ist es möglich, dass eine verwaiste symlink vorhanden ist.
Löschen Sie symlink vor der Installation oder nach der Deinstallation; es sei denn, die Datei wird verwendet.
Unter Solaris 10 wird beim Anhalten eines Management-Agents unter Verwendung des Skripts ma-initd in einer globalen Zone auch der Management-Agent in der lokalen Zone angehalten.
Installieren Sie den Management-Agent nicht sowohl in der globalen als auch der lokalen Zone.
Mitunter kann es durch einen Ressourcenkonflikt auf dem Server dazu kommen, dass der Management-Client getrennt wird. Bei der erneuten Verbindungsherstellung wird u. U. eine irreführende Fehlermeldung "hadbm:Fehler 22184: Zum Herstellen der Verbindung mit dem Management-Agenten ist ein Passwort erforderlich" zurückgegeben.
Mitunter kann es durch einen Ressourcenkonflikt auf dem Server dazu kommen, dass der Management-Client getrennt wird. Bei der erneuten Verbindungsherstellung wird u. U. eine irreführende Fehlermeldung "hadbm:Fehler 22184: Zum Herstellen der Verbindung mit dem Management-Agenten ist ein Passwort erforderlich" zurückgegeben.
Prüfen Sie, ob ein Ressourcenproblem auf dem Server vorliegt, ergreifen Sie geeignete Maßnahmen (z. B. fügen Sie weitere Ressourcen hinzu) und führen Sie den Vorgang erneut aus.
Die Installation mit Java Enterprise System (als Root) gibt von Root verschiedenen Benutzern keine Benutzerrechte zum Verwalten von HADB.
Melden Sie sich immer als Root an, um HADB zu verwalten.
Schnittstellen für besondere Zwecke mit IP-Adressen wie 0.0.0.0 sollten nicht als gültige Schnittstellen registriert werden, die für HADB-Knoten im Management-Agenten verwendet werden. Die Registrierung solcher Schnittstellen kann zu Problemen führen, wenn an diesen Schnittstellen HADB-Knoten eingerichtet werden, indem ein Benutzer einen hadbm create-Befehl mithilfe von Hostnamen anstelle von IP-Adressen aufruft. Die Knoten können dann nicht kommunizieren und führen dazu, dass der create-Befehl hängt.
Wenn Sie hadbm create auf Hosts mit mehreren Schnittstellen verwenden, müssen Sie immer die IP-Adressen angeben, die ausdrücklich die DDN-Notation verwenden.
Auf der Windows-Plattform kann es bei bestimmten Konfigurationen zu einer großen Anzahl von Reassemblierungsfehlern im Betriebssystem kommen. Das Problem trat bei Konfigurationen von mehr als zwanzig Knoten auf, als mehrere Tabellenscans (select *) gleichzeitig ausgeführt wurden. Symptome können sein, dass die Transaktionen häufig abbrechen, die Reparatur oder Wiederherstellung lange Zeit in Anspruch nehmen kann und es zu häufigen Zeitüberschreitungen an verschiedenen Stellen im System kommt.
Um das Problem zu beheben, kann die Windows-Registrierungsvariable HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters auf einen Wert festgelegt werden, der höher ist als der Standardwert 100. Es wird empfohlen, diesen Wert auf 0x1000 (4096) zu erhöhen. Weitere Informationen finden Sie unter. Artikel 811003 der Microsoft-Supportseiten.
Cookies mit einem Pfad "/" wirken sich auf die Cookies einer hochverfügbaren Webanwendung aus, die in einem anderen Kontext-Root als "/" bereitgestellt werden, der die In-Memory-Replikation als Persistenztyp verwendet. Dadurch wird es für die hochverfügbare Webanwendung unmöglich, einen HTTP-Sitzungsstatus beizubehalten. Ein häufiges Szenario, in dem dies auftreten kann, ist, wenn derselbe Browser für den Zugriff auf die Admin-GUI (unter "/" bereitgestellt) und die hochverfügbare Webanwendung verwendet wird.
Greifen Sie über einen anderen Browser auf die Webanwendung zu, die unter "/" bereitgestellt wird.
SASL32.DLL und ZLIB.DLL sind erforderliche Dateien, damit der Lastenausgleich mit Windows IIS 6 funktioniert. Diese Dateien sind gegenwärtig unter <Anwendungsserver-Installationsverzeichnis>/lib nicht vorhanden.
Kopieren Sie die beiden DLL-Dateien manuell in das Verzeichnis <Anwendungsserver-Installationsverzeichnis>/lib. Diese Dateien können unter folgender Adresse heruntergeladen werden:
http://download.java.net/javaee5/external/<Betriebssystem>/aslb/jars/aslb-9.1-MS4-b5.jar |
Dabei steht <Betriebssystem> für die gewünschte Plattform. Sie können einen der folgenden Werte wählen:
SunOS
SunOS_X86
Linux
WINNT
Bei der Installation oder Deinstallation von Application Server mit Hochverfügbarkeitspaketen in einer globalen Zone treten zwei Probleme auf:
HA-Pakete werden in sämtlichen Zonen installiert; dies ist möglicherweise nicht gewünscht.
Bei der Deinstallation werden HA-, MQ- und JDK-Pakete aus allen Zonen entfernt; dies ist möglicherweise nicht gewünscht.
Dieses Problem tritt nicht auf, wenn die Installation oder Deinstallation über eine lokale Root-Zone durchgeführt wird.
Führen Sie Installationen und Deinstallationen nicht über eine globale, sondern über eine lokale Zone durch.
Hochverfügbare Webanwendungen, die unter "/" bereitgestellt wurden, können keine HTTP-Sitzungen beibehalten, wenn als Persistenztyp die In-Memory-Replikation verwendet wird.
Stellen Sie hochverfügbare Webanwendungen, welche die In-Memory-Replikation als Persistenztyp verwenden, über einen anderen Kontext-Root als "/" bereit. Wenn Sie eine solche Webanwendung unter "/" bereitstellen möchten, können Sie sie als das Standardwebmodul des virtuellen Servers festlegen, für welchen die Webanwendung bereitgestellt wurde.
Während der Installation der Application Server-Lastenausgleichskomponente für Apache unter Solaris, aktualisiert das Installationsprogramm LD_LIBRARY_PATH im Skript apachectl . Dabei schreibt das Installationsprogramm den Pfad /usr/lib/mps jedoch nicht richtig. Unter Solaris kann die Apache-Sicherheitsinstanz ohne diesen Pfad in LD_LIBRARY_PATH nicht gestartet werden.
Dieses Problem tritt nur auf Solaris-Plattformen auf. Um dieses Problem zu vermeiden, fügen Sie /opt/SUNWappserver/appserver/lib/lbplugin/lib zu LD_LIBRARY_PATH hinzu.
Die Schaltfläche Lastenausgleich aktivieren ist auf der allgemeinen Seite für Cluster/Instanzen immer aktiviert, unabhängig davon, was in domain.xml gespeichert wurde.
Für Cluster-Instanzen wählen Sie die Registerkarte Instanzen, und wählen Sie im Tabellen-Pulldown-Feld die Aktion Stilllegen.
Für eigenständige Instanzen stellen Sie sicher, dass die Instanz ausgeführt wird, und klicken dann im Bildschirm "Allgemein" für die Instanz auf die Schaltfläche Stilllegen.
(Nur Solaris) Nach der Installation von Application Server 9.1 unter SPARC Solaris 10 mit HADB wird möglicherweise der folgende Fehler angezeigt, wenn Sie Application Server starten und anschließend versuchen, JES 5 UR1 mit Registry Server zu installieren:
Abhängigkeitsfehler: Installation kann nicht fortgesetzt werden, da die auf diesem Host ermittelte Version von HA Session Store 4.4.3 unvollständig ist und eine kompatible Version für den Service Registry-Bereitstellungs-Support erforderlich ist. |
Registry Server kann nicht von JES 5 UR1 mit Application Server 9.1 IFR auf Solaris-Computern installiert werden. Die Registry Server-Pakete müssen manuell über den Befehl pkgadd aus dem folgenden JES5 UR1-Distributionsverzeichnis installiert werden:
<Pfad>/<Betriebssystem>/Products/registry-svr/Packages |
(Nur Internet Explorer 6) Beim Versuch, die Lastenausgleichs-Konfigurationsdatei (loadbalancer.xml) aus Internet Explorer 6 zu exportieren, zeigt der Browser in einer Fehlermeldung an, dass die DTD-Datei sun-loadbalancer_1_2.dtd nicht ermittelt werden kann.
Verwenden Sie zum Speichern der Datei die folgende Umgehung:
Klicken Sie im Internet Explorer auf der Seite für den Lastenausgleich auf Export.
Die Meldung "XML-Seite kann nicht angezeigt werden" wird angezeigt.
Klicken Sie auf den Fehlerrahmen, und wählen Sie in Internet Explorer Datei->Speichern unter.
Speichern Sie die Datei loadbalancer.xml in einem Verzeichnis Ihrer Wahl.