In diesem Abschnitt werden die bekannten Probleme mit Message Queue 4.1 aufgeführt. Dies betrifft die folgenden Produktbereiche:
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.1 beschrieben.
Version 4.1 von Message Queue wird von einen neuen Installationsprogramm installiert, das zudem die gemeinsam genutzten Komponenten, die für Message Queue erforderlich sind, installiert und aktualisiert, z. B. JDK, NSS-Bibliotheken, JavaHelp usw. Diese Installationsprogramm und das JES-Installationsprogramm (Java Enterprise System) verwenden nicht dieselbe Produktregistrierung. Wenn eine Message Queue-Version, die zusammen mit JES installiert wurde, entfernt und durch Message Queue 4.1 mithilfe des Message Queue-Installationsprogramms ersetzt wird, ist der Status der JES-Produktregistrierung möglicherweise inkonsistent. Dies hat zur Folge, dass beim Ausführen des JES-Deinstallationsprogramms Message Queue 4.1 und die zugrunde liegenden gemeinsamen Komponenten, die es nicht installiert hat, eventuell versehentlich entfernt werden.
Zur Aktualisierung der Software, die nicht mit dem JES-Installationsprogramm installiert wurde, gehen Sie am besten wie folgt vor.
Entfernen Sie mit dem JES-Deinstallationsprogramm Message Queue sowie die gemeinsam genutzten Komponenten.
Installieren Sie mit dem Message Queue-Installationsprogramm Message Queue 4.1.
Auf der Seite für die JDK-Auswahl des Message Queue 4.1-Installationsprogramms können Sie die im System vorhandene JDK/JRE für die Verwendung durch Message Queue auswählen. Leider enthält die angezeigte Liste ebenfalls die JRE, die zum Ausführen der Installationsanwendung verwendet wird. Diese JRE gehört zum Installationspaket und wird nicht tatsächlich auf dem System installiert. (Fehler 6585911)
Sie erkennen die vom Installationsprogramm verwendete JRE am Pfad, der innerhalb des entpackten Installationsverzeichnisses liegen und das Unterverzeichnis mq4_1–installer enthalten sollte. Beispiel:
Beliebiges_Verzeichnis/mq4_1–installer/usr/jdk/instances/jdk1.5.0/jre
Wählen Sie diese JRE nicht zur Verwendung durch Message Queue aus. Wählen Sie stattdessen ein anderes JDK im System aus. Wenn eins nicht vorhanden ist, führen Sie die für Ihre Plattform entsprechende Aktion aus.
Solaris oder Linux: Wählen Sie die Option zum Installieren und verwenden des Standard-JDK aus.
Windows: Laden Sie ein JDK herunter, und installieren Sie dieses, bevor Sie das Message Queue 4.1-Installationsprogramm ausführen.
Wenn Sie Message Queue unter Windows installieren, sollten Sie die folgenden Einschränkungen beachten.
Das Installationsprogramm fügt keine neuen Einträge für Message Queue zum Startmenü unter Programme hinzu (Fehler 6567258). Um die Administrationskonsole zu starten, verwenden Sie die Befehlszeile, wie in Starting the Administration Console in Sun Java System Message Queue 4.1 Administration Guide beschrieben.
Das Installationsprogramm fügt das Verzeichnis IMQ_HOME\mq\bin nicht zur PATH-Umgebungsvariable hinzu.(Fehler 6567197). Benutzer müssen entweder diesen Eintrag zur PATH-Umgebungsvariable hinzufügen oder einen vollständigen Pfadnamen angeben, wenn die Message Queue-Dienstprogramme (IMQ_HOME\mq\bin\Befehl) aufgerufen werden.
Das Installationsprogramm fügt keine Einträge zur Windows-Registrierung hinzu, die darauf hinweisen, dass Message Queue installiert ist.
Beim Ausführen im automatischen Modus wird das Installationsprogramm umgehend zurückgegeben. Die Installation wird zwar durchgeführt, jedoch weiß der Benutzer nicht, wann die automatische Installation tatsächlich abgeschlossen ist. (Fehler 6586560)
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 wird auf English angezeigt, selbst wenn das Installationsprogramm mit einem anderen Gebietsschema ausgeführt wird. (Fehler 6594142)
Die Zeichenfolge "Install Home" wird auf der entsprechenden Seite des Installationsprogramms auf Englisch angezeigt, selbst wenn das Installationsprogramm mit einem anderen Gebietsschema ausgeführt wird. (Fehler 6592491)
Die Fehlermeldung und der "unvollständige" Status der Zusammenfassung sind für Benutzer irreführend, die versuchen, die Installation über den Befehl installer-n aufzuführen. Der Befehl ist tatsächlich erfolgreich. (Fehler 6594351)
Die folgenden Probleme betreffen die Installation auf einer Linux-Plattform.
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 Installationsprogramm im Testlaufmodus (installer –n ) ausgeführt wird, werden auf der Zusammenfassungsseite mehrere Fehlermeldungen angezeigt, und dass der Installationsstatus nicht abgeschlossen wurde. 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 Installation verwendet werden kann.(Fehler 6594351)
Wenn ältere Versionen von Message Queue-Lokalisierungs-RPMs auf dem System vorhanden sind, schlägt die Installation der Lokalisierungs-RPMs von Message Queue 4.1 fehl. Dies geschieht, wenn Sie auf der entsprechenden Seite das Kontrollkästchen zum Installieren der mehrsprachigen Pakete für Message Queue aktivieren. Die Installation schlägt fehl, da es zu einem Konflikt mit Il8-Paketen aus einer früheren 3.7 UR1-Installation kommt. (Fehler 6594381)
Umgehung Entfernen Sie Lokalisierungs-RPMs mithilfe des rpm –e-Befehls, bevor Sie das Installationsprogramm für 4.1 ausführen. Um die hierfür relevanten RPMs zu bestimmen, lesen Sie Message Queue Packages (RPMs) in Sun Java System Message Queue 4.1 Installation Guide.
Diese Probleme betreffen die Installation auf allen Plattformen.
Solange das Installationsprogramm die Installation von Message Queue 4.1 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 System ältere Versionen von Message Queue und NSS/NSPR befinden, listet das Installationsprogramm lediglich die erforderlichen Upgrades für Message Queue auf. Es wird nicht darauf hingewiesen, dass auch NSS/NSPR aktualisiert werden muss. Dieses Problem betrifft nur die Update-Seite, da die fragliche Software als Teil des Installationsvorgangs aktualisiert wird (auf der Seite "Bereit für die Installation" werden die richtigen Informationen angezeigt). (Fehler 6580696)
Umgehung Keine erforderlich, da die NSS/NSPR-Dateien installiert werden, falls diese nicht aktuell sind, und ältere Versionen deinstalliert werden.
Wenn das Installations- bzw. Deinstallationsprogramm im Textmodus ausgeführt wird (installer –t ), wird auf der Zusammenfassungsseite zwar das Verzeichnis mit den Protokoll-/Zusammenfassungsdateien angezeigt, die Namen dieser Dateien werden jedoch nicht aufgelistet. (Fehler 6581592)
Wird der Name einer nicht vorhandenen Datei angegeben, führt dies zu inkonsistenten und nicht eindeutigen Fehlermeldungen. (Fehler 6587127)
Die Anzeige der Message Queue-Versionsinformationen ist im Installationsprogramm nicht transparent. (Fehler 6586507)
Für die Solaris-Plattform finden Sie in der nachstehenden Tabelle Informationen, um die zu installierende Version zu bestimmen.
Tabelle 1–11 Formate der Versionen
Im Installationsprogramm angezeigte Version |
Message Queue-Version |
---|---|
4.1.0.0 |
4.1 |
3.7.0.1 |
3.7 UR1 |
3.7.0.2 |
3.7 UR2 |
3.7.0.3 |
3.7 UR3 |
3.6.0.0 |
3.6 |
3.6.0.1 |
3.6 SP1 |
3.6.0.2 |
3.6 SP2 |
3.6.0.3 |
3.6 SP3 |
3.6.0.4 |
3.6 SP4 |
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.
Auf einer Linux-Plattform ist die Bereitstellung einer einfachen Formatüberstetzung nicht möglich. Die Versionsnummer, die im Installationsprogramm unter Linux angezeigt wird, weist folgendes Format auf.
<Hauptversionsnummer>.<Nebenversionsnummer>-<beliebige_Nummer>
Zum Beispiel könnte sie 3.7–22 lauten. Dies weist zwar darauf hin, dass es sich um eine der 3.7-Versionen, jedoch nicht um welche es sich genau handelt. Um diese zu bestimmen, führen Sie den Befehl imqbrokerd —version aus.
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 der Installationszusammenfassung wird dem Benutzer ein Zusammenfassungsbericht angezeigt. Dieser Bericht (eine HTML-Seite) enthält unleserliche Zeichen, wenn das Installationsprogramm mit einem Gebietsschema mit Multibyte-Zeichen ausgeführt wird. (Fehler 6587112)
Umgehung Bearbeiten Sie die HTML-Datei, sodass diese den darin angegebenen Zeichensatz korrigiert. In der HTML-Datei sollte ein Inhalt vorhanden sein, der dem folgenden ähnlicht.
meta http-equiv="Content-Type" content="text/html; charset=UTF-8
Ersetzen Sie "UTF-8" durch Gebietsschema-Name.UTF-8. Zum Beispiel ja_JA.UTF-8 oder ko.UTF-8 unter Solaris; ja_JA.utf8 oder ko_KO.utf8 unter Linux.
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 der englischen Version hartcodiert. (Fehler 6593089)
Die Seite mit den Copyright-Informationen ist für andere Gebietsschemata als Frankreich nicht lokalisiert. (Fehler 6590992)
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 —p- oder —password-Option verwenden, um ein Passwort für die folgenden Befehle interaktiv anzugeben: imqcmd, imqbrokerd und imdbmgr. Mit Version 4.0 wurden diese Optionen verworfen. Sie müssen Passwörter nun wie folgt erzeugen.
Setzen Sie die Passworteigenschaft auf den gewünschten Wert in einer Datei, in der ausschließlich Passwörter gespeichert werden.
Verwenden Sie die folgende Syntax, um Passwörter in der Passwortdatei festzulegen.
Passworteigenschaftsname=Mein_Passwort
Übergeben Sie den Namen der Passwortdatei mithilfe der —passfile-Option.
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 wird als Passwort für die JDBC-Datenbank abracadabra festgelegt.
imq.persist.jdbc.mysql.password=abracadabra
Sie haben folgende Möglichkeiten, um den Broker so zu konfigurieren, dass er die von Ihnen erstelle Passwortdatei verwendet.
Geben Sie die folgenden Eigenschaften in der config.properties-Datei des Brokers an.
imq.passfile.enabled=true |
imq.passfile.dirpath=Mein_Dateiverzeichnis |
imq.passfile.name=Mein_Passwortdateiname |
Verwenden Sie die —passfile-Option des imqbrokerd-Befehls.
imqbrokerd —passfile Mein_Passwortdateiname
In diesem Abschnitt werden allgemeine Probleme in Message Queue 4.1 erläutert. Einige Probleme wurden bereits bei Vorgängerversionen von Message Queue bekannt gegeben.
Wird ein JMS-Client bei Verwendung des HTTP-Transports 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.
SOAP-Clients. Vorher musst sich die .jar-Datei für die SAAJ 1.2-Implementierung, die die Dateien mail.jar und mail.jar betraf, nicht in CLASSPATH befinden. In SAAJ 1.3 wurde diese Verknüpfung gelöscht, daher muss sich die Datei mail.jar in Message Queue-Clients ausdrücklich in CLASSPATH befinden.
Die folgenden Probleme beziehen sich auf die Administration und Konfiguration von Message Queue.
Die Dienstprogramme imqadmin und imqobjmgr geben einen Fehler aus, wenn CLASSPATH auf Windows-Computern doppelte Anführungszeichen enthält (Fehlernummer 5060769)
Umgehung Sie können diese Fehlermeldung ignorieren. Der Broker informiert die Verbraucher ordnungsgemäß über mögliche Fehler. Dieser Fehler hat keine Auswirkungen auf die Zuverlässigkeit des Systems.
Die Option -javahome in Solaris- und Windows-Skripts (alle Versionen) funktioniert nicht, wenn der bereitgestellte Wert ein Leerzeichen enthält (Fehlernummer 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. Beachten Sie, dass die Clientanwendung immer alle Nachrichten aus der Warteschlange abruft. Über das Attribut imqQueueBrowserMaxMessagesPerRetrieve wird festgelegt, wie die in der Warteschlange enthaltenen Nachrichten aufgeteilt werden, die an die Client-Runtime gesendet werden müssen (einige große Chunks oder viele kleine Chunks), die Gesamtzahl der Nachrichten bleibt jedoch gleich. Eine Änderung des Attributwerts kann sich auf die Leistung auswirken, führt jedoch nicht dazu, dass die Clientanwendung mehr oder weniger Daten abruft (Fehlernummer 6387631).
Die nachfolgend beschriebenen Probleme beziehen sich auf den Message Queue-Broker.
Es war bisher unklar, wie der Broker für die Round-Robin-Übermittlung konfiguriert werden kann. Die Lösung ist einfach und konfigurierbar.
Setzen Sie das Zielattribut maxNumActiveConsumers auf -1. Dadurch wird die Round-Robin-Übermittlung aktiviert.
Setzen Sie das Zielattribut consumerFlowLimit auf 1. Dadurch wird die Anzahl an Nachrichten festgelegt, die zu einem einzelnen Konsumenten gesendet werden, bevor mit dem Senden an den nächsten Konsumenten fortgefahren wird. Für eine andere Aufteilung, setzen Sie dieses Attribut auf den gewünschten Wert. Per Voreinstellung werden 100 Nachrichten an jeden Konsumenten gesendet.
Wenn der Persistenzspeicher zu viele Zielstandorte öffnet, kann auf den Broker nicht mehr zugegriffen werden (Fehlernummer 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 gelöscht wird (Fehlernummer 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).
Umgebung Derzeit gibt es keine Umgehung für dieses Problem.
Die folgenden Punkte beziehen sich auf die Verwendung von Broker-Clustern.
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 verbinden, stellen Sie sicher, dass alle Broker im Cluster enthalten sind.
Ein Broker kann bei Verwendung von HADB ausschließlich Nachrichten bis zu einer Größe von 10 MB verarbeiten. (Fehler 6531734)
Wenn ein Client mit einem Hochverfügbarkeits-Broker verbunden ist, versucht die Client-Laufzeit solange die Verbindung wiederherzustellen, bis sie erfolgreich war (unabhängig davon, auf welchen Wert imqAddressListIterations gesetzt ist).
Ein Client, der mit einem Broker verbunden ist, der wiederum Teil eines Clusters ist, kann QueueBrowser nicht zum Durchsuchen von Warteschlangen nutzen, die sich auf Remote-Brokern in diesem Cluster befinden. Der Client kann nur die Warteschlangeninhalte durchsuchen, die sich auf dem Broker befinden, mit dem er direkt verbunden ist. Der Client sendet eventuell noch Meldungen an eine beliebige Warteschlange oder erhält Meldungen von einer Warteschlange oder einem Broker im Cluster. Die Einschränkung betrifft nur das Durchsuchen.
Wenn Sie in einem konventionellen Cluster einen 4.1-Broker mit einem 3.x-Broker clustern möchten, müssen Sie die Eigenschaft imq.autocreate.queue.maxNumActiveConsumers=1 für den 4.1-Broker setzen. Anderenfalls werden die Broker keine Clusterverbindung herstellen können.
Beim Konvertieren in einen Hochverfügbarkeits-Cluster können Sie das Message Queue-Manger-Dienstprogramm (imqdbmgr) verwenden, um einen vorhandenen eigenständigen persistenten HADB-Datenspeicher in einen gemeinsam genutzten HADB-Speicher zu konvertieren. Der Befehl lautet wie folgt.
imqdbmgr upgrade hastore
Dieses Dienstprogramm können Sie in den folgenden Fällen verwenden.
Für den Wechsel von einem eigenständigen HADB-Speichers der Version 4.0 zu einen gemeinsam genutzten HADB-Speicher der Version 4.1. In diesem Fall wird der Broker den Speicher automatisch aktualisieren. Anschließend können Sie den imqdbmgr-Befehl ausführen, um den aktualisierten Datenspeicher für die gemeinsame Nutzung zu konvertieren.
Für den Wechsel von einem eigenständigen HADB-Speichers der Version 4.1 zu einen gemeinsam genutzten HADB-Speicher. In diesem Fall müssen Sie lediglich den oben gezeigten imqdbmgr-Befehl ausführen, um den Datenspeicher für die gemeinsame Nutzung zu konvertieren.
Da dieser Befehl lediglich die Umwandlung von HADB-Speichern unterstützt, ist es nicht möglich, damit dateibasierte Speicher oder andere JDBC-Speicher in einen gemeinsam genutzten HADB-Speicher zu konvertieren. Wenn Sie vorher eine 3.x-Version von Message Queue ausgeführt haben, müssen Sie einen HADB-Speicher erstellen und anschließend die Daten manuell zu diesem Speicher migrieren, um die Hochverfügbarkeits-Funktion zu nutzen.
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. (Fehlernummer 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: Kein Tabellen-Arbeitsspeicher mehr verfügbar." aus. (Fehlernummer 6550483)
Weitere Informationen finden Sie unter "HADB Problems" im Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide.
In einem Broker-Cluster fügt ein Broker Nachrichten zu einer Warteschlange für eine Remote-Verbindung hinzu, die noch nicht hergerstellt wurde (Fehlernummer 4951010).
Umgehung Die Meldungen werden vom Konsumenten empfangen, sobald die Verbindung hergestellt ist. Die Nachrichten werden an einen anderen Konsument gesendet, wenn die Verbindung beendet wird.
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]: Nachrichtenbestätigung fehlgeschlagen aus mq://129.145.130.95:7677/?instName=a&brokerSessionUID=3209681167602264320: ackStatus = NOT_FOUND(404)\ Ursache = Aktualisieren von Remote-Transaktionsstatus auf COMMITED(6): Transaktion 3534784765719091968 nicht gefunden, die Transaktion wurde möglicherweise bereits übermittelt. 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 Benachrichtigung zur Übermittlung von Transaktion [8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690, [consumer:3534784765719133952, type=NONE]] TUID=3534784765719091968 erhielt Antwort: com.sun.messaging.jmq.jmsserver.util.BrokerException: Aktualisieren von Remote-Transaktionsstatus auf COMMITED(6): Transaktion 3534784765719091968 nicht gefunden, die Transaktion wurde möglicherweise bereits übermittelt: com.sun.messaging.jmq.jmsserver.util.BrokerException: Aktualisieren von Remote-Transaktionsstatus auf COMMITED(6): Transaktion 3534784765719091968 nicht gefunden, die Transaktion wurde möglicherweise bereits übermittelt.
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 imq.txn.reapLimit-Eigenschaft.
Auf der Windows-Plattform gibt die getTransactionInfo-Methode der Überwachungs-MBean für den Transaktionsmanager Transaktionsinformationen zurück, die eine falsche Transaktionserstellungszeit enthalten (Fehlernummer 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.
Die 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.