Versionshinweise zu Sun Java System Message Queue 4.1

JMX-Unterstützung

Für die Konfiguration und Überwachung von Message Queue-Brokern wurde in Übereinstimmung mit der JMX-Spezifikation (Java Management Extensions) eine neue API hinzugefügt. Mithilfe dieser API haben Sie die Möglichkeit, Broker-Funktionen programmatisch in einer Message Queue-Clientanwendung zu konfigurieren und zu überwachen. In früheren Versionen von Message Queue war der Zugriff auf diese Funktionen ausschließlich über die Befehlszeile oder die Administrationskonsole möglich.

Die API besteht aus mehreren JMX-MBeans (Managed Beans) zur Verwaltung der folgenden mit Message Queue verbundenen Ressourcen:

Diese MBeans stellen Attribute und Operationen für das synchrone Abrufen und Manipulieren des Status der zugrunde liegenden Ressourcen bereit, sowie Benachrichtigungen, über die eine Clientanwendung Statusänderungen überwachen und asynchron darauf antworten kann, sobald diese auftreten. Mithilfe der JMX-API können Clientanwendungen Konfigurations- und Überwachungsaufgaben wie die folgenden durchführen:

Eine Einführung in die JMX-API und vollständige Referenzinformationen finden Sie im Sun Java System Message Queue 4.1 Developer’s Guide for JMX Clients .

Broker-Unterstützung: JMX-bezogene Eigenschaften

Zur Unterstützung der JMX-API wurden mehrere neue Broker-Eigenschaften hinzugefügt(siehe Tabelle 1–3). Keine dieser Eigenschaften kann über die Befehlszeile mit dem Message Queue-Dienstprogramm Command (imqcmd) festgelegt werden. Stattdessen besteht die Möglichkeit, diese über die -D-Option des Broker-Dienstprogramms (imqbrokerd) festzulegen oder sie manuell in der Instanzkonfigurationsdatei des Brokers ( config.properties) zu bearbeiten. Zudem lassen sich einige dieser Eigenschaften (imq.jmx.rmiregistry.start, imq.jmx.rmiregistry.use, imq.jmx.rmiregistry.port) mit den neuen Broker-Dienstprogrammoptionen festlegen, die in Tabelle 1–4 beschrieben werden. In der Tabelle sind sämtliche Optionen mit Angaben zu Typ und Verwendung enthalten.

Tabelle 1–3 Neue Broker-Eigenschaften für JMX-Unterstützung

Eigenschaft 

Typ 

Beschreibung 

imq.jmx.rmiregistry.start

Boolean

Gibt an, ob die RMI-Registrierung beim Broker-Start gestartet wird.

Wenn der Wert true lautet, startet der Broker eine RMI-Registrierung bei dem von imq.jmx.rmiregistry.port angegebenen Port und verwendet diesen, um den RMI-Stub für JMX-Connectors zu speichern. Beachten Sie, dass der Wert von imq.jmx.rmiregistry.use in diesem Fall ignoriert wird.

Standardwert: false

imq.jmx.rmiregistry.use

Boolean

Gibt an, ob eine externe RMI-Registrierung verwendet wird.

Gilt nur, wenn der Wert für imq.jmx.rmiregistry.start false lautet.

Wenn der Wert true lautet, verwendet der Broker eine externe RMI-Registrierung bei dem von imq.jmx.rmiregistry.port angegebenen Port, um den RMI-Stub für JMX-Connectors zu speichern. Die externe RMI-Registrierung muss bereits beim Broker-Start ausgeführt werden.

Standardwert: false

imq.jmx.rmiregistry.port

Integer

Portnummer der RMI-Registrierung

Gilt nur, wenn der Wert für imq.jmx.rmiregistry.start oder imq.jmx.rmiregistry.use true lautet. JMX-Connectors können anschließend so konfiguriert werden, dass sie die RMI-Registrierung verwenden, indem sie diese Portnummer im URL-Pfad der JMX-Dienst-URLs einfügen.

Standardwert: 1099

imq.jmx.connector.list

String

Namen von vorkonfigurierten JMX-Connectors (getrennt durch Kommas)

Standardwert: jmxrmi,ssljmxrmi

imq.jmx.connector.activelist

String

Namen von JMX-Connectors, die beim Broker-Start aktiviert werden sollen (getrennt durch Kommas)

Standardwert: jmxrmi

imq.jmx.connector.Connector-Name.urlpath

String

URL-Pfad-Komponente der JMX-Dienst-URL für Connector Connector-Name

Nützlich in Fällen, in denen der URL-Pfad für den JMX-Dienst ausdrücklich festgelegt werden muss (z. B. bei der Verwendung einer externen RMI-Registrierung).

Standardwert: Wenn eine RMI-Registrierung zum Speichern des RMI-Stub für JMX-Connectors verwendet wird (d. h., wenn imq.jmx.registry.start oder imq.jmx.registry.use auf true gesetzt sind)

   /jndi/rmi://Broker-Host:RMI-Port
      /Broker-Host/Broker-Port/Connector-Name

Wenn keine RMI-Registrierung verwendet wird (standardmäßig lautet der Wert für imq.jmx.registry.start und imq.jmx.registry.use false):

   /stub/RMI-Stub

Wobei RMI-Stub eine verschlüsselte und serielle Darstellung des RMI-Stub selbst ist

 

imq.jmx.connector.Connector-Name.useSSL

Boolean

Gibt an, ob ein SSL (Secure Socket Layer) für Connector Connector-Name verwendet wird.

Standardwert: false

imq.jmx.connector.Connector-Name.brokerHostTrusted

Boolean

Gibt an, ob vom Broker für Connector Connector-Name bereitgestellte Zertifikate vertraut wird.

Gilt nur, wenn der Wert für imq.jmx.connector.Connector-Name.useSSL true lautet.

Lautet der Wert false, überprüft die Message Queue-Clientlaufzeit alle bereitgestellten Zertifikate. Die Validierung schlägt fehl, wenn die Signatur des Zertifikats nicht im Vertrauensspeicher des Clients enthalten ist.

Wenn der Wert true lautet, wird die Validierung des Zertifikats übersprungen. Dies kann beispielsweise beim Testen von Software hilfreich sein, wenn ein selbst signiertes Zertifikat verwendet wird.

Standardwert: false

Die Eigenschaft imq.jmx.connector.list definiert eine Reihe benannter JMX-Connectors, die beim Broker-Start erstellt werden; imq.jmx.connector.activelist legt fest, welcher dieser Connectors aktiviert werden soll. Jeder benannte Connector verfügt somit über eigene Eigenschaften:

imq.jmx.connector.Connector-Name .urlpath

imq.jmx.connector.Connector-Name .useSSL

imq.jmx.connector.Connector-Name .brokerHostTrusted

Standardmäßig werden zwei JMX-Connectors namens jmxrmi und ssljmxrmi erstellt. Entsprechend der Konfiguration verwendet der erste keine SSL-Verschlüsselung (imq.jmx.connector.jmxrmi.useSSL = false und der zweite verwendet diese (imq.jmx.connector.ssljmxrmi.useSSL = true). Per Voreinstellung ist nur der jmxrmi-Connector beim Broker-Start aktiviert. Weitere Informationen zum Aktivieren des ssljmxrmi-Connector für eine sichere Kommunikation finden Sie unter SSL-Unterstützung für JMX-Clients.

Zudem wurden neue Optionen (Tabelle 1–4) zum Befehlszeilendienstprogramm Broker hinzugefügt (imqbrokerd), um die Nutzung, den Startvorgang und den Port für die RMI-Registrierung zu steuern. Die Verwendungs- und Wirkungsweise dieser Optionen entspricht der der äquivalenten Broker-Eigenschaften, die in Tabelle 1–3 beschrieben sind. In der Tabelle sind alle Optionen mit der jeweiligen äquivalenten Broker-Eigenschaft und Beschreibung aufgeführt.

Tabelle 1–4 Neue Broker-Dienstprogrammoptionen für JMX-Unterstützung

Option 

Äquivalente Broker-Eigenschaft 

Beschreibung 

-startRmiRegistry

imq.jmx.rmiregistry.start

Gibt an, ob die RMI-Registrierung beim Broker-Start gestartet wird.

-useRmiRegistry

imq.jmx.rmiregistry.use

Gibt an, ob eine externe RMI-Registrierung verwendet wird.

-rmiRegistryPort

imq.jmx.rmiregistry.port

Die Portnummer der RMI-Registrierung

Ein neuer Unterbefehl (Tabelle 1–5) wurde zum Befehlszeilendienstprogramm Command (imqcmd) für die Auflistung der JMX-Dienst-URLs von JMX-Connectors hinzugefügt, die beim Broker-Start erstellt und gestartet wurden. Diese Information wird von JMX-Clients benötigt, die nicht die Message Queue-Convenience-Klasse AdminConnectionFactory verwenden, um die JMX-Connectors abzurufen. Darüber hinaus kann sie zum Verwalten und Überwachen von Message Queue über einen generischen JMX-Browser, wie Java Monitoring und Management Console ( jconsole), verwendet werden.

Tabelle 1–5 Neuer Unterbefehl für das Dienstprogramm Command

Unterbefehl 

Beschreibung 

list jmx

Listet JMX-Dienst-URLs von JMX-Connectors auf

SSL-Unterstützung für JMX-Clients

Wie oben bereits erwähnt, ist der Message Queue-Nachrichten-Broker standardmäßig für eine sichere Kommunikation über den vordefinierten JMX-Connector jmxrmi konfiguriert. Für Anwendungen muss zur Verwendung von SSL (Secure Socket Layer) für eine sichere Kommunikation der alternative, sichere JMX-Connector ssljmxrmi aktiviert werden. Dies erfordert die folgenden Schritte:

  1. Rufen Sie ein signiertes Zertifikat ab, und installieren Sie dieses so, wie es für die Verbindungsdienste ssljms, ssladmin oder cluster im Message Queue Administration Guide beschrieben wird.

  2. Installieren Sie das Root-Zertifizierungsstellenzertifikat im Vertrauensspeicher, falls erforderlich.

  3. Fügen Sie den ssljmxrmi-Connector zur Liste der JMX-Connectors hinzu, damit dieser beim Broker-Start aktiviert wird:

    imq.jmx.connector.activelist=jmxrmi,ssljmxrmi

  4. Starten Sie den Broker mit dem Message Queue-Dienstprogramm Broker (imqbrokerd), indem Sie diesem entweder das Schlüsselspeicher-Passwort in einer Passwortdatei übergeben oder es bei Aufforderung in die Befehlszeile eingeben.

  5. Standardmäßig ist der ssljmxrmi-Connector (oder jeder andere SSL-basierte Connector) konfiguriert, um sämtliche bereitgestellten Broker-SSL-Zertifikate zu validieren. Um diese Validierung zu verhindern (wenn Sie z. B. selbst signierte Zertifikate beim Testen von Software verwenden), setzen Sie die Broker-Eigenschaft imq.jmx.connector.ssljmxrmi.brokerHostTrusted auf true.

Auf Clientseite muss das Administrator-Verbindungsfactory (AdminConnectionFactory) mit einer URL konfiguriert sein, die ssljmxrmi als bevorzugten Connector angibt:

AdminConnectionFactory  acf = new AdminConnectionFactory();
acf.setProperty(AdminConnectionConfiguration.imqAddress, "mq://myhost:7676/ssljmxrmi");

Verwenden Sie erforderlichenfalls die Systemeigenschaften javax.net.ssl.trustStore und javax.net.ssl.trustStorePassword, um den JMX-Client mit dem Vertrauensspeicher zu verknüpfen.