Notes de version de Sun Java System Message Queue 4.1

Prise en charge de JMX

Une nouvelle API a été ajoutée pour la configuration et le contrôle des courtiers Message Queue conformément à la spécification Java Management Extensions (JMX). À l'aide de cette API, vous pouvez configurer et contrôler les fonctions de courtier, à l'aide de programmes, depuis une application cliente Message Queue. Dans les anciennes versions de Message Queue, ces fonctions étaient uniquement accessibles à partir de la ligne de commande ou de la console d'aministration.

Cette API comporte un ensemble de Managed Beans (MBeans) JMX pour la gestion des ressources associées à Message Queue suivantes :

Ces MBeans fournissent des attributs et des opérations destinés à interroger et à manipuler, de manière synchrone, l'état des ressources sous-jacentes, ainsi que des notifications permettant à une application cliente d'écouter et de répondre, de manière asynchrone, aux modifications d'état en temps réel. À l'aide de cette API JMX, les applications clientes peuvent effectuer des tâches de configuration et de contrôle, telles que :

Pour consulter une présentation de l'API JMX ainsi que des informations de référence complètes, reportez-vous au manuel Sun Java System Message Queue 4.1 Developer’s Guide for JMX Clients .

Prise en charge du courtier : propriétés associées à JMX

Plusieurs propriétés de courtier ont été ajoutées pour la prise en charge de l' API JMX (voir le Tableau 1–3). Aucune de ces propriétés ne peut être définie à partir de la ligne de commande avec l'utilitaire Command de Message Queue (imqcmd). En revanche, elles peuvent être définies à l'aide de l'option -D de l'utilitaire Broker (imqbrokerd) ou modifiées manuellement dans le fichier de configuration de l'instance du courtier ( config.properties). En outre, certaines de ces propriétés (imq.jmx.rmiregistry.start, imq.jmx.rmiregistry.use, imq.jmx.rmiregistry.port) peuvent être définies à l'aide des nouvelles options de l'utilitaire Broker décrites dans le Tableau 1–4. Le tableau énumère chaque option, spécifie son type et décrit son utilisation.

Tableau 1–3 Nouvelles propriétés de courtier pour la prise en charge de JMX

Propriété 

Type 

Description 

imq.jmx.rmiregistry.start

Booléenne

Indique si le registre RMI doit être démarré au lancement du courtier.

Avec une valeur true, le courtier démarre un registre RMI sur le port spécifié par imq.jmx.rmiregistry.port et l'utilise pour stocker le stub RMI pour les connecteurs JMX. Notez que la valeur de imq.jmx.rmiregistry.use n'est pas prise en compte dans ce cas.

Valeur par défaut : false

imq.jmx.rmiregistry.use

Booléenne

Indique si un registre RMI externe doit être utilisé.

S'applique uniquement si imq.jmx.rmiregistry.start est false.

Avec une valeur true, le courtier utilise un registre RMI externe sur le port spécifié par imq.jmx.rmiregistry.port pour stocker le stub RMI pour les connecteurs JMX. Le registre RMI externe doit déjà être en cours d'exécution au démarrage du courtier.

Valeur par défaut : false

imq.jmx.rmiregistry.port

Entier

Numéro de port du registre RMI.

S'applique uniquement si imq.jmx.rmiregistry.start ou imq.jmx.rmiregistry.use est true. Il est alors possible de configurer les connecteurs JMX pour que ceux-ci utilisent le registre RMI en incluant ce numéro de port dans le chemin URL de leurs URL de service JMX.

Valeur par défaut : 1099

imq.jmx.connector.list

Chaîne

Noms des connecteurs JMX préconfigurés, séparés par une virgule.

Valeur par défaut : jmxrmi,ssljmxrmi

imq.jmx.connector.activelist

Chaîne

Noms des connecteurs JMX devant être activés au démarrage du courtier, séparés par une virgule.

Valeur par défaut : jmxrmi

imq.jmx.connector.connectorName .urlpath

Chaîne

Composant cheminUrl de l' URL de service JMX pour le nomConnecteur du connecteur.

S'avère pratique dans les cas où le chemin de l'URL de service JMX doit être défini de manière explicite (par exemple, lorsqu'un registre RMI externe partagé est utilisé).

Valeur par défaut : si un registre RMI est utilisé pour stocker le stub RMI pour les connecteurs JMX (c'est-à-dire, si imq.jmx.registry.start ou imq.jmx.registry.use est true) :

   /jndi/rmi://hôteCourtier:portRmi
      /hôteCourtier/portCourtier/nomConnecteur

Si un registre RMI n'est pas utilisé (dans le cas par défaut, imq.jmx.registry.start et imq.jmx.registry.use sont tous les deux false) :

   /stub/stubRmi

stubRmi correspondant à une représentation codée et sérialisée du stub RMI lui-même.

 

imq.jmx.connector.connectorName .useSSL

Booléenne

Indique si un Secure Socket Layer (SSL) doit être utilisé pour le nomConnecteur des connecteurs.

Valeur par défaut : false

imq.jmx.connector.nomConnecteur .brokerHostTrusted

Booléenne

Indique s'il faut faire confiance aux certificats présentés par le courtier pour le nomConnecteur des connecteurs.

S'applique uniquement lorsque imq.jmx.connector. nomConnecteur.useSSL est true.

Avec une valeur false, l'exécution client Message Queue valide tous les certificats présentés. La validation échoue si le signataire du certificat n'est pas dans le magasin d'approbations du client.

Avec une valeur true, la validation des certificats est ignorée. Ceci peut s'avérer pratique, par exemple, lors d'un test logiciel pour lequel un certificat autosigné est utilisé.

Valeur par défaut : false

La propriété imq.jmx.connector.list définit un ensemble de connecteurs JMX nommés, devant être créés au démarrage du courtier ; imq.jmx.connector.activelist spécifie les connecteurs à activer. Chaque connecteur nommé comporte son propre jeu de propriétés :

imq.jmx.connector.nomConnecteur .urlpath

imq.jmx.connector.nomConnecteur .useSSL

imq.jmx.connector.nomConnecteur .brokerHostTrusted

Par défaut, deux connecteurs JMX sont créés, jmxrmi et ssljmxrmi ; le premier est configuré pour ne pas utiliser le chiffrement SSL (imq.jmx.connector.jmxrmi.useSSL = false, le deuxième pour l'utiliser (imq.jmx.connector.ssljmxrmi.useSSL = true). Par défaut, seul le connecteur jmxrmi est activé au démarrage du courtier ; reportez-vous à la section Prise en charge de SSL pour les clients JMX pour obtenir des informations sur la procédure d'activation du connecteur ssljmxrmi pour des communications sécurisées.

Par souci de simplicité, de nouvelles options (Tableau 1–4) ont été ajoutées à l'utilitaire Broker de ligne de commande (imqbrokerd) en vue de contrôler l'utilisation, le démarrage et le port du registre RMI. L'utilisation et les effets de ces options sont identiques aux propriétés de courtier équivalentes, comme décrit dans le Tableau 1–3. Ce tableau énumère chaque option, spécifie sa propriété de courtier équivalente et décrit son utilisation.

Tableau 1–4 Nouvelles options de l'utilitaire Broker pour la prise en charge de JMX

Option 

Propriété de courtier équivalente 

Description 

-startRmiRegistry

imq.jmx.rmiregistry.start

Indique si le registre RMI doit être démarré au lancement du courtier.

-useRmiRegistry

imq.jmx.rmiregistry.use

Indique si le registre RMI externe doit être utilisé.

-rmiRegistryPort

imq.jmx.rmiregistry.port

Numéro de port du registre RMI.

Une nouvelle sous-commande (Tableau 1–5) a été ajoutée à l'utilitaire Command de ligne de commande (imqcmd) pour lister les URL de service JMX des connecteurs JMX créés et lancés au démarrage du courtier. Ces informations sont requises par les clients JMX, n'utilisant pas la classe de référence Message Queue AdminConnectionFactory, en vue d'obtenir leurs connecteurs JMX, et peuvent être également utilisées pour gérer ou contrôler Message Queue via un navigateur JMX générique, tel que la console de gestion et de contrôle Java ( jconsole).

Tableau 1–5 Nouvelle sous-commande de l'utilitaire Command

Sous-commande 

Description 

list jmx

Liste les URL de service JMX des connecteurs JMX .

Prise en charge de SSL pour les clients JMX

Comme nous l'avons mentionné précédemment, un courtier de messages Message Queue est configuré par défaut pour les communications non sécurisées à l'aide du connecteur JMX préconfiguré, jmxrmi. Si vous souhaitez utiliser le Secure Socket Layer (SSL ) sur certaines applications pour des communications sécurisées, vous devez activer le deuxième connecteur JMX sécurisé, ssljmxrmi. Pour ce faire, procédez comme suit :

  1. Obtenez et installez un certificat signé de la même manière que pour le service de connexion ssljms, ssladmin, ou cluster , comme décrit dans le manuel Message Queue Administration Guide.

  2. Installez le certificat d'autorité de certification racine dans le magasin d'approbations, si nécessaire.

  3. Ajoutez le connecteur ssljmxrmi à la liste des connecteurs JMX à activer au démarrage du courtier :

    imq.jmx.connector.activelist=jmxrmi,ssljmxrmi

  4. Démarrez le courtier à l'aide de l'utilitaire Broker de Message Queue( imqbrokerd), soit en lui transmettant le mot de passe du keystore dans un fichier de mots de passe, soit en saisissant celui-ci dans une ligne de commande à l'invite correspondante.

  5. Par défaut, le connecteur ssljmxrmi (ou tout autre connecteur SSL) est configuré de manière à valider tous les certificats SSL de courtier qui lui sont présentés. Pour éviter cette validation (par exemple, lors de l'utilisation de certificats autosignés pour un test logiciel), définissez la propriété de courtier imq.jmx.connector.ssljmxrmi.brokerHostTrusted sur true.

Du côté client, la fabrique de connexion administrateur (AdminConnectionFactory ) doit être configurée avec un URL spécifiant ssljmxrmi comme connecteur favori :

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

Si nécessaire, utilisez les propriétés système javax.net.ssl.trustStore et javax.net.ssl.trustStorePassword pour que le client JMX pointe vers le magasin d'approbations.