In diesem Abschnitt werden bekannte Probleme mit der Hochverfügbarkeits-Datenbank (HADB) und zugehörige Lösungen erläutert.
Die Statusprüfung des Lastenausgleich-Plug-Ins erzeugt eine große Anzahl von Verbindung und unterbrochenen Verbindungen im Hintergrund (Last). Für die Statusprüfung führt ein runDaemonMonitor -Thread eine Verbindung bzw. Verbindungstrennung für jeden Anwendungsserver-Listener aus. In der Folge kann es zu einer Verbindungssättigung auf Enterprise Server kommen.
Ein neues Attribut monitor-interval-in-seconds wurde für die Datei loadbalancer.xml entwickelt. Mit diesem Attribut kann eine Pause zwischen Verbindungs-/Verbindungstrennungsereignisse eingefügt werden, wenn Hunderte von Listenern für das Lastenausgleichs-Plug-In konfiguriert sind. Standardpausenwert ist 0.
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 Package successfully registered. hadbm registerpackage test --packagepath=/var/install2 --hosts europa12 hadbm:Error 22171: A software package has already been registered with the package name test. |
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:Error 22020: The management agents could not establish a domain, please check that the hosts can communicate with UDP multicast. |
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. Halten Sie alle Agenten in der Domäne an, und löschen Sie alle Dateien und Verzeichnisse im Repository-Verzeichnis (gekennzeichnet mit repository.dr.path in der Konfigurationsdatei des Management-Agenten). 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:Error 22009: The command issued had no progress in the last 300 seconds. HADB-E-21070: The operation did not complete within the time limit, but has not been cancelled and may complete at a later time. |
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 Child process noman3 733 does not respond. n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Have not heard from it in 104.537454 sec. n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 did not start. |
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 liegt ein Bug vor clu_trans_srv, der dazu führt, dass der Prozess in einem nicht unterbrechbaren Modus endet, wenn eine asynchrone E/A ausgeführt wird. kill -9 funktioniert somit nicht, und das Betriebssystem muss neu gestartet werden.
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 des HADB c-Pakets (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. article 811003 auf den 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.
Der Lastenausgleich benötigt SASL32.DLL und ZLIB.DLL für die Zusammenarbeit mit Windows IIS 6. Diese Dateien sind derzeit nicht unter as-install/lib verfügbar.
Kopieren Sie die beiden DLL-Dateien manuell in as-install/lib. Diese Dateien können unter folgender Adresse heruntergeladen werden:
http://download.java.net/javaee5/external/OS/aslb/jars/ |
Dabei steht OS 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 Enterprise 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 Enterprise 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 Enterprise Server 2.1 unter SPARC Solaris 10 mit HADB wird möglicherweise der folgende Fehler angezeigt, wenn Sie Enterprise Server starten und anschließend versuchen, JES 5 UR 1 mit Registry Server zu installieren:
Dependency Error: Installation can not proceed because the version of HA Session Store 4.4.3 detected on this host is incomplete , and a compatible version is required by Servervice Registry Deployment Support. |
Registry Server kann nicht von JES 1 UR2,1 mit Enterprise Server 2.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:
path/OS/Products/registry-svr/Packages |
(Nur Internet Explorer 6 und 7) Beim Versuch, die Lastenausgleichs-Konfigurationsdatei (loadbalancer.xml) aus Internet Explorer 6 oder 7 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.