En esta sección se explica cómo crear y almacenar los siguientes objetos administrados, necesarios para el funcionamiento correcto del escenario de ejemplo.
Objetos de fábrica de conexiones
Objetos de destino
Los objetos administrados se pueden almacenar en un directorio LDAP o en un archivo. Si utiliza un archivo, todas las instancia del archivo deben ser iguales.
Encontrará instrucciones en:
En esta sección se asume que tiene instalado Sun Java System Message Queue. (Las herramientas necesarias se hallan en el directorio bin/ de la instalación de Message Queue.)
Para crear estos objetos administrados puede utilizar la GUI administrativa de Message Queue (imqadmin ) o la herramienta de línea de comandos (imqobjmgr). En las instrucciones siguientes se usa la línea de comandos.
Es posible configurar PasswordSync y el Receptor de JMS para utilizar los objetos administrados almacenados en un directorio LDAP. La Figura 11–14 ilustra dicho proceso. Tanto el servlet de PasswordSync como el adaptador del Receptor de JMS deben recuperar los valores de fábrica de conexiones y de destino del directorio LDAP para poder enviar y recibir mensajes.
A continuación se explica cómo utilizar la herramienta de línea de comandos de Message Queue (imqobjmgr) para almacenar objetos administrados en un directorio LDAP.
Abra la herramienta de línea de comandos de Message Queue (imqobjmgr) e introduzca los comandos indicados en Almacenamiento de objetos de fábrica de conexiones para almacenar los objetos de fábrica de conexiones.
#> ./imqobjmgr add -l "cn=mytestFactory" -j "java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory" -j "java.naming.provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com" -j "java.naming.security.principal=cn=directory manager" -j "java.naming.security.credentials=password" -j "java.naming.security.authentication=simple" -t qf -o "imqAddressList=mq://gwenig.coopsrc.com:7676/jms" Adding a Queue Connection Factory object with the following attributes: imqAckOnAcknowledge [Message Service Acknowledgement of Client Acknowledgements] ... imqSetJMSXUserID [Enable JMSXUserID Message Property] false Using the following lookup name: cn=mytestFactory The object’s read-only state: false To the object store specified by: java.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory java.naming.provider.url ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com java.naming.security.authentication simple java.naming.security.credentials netscape java.naming.security.principal cn=directory manager Object successfully added. |
Dentro de Almacenamiento de objetos de fábrica de conexiones imqAddressList, define el nombre de host del servidor/agente de JMS (gwenig.coopsrc.com ), su puerto (7676) y el método de acceso (jms).
En la herramienta de línea de comandos de Message Queue (imqobjmgr), introduzca los comandos indicados en Almacenamiento de objetos de destino para almacenar los objetos de destino.
#> ./imqobjmgr add -l "cn=mytestDestination" -j "java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory" -j "java.naming.provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com" -j "java.naming.security.principal=cn=directory manager" -j "java.naming.security.credentials=password" -j "java.naming.security.authentication=simple" -t q -o "imqDestinationName=mytestDestination" Adding a Queue object with the following attributes: imqDestinationDescription [Destination Description] A Description for the Destination Object imqDestinationName [Destination Name] mytestDestination Using the following lookup name: cn=mytestDestination The object’s read-only state: false To the object store specified by: java.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory java.naming.provider.url ldap://gwenig.coopsrc.com:389/ ou=sunmq,dc=coopsrc,dc=com java.naming.security.authentication simple java.naming.security.credentials netscape java.naming.security.principal cn=directory manager Object successfully added. |
Puede verificar un objeto recién creado mediante ldapsearch o un navegador LDAP.
Con esto termina la sección sobre almacenamiento de objetos administrados en un servidor LDAP. Omita la próxima sección, donde se explica cómo almacenar objetos administrados en un archivo, y continúe en la sección Configuración del adaptador del Receptor de JMS para este escenario.
Es posible configurar PasswordSync y el Receptor de JMS para utilizar los objetos administrados almacenados en un archivo. Si no va a almacenar los objetos administrados en un servidor LDAPAlmacenamiento de objetos administrados en un directorio LDAP), siga las instrucciones de esta sección.
Abra la herramienta de línea de comandos de Message Queue (imqobjmgr) e introduzca los comandos indicados en Almacenamiento de objetos de fábrica de conexiones para almacenar los objetos de fábrica de conexiones y especificar un nombre de búsqueda.
#> ./imqobjmgr add -l "mytestFactory" -j "java.naming.factory.initial= com.sun.jndi.fscontext.RefFSContextFactory" -j "java.naming.provider.url=file:///home/gael/tmp" -t qf -o "imqAddressList=mq://gwenig.coopsrc.com:7676/jms" Adding a Queue Connection Factory object with the following attributes: imqAckOnAcknowledge [Message Service Acknowledgement of Client Acknowledgements] ... imqSetJMSXUserID [Enable JMSXUserID Message Property] false Using the following lookup name: mytestFactory The object’s read-only state: false To the object store specified by: java.naming.factory.initial com.sun.jndi.fscontext.RefFSContextFactory java.naming.provider.url file:///home/gael/tmp Object successfully added. To specify a destination: #> ./imqobjmgr add -l "mytestQueue" -j "java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory" -j "java.naming.provider.url=file:///home/gael/tmp" -t q -o "imqDestinationName=myTestQueue" Adding a Queue object with the following attributes: imqDestinationDescription [Destination Description] A Description for the Destination Object imqDestinationName [Destination Name] myTestQueue Using the following lookup name: mytestQueue The object’s read-only state: false To the object store specified by: java.naming.factory.initial com.sun.jndi.fscontext.RefFSContextFactory java.naming.provider.url file:///home/gael/tmp Object successfully added. |
De manera predeterminada, el agente de Sun Message Queue permite crear automáticamente el destino de la cola (consulte config.properties, donde el valor predeterminado de imq.autocreate.queue es true).
Si el destino de la cola no se crea automáticamente, deberá crear el objeto de destino en el agente con el comando indicado en Creación del destino en el agente (donde myTestQueue es el destino).
name (Queue name): #> cd /opt/sun/mq/bin #>./imqcmd create dst -t q -n mytestQueue Username: <admin> Password: <admin> Creating a destination with the following attributes: Destination Name mytestQueue Destination Type Queue On the broker specified by: ------------------------- Host Primary Port ------------------------- localhost 7676 Successfully created the destination. |
Los objetos administrados se pueden almacenar en un archivo:
En un directorio: Un directorio permite centralizar el almacenamiento de los objetos de fábrica de conexiones y los objetos de destino.
Cuando se utiliza un directorio, estos objetos administrados se almacenan como entradas de directorio.
Si el servlet de Identity Manager PasswordSync y el servidor de Identity Manager no se encuentran en la misma máquina, cada uno de ellos debe tener acceso al archivo .bindings. Puede repetir dos veces la creación del objeto administrado (en cada máquina) o bien copiar el archivo .bindings en la ubicación adecuada de cada máquina.
En un archivo: Si el servlet de Identity Manager PasswordSync y el servidor de Identity Manager se ejecutan en el mismo servidor (o si no hay disponible un directorio), puede almacenar los objetos administrativos en un archivo.
Cuando se utiliza un archivo, ambos objetos administrados se almacenan en un solo archivo (denominado .bindings tanto en Windows como en UNIX), dentro del directorio que haya especificado para java.naming.provider.url (por ejemplo, file:///c:/temp en Windows o file:///tmp en UNIX).