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)