In diesem Abschnitt werden die bekannten Probleme mit Message Queue 4.4 aufgeführt. Die folgenden Produktbereiche werden besprochen:
Eine Liste der aktuellen Fehler, deren Status und Umgehungsmöglichkeiten finden Sie als Mitglied der Java Developer Connection™ in der Bug Parade auf der Java Developer Connection-Website. Prüfen Sie die Informationen auf dieser Seite, bevor Sie einen neuen Fehler melden. Auch wenn nicht alle Message Queue-Fehler aufgelistet sind, ist diese Seite ein guter Ausgangspunkt, wenn Sie feststellen möchten, ob ein Problem bekannt gegeben wurde.
http://bugs.sun.com/bugdatabase/index.jsp
Die Mitgliedschaft bei der Java Developer Connection ist kostenlos, es ist jedoch eine Registrierung erforderlich. Auf der Sun Java-Webseite wird beschrieben, wie Sie Mitglied bei der Java Developer Connection werden.
Wenn Sie einen neuen Fehler melden oder eine Funktionsanfrage einreichen möchten, senden Sie eine E-Mail an imq-feedback@sun.com.
In diesem Abschnitt werden die Installationsprobleme zu Message Queue Version 4.4 beschrieben.
Message Queue 4.4 wird wie Message Queue 4.2 und 4.1 von einem relativ neuen Installationsprogramm installiert, das auch zur Installation und Aktualisierung der gemeinsam genutzten Komponenten von Java Enterprise System (Java ES) dient, die von Message Queue benötigt werden, z. B. JDK, NSS, JavaHelp usw.
Das neue Message Queue-Installationsprogramm und das ältere Java ES-Installationsprogramm, das zur Installation früherer Message Queue-Versionen verwendet wurden, verwenden nicht dieselbe Produktregistrierung. Wenn eine Message Queue-Version, die mit dem Java ES-Installationsprogramm installiert wurde, entfernt und dann Message Queue 4.4 mithilfe des Message Queue-Installationsprogramms installiert wird, ist der Status der Java ES-Produktregistrierung möglicherweise inkonsistent. Dies hat zur Folge, dass beim Ausführen des Java ES-Deinstallationsprogramms eventuell Message Queue 4.4 und die benötigten gemeinsamen Komponenten versehentlich entfernt werden, obwohl sie nicht von diesem Programm installiert wurden.
Zur Aktualisierung der Message Queue-Software, die mit dem JES-Installationsprogramm installiert wurde, gehen Sie am besten wie folgt vor.
Entfernen Sie Message Queue sowie die gemeinsam genutzten Komponenten mit dem Java ES-Deinstallationsprogramm.
Installieren Sie Message Queue 4.4 mit dem Message Queue-Installationsprogramm.
Diese Probleme betreffen die Installation auf allen Plattformen.
Im Bildschirm für die Installationsbereitschaft wird der Produktname als "mq" und nicht als Sun Java System Message Queue 4.3 angezeigt. (Fehler 6650841)
Solange das Installationsprogramm die Installation von Message Queue 4.3 ausführt und die Seite mit der Fortschrittsanzeige angezeigt wird, ist die Schaltfläche "Abbrechen" aktiv. Das Klicken auf die Schaltfläche "Abbrechen" führt zu einer unvollständigen oder abgebrochenen Installation. (Fehler 6595578)
Auf der Installationsübersichtsseite werden mehrere Verknüpfungen angezeigt, über die per Mausklick ein Viewer für Protokolle oder Übersichtsseiten angezeigt werden kann. Wenn Sie dieses Viewer-Fenster über die Schaltfläche "X" anstatt über die Schaltfläche "Schließen" schließen, kann dieses Viewer-Fenster nicht erneut geöffnet werden. (Fehler 6587138)
Umgehung: Verwenden Sie die Schaltfläche "Schließen", um das Fenster zu schließen.
Wenn sich auf einem Computersystem ältere Versionen von Message Queue und NSS/NSPR befinden, listet der Upgrade-Bildschirm des Installationsprogramm nur Message Queue als Element auf, für das ein Upgrade erforderlich ist. Es wird nicht darauf hingewiesen, dass auch NSS und NSPR aufgerüstet werden müssen. Es werden dennoch alle relevanten Softwarekomponenten aufgerüstet (wie im Bildschirm ReadyToInstall angegeben, der die richtigen Informationen anzeigt). (Fehler 6580696)
Liste der JDKs im JDK-Auswahlbildschirm ist aktiv, selbst wenn die Option zur Auswahl eines JDK nicht ausgewählt wurde. (Fehler 6650874)
Wenn Sie im Message Queue-Deinstallationsprogramm auf "Abbrechen" statt auf "Entfernen" klicken, werden einige der installierten Dateien trotzdem entfernt und zukünftige Deinstallationen schlagen fehl. (Fehler 6760416)
Wenn Sie das Installationsprogramm nach einer automatischen Installation ohne Registrierung im Modus nur zur Registrierung (installer -r) ausführen, wird eine Fehlermeldung über ein vorzeitiges Dateiende ausgegeben und die Registrierung schlägt fehl. (Fehler 6767988)
Wenn das Installationsprogramm für Message Queue 4.3 auf einem Computer ausgeführt wird, auf dem Message Queue zuvor installiert war, wird möglicherweise die folgende Warnmeldung ausgegeben: "Error reading previous session data from Config-State." (Fehler beim Lesen der Daten der vorherigen Sitzung im Konfigurationsstatus.) (Fehler 6764305)
Umgehung: Diese Meldung ist harmlos und wird nicht wieder angezeigt, nach dem die Installation abgeschlossen wurde. Sie können auch die Datei /var/install/config/mq/InstallDirectory.xcu entfernen, damit die Meldung nicht mehr angezeigt wird.
Wenn Sie das Installationsprogramm für eine zip-basierte Message Queue-Installation auf einem Computer ausführen, auf dem kein JDK installiert ist, wird die folgende Fehlermeldung angezeigt: "Invalid root in registry key 'HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion'." (Ungültiger Stamm in Registrierungsschlüssel "HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion"). (Fehler 6764358)
Umgehung: Installieren Sie das JDK, bevor Sie das Installationsprogramm ausführen.
Das Verzeichnis mqInstallHome wird vom Message Queue-Installationsprogramm installiert, bevor Sie im Bildschirm für die Installationsbereitschaft auf die Schaltfläche zum Installieren klicken. (Fehler 6595590)
Wenn Sie versuchen, Message Queue ohne vorherige Installation im Textmodus zu registrieren (installer -t -r) wird ein NullPtr-Ausnahmefehler ausgegeben. (Fehler 6760991)
Umgehung: Installieren Sie Message Queue, bevor Sie versuchen, das Programm zu registrieren.
Wenn Sie Message Queue unter Windows installieren, sollten Sie die folgenden Einschränkungen beachten.
Die installierte Verzeichnisstruktur von Message Queue 4.3 auf Windows-Plattformen unterscheidet sich von derjenigen vorheriger Versionen. Weitere Informationen finden Sie in Installed Directory Structure in Sun GlassFish Message Queue 4.4 Installation Guide.
Das Installationsprogramm fügt unter Start > Programme keine neuen Einträge für Message Queue hinzu. (Fehler 6567258)
Umgehung: Um die Administrationskonsole zu starten, verwenden Sie die Befehlszeile wie in Starting the Administration Console in Sun GlassFish Message Queue 4.4 Administration Guide beschrieben.
Das Installationsprogramm fügt dem Verzeichnis IMQ_HOME\mq\bin keine PATH-Umgebungsvariable hinzu.(Fehler 6567197)
Umgehung: Benutzer müssen entweder diesen Eintrag zur PATH-Umgebungsvariable hinzufügen oder einen vollständigen Pfadnamen angeben, wenn sie die Message Queue-Dienstprogramme (IMQ_HOME\mq\bin\Befehl) aufgerufen.
Das Installationsprogramm fügt keine Einträge zur Windows-Registrierung hinzu, die darauf hinweisen, dass Message Queue installiert ist. (Fehler 6586389)
Das Installationsprogramm fügt den Message Queue-Broker nicht als Windows-Dienst hinzu.
Umgehung: Fügen Sie den Message Queue-Broker manuell mit dem Befehl imqsvcadm als Windows-Dienst hinzu.
Wenn kein JDK installiert ist, gibt das Installationsprogramm folgenden Fehler aus: "Invalid root in registry key HKLM\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\CurrentVersion" (Ungültiger Stamm in Registrierungsschlüssel HKLM\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\CurrentVersion). (Fehler 6764358)\par
Umgehung: Installieren Sie bei diesem Fehler ein JDK, und fahren Sie fort.
Bei Installation im automatischen Modus mit einer Antwortdatei wird das Installationsprogramm sofort wieder angezeigt. Die Installation wird zwar durchgeführt, jedoch weiß der Benutzer nicht, wann die automatische Installation tatsächlich abgeschlossen ist. (Fehler 6586560)
Beim Versuch, das Installationsprogramm im Textmodus (installer –t ) unter Windows auszuführen, wird eine Fehlermeldung in englischer Sprache ausgegeben, auch wenn das Installationsprogramm in einer anderen Sprache als Englisch ausgeführt wird. Det Textmodus wird unter Windows nicht unterstützt. (Fehler 6594142)
Das Installationsprogramm installiert Message Queue auf C:\, obwohl das Betriebssystem auf einem anderen Laufwerk installiert ist. (Fehler 6673511)
Für die Installation und Deinstallation unter Windows gibt es keine .bat-Dateien, die der Benutzer ausführen kann, und der Benutzer kann auch die Deinstallation nicht über die Option Software in der Windows-Systemsteuerung deinstallieren. (Fehler 6673417)
Unter Windows Vista können Sie Message Queue nur im Verzeichnis C:\Programme installieren, wenn Sie die Installation mit Administratorrechten über die Eingabeaufforderung ausführen. (Fehler 6701661)
Umgehung: So führen Sie die Installation als Administrator über eine Befehlszeile durch:
1. Start->Programme->Zubehör->Eingabeaufforderung.
2. Klicken Sie mit der rechten Maustaste auf Eingabeaufforderung.
3. Wählen Sie Als Administrator ausführen.
4. Wechseln Sie in das Verzeichnis des Message Queue 4.2-Installationsimage.
5. Führen Sie installer.vbs aus.
Wenn sich das Deinstallation im Testlaufmodus (uninstaller -n) befindet, führt es fälschlicherweise eine Deinstallation durch. (Fehler 6719051)
Umgehung: Führen Sie eine automatische Installation mit folgendem Befehl durch:
uninstaller -s
Die Zeichenfolge “Install Home” auf der Startseite des Installationsprogramms ist nicht lokalisiert (Fehler 6592491)
Das Deinstallationsprogramm für eine zip-basierte Message Queue-Installation reagiert unter Windows 2003 nicht. (Fehler 6764370)
Umgehung: Entfernen Sie das Verzeichnis mqInstallHome manuell.
Wenn das Installationsprogramm im Testlaufmodus (installer –n ) ausgeführt wird, werden auf der Zusammenfassungsseite mehrere Fehlermeldungen angezeigt, und der Installationsstatus wird als nicht abgeschlossen angegeben. Dies ist falsch und irreführend. Bei einem Testlauf werden keine Komponenten auf dem System installiert, es wird lediglich die Antwortdatei erstellt, die anschließend für die automatische Installation verwendet werden kann. (Fehler 6594351)
Das Installationsprogramm führt keine Sun Connection-Registrierung durch, wenn die Ausführung im automatischen Modus mit einer Antwortdatei (installer -a filename -s) erfolgt. (Fehler 6710268)
Wenn das Installationsprogramm im Textmodus ausgeführt wird, kann bei der Eingabe von Benutzernamen oder Passwort für die Sun Connect-Registrierung oder zur Erstellung eines Online-Kontos der Benutzername bzw. das Kennwort nicht mit der Rücktaste korrigiert werden. (Fehler 6673460)
Umgehung: Verwenden Sie statt der Rücktaste die Tastenkombination Strg-H oder verwenden Sie einen anderen Terminal-Emulator wie dtterm oder xterm.
Der Upgrade-Bildschirm des Installationsprogramms gibt nicht immer die bestehende installierte Version von Message Queue oder des Installationsmoduls korrekt an). (Fehler 6679765)
Bei Verwendung des Installationsprogramms im Textmodus und dem Versuch, die Sun Connection-Registrierung mit ungültigem Benutzernamen und Passwort durchzuführen, zeigt das Installationsprogramm ein Dialogfeld an, das besagt, dass die Registrierung nicht möglich ist, gibt eine NULL-Zeiger-Ausnahme aus, und wird beendet. (Fehler 6666365)
Die folgenden Probleme betreffen die Installation auf einer Linux-Plattform:
Unter Redhat Linux 5 ist die Bibliothek compat-libstdc++, die zum Ausführen von C-Client-Anwendungen benötigt wird, nicht in der Message Queue-Verteilung enthalten und wird daher nicht vom Message Queue-Installationsprogramm installiert. Wenn Sie C-Clients entwickeln und ausführen, müssen Sie diese Bibliothek manuell installieren.
Den compat-libstdc++-RPM finden Sie normalerweise auf dem Installationsdatenträger der verwendeten Linux-Version. Er kann über folgenden Befehl installiert werden:
rpm -ivh compat-libstdc++-x-x.x.x.x..rpm
Dabei entspricht x der Versionsnummer.
Mit folgendem Befehl überprüfen Sie, ob die Bibliothek erfolgreich installiert wurde:
rpm -qa | grep compat-libstdc++
Auf dem Bildschirm zur JDK-Auswahl wird in der Scroll-Liste nur ein Element angezeigt. Dies macht es schwierig, weitere JDK in der Liste auszuwählen. (Fehler 6584735)
Wenn das JDK aktuell ist, und der Benutzer auf der Seite für die JDK-Auswahl die Option zum Installieren des Standard-JDK wählt, fährt das Installationsprogramm mit den Installationsversuchen fort und gibt anschließend die Meldung aus, dass das Paket nicht installiert werden kann. Die Installation wird trotz dieses Problems erfolgreich abgeschlossen. (Fehler 6581310)
Wenn das aktuell installierte JDK eine spätere Version aufweist als JDK 1.5.0_15 (die normalerweise vom Message Queue-Installationsprogramm installierte Version), kann das Message Queue-Deinstallationsprogramm das standardmäßige IMQ_JAVAHOME-Verzeichnis nicht finden und gibt einen Fehler zurück. (Fehler 6673415)
Umgehung: Installieren Sie JDK 1.5 wie folgt manuell, bevor Sie das Message Queue-Deinstallationsprogramm ausführen.
# cd installImage/Product/UNIX/LINUX/X86/2.4/Packages
# rpm -i --force jdk-1.5.0_15–linux- arch.rpm
Dabei ist arch entweder i586 oder amd64.
Wenn das Installationsprogramm im Testlaufmodus (installer –n ) ausgeführt wird, werden auf der Zusammenfassungsseite mehrere Fehlermeldungen angezeigt, und der Installationsstatus wird als nicht abgeschlossen angegeben. Dies ist falsch und irreführend. Bei einem Testlauf werden keine Komponenten auf dem System installiert, es wird lediglich die Antwortdatei erstellt, die anschließend für die automatische Installation verwendet werden kann. (Fehler 6594351)
Das Message Queue-Installationsprogramm kann unter 64-Bit-Linux nicht im Textmodus ausgeführt werden. (Fehler 6771303)
Umgehung: Wenn Sie versuchen, eine Remote-Installation über ein Terminal-Fenster durchzuführen, müssen Sie eine Fernbedienungssoftware verwenden, um das Installationsprogramm stattdessen im GUI-Modus auszuführen.
Die Anzeige der Message Queue-Versionsinformationen im Installationsprogramm ist nicht transparent. (Fehler 6586507)
Bei der Solaris-Plattform können Sie aus der folgenden Tabelle die vom Installationsprogramm angezeigte Message Queue-Version bestimmen.
Tabelle 1–12 Übersetzung der Versionszeichenfolge
Vom Installation unter Solaris OS angezeigte Version |
Zugehörige Message Queue-Version |
---|---|
4.3.0.0 |
4.3 |
4.2.0.0 |
4.2 |
4.1.0.2 |
4.1 Patch 2 |
4.1.0.1 |
4.1 Patch 1 |
4.1.0.0 |
4.1 |
3.7.2.1 |
3.7 UR2 Patch 1 |
3.7.0.2 |
3.7 UR2 |
3.7.0.1 |
3.7 UR1 |
3.6.0.0 |
3.6 |
3.6.0.4 |
3.6 SP4 |
3.6.0.3 |
3.6 SP3 |
3.6.0.2 |
3.6 SP2 |
3.6.0.1 |
3.6 SP1 |
Für Patch-Versionen für 3.6 SP4 (z. B. 3.6 SP4 Patch 1) werden im Installationsprogramm dieselben Zeichenfolgen für die Versionen angezeigt. Sie müssen den Befehl imqbrokerd -version ausführen, um die genaue Version zu bestimmen.
Unter der Linux-Plattform weist die vom Installationsprogramm angezeigte Versionsnummer folgendes Format auf.
majorReleaseNumber.minorReleaseNumber-someNumber
Zum Beispiel könnte sie 3.7–22 lauten. Dies gibt lediglich an, dass es sich um eine der 3.7-Versionen handelt, jedoch nicht, um welche genau. Zur Ermittlung der installierten Message Queue-Version müssen Sie folgenden Befehl ausführen:
imqbrokerd -version
Die folgenden Probleme beziehen sich auf die Lokalisierung.
Wenn das Installationsprogramm im Textmodus ausgeführt wird (installer –t ), werden bei anderen Gebietsschemata als Englisch Multibyte-Zeichen unleserlich angezeigt. (Fehler 6586923)
Auf der Seite mit dem Installationsfortschritt zeigt der Fortschrittbalken merkwürdige Zeichen an. Die QuickInfo bei anderen Gebietsschemata als Englisch ist hartcodiert. (Fehler 6591632)
Der Textmodus (installer –t) wird unter Windows nicht unterstützt. Beim Ausführen des Installationsprogramms im Textmodus unter Windows wird eine Fehlermeldung angezeigt. Diese Meldung ist nicht lokalisiert, wenn das Installationsprogramm mit einem anderen Gebietsschema als Englisch ausgeführt wird. (Fehler 6594142)
Auf der Lizenzvereinbarungsseite des Installationsprogramms wird die Lizenzvereinbarung auf Englisch angezeigt, unabhängig davon, mit welchem Gebietsschema das Installationsprogramm ausgeführt wird. (Fehler 6592399)
Umgehung: Informationen für den Zugriff auf die lokalisierten Lizenzdateien finden Sie in der Datei LICENSE_MULTILANGUAGE.pdf.
Der Hilfetext zur Verwendung des Installationsprogramms ist nicht lokalisiert. (Fehler 6592493)
Die Zeichenfolge "None" auf der HTML-Zusammenfassungsseite des Installationsprogramms ist in englischer Sprache hartcodiert. (Fehler 6593089)
Wenn das Installationsprogramm mit dem deutschen Gebietsschema ausgeführt wird, wird auf der Begrüßungsseite nicht der vollständige Text wie bei anderen Gebietsschemata angezeigt. (Fehler 6592666)
Die Zeichenfolge "Install Home" ist auf der entsprechenden Seite im Installationsprogramm nicht lokalisiert. Sie wird selbst dann auf Englisch angezeigt, wenn das Installationsprogramm mit einem anderen als dem englischen Gebietsschema ausgeführt wird. (Fehler 6592491)
Wenn das Installationsprogramm im Textmodus ausgeführt wird (installer –t ), lautet die englischen Antwortauswahl "Yes" und "No", unabhängig von dem Gebietsschema, in dem das Installationsprogramm ausgeführt wird. (Fehler 6593230)
Auf der Installationsprogrammseite für die JDK-Auswahl ist die QuickInfo für die Schaltfläche zum Durchsuchen in der englischen Version hartcodiert. (Fehler 6593085)
In Vorgängerversionen von Message Queue konnten Sie die Option —p oder —password verwenden, um ein Passwort für die folgenden Befehle interaktiv anzugeben: imqcmd, imqbrokerd und imdbmgr. Mit Version 4.0 wurden diese Optionen verworfen.
Stattdessen können Sie eine Passwortdatei erstellen, die die relevanten Passwörter angibt, und mit der Befehlsoption -passfile auf die Passwortdatei verweisen oder einfach ein Passwort eingeben, wenn Sie von dem Befehl dazu aufgefordert werden.
Eine Passwortdatei kann mindestens eins der im Folgenden aufgelisteten Passwörter enthalten.
Ein Schlüsselspeicherpasswort zum Öffnen des SSL-Schlüsselspeichers. Legen Sie dieses Passwort über die Eigenschaft imq.keystore.password fest.
Ein LDAP-Repository-Passwort für die sichere Verbindung mit einem LDAP-Verzeichnis, wenn die Verbindung nicht anonym ist. Legen Sie dieses Passwort über die Eigenschaft imq.user_repository.ldap.password fest.
Ein JDBC-Datenbankpasswort für die Verbindung zu einer JDBC-kompatiblen Datenbank. Legen Sie dieses Passwort über die Eigenschaft imq.persist.jdbc.vendorName.password fest. Die vendorName-Komponente des Eigenschaftsnamen ist eine Variable, die den Datenbankanbieter angibt. Zur Auswahl stehen hadb, derby, pointbase, oracle oder mysql.
Ein Passwort für den imqcmd-Befehl (zum Ausführen von Broker-Administrationsaufgaben). Legen Sie dieses Passwort über die Eigenschaft imq.imqcmd.password fest.
Im folgenden Beispiel ist in der Passwortdatei als Passwort für die JDBC-Datenbank abracadabra festgelegt.
imq.persist.jdbc.mysql.password=abracadabra
Passwortdateien können auf folgende Weisen verwendet werden:
Konfigurieren Sie den Broker zur Verwendung der Passwortdatei, indem Sie folgende Eigenschaften in der Datei config.properties des Brokers festlegen.
imq.passfile.enabled=trueimq.passfile.dirpath= passwordFileDirectory imq.passfile.name=passwordFileName
Verwenden Sie die Option -passfile des relevanten Befehls, beispielsweise:
imqbrokerd -passfile Passwortdateiname
Die folgenden Probleme beziehen sich auf die Administration und Konfiguration von Message Queue.
Auf Windows-Plattformen müssen Sie den Message Queue-Broker manuell mit dem Befehl imqsvcadm als Windows-Dienst hinzufügen. Dieser Vorgang wird nicht vom Installationsprogramm ausgeführt.
Bei Windows-Plattformen muss die integrierte Windows-Firewall, die standardmäßig aktiviert ist, mit einer Fierwall-Regel dahingehend manuell konfiguriert werden, dass der Broker eingehende Verbindungen von Clients akzeptiert. (Fehler 6675595)
Doppelklicken Sie in der Systemsteuerung auf die Windows-Firewall
Sie müssen im Dialogfeld für die Benutzerkontensteuerung auf Fortsetzen klicken, um das Einstellungsdialogfeld der Windows-Firewall zu öffnen.
Klicken Sie im Einstellungsdialogfeld der Windows-Firewal auf die Registerkarte Ausnahmen.
Klicken Sie auf Programm hinzufügen.
Wählen Sie im Dialogfeld Programm hinzufügen den Eintrag java.exe aus und klicken Sie auf Durchsuchen.
Windows identifiziert den Broker-Prozess als Java Platform SE-Binärdatei. Suchen Sie daher die Datei java.exe, die vom Broker verwendet wird (normalerweise unter jdk1.5.0_15\jre\bin\java.exe).
Klicken Sie auf Bereich ändern.
Wählen Sie im Dialogfeld Bereich ändern folgende Option aus: "Alle Computer (einschließlich der im Internet)".
Klicken Sie auf OK .
Klicken Sie im Dialogfeld Programm hinzufügen auf OK.
Klicken Sie im Einstellungsdialogfeld der Windows-Firewall auf OK.
Auf Windows-Plattformen lösen die Befehle imqadmin and imqobjmgr einen Fehler aus, wenn der CLASSPATH doppelte Anführungszeichen enthält. (Fehler 5060769)
Umgehung: Öffnen Sie ein Fenster mit einer Eingabeaufforderung und heben Sie die Festlegung von CLASSPATH auf:
set classpath=
Führen Sie anschließend den gewünschten Befehl im selben Eingabeaufforderungsfenster aus, beispielsweise:
mqInstallHome\mq\bin\imqadmin
Die Option -javahome in Solaris- und Windows-Skripts (alle Versionen) funktioniert nicht, wenn der bereitgestellte Wert ein Leerzeichen enthält. ( Fehler 4683029)
Die Option javahome wird von den Message Queue-Befehlen und -Programmen verwendet, um eine alternative Java 2-kompatible Runtime anzugeben. Der Pfadname zur alternativen Java-Runtime darf jedoch keine Leerzeichen enthalten. Nachfolgend werden einige Beispiele für Pfade mit Leerzeichen genannt:
Windows: C:\jdk 1.4
Solaris: /work/java 1.4
Umgehung: Installieren Sie die Java-Runtime an einem Speicherort oder unter einem Pfad, der keine Leerzeichen enthält.
Das Attribut imqQueueBrowserMaxMessagesPerRetrieve legt die maximale Anzahl an Nachrichten fest, die von der Client-Runtime in einem Schritt abgerufen werden können, wenn die Inhalte eines Warteschlangenziels durchsucht werden. Das Attribut beeinflusst, wie die Nachrichten in der Warteschlange gestapelt werden, um an die Client-Laufzeit zugestellt zu werden, es hat jedoch keine Auswirkungen auf die Gesamtzahl der durchsuchten Nachrichten. Das Attribut beeinflusst nur den Durchsuchungsmechanismus, nicht die Nachrichtenzustellung. (Fehler 6387631)
Die nachfolgend beschriebenen Probleme beziehen sich auf den Message Queue-Broker.
Wenn der persistente Datenspeicher zu viele Zielstandorte öffnet, kann auf den Broker nicht mehr zugegriffen werden. (Fehler 4953354)
Umgehung: Diese Bedingung wird vom Broker verursacht, der das Deskriptor-Limit für die offenen Dateien im System erreicht. Unter Solaris und Linux erhöhen Sie das Dateideskriptor-Limit mit dem Befehl ulimit.
Konsumenten verwaisen, wenn ein Zielstandort vernichtet wird. ( Fehler 5060787)
Aktive Konsumenten verwaisen, wenn ein Zielstandort gelöscht wird. Ein verwaister Konsument erhält keine Meldungen mehr (auch dann nicht, wenn der Zielstandort neu erstellt wird).
Wird ein JMS-Client bei Verwendung des HTTP-Verbindungsdiensts plötzlich beendet (z. B. über Strg-C), benötigt der Broker etwa eine Minute, bevor die Clientverbindung und alle damit zusammenhängenden Ressourcen freigegeben werden.
Wird innerhalb dieses Zeitraums eine weitere Instanz des Clients gestartet, die versucht, dieselbe Client-ID, Warteschlange oder dasselbe dauerhafte Abonnement zu verwenden, wird möglicherweise ein Ausnahmefehler "Client-ID wird bereits verwendet" ausgegeben. Dies stellt jedoch kein Problem dar, es handelt sich lediglich um eine Nebenwirkung des vorangehend beschriebenen Beendigungsvorgangs. Wenn der Client nach etwa einer Minute gestartet wird, sollte kein Fehler gemeldet werden.
Bei Verwendung der MySQL-Datenbank für einen Datenspeicher wird bei der Speicherung von Nachrichten mit mehr als 1 MB ein SQL-Ausnahmefehler ausgegeben und gemeldet, dass das Paket für die Abfrage zu groß sei. (Fehler 6682815)
Umgehung: Starten Sie den MySQL-Server, wobei für die Option --max_allowed_packet mehr als dem Standardwert (1 MB) eingestellt sein muss. Verwenden Sie beispielsweise folgenden Wert:
--max_allowed_packet=60M
Bei Verwendung der MySQL-Datenbank für einen hochverfügbaren gemeinsam genutzten Datenspeicher wird ein Mechanismus benötigt, um das MySQL-Speichermodul als NDBCLUSTER zu konfigurieren. (Fehler 6691394)
Umgehung: Fügen Sie den folgenden Eigenschaftswert der Datei config.properties des Brokers hinzu (siehe Enhanced Clusters: JDBC Configuration Properties in Sun GlassFish Message Queue 4.4 Administration Guide)
imq.persist.jdbc.mysql.tableoption=EMGINE=NDBCLUSTER
Bei Verwendung des Oracle-Treibers 9i (JDBC 9.2.0.x) gibt der Broker den Ausnahmefehler "Failed to persist property..." (Keine Persistenz für Eigenschaft möglich) aus. (Fehler 6626825)
Umgehung: Verwenden Sie den Treiber 10g (JDBC 10.2.0.x) von Oracle, für den der Broker optimiert ist.
imq.persist.jdbc.derby.table.MYCONSTATE41.index.IDX2=CREATE INDEX &(index) ON $(name) (MESSAAGE_ID)
Bei Verwendung der Java DB-Datenbank für einen Datenspeicher wird beim Speichern einer Nachricht die Fehlermeldung ausgegeben, dass innerhalb der angeforderten Zeit keine Sperre bezogen werden konnte (SQLException). (Fehler 6691394)
Umgehung: Fügen Sie den folgenden Eigenschaftswert zur config.properties-Datei des Brokers hinzu:
imq.persist.jdbc.derby.table.MYCONSTATE41.index.IDX2=CREATE INDEX &(index) ON $(name) (MESSAAGE_ID)
Folgende Probleme betreffen Broker-Cluster.
In dieser Version werden lediglich vollständig verbundene Broker-Cluster unterstützt. Dies bedeutet, dass jeder Broker in einem Cluster direkt mit allen anderen Brokern im Cluster kommunizieren muss. Wenn Sie Broker mithilfe des Befehlszeilenarguments imqbrokerd -cluster zu einem konventionellen Cluster verbinden, müssen Sie darauf achten, dass alle Broker im Cluster enthalten sind.
Wenn ein Client mit einem Broker in einem erweiterten Broker-Cluster verbunden ist, versucht die Client-Laufzeit, solange eine Verbindung herzustellen, bis sie Erfolg hat (der Wert des Verbindungsfactory-Attributs imqAddressListIterations wird ignoriert).
Ein Client kann nur die Inhalte von Warteschlangen durchsuchen, die sich auf seinem Home-Broker befinden. Der Client kann weiterhin Meldungen an eine beliebige Warteschlangesenden und Meldungen von jeder beliebigen Warteschlange im Cluster konsumieren. Die Einschränkung betrifft nur das Durchsuchen der Warteschlange.
In einem konventionellen Cluster, das Broker der Version 4.3 enthält, müssen alle Broker Version 3.5 oder höher aufweisen.
Message Queue 4.3-, 4.2- und 4.1-Broker können standardmäßig nicht in einem Cluster mit Message Queue 3.7- oder 3.6-Brokern interagieren, da sich der Standardwert von imq.autocreate.queue.maxNumActiveConsumers zwischen diesen Versionen geändert hat. (Fehler 6716400)
Umgehung: Stellen Sie sicher, dass der Wert von imq.autocreate.queue.maxNumActiveConsumers bei allen Brokern gleich ist. Normalerweise erfolgt dies, indem die Konfiguration von Message Queue 4.3, 4.2 und 4.1 an diejenige angepasst wird, die von Brokern der Version 3.7 oder 3.6 verwendet wird (standardmäßig wird der Wert -1 zum Standardwert 1 der vorhergehenden Version geändert).
Um einen Broker für Message Queue 4.3 (oder 4.x) einem Broker-Cluster für Message Queue 3.x hinzuzufügen, muss mindestens ein Masterbroker ausgeführt werden. (Fehler 6763796)
Bei der Konvertierung aus einem konventionellen Cluster in einen erweiterten Cluster können Sie mit dem Datenbank-Manager-Dienstprogramm von Message Queue (imqdbmgr) einen bestehenden eigenständigen JDBC-basierten Datenspeicher in einen gemeinsam genutzten JDBC-Datenspeicher konvertieren, wie in Cluster Conversion: JDBC-Based Data Store in Sun GlassFish Message Queue 4.4 Administration Guide dokumentiert.
Ein Broker kann bei Verwendung von HADB ausschließlich Nachrichten bis zu einer Größe von 10 MB verarbeiten. (Fehler 6531734)
Die Umwandlung in einen HADB-Speicher mit dem Befehl imqdbmgr upgrade hastore kann mit der Fehlermeldung "zu viele Sperren gesetzt" fehlschlagen, wenn der Speicher mehr als 10.000 Nachrichten enthält. (Fehler 6588856)
Umgehung: Verwenden Sie den folgenden Befehl, um die Anzahl an Sperren zu erhöhen.
hadbm set NumberOfLocks=<gewünschte Anzahl>
Weitere Informationen finden Sie unter "HADB Problems" im Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide.
Wenn mehr als 500 Remote-Nachrichten in einer Transaktion übermittelt werden, gibt der Broker möglicherweise den Fehler "HADB-E-12815: Table memory space exhausted" (Kein Tabellenspeicher verfügbar) aus. (Fehler 6550483)
Weitere Informationen finden Sie unter "HADB Problems" im Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide.
In einem Broker-Cluster stellt ein Broker die Nachrichten an eine entfernte Verbindung, die noch nicht geöffnet wurde, in eine Warteschlange. (Fehler 4951010)
Umgehung: Der Konsument erhält die Nachrichten, sobald die Verbindung geöffnet wurde. Die Nachrichten werden an einen anderen Konsumenten gesendet, wenn die Verbindung des Konsumenten geschlossen bleibt.
Wenn ein Konsument mehr als eine Nachricht von einem Remote-Broker in einer Transaktion empfängt, ist es möglich, dass die folgende Fehlermeldung für den Broker protokolliert wird. Diese Fehlermeldung ist nicht kritisch und kann ignoriert werden:
[26/Jul/2007:13:18:27 PDT] WARNING [B2117]: Message acknowledgement failed from mq://129.145.130.95:7677/?instName=a&brokerSessionUID=3209681167602264320: ackStatus = NOT_FOUND(404)\ Reason = Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed. AckType = MSG_CONSUMED MessageBrokerSession = 3209681167602264320 TransactionID = 3534784765719091968 SysMessageID = 8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690 ConsumerUID = 3534784765719133952\par [26/Jul/2007:13:18:27 PDT] WARNING Notify commit transaction [8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690, [consumer:3534784765719133952, type=NONE]] TUID=3534784765719091968 got response: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.r
Diese Meldung wird im Protokoll erfasst, wenn der Nachrichten-Startbroker für spätere Nachrichten in der Transaktion über die Übermittlung benachrichtigt wurde, sobald die imq.txn.reapLimit-Eigenschaft im Vergleich zur Anzahl an Remote-Nachrichten in einer Transaktion gering ist. (Fehler 6585449)
Umgehung: Um diese Meldung zu verhindern, erhöhen Sie den Wert der Eigenschaft imq.txn.reapLimit.
Auf der Windows-Plattform gibt die getTransactionInfo-Methode der Überwachungs-MBean für den Transaktionsmanager Transaktionsinformationen zurück, die eine falsche Transaktionserstellungszeit enthalten. (Fehler 6393359)
Umgehung: Verwenden Sie stattdessen die getTransactionInfoByID-Methode der Überwachungs-MBean für den Transaktionsmanager.
Sie sollten zwei Probleme in Verbindung mit der SOAP-Unterstützung beachten.
Seit der Veröffentlichung von Message Queue Version 4.0 werden SOAP-verwaltete Objekte nicht mehr unterstützt.
SOAP-Entwicklung hängt von mehreren Dateien ab: SUNWjaf, SUNWjmail, SUNWxsrt und SUNWjaxp. In Message Queue Version 4.1 sind diese Dateien nur verfügbar, wenn Sie Message Queue mit JDK Version 1.6.0 oder höher ausführen.
Bisher verwies die SAAJ 1.2-Implementierungs-Datei .jar direkt auf mail.jar. In SAAJ 1.3 wurde dieser Verweis gelöscht, daher muss sich die Datei mail.jar in Message Queue-Clients ausdrücklich in CLASSPATH befinden.