Notas de la versión de Sun Java System Message Queue 4.1

Compatibilidad con JMX

Se ha añadido un nuevo API para configurar y supervisar los agentes de Message Queue de conformidad con la especificación de Java Management Extensions (JMX). Con este API, puede configurar y supervisar las funciones de agente de forma programática desde una aplicación de cliente de Message Queue. En versiones anteriores de Message Queue, sólo era posible acceder a estas funciones desde la línea de comando o desde la consola de administración.

beansI consiste en un conjunto de beans gestionadas (MBeans) que sirven para administrar los siguientes recursos relacionados con Message Queue:

Estas MBeans proporcionan atributos y operaciones para interrogar y manipular de forma síncrona el estado de los recursos subyacentes, y también notificaciones que permiten a una aplicación del cliente escuchar y responder de forma asíncrona a las cambios de estado a medida que se producen. Utilizando JMX API, las aplicaciones del cliente pueden realizar taras de configuración y supervisión como:

Encontrará una introducción del API de JMX e información completa de referencia en la Sun Java System Message Queue 4.1 Developer’s Guide for JMX Clients.

Propiedades de compatibilidad del agente relacionadas con JMX

Se han añadido varias propiedades de agente nuevas para admitir el JMX API (consulte la Tabla 1–3). Ninguna de estas propiedades puede configurarse desde la línea de comando con la utilidad Command de Message Queue (imqcmd). Sólo es posible configurarlas con la opción -D de la utilidad Agente (imqbrokerd) o editarlas manualmente en el archivo de configuración de instancias de agente ( config.properties). Además, algunas de estas propiedades (imq.jmx.rmiregistry.start, imq.jmx.rmiregistry.use, imq.jmx.rmiregistry.port) pueden configurarse con las opciones de la utilidad Agente que se describe en la Tabla 1–4. En esta tabla se enumeran todas las opciones, se especifica su tipo y se describe cómo utilizarlas

Tabla 1–3 Nuevas propiedades de agente para la compatibilidad con JMX

Propiedad 

Tipo 

Descripción 

imq.jmx.rmiregistry.start

Boolean

Especifica si debe iniciarse el registro RMI al iniciarse el agente.

truel valor es true, el agente iniciará un registro RMI en el puerto especificado por imq.jmx.rmiregistry.port y lo utilizará para guardar el cabo RMI de los conectores JMX. imqgjmxnrmiregistry el valor de imq.jmx.rmiregistry.use se ignora en este caso.

Valor predeterminado: false

imq.jmx.rmiregistry.use

Boolean

Especifica si debe utilizarse un registro RMI.

Sólo se cumple si imq.jmx.rmiregistry.start es false.

Si el valor es true, el agente utilizará un registro RMI externo en el puerto especificado por imq.jmx.rmiregistry.port para guardar el cabo RMI de los conectores JMX. El registro RMI deberá estar ejecutándose ya al iniciarse el agente.

Valor predeterminado: false

imq.jmx.rmiregistry.port

Integer

Número de puerto del registro RMI

Sólo se cumple si imq.jmx.rmiregistry.start o imq.jmx.rmiregistry.use son true. URL conectores de JMXpueden configurarse después para que utilicen el registro RMI incluyendo este número de puerto en la ruta URL de las URL del servicio JMX.

Valor predeterminado: 1099

imq.jmx.connector.list

String

Nombres de conectores JMX preconfigurados y separados por comas

Valor predeterminado: jmxrmi,ssljmxrmi

imq.jmx.connector.activelist

String

Nombres de conectores JMX que se activarán al iniciarse el agente, separados por comas

Valor predeterminado: jmxrmi

imq.jmx.connector.Nombre del conector .urlpath

String

El componenteRutaURL de la URL del servicio JMX para el conector NombreDelConector

Esto es útil cuando la ruta de la URL del servicio JMX debe configurarse explícitamente (cuando se utiliza un registro externo compartido RMI).

Valor predeterminado: Si se utiliza un registro RMI para almacenar el cabo RMI de los conectores de JMX (es decir, si imq.jmx.registry.start o imq.jmx.registry.use son true)

   /jndi/rmi://HostDelAgente:Puertormi
      /HostDelAgente/PuertoDelAgente/NombreDelConector

Si no se utiliza un registro RMI (el caso predeterminado imq.jmx.registry.start y imq.jmx.registry.use ambos false):

   /stub/Cabormi

donde Cabormi es una representacion codificada y serializada del mismo cabo RMI

 

imq.jmx.connector.Nombre del conector .useSSL

Boolean

Especifica si debe usarse una capa de zócalos seguros (SSL) para el conector NombreDelConector.

Valor predeterminado: false

imq.jmx.connector.Nombre del conector .brokerHostTrusted

Boolean

Especifica si debe confiarse en alguno de los certificados presentados por el agente del conector NombreDelConector.

Sólo se cumple cuando imq.jmx.connector. NombreDelConector.useSSL es true.

Si es false, el tiempo de ejecución del cliente de Message Queue validará todos los certificados que se le presenten. La validación fallará si el firmante del certificado no se encuentra en el almacén de confianza del cliente.

Si es true, se omitirá la validación del certificado. Esto puede ser útil, por ejemplo, durante la fase de pruebas de un software o cuando se utiliza un certificado autofirmado.

Valor predeterminado: false

La propiedad imq.jmx.connector.list define el conjunto de conectores de JMX con nombre que se crearán al iniciarse el agente, mientras que imq.jmx.connector.activelist especifica cuál de ellos debe activarse. Cada conector con nombre tendrá su propio conjunto de propiedades:

imq.jmx.connector.NombreDelConector .urlpath

imq.jmx.connector.NombreDelConector .useSSL

imq.jmx.connector.NombreDelConector .brokerHostTrusted

Por defecto, se crean dos conectores JMX llamados jmxrmi y ssljmxrmi; el primero está configurado para no utilizar el cifrado SSL (imq.jmx.connector.jmxrmi.useSSL = false, y el segundo, para utilizarlo (imq.jmx.connector.ssljmxrmi.useSSL = true). Por defecto, sólo se activa el conector jmxrmi al iniciarse el agente; consulte Compatibilidad con SSL para los clientes de JMX para conseguir información sobre cómo activar el conector ssljmxrmi y establecer comunicaciones seguras.

Para mayor comodidad, también se han añadido nuevas opciones (Tabla 1–4) a la utilidad Agente de la línea de comando (imqbrokerd) que permiten controlar el uso, el inicio y el puerto del registro RMI. El uso y los efectos de estas opciones son los mismos que los de las propiedades equivalentes del agente, que se describen en la Tabla 1–3. Esta tabla incluye una lista de todas las opciones, especifica la propiedad equivalente del agente y describe cómo se utilizan.

Tabla 1–4 Nuevas opciones de la utilidad Agente para la compatibilidad con JMX

Opción 

Propiedad equivalente del agente 

Descripción 

-startRmiRegistry

imq.jmx.rmiregistry.start

Especifica si debe iniciarse el registro RMI al iniciarse el agente.

-useRmiRegistry

imq.jmx.rmiregistry.use

Especifica si debe utilizarse un registro RMI.

-rmiRegistryPort

imq.jmx.rmiregistry.port

El número de puerto del registroRMI

Se ha añadido un nuevo subcomando (Tabla 1–5) a la utilidad Command de la línea de comando (imqcmd) que enumera las URL del servicio JMX de los conectores JMX creados e iniciados al iniciarse el agente. Esta información la necesitan los clientes de JMX que no utilizan la clase de conveniencia de Message Queue convenience class AdminConnectionFactory para obtener sus conectores JMX; también puede utilizarse pra gestionar o supervisar Message Queue mediante un navegador de JMX genérico como Monitoring and Management Console ( jconsole).

Tabla 1–5 Nuevo subcomando de la utilidad Command

Subcomando 

Descripción 

list jmx

Ofrece una lista de las URL de los conectores JMX del servicio JMX

Compatibilidad con SSL para los clientes de JMX

Como se mencionó más arriba, un agente de mensajes d eMessage Queue está configurado por defecto para establecer comunicaciones no seguras con el conector JMX preconfigurado jmxrmi. Las aplicaciones que deseen utilizar la capa de zócalos seguros (SSL ) para establecer comunicaciones seguras, deberán activar el otro conector JMX seguro: ssljmxrmi. Para ello, debe seguir estos pasos:

  1. Obtenga e instale un certificado firmado de la misma manera que para los servicios de conexión ssljms, ssladmin o cluster, tal y como se describe en la Message Queue Administration Guide.

  2. Instale en el almacén de confianza el certificado raíz de la autoridad de certificación, si es necesario.

  3. Añada el conector ssljmxrmi a la lista de conectores JMX que deben activarse al iniciar el agente:

    imq.jmx.connector.activelist=jmxrmi,ssljmxrmi

  4. Inicie el agente con la utilidad Agente de Message Queue ( imqbrokerd), bien facilitándole la contraseña key-store de un archivo de claves, bien escribiéndola desde la línea de comando cuando se le indique.

  5. ssljmxrmito, el conector ssljmxrmi (o cualquier otro conector basado en SSL) está configurado para validar todos los certificados SSL del agente que se le presenten. Si desea evitar esta validación (por ejemplo, cuando utilice certificados autofirmados o durante la prueba de un software), establezca la propiedad del agente imq.jmx.connector.ssljmxrmi.brokerHostTrusted en true.

En el lado del cliente, la fábrica de conexión del administrador (AdminConnectionFactory ) deberá configurarse con una URL que especifique ssljmxrmi como el conector preferido:

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

Si es preciso, utilice las propiedades del sistema javax.net.ssl.trustStore y javax.net.ssl.trustStorePassword para indicar al cliente de JMX el almacén de confianza.