Die nachfolgend beschriebenen Probleme beziehen sich auf den Message Queue-Broker.
Message Queue 4.4-Clients erhalten eine unklare Warnung beim Verbinden mit Message Queue 3.7-Brokern (Fehler 6899886)
Wenn ein Message Queue 4.4-Client eine Verbindung zu einem Message Queue- 3.7-Broker aufbaut, erhält der Client eine Warnung folgender Art:
WARNING [I500]: Caught JVM exception: ... [C4036]: A broker error occurred. :[505] bad version ...
Diese ?bad version“-Warnung weist darauf hin, dass der Client auf einer niedrigeren Protokollebene erneut mit dem Broker verbunden werden sollte.
Bei Verwendung eines JDBC-Datenspeichers wird das Datenbankpasswort in Klartext gespeichert ( Fehler 6691717)
Umgehung: Sichern Sie die Passwortdatei, die das Datenbankpasswort enthält, wie unter Password Files in Sun GlassFish Message Queue 4.4 Administration Guide beschrieben.
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)
Bei Verwendung von IBM JVM auf AIX hat der Broker manchmal scheinbar ohne Grund wenig oder kaum Speicherplatz zur Verfügung (Fehler 6899526)
Umgehung: Verwenden Sie die neueste Version von IBM JVM (Java Runtime 1.6.0 IBM Corporation oder höher) und stellen Sie die folgende IBM JVM GC-Option auf imqbrokerd ein:
# imqbrokerd -vmargs -Xgcpolicy:gencon |