|
Sun ONE Message Queue 3.0.1 SP2 Versionshinweise |
Sun ONE Message Queue, Versionshinweise
Version 3.0.1 SP2
Teilenummer 817-3824-10
August 2003
In diesen Versionshinweisen sind wichtige Informationen enthalten, die zum Zeitpunkt der Herausgabe der Version 3.0.1 Service Pack 2 (SP2) von Sun Open Net Environment (Sun ONE) Message Queue (MQ) zur Verfügung standen. Hier werden neue Funktionen, Verbesserungen, bekannte Einschränkungen und Probleme, technische Hinweise und andere Informationen behandelt. Lesen Sie dieses Dokument vollständig durch, bevor Sie mit MQ 3.0.1 SP2 arbeiten.
Die neueste Ausgabe dieser Versionshinweise finden Sie auf der Sun ONE-Website für Dokumentationen unter http://docs.sun.com/?p=/coll/S1_MessageQueue_301. Besuchen Sie diese Website vor der Installation und Konfiguration Ihrer Software und später regelmäßig, um stets die neuesten Versionshinweise und Handbücher verfügbar zu haben.
Diese Versionshinweise sind in die folgenden Abschnitte aufgegliedert:
Revisionsverlauf
Tabelle 1 Revisionsverlauf
Datum
Beschreibung der Änderungen
August 2003
Die folgenden Änderungen wurden an diesem Dokument vorgenommen:
- Kleinere Änderungen wurden an der Organisation des Dokuments vorgenommen und die Bedeutung der Versionsnummern wurde geklärt.
- Neuer Abschnitt Neuheiten in Message Queue 3.0.1 SP2 hinzugefügt.
- Fehler 4879448, 4883126, 4888270 und 4883126 zu Bekannte Fehler hinzugefügt.
- Fehler 4683129, 4735757, 4758424, 4758427, 4770212, 4770518, 4809079, 4821708, 4828860, 4835586 und 4879448 zu In Message Queue 3.0.1-Versionen behobene Fehler hinzugefügt.
Oktober 2002
Erste Ausgabe dieses Dokuments
Einhaltung von Java Message Service (JMS)MQ 3.0.1-Versionen wurden für die Einhaltung der Java Message Service (JMS) 1.1-Spezifikation zertifiziert und haben die JMS 1.1 Compatibility Test Suite (CTS) bestanden.
MQ 3.0.1 ist der eigentliche JMS-Provider für Sun ONE Application Server 7 und hat ebenfalls den J2EE 1.3.1 CTS-Test von Sun ONE Application Server 7 bestanden (der die Einhaltung von JMS 1.0.2b erfordert).
Neuheiten in Message Queue 3.0.1 SP2MQ 3.0.1 SP2 ist eine Aktualisierung von MQ 3.0.1 SP1 (bei SP1 handelte es sich um eine Version zur Fehlerbehebung ohne neue Funktionen). MQ 3.0.1 SP1 ist eine Aktualisierung von MQ 3.0.1. In diesen Versionshinweisen beziehen sich Verweise auf 3.0.1-Versionen in der Regel auf 3.0.1, 3.0.1 SP1 bzw. 3.0.1 SP2.
Das Produkt MQ 3.0.1 SP2 enthält alle neuen Funktionen aus MQ 3.0 und 3.0.1 sowie zwei zusätzliche Funktionen aus 3.0.1 SP2.
Neue Funktionen in Message Queue 3.0.1 SP2
MQ 3.0.1 SP2 enthält im Vergleich zu MQ 3.0.1 zwei neue Funktionen:
Neue Funktionen in Message Queue 3.0.1
MQ 3.0.1 enthält im Vergleich zu MQ 3.0 zwei neue Funktionen:
MQ In 3.0.1 werden Meldungen bis zu doppelt so schnell verarbeitet als in MQ 3.0. Diese Leistungssteigerung ist vor allem bei hoher Netzlast von großer Bedeutung. Diese Verbesserung wurde durch Änderungen an der Bereitstellung von JMS-Meldungseigenschaften für die Übertragung über die Leitung erzielt.
MQ 3.0.1 ist für Sun ONE Application Server 7.0 zertifiziert und wird als eigentlicher JMS-Provider verwendet. MQ wurde mit Application Server integriert und unterstützt nun in einer Application Server-Umgebung JMS-Messaging. Sie können das System für einen internen MQ-Meldungsserver für die Verwaltung mit Application Server-Administrationstools konfigurieren oder für einen externen MQ-Meldungsserver, der MQ-Administrationstools erfordert.
Neue Funktionen in Message Queue 3.0
MQ 3.0 enthält eine Reihe von Änderungen an Version 2.0 des Produkts - iMQ 2.0 (und iMQ 2.0, Service Pack 1).
Eine Besonderheit bei diesen Änderungen ist, dass das Produkt nun in zwei Versionen verfügbar ist - als Platform Edition und Enterprise Edition.
Platform Edition Stellt grundlegende JMS-Unterstützung zur Verfügung und ist am besten für kleinere Bereitstellungs- und Entwicklungsumgebungen geeignet.
Enterprise Edition Bietet HTTP/HTTPS-Unterstützung, verbesserte Skalierbarkeit und Sicherheitsfunktionen und ist am besten für umfassende Bereitstellungen geeignet.
(Weitere Informationen zu diesen Editionen finden Sie im MQ-Administrator’s Guide oder im MQ Developer’s Guide.)
Die nachfolgenden Beschreibungen der Änderungen an MQ 3.0.1 sind in Gruppen zusammengefasst, je nachdem, ob sie auf beide oder nur auf die Enterprise Edition zutreffen.
Enterprise und Platform Edition
MQ unterstützt nun die JTA XA Resource API. Hierdurch kann die Produktion und Konsumierung von Meldungen im Rahmen einer umfassenden verteilten Transaktion stattfinden, wobei andere Ressourcen-Manager wie beispielsweise Datenbank-Manager verwendet werden (siehe auch Kapitel 1 im MQ Developer’s Guide). Diese Funktion wird auch mit den Administrationstools für die Transaktionsverwaltung unterstützt (siehe auch Tabelle 6-12 im MQ-Administrator’s Guide). Informationen zur Programmierung und Beispiele hierzu sind in dieser Ausgabe von MQ 3.0.1 noch nicht enthalten.
MQ unterstützt nun die zusätzlichen Funktionen der JMS 1.1-Spezifikation, was im Vergleich zu JMS 1.0.2 einen vereinfachten Ansatz an die JMS-Clientprogrammierung ermöglicht. Insbesondere kann ein JMS-Client über dieselbe Verbindung und innerhalb derselben Sitzung Punkt-zu-Punkt- und Veröffentlichungs-/Abonnenten-Messaging durchführen sowie Warteschlangen und Themen in einer Transaktion zusammenfassen.
Das heißt, ein JMS-Cliententwickler muss sich nicht zwischen den separaten Punkt-zu-Punkt- und Veröffentlichungs-/Abonnenten-Programmierungsdomänen von JMS 1.0.2 entscheiden, sondern verwendet den einfacheren, vereinheitlichten Domänenansatz von JMS 1.1. Obwohl dies der bevorzugte Ansatz ist, unterstützt die JMS 1.1-Spezifikation weiterhin die separaten Programmierungsdomänen von JMS 1.0.2. (Die inMQ enthaltenen Beispielanwendungen sowie die Codebeispiele aus dem MQ Developer’s Guide verwenden alle die separaten JMS 1.0.2-Programmierungsdomänen.)
Unterstützt das Erstellen und Senden von Meldungen, die der Simple Object Access Protocol (SOAP)-Spezifikation entsprechen, unter Verwendung von JAXM – der Java API für XML-Messaging. SOAP ermöglicht den Austausch strukturierter XML-Daten zwischen Peers in einer verteilten Umgebung. MQ unterstützt auch das Senden von SOAP-Meldungen über JMS-Messaging. Weitere Informationen finden Sie im MQ Developer’s Guide.
MQ verfügt nun über eine größere Flexibilität beim Ausgleichen von Festplattenspeicher und Leistung, wenn der integrierte Persistenzspeicher verwendet wird (siehe auch Tabelle 2-5 im MQ-Administrator’s Guide). Zudem können Administratoren nun beim Neustart eines Brokers nur Meldungen oder dauerhafte Abonnements aus dem Persistenzspeicher entfernen (siehe auch Befehl reset in Tabelle 5-2 im MQ-Administrator’s Guide).
Die installierte Verzeichnisstruktur von MQ 3.0.1 unter Solaris wurde geändert, um dem allgemeinen Dateisystemstandard für die Plattform zu entsprechen. MQ Die 3.0.1-Dateien werden nicht mehr in einem einzigen Installationsverzeichnis installiert, sondern auf standardmäßige Speicherorte im Solaris-Dateisystem verteilt.
Nur Enterprise Edition
Aktualisierung der Message Queue-DokumentationDie folgenden MQ 3.0.1- und MQ 3.0.1 SP2-Dokumente wurden von der Produktversion 3.0 ausgehend aktualisiert. Sie finden diese aktualisierten Dokumente auf der Sun ONE-Website für Dokumentationen unter http://docs.sun.com/coll/S1_MessageQueue_301.
Installation Guide
Dem MQ-Installation Guide wurden die Änderungen in MQ 3.0.1 SP2 hinzugefügt (siehe auch "Neue Funktionen in Message Queue 3.0.1 SP2").
Administrator’s Guide
Der MQ-Administrator’s Guide wurde aktualisiert, um die Änderungen in MQ 3.0.1 zu reflektieren (siehe auch "Neue Funktionen in Message Queue 3.0.1").
Developer’s Guide
Der MQ Developer’s Guide wurde aktualisiert, um die Änderungen in MQ 3.0.1 zu reflektieren (siehe auch "Neue Funktionen in Message Queue 3.0.1").
KompatibilitätMQ 3.0.1-Versionen sind vollständig kompatibel mit MQ 3.0. Beim Aufrüsten von MQ 3.0 auf MQ 3.0.1 sind keine Änderungen an der Brokerkonfiguration, an verwalteten Objekten, an Administrationstools oder an Clientanwendungen erforderlich.
Die MQ 3.0.1-Versionen (in diesem Abschnitt einfach als 3.0.1 bezeichnet) sind in der Regel jedoch nicht kompatibel mit iMQ 2.0. Speziell hierzu bestehen einige Punkte, die Sie beim Aufrüsten von iMQ 2.0 (oder iMQ 2.0 Service Pack 1) auf MQ 3.0.1 beachten müssen:
Broker-Kompatibilität
Ein MQ 3.0.1-Broker kann nicht interaktiv mit einem iMQ 2.0-Broker zusammenarbeiten, da Änderungen an den Broker-Eigenschaften und am Persistenzspeicherschema vorgenommen wurden. Einige iMQ 2.0-Daten sind jedoch mit MQ 3.0.1 kompatibel, wie in Tabelle 2 dargestellt, und können beim Aufrüsten auf MQ 3.0.1 erhalten werden. Beachten Sie beim Aufrüsten von iMQ 2.0 auf MQ 3.0.1 die folgenden Punkte:
- Sie können iMQ 2.0 config.properties-Dateien an einen anderen Speicherort kopieren und in den meisten Fällen die darin enthaltenen Eigenschaftseinstellungen zum Konfigurieren von MQ 3.0.1-Brokern heranziehen.
- Alle persistenten iMQ 2.0-Daten, wie Meldungen, Ziele und dauerhafte Abonnements können nicht wiederverwendet werden. Insbesondere müssen Sie iMQ 2.0-Ziele in Ihren MQ 3.0.1-Brokern neu erstellen.
- Eigenschaftendateien für iMQ 2.0 Benutzer-Repository und Zugriffssteuerung können nach der Installation von MQ 3.0.1 weiterverwendet werden. Das Installationsprogramm von MQ 3.0.1 überschreibt diese Dateien nicht. Sie müssen jedoch an den passenden Speicherort unter MQ 3.0.1 verschoben werden (siehe Anhang D im MQ-Administrator’s Guide).
Kompatibilität der verwalteten Objekte
MQ Verwaltete 3.0.1-Objekte wurden mit neuen Attributen erweitert und iMQ 2.0-Attribute wurden umbenannt. Beachten Sie daher beim Aufrüsten von iMQ 2.0 auf MQ 3.0.1 die folgenden Punkte:
- Sie können den Objektspeicher und alle verwalteten Objekte verwenden, die Sie in iMQ 2.0 erstellt haben. Es ist jedoch sinnvoll, die verwalteten Objekte nach der Installation von MQ 3.0.1 aufzurüsten. Die Administrationskonsole (imqadmin) und das ObjectManager-Befehlszeilenprogramm (imqobjmgr) konvertieren beim Aktualisieren verwaltete iMQ 2.0-Objekte in verwaltete MQ 3.0.1-Objekte.
- Die MQ 3.0.1-Client-Runtime sucht und instantiiert verwaltete iMQ 2.0-Objekte, indem sie sie in lokale verwaltete MQ 3.0.1-Objekte konvertiert. Bei diesem Vorgang werden jedoch nicht verwaltete iMQ 2.0-Objekte im Objektspeicher in verwaltete MQ 3.0.1-Objekte konvertiert.
- JMS-Clients (Anwendungen und/oder Komponenten), die verwaltete Objekte direkt instantiieren (d. h., die unabhängig von JMS-Providern sind), müssen umgeschrieben werden, um neue Attributnamen für die verwalteten Objekte aufnehmen zu können (weitere Informationen zu verwalteten Objektattributen finden Sie in Kapitel 4 und Anhang A im MQ Developer’s Guide).
- Skripten, die JMS-Clients starten und mithilfe von Befehlszeilenoptionen Attributwerte für verwaltete Objekte festlegen, müssen umgeschrieben werden, um neue Attributnamen für die verwalteten Objekte aufnehmen zu können (weitere Informationen zu verwalteten Objektattributen finden Sie in Kapitel 4 und Anhang A im MQ Developer’s Guide).
Kompatibilität des Administrationstools
Da sehr viele Dateien und Verzeichnisse umbenannt wurden (vor allem das Ersetzen der Zeichenfolge "jmq" durch "imq"), müssen in MQ 3.0.1 alle Befehlszeilenprogramme, Broker-Eigenschaften, verwaltete Objektattribute und interne Dateinamen umbenannt werden. Beachten Sie daher beim Aufrüsten von iMQ 2.0 auf MQ 3.0.1 die folgenden Punkte:
- Alle Skripten, die Befehlszeilenprogramme verwenden (imqbrokerd, imqcmd, imqobjmgr usw.) müssen bearbeitet und die alten Befehle durch die neu benannten Befehle ersetzt werden. Beachten Sie vor allem, dass der Befehl jmqbroker nun imqbrokerd lautet.
- Die Administrationskonsole (imqadmin) ermöglicht es Ihnen, mehrere Broker und/oder Objektspeicher gleichzeitig zu verwalten, und speichert eine Liste der verwalteten Einheiten, die links im Navigationsbereich angezeigt werden. Diese Liste wird bei jedem Start der Konsole erneut angezeigt. Der Name des Verzeichnisses, in dem die Benutzereinstellungen für die iMQ 2.0-Administrationskonsole gespeichert waren, wurde für MQ 3.0.1 geändert. Wenn Sie beim Aufrüsten von iMQ 2.0 auf MQ 3.0.1 die alten Konsoleneinstellungen erhalten möchten, müssen Sie den Namen des Verzeichnisses mit den brokerlist.properties- und objstorelist.properties-Dateien von $HOME/.jmq/admin in $HOME/.imq/admin ändern, wobei $HOME für das Homeverzeichnis des Konsolenbenutzers steht.
Client-Kompatibilität
Beachten Sie beim Aufrüsten von iMQ 2.0 auf MQ 3.0.1 die folgenden Punkte:
- Ein MQ 3.0.1-Broker unterstützt die iMQ 2.0-Client-Runtime (jedoch ohne zusätzliche MQ 3.0.1-Funktionen). Ein iMQ 2.0-Broker hingegen unterstützt die MQ 3.0.1-Client-Runtime nicht.
- Auf JDK 1.2, 1.3 oder 1.4 erstellte JMS-Clients können interaktiv mit einem Broker arbeiten, der JRE 1.4 ausführt. Clients, die eine sichere (SSL-basierte) Verbindung zu einem Broker verwenden, benötigen zusätzliche JSSE- und JNDI-Bibliotheken, wenn sie nicht auf JDK 1.4 erstellt wurden (in diesem Fall sind die Bibliotheken enthalten).
- Die JMS 1.1 API (von MQ 3.0.1 unterstützt) gestaltet das Verhalten der Methode Message.acknowledge() etwas übersichtlicher. Sie wird zum Bestätigen der Meldungskonsumierung in CLIENT_ACKNOWLEDGE-Sitzungen verwendet. Möglicherweise erfordert dies eine Änderung vorhandener JMS-Clients.
Mit der Methode Message.acknowledge() werden nun alle Meldungen bestätigt, die in der Sitzung zum Zeitpunkt des Aufrufs der Methode konsumiert wurden. Diese Verhaltensänderung gegenüber der 1.0.2 API (von iMQ 2.0 unterstützt) wird im folgenden Beispiel dargelegt: Gehen wir einmal davon aus, dass ein Client vier Meldungen aus einer Warteschlange in derselben Sitzung konsumiert, beispielsweise A, B, C und D in dieser Reihenfolge. Alle werden konsumiert, bevor der Client die Bestätigungsmethode für Meldung C aufruft.
Die Bestätigung ist von der Reihenfolge, in der die Meldungen konsumiert werden, unabhängig. Anders gesagt, die Meldung, für die die Methode acknowledge() aufgerufen wird, bestimmt nicht länger, welche Meldungen bestätigt werden.
Unter iMQ 2.0 stellt das Verhalten die ClientID automatisch auf die lokale IP-Adresse des Clients ein, wenn ein dauerhaftes Abonnement erstellt wird, ohne ausdrücklich einen ClientID-Wert festzulegen. Unter MQ 3.0.1 meldet das Verhalten einen Ausnahmefehler, wenn ein dauerhaftes Abonnement erstellt wird, ohne ausdrücklich einen ClientID-Wert festzulegen. Dies bedeutet also, dass bei Verwendung dauerhafter Abonnements und dauerhafter Verbindungskonsumenten grundsätzlich ein ClientID-Wert festgelegt werden muss, entweder als Clientcode oder mithilfe eines Attributs des Verbindungs-Factory-Objekts.
Wenn unter iMQ 2.0 ein Zeichenliteral Mehrbytezeichen enthält, muss für Unicode-Zeichen eine doppelte Backslash-Escape-Sequenz verwendet werden (z. B. selector = "property = '\\u033e\\u033f'"). Unter MQ 3.0.1 kann die normale Darstellung für Unicode-Zeichen verwendet werden (z. B. selector = "property = '\u033e\u033f'").
Bekannte EinschränkungenDie in diesem Abschnitt erläuterten Einschränkungen sind in Gruppen zusammengefasst, je nachdem, ob sie auf beide oder nur auf die Enterprise Edition der MQ 3.0.1-Versionen zutreffen.
Enterprise und Platform Edition
- Windows-Plattformen limitieren die Anzahl an Verbindungen mit einem Broker, die gleichzeitig über TCP/IP gestartet werden können, gemäß dem Maximalwert für den Rückstand. Der Rückstand ist ein Puffer für Verbindungen im TCP-Stapel. Die Anzahl an gleichzeitigen TCP-Verbindungsaufrufen kann die Größe dieses Puffers nicht überschreiten. Unter Windows 2000 Professional beispielsweise ist der Rückstand auf fünf beschränkt, unter Windows 2000 Server auf 200.
- Die Konfigurationsdatei für eine Broker-Instanz kann nicht bearbeitet werden, ohne dass die Broker-Instanz mindestens ein Mal gestartet wurde. Der Grund hierfür besteht darin, dass die Datei config.properties erst erstellt wird, wenn die Broker-Instanz das erste Mal gestartet wird. Wenn Sie einen Broker für die Verwendung austauschbarer Persistenz konfigurieren oder andere Konfigurationseigenschaften festlegen möchten, führen Sie den Broker ein Mal aus (mit dem Namen der Instanz, die zum Erstellen des Brokers verwendet werden soll), um die Datei config.properties zu erstellen:
Nur Enterprise Edition
- Das gemeinsame Thread-Pool-Modell des Brokers arbeitet auf Windows-Plattformen nicht (aufgrund eines Fehlers in J2SE 1.4.0). Dieser Fehler soll in J2SE 1.4.1 behoben werden, wurde jedoch noch nicht getestet.
- 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.
- Wird im Broker-Cluster kein Master-Broker verwendet, werden persistente Informationen, die in einem Broker gespeichert sind, der dem Cluster neu hinzugefügt wird, nicht an die anderen Broker im Cluster weitergegeben.
- Ein Verbindungsdienst, der SSL verwendet, ist derzeit auf die Unterstützung von selbst signierten Serverzertifikaten eingeschränkt, d. h. auf den beglaubigten Hostmodus. Die Konfigurationseigenschaft imqSSLIsHostTrusted für Verbindungen muss standardmäßig auf "True" eingestellt sein.
- Wird ein JMS-Client bei Verwendung des http-Transports plötzlich beendet (z. B. durch den Befehl 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 andere Instanz des Clients gestartet, die versucht, dieselbe ClientID, Warteschlange oder dasselbe dauerhafte Abonnement zu verwenden, wird möglicherweise der Ausnahmefehler "Konflikt bei Ressource" gemeldet. 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.
Bekannte FehlerIn diesem Abschnitt werden die wichtigsten Fehler beschrieben, die zum Zeitpunkt der Ausgabe von MQ 3.0.1 SP2 bekannt waren.
Für eine Liste der aktuellen Fehler, ihres Status und der Umgehungsmöglichkeiten finden Mitglieder der Java Developer Connection (TM) auf der Bug Parade der Java Developer Connection-Website. Besuchen Sie diese Seite, bevor Sie einen neuen Fehler melden. Auch wenn nicht alle MQ-Fehler aufgelistet sind, ist dies ein guter Ausgangspunkt, wenn Sie feststellen möchten, ob ein Problem bekannt gegeben wurde.
Die Adresse der Seite lautet:
Wenn Sie einen neuen Fehler melden oder eine Funktionsanfrage einreichen möchten, senden Sie eine E-Mail an imq-feedback@sun.com.
In Message Queue 3.0.1-Versionen behobene FehlerNachfolgend finden Sie eine kurze Beschreibung der wichtigsten Fehler, die in MQ 3.0.1, 3.0.1 SP1 und 3.0.1 SP2 behoben wurden.
Informationen zu den in MQ 3.0 behobenen Fehlern finden Sie in den Versionshinweisen zu MQ 3.0, die unter folgender Adresse zur Verfügung stehen:
Weitere Einzelheiten zu allen hier beschriebenen behobenen Fehlern finden Sie im vollständigen Bericht zu diesem Thema auf der Java Developer Connection-Website unter
Optionale Funktionen von JMSGemäß der JMS-Spezifikation sind einige Funktionen optional. Jeder JMS-Provider (Entwickler) entscheidet, ob diese implementiert werden oder nicht. Verwendung dieser Optionen in MQ wird nachfolgend erläutert.
Technische HinweiseIn diesem Abschnitt finden Sie jeweils eine kurze Übersicht zu den folgenden Themen:
Systemuhreinstellungen
Bei der Verwendung eines MQ-Systems sollten Sie die Systemuhren sorgfältig synchronisieren und nicht zurückstellen.
Synchronisation empfohlen
Es wird empfohlen, die Uhren auf allen Hosts zu synchronisieren, die mit dem MQ-System interaktiv arbeiten. Dies ist vor allem dann wichtig, wenn Meldungen zu einem bestimmten Zeitpunkt ablaufen (TimeToLive). Werden die Hostuhren nicht sychnronisiert, kann diese Funktion nicht ordnungsgemäß funktionieren (Meldungen werden möglichweise nicht gesendet). Synchronisieren Sie die Uhren, bevor Sie einen Broker starten.
Solaris Sie können den Befehl rdate auf einem lokalen Host verwenden, um diesen mit einem Remote-Host zu synchronisieren. (Sie müssen als Superuser bzw. Root angemeldet sein, um diesen Befehl ausführen zu können.) Der folgende Befehl synchronisiert beispielsweise den lokalen Host (Host2) mit dem Remote-Host1:
Linux Der Befehl ist ähnlich wie bei Solaris, es ist jedoch die Option -s erforderlich:
Windows Sie können den net-Befehl mit dem time-Unterbefehl verwenden, um den lokalen Host mit einem Remote-Host zu synchronisieren. Der folgende Befehl synchronisiert beispielsweise den lokalen Host (Host2) mit dem Remote-Host1:
Systemuhren nicht zurückstellen
Vermeiden Sie das Zurückstellen von Systemuhren auf Systemen, die einen MQ-Broker ausführen. MQ verwendet Zeitstempel, um die Identifikation interner Objekte wie Transaktionen oder dauerhafter Abonnements zu erleichtern. Wird die Systemuhr zurückgestellt, ist es theoretisch möglich, dass eine doppelte interne ID erzeugt wird. Der Broker versucht dies zu kompensieren, indem IDs mehr zufällig verarbeitet werden und indem (solange er ausgeführt wird) Abweichungen von der Uhrzeit ermittelt werden. Wird die Systemuhr jedoch um einen größeren Wert zurückgestellt während kein Broker ausgeführt wird, besteht ein mögliches Risiko einer ID-Duplizierung.
Wenn Sie die Systemuhr auf einem System, das einen Broker ausführt, um mehrere Sekunden zurückstellen müssen, empfiehlt es sich zu warten, bis keine Transaktionen oder dauerhafte Abonnements vorhanden sind oder bis der Broker nicht mehr ausgeführt wird. Warten Sie genau die Zeit ab, um die Sie die Uhr zurückgestellt haben, und starten Sie dann erneut den Broker.
Am besten ist es jedoch, die Uhren zu synchronisieren, bevor Broker gestartet werden. Verwenden Sie dann die passende Methode, um sicherzustellen, dass die Uhren nach der Bereitstellung nicht beträchtlich voneinander abweichen.
Betriebssystembedingte Verbindungseinschränkungen für Clients und Broker
Auf den Solaris- und Linux-Plattformen platziert die Shell, in der der Client oder Broker ausgeführt wird eine weiche Begrenzung auf die Anzahl an Dateibeschreibungen, die ein Client verwenden kann. Im MQ-System wird für jede Verbindung, die ein Client herstellt oder ein Broker akzeptiert, eine dieser Dateibeschreibungen verwendet. Daher kann ein Broker oder Client nicht mit mehr als 256 Verbindungen unter Solaris oder 1024 Verbindungen unter Linux ausgeführt werden, ohne diesen Grenzwert zu ändern. (Diese Zahl fällt tatsächlich etwas niedriger aus, da manche Dateibeschreibungen für andere Zwecke verwendet werden, beispielsweise dateibasierte Persistenz.)
Informationen zum Ändern dieses Grenzwerts finden Sie auf der Man Page ulimit oder in den nachfolgenden Anweisungen unter "Anheben der zulässigen Anzahl an Dateibeschreibungen zum Verbessern der dateibasierten Persistenzleistung". Der Grenzwert muss in jeder Shell geändert werden, in der ein Client oder Broker ausgeführt wird.
Anheben der zulässigen Anzahl an Dateibeschreibungen zum Verbessern der dateibasierten Persistenzleistung
Auf den Solaris- und Linux-Plattformen wird die Geschwindigkeit beim Speichern von Meldungen in der standardmäßigen dateibasierten Persistenz durch die Anzahl an verfügbaren Dateibeschreibungen für die Verwendung durch den Dateispeicher beeinflusst. (Windows verfügt nicht über einen solchen Grenzwert.) Eine große Anzahl an Dateibeschreibungen ermöglicht es dem System, eine große Anzahl an persistenten Meldungen schneller zu verarbeiten.
Zur Leistungssteigerung bei Leistungstests oder bei der Bereitstellung sollten Administratoren die maximale Anzahl an Dateibeschreibungen für eine Anwendung (in diesem Fall der Broker-Prozess) anheben und dann den gemeinsam genutzten Dateibeschreibungspool vergrößern (der vom Broker verwendet wird). Hierfür wird der Wert der folgenden Eigenschaft aktualisiert:
Der Wert dieser Eigenschaft muss unter der maximalen Anzahl an Dateibeschreibungen liegen, die auf Ihrem System verfügbar sind.
Unter Solaris können Sie beispielsweise diese Grenzwerte mit dem Befehl ulimit anheben. Die Prozesse erben Systembegrenzungen von ihrer übergeordneten Shell (Anmeldung). Unter Solaris gibt es eine "harte" und eine "weiche" Begrenzung. Für einen Benutzer, der nicht als Root angemeldet ist, darf die Anzahl an Dateibeschreibungen die weiche Begrenzung nicht überschreiten, die wiederum nicht die harte Begrenzung überschreiten darf.
So stellen Sie die aktuellen Begrenzungen für Dateibeschreibungen fest:
So ändern Sie die Dateibeschreibungsbegrenzungen für einen Root-Benutzer:
Anschließen kann jeder in dieser Shell erstellte Prozess eine unbegrenzte Anzahl an Dateibeschreibungen öffnen. Daher ist es nun unbedenklich, den Befehl imqbroker auszuführen.
So ändern Sie die Dateibeschreibungsbegrenzungen für einen Standardbenutzer:
wobei nummer1 weniger als 1024 beträgt und nummer2 weniger als nummer1.
Sollte 1024 nicht ausreichen, stehen folgende Optionen zur Verfügung:
- Führen Sie den Broker als Root-Benutzer aus.
- Schreiben Sie ein setuid-Programm, um den ulimit-Wert anzuheben, bevor Sie den Broker ausführen. (Solche Programme stellen ein hohes Sicherheitsrisiko dar. Wir raten absolut davon ab.)
- Passen Sie den Parameter rlim_fd_max in der Datei /etc/system an und starten Sie das System neu.
Sichern persistenter Daten
Der Broker verwendet einen Persistenzspeicher, der neben anderen Informationen Meldungsdateien enthalten kann, die vorübergehend aufbewahrt werden. Da diese Meldungen proprietäre Informationen enthalten können, empfiehlt es sich, den Datenspeicher gegen unzulässigen Zugriff zu sichern.
Ein Broker kann entweder die integrierte oder die Plug-in-Persistenz verwenden.
Integrierter Persistenzspeicher
Ein Broker, der die integrierte Persistenz verwendet, schreibt persistente Daten in einen Flatfile-Datenspeicher unter
wobei brokerName die Broker-Instanz identifiziert.
Das Verzeichnis brokerName/filestore/ wird erstellt, wenn die Broker-Instanz zum ersten Mal gestartet wird. Die Vorgehensweise zum Sichern dieses Verzeichnisses hängt vom Betriebssystem ab, auf dem der Broker ausgeführt wird.
Solaris und Linux Die Berechtigungen für das Verzeichnis IMQ_VARHOME/instances/brokerName/filestore/ hängen von den umask-Zugriffsrechten des Benutzers ab, der die Broker-Instanz gestartet hat. Daher kann die Berechtigung zum Starten einer Broker-Instanz und zum Lesen der zugehörigen persistenten Dateien eingeschränkt werden, indem die umask-Zugriffsrechte entsprechend festgelegt werden. Alternativ kann ein Administrator (Superuser) persistente Daten sichern, indem er die Berechtigungen für das Verzeichnis IMQ_VARHOME/instances auf 700 einstellt.
Windows Die Berechtigungen für das Verzeichnis IMQ_VARHOME/instances/brokerName/filestore/ können mithilfe der vom jeweiligen Windows-Betriebssystem zur Verfügung gestellten Methoden eingestellt werden. Hierbei muss in der Regel ein Eigenschaftendialog für das Verzeichnis geöffnet werden.
Plug-in-Persistenzspeicher
Ein Broker, der Plug-in-Persistenz verwendet, schreibt die persistenten Daten in eine JDBC-kompatible Datenbank.
Für eine von einem Datenbankserver verwaltete Datenbank (z. B. eine Oracle-Datenbank) empfiehlt es sich, für den Zugriff auf die MQ-Datenbanktabellen (Tabellen, deren Namen mit "IMQ" beginnen) einen Benutzernamen und ein Passwort zu erstellen. Wenn es in der Datenbank nicht möglich ist, einzelne Tabellen zu schützen, erstellen Sie eine gesonderte Datenbank, die nur von MQ-Brokern verwendet werden darf. Wenden Sie sich an den Entwickler der Datenbank, um Anleitungen zum Erstellen des Zugriffs über Benutzernamen und Passwort zu erhalten.
Der zum Öffnen einer Datenbankverbindung mit einem Broker erforderliche Benutzername und das entsprechende Kennwort können als Broker-Konfigurationseigenschaften eingerichtet werden. Es ist jedoch sicherer, diese als Befehlszeilenoptionen für den Start des Brokers einzurichten (siehe auch MQ-Administrator’s Guide, Anhang A, "Setting Up Plugged-in Persistence").
Im Falle einer eingebetteten Datenbank, auf die der Broker direkt über den JDBC-Treiber der Datenbank zugreift (z. B. eine Cloudscape-Datenbank), wird die Sicherheit normalerweise über die Einstellung von Dateiberechtigungen auf das Verzeichnis gewährleistet, in dem die persistenten Daten gespeichert werden (wie oben unter "Integrierter Persistenzspeicher," beschrieben). Um sicherzustellen, dass die Datenbank vom Broker und dem Programm imqdbmgr gelesen und bearbeitet werden kann, sollten beide jedoch vom selben Benutzer ausgeführt werden.
Broker-Speicherkonfiguration
Wenn der Broker den von Java-Objekten verwendeten JVM-Heap-Speicher fast verbraucht hat, stehen zum Freigeben von Speicher verschiedene Methoden zur Auswahl, beispielsweise die Flusssteuerung und die Auslagerung von Meldungen. Unter extremen Bedingungen können sogar Clientverbindungen geschlossen werden, um Speicher freizugeben und den Strom eingehender Meldungen zu verringern. Daher ist es sinnvoll, den Maximalwert für den JVM-Heap-Speicher hoch genug einzustellen, um solche Umstände zu vermeiden.
Wird dieser Wert jedoch in Relation zum physikalischen Systemspeicher zu hoch eingestellt, kann der Broker den Java-Heap-Speicher solange füllen, bis der gesamte Systemspeicher erschöpft ist. Dies kann in verminderter Leistung, unvorhergesehenen Broker-Abstürzen resultieren und/oder das Verhalten anderer Anwendungen und Dienste beeinflussen, die auf dem System ausgeführt werden.
Um dieses Problem zu vermeiden, konfigurieren Sie mit dem Java-Befehlszeilenargument -Xmx eine sinnvolle Größenbeschränkung für den Java-Heap. Es ist hilfreich, zunächst die Systemspeicher-Footprints zu normalen und zu Spitzenzeiten zu ermitteln. Konfigurieren Sie dann den Java-Heap so, dass seine Größe gute Leistung bietet, nicht aber das Risiko von Systemspeicherproblemen birgt.
Speicherprobleme bei Clients
Wenn Sie einen JMS-Client ausführen, der große oder viele kleine Meldungen verarbeiten muss, kann es zu OutOfMemoryError-Fehlern kommen. In der Client-Runtime liegt kein Problem mit der Freigabe von Speicher vor. Es ist lediglich nicht ausreichend Speicher vorhanden, um die Meldungen vom Netzwerk zu kopieren und Sie an Ihren Client zu senden.
Um die OutofMemoryError-Fehler zu beseitigen, erhöhen Sie die maximale Größe für den Java-Heap. Übergeben Sie die entsprechende Befehlszeilenoption an den Befehl java oder jre.
Unter Java2 verwenden Sie beim Ausführen der Clientandwendung die Option -Xmx. Zum Beispiel:
Beachten Sie folgende Einschränkungen:
- Der Höchstwert für den VM-Speicherzuweisungspool (Heap-Größe) hängt vom Betriebssystem und der JDK-Version ab. Informationen zu diesen Einschränkungen entnehmen Sie der JDK-Dokumentation.
- Die Größe des VM-Speicherzuweisungspools muss kleiner oder gleich der Menge an virtuellem Speicher sein, der auf dem System zur Verfügung steht.
So können Sie Probleme mitteilenSchreiben Sie eine E-Mail an imq-feedback@sun.com.
Wenn Sie einen Unterstützungsvertrag haben und Probleme mit MQ auftreten, wenden Sie sich an den Kundendienst von Sun ONE. Folgende Möglichkeiten stehen zur Auswahl:
- Online-Unterstützung über die Sun ONE-Website unter http://www.sun.com/service/sunone/software/index.html
Damit wir Sie optimal beraten können, halten Sie bitte die folgenden Informationen bereit, wenn Sie sich an die Kundenunterstützung wenden:
- Beschreibung des Problems, einschließlich der Situation, in der das Problem auftrat, sowie seine Auswirkungen auf Ihre Arbeit.
- Rechnertyp, Betriebssystem- und Produktversion, einschließlich sämtlicher Patches und anderer Software, die mit dem Problem in Zusammenhang stehen könnten.
- Zur Nachvollziehung des Problems eine ausführliche Beschreibung der einzelnen Schritte und Vorgehensweisen, die zu dem Problem geführt haben.
- Sämtliche Fehlerprotokolle oder Kernspeicherauszüge.
Weitere InformationenZusätzlich zur MQ-Dokumentation finden Sie an den unten angegebenen Orten zusätzliche Informationen.
Diskussionsforen
Sun ONE Software Forum
Unter der nachfolgenden Adresse finden Sie ein Sun ONE MQ-Forum:
Java Technology Forum
Unter dem Java Technology Forum finden Sie möglicherweise ein für Sie interessantes JMS-Forum.
Kommentare sind willkommen
Sun möchte seine Dokumentation laufend verbessern. Ihre Kommentare und Vorschläge sind daher immer willkommen. Bitte senden Sie Kommentare per E-Mail an folgende Adresse:
Geben Sie die Teilenummer (817-3824-10) des Dokuments in der Betreffzeile an und nennen Sie den Buchtitel (Message Queue 3.0.1 Versionshinweise) im Text Ihrer E-Mail.
Weitere Informationen über SunNützliche Informationen über Sun ONE finden Sie unter den folgenden Internet-Adressen:
- Dokumentation zu Sun ONE Message Queue
http://docs.sun.com/coll/S1_MessageQueue_301- Sun ONE Message Queue-Produktinformationen
http://sun.com/software/message_queue- Sun ONE Dokumentation
http://docs.sun.com/prod/sunone- Professionelle Dienste von Sun ONE
http://www.sun.com/service/sunps/sunone- Sun ONE Softwareprodukte und Dienste
http://www.sun.com/software- Sun ONE Softwaresupport
http://www.sun.com/service/sunone/software- Sun ONE Support und Knowledge Base
http://www.sun.com/service/support/software- Sun Support und Schulungen
http://www.sun.com/supportraining- Sun ONE Beratung und professionelle Dienste
http://www.sun.com/service/sunps/sunone- Sun ONE-Informationen für Entwickler
http://sunonedev.sun.com- Sun Supportdienste für Entwickler
http://www.sun.com/developers/support- Sun ONE Softwareschulungen
http://www.sun.com/software/training- Sun Softwaredatenblätter
http://wwws.sun.com/software
Copyright © 2003 Sun Microsystems, Inc. Alle Rechte vorbehalten.
Sun, Sun Microsystems, das Sun-Logo, Solaris, Java, das Java Kaffeetassen-Logo, JDBC und JDBC Compliant sind Marken oder registrierte Marken von Sun Microsystems, Inc. in den USA und anderen Ländern. Die Verwendung von Sun ONE Message Queue unterliegt den in der beiliegenden Lizenzvereinbarung beschriebenen Bedingungen.