Message Queue 4.3 war eine Unterversion, die eine Reihe von Funktionserweiterungen und Fehlerkorrekturen enthielt. Dieser Abschnitt enthält eine Beschreibung neuer Funktionen in dieser Version:
Mit Message Queue 4.3 wird ein neuer Universal Messaging Service (UMS) und eine Messaging-API eingeführt, die den Zugriff auf Message Queue über ein beliebiges HTTP-fähiges Gerät ermöglicht. Auf diese Art können fast alle Anwendungen miteinander kommunizieren und von der Zuverlässigkeit und garantierten Zustellung durch JMS-Messaging profitieren. Außerdem bietet UMS eine erweiterte Skalierbarkeit für JMS-Messaging, wodurch die Anzahl der Messaging-Clients internetähnliche Ausmaße erreichen kann.
Die grundlegende UMS-Architektur wird in der folgenden Abbildung gezeigt:
Der UMS, der auf einem Webserver ausgeführt wird, ist sprachneutral und plattformunabhängig. Der UMS dient als Schnittstelle zwischen einer Client-Anwendung ohne JMS und einem JMS-Provider. Er empfängt Meldungen, die mithilfe der UMS-API versendet werden, wandelt sie in JMS-Meldungen um und erzeugt sie am Ziel im JMS-Provider mithilfe des nativen Protokolls des Providers. Ebenso empfängt er Nachrichten von den Zielen im JMS-Provider, wandelt sie in Text oder SOAP-Nachrichten um und sendet sie entsprechend den über die UMS-API angegebenen Anforderungen an Clients ohne JMS.
Die einfache, sprachunabhängige, protokollbasierte UMS-API unterstützt sowohl webbasierte als auch nicht webbasierte Anwendungen und kann mit Skript- und Programmiersprachen verwendet werden. Die API wird in zwei Stilen angeboten: als einfache Messaging-API, die ein Protokoll des Typs Representational State Transfer (REST) verwendet, und als XML-Messaging-API, die das Protokoll in einen SOAP-Nachrichten-Header einbettet. In beiden Fällen erfordert jedoch die API nur eine einfache HTTP-Anforderung zum Senden oder Empfangen einer Nachricht.
Die Einfachheit und Flexibilität der UMS-API bedeutet, dass AJAX, .NET, Python, C, Java und viele andere Anwendungen Textnachrichten und/oder SOAP-Nachrichten (mit Anhang) an JMS-Ziele senden oder von JMS-Zielen empfangen können. Beispielsweise können Python-Anwendungen mit .NET-Anwendungen, das iPhone mit Java-Anwendungen usw. kommunizieren.
Für Message Queue 4.3 unterstützt der UMS nur Message Queue als JMS-Provider.
Der UMS kann nicht nur wie oben beschrieben als einfache Schnittstelle verwendet werden. Er unterstützt Client-Sitzungen mit und ohne Status. Der UMS behält den Sitzungsstatus für die Client-Anwendung über mehrere Dienstanforderungen hinweg bei, wenn dies vom Client gefordert wird. Der UMS kann eine Container-verwaltete Authentifizierung nutzen und/oder zur Authentifizierung von Clients mithilfe des Message Queue-Brokers konfiguriert werden. Der UMS unterstützt außerdem Transaktionen und ermöglicht Client-Anwendungen das Übernehmen und Zurücksetzen von mehreren Dienstanforderungen als einzelne atomare Einheit.
Da der UMS eine große Anzahl von Clients über eine einzelne Verbindung mit dem Message Queue-Broker unterstützen kann, entlastet er die Verbindungsdienste des Brokers und ermöglicht maximale Skalierbarkeit. Außerdem kann die UMS-Kapazität durch horizontale Skalierung erhöht werden und ermöglicht so ein internetähnliches Messaging-Aufkommen.
Aufgrund der Einfachheit der protokollbasierten UMS-API sind auf der Client-Seite keine Client-Bibliotheken erforderlich. Dadurch kann die API zukünftig für zusätzliche JMS-Funktionen ohne Upgrade der Client-Anwendungen erweitert werden.
Um den UMS zu verwenden, stellen Sie ihn in einem Webcontainer bereit, der Servlet 2.4 oder höhere Spezifikationen unterstützt. Starten Sie den Message Queue-Broker, erstellen Sie die gewünschten Ziele und schreiben Sie eine Messaging-Anwendung, die die UMS-API zum Senden oder Empfangen von Nachrichten verwendet.
Die im Rahmen von Message Queue 4.3 bereitgestellte UMS-Datei imqums.war wird, abhängig von der Plattform, an einem der folgenden Speicherorte installiert:
Sie können die .war-Datei bei Bedarf umbenennen.
Tabelle 1–5 Speicherort der Datei imqums.war
Plattform |
Speicherort von imqums.war |
---|---|
Solaris |
/usr/share/lib/imq |
Linux |
/opt/sun/mq/share/lib |
AIX |
IMQ_HOME/lib |
Windows |
IMQ_HOME\lib |
Nachdem Sie die Datei imqums.war in einem Webcontainer unter localhost:port bereitgestellt haben, finden Sie die UMS-Dokumentation unter:
http://localhost:port/imqums
Andernfalls steht Ihnen folgende UMS-Dokumentation zur Verfügung:
Informationen zur Konfiguration des UMS finden Sie unter https://mq.dev.java.net/4.3-content/ums/config.html.
Die Dokumentation zur UMS-API finden Sie unter https://mq.dev.java.net/4.3-content/ums/protocol.html.
Programmierbeispiele in mehreren Sprachen finden Sie unter https://mq.dev.java.net/4.3-content/ums/examples/README.html.
UMS wird gegenwärtig auf folgenden Webcontainern unterstützt:
Sun GlassFish Enterprise Server, Version 2.1 und Version 3 Prelude
Tomcat, Version 5.5 und 6.0
Message Queue 4.3 bietet Pakete für die AIX-Plattform und ein entsprechendes Installationsprogramm.
Die AIX-Implementierung von Message Queue unterstützt folgende Software:
AIX v 6.1 oder höher (frühere Versionen von AIX werden über das Unix/Java Only-Bundle unterstützt)
DB2-Unterstützung
IBM XL C/C++ Compiler V9.0
JDK 1.5 oder höher
Installationsanweisungen finden Sie in Kapitel 4, AIX Installation in Sun GlassFish Message Queue 4.4 Installation Guide.
Auf der AIX-Plattform werden Message Queue-Dateien in einem einzigen Message Queue-Ausgangsverzeichnis, IMQ_HOME, installiert. IMQ_HOME gibt das Verzeichnis mqInstallHome/mq an, wobei mqInstallHome dem Ausgangsverzeichnis der Installation entspricht, das Sie bei der Installation des Produkts angeben (standardmäßig home-directory /MessageQueue).
Daraus ergibt sich die gleiche Message Queue-Verzeichnisstruktur wie bei der Windows-Plattform (siehe Abschnitt zu Windows in Anhang A, Platform-Specific Locations of Message Queue Data in Sun GlassFish Message Queue 4.4 Administration Guide).
Die Message Queue-Unterstützung für die AIX-Plattform schließt die Unterstützung der Message Queue C-API ein. Anweisungen zum Erstellen und Kompilieren von C-Anwendungen auf der AIX-Plattform finden Sie unter XREF.
Mit Message Queue 4.3 wird ein neues Installationsprogramm eingeführt, das eine Zip-basierte Verteilung im Gegensatz zur Verteilung in Form von nativen Paketen ermöglicht. Das Programm installiert die .zip-Pakete für Message Queue auf der AIX-Plattform.
Das neue Installationsprogramm extrahiert die .zip-Dateien für Message Queue in alle Verzeichnisse, auf die Sie Schreibzugriff besitzen. (Sie benötigen keine root-Berechtigung.) Es ermöglicht außerdem das Registrieren Ihrer Message Queue-Installation bei Sun Connection.
Um die Größe der Download-Bundles zu reduzieren, ist die Java Runtime nicht mehr in der zip-basierten Verteilung enthalten (auf den meisten Sites ist sie bereits vorhanden). Deshalb muss für den Befehl installer ein JDK oder eine JRE angegeben werden, entweder über die Umgebungsvariable JAVA_HOME oder über die Befehlszeile mithilfe der Option -j. Beispiel:
$ installer -j JDK/JRE-Pfad
Dabei entspricht JDK/JRE-Pfad dem Pfad des JDK oder der JRE.
Die folgende aktualisierte Plattformunterstützung wird für Message Queue 4.3 zertifiziert:
Oracle 11g
Windows Server 2008
Message Queue 4.3 bietet außerdem die folgenden zusätzlichen Erweiterungen:
Die installierte Verzeichnisstruktur für Message Queue auf der Windows-Plattform wurde im Vergleich zu früheren Versionen geändert und an diejenige der AIX-Plattform angepasst. Diese Verzeichnisstruktur wird zukünftig auch für die Solaris- und Linux-Plattformen verwendet. Dies ermöglicht mehrere Installationen auf einem einzelnen Computer und die automatische Aktualisierung von Message Queue über Sun Connection, einem von Sun gehosteten Dienst, mit dem Sie Sun-Hardware und -Software aufzeichnen, organisieren und warten können (siehe Unterstützung des Installationsprogramms für Sun Connection-Registrierung).
Die nachfolgend beschriebenen neuen Eigenschaften sind bei der Konfiguration eines Brokers verfügbar:
Tabelle 1–6 Broker-Weiterleitungs- und Zustellungseigenschaften
Eigenschaft |
Typ |
Standardwert |
Beschreibung |
---|---|---|---|
imq.transaction.producer.maxNumMsgs |
Integer |
1000 |
Die maximale Anzahl von Nachrichten, die der Produzent in einer einzelnen Transaktion verarbeiten kann. Es wird empfohlen, einen Wert unter 5000 festzulegen, um eine Überlastung der Ressourcen zu verhindern. |
imq.transaction.consumer.maxNumMsgs |
Integer |
100 |
Die maximale Anzahl von Nachrichten, die der Konsument in einer einzelnen Transaktion verarbeiten kann. Es wird empfohlen, einen Wert unter 1000 festzulegen, um eine Überlastung der Ressourcen zu verhindern. |
imq.persist.jdbc.connection.limit |
Integer |
5 |
Die maximale Anzahl von Verbindungen zur Datenbank, die geöffnet werden können. |
Der JMX-API wurden ein neues Attribut und neue Schlüssel für zusammengesetzte Datumsangaben hinzugefügt:
Ein NextMessageID-Attribut wurde der Zielüberwachungs-MBean hinzugefügt, um die JMS-Nachrichten-ID für die nächste an einen Konsumenten zu liefernde Nachricht anzuzeigen.
Ein NextMessageID-Schlüssel für zusammengesetzte Datumsangaben wurde der Überwachungs-MBean für den Konsumentenmanager hinzugefügt, um die JMS-Nachrichten-ID der nächsten an den Konsumenten zu liefernden Nachricht anzuzeigen.
Ein NumMsgsPending-Schlüssel für zusammengesetzte Datumsangaben wurde der Überwachungs-MBean des Konsumentenmanagers hinzugefügt, um die Anzahl von Nachrichten anzuzeigen, die an den Konsumenten gesendet wurden.
Weitere Informationen finden Sie in Kapitel 3, Message Queue MBean Reference in Sun GlassFish Message Queue 4.4 Developer’s Guide for JMX Clients.
Der Befehl zum Auflisten dauerhafter Abonnements:
list dur [-d Themenname]
wurde erweitert, sodass die Angabe des Themennamens optional ist. Wenn kein Thema angegeben wird, listet der Befehl die dauerhaften Abonnements für alle Themen auf (auch diejenigen, für die Platzhalter-Namenskonventionen verwendet wurden).