Cette section contient les instructions à suivre pour créer et stocker les objets administrés suivants, indispensables pour que le scénario d'exemple fonctionne correctement :
les objets Fabrique de connexion,
les objets Destination.
Vous pouvez stocker les objets administrés dans un annuaire LDAP ou dans un fichier. Si vous utilisez un fichier, toutes les instances de ce fichier doivent être identiques.
Pour les instructions, voir
Les instructions de cette section supposent que vous avez installé la file d'attente de messages Sun Java System Message Queue (les outils nécessaires figurent dans le répertoire bin/ de votre installation de Message Queue).
Vous pouvez utiliser l'interface graphique administrative de Message Queue administrative imqadmin ) ou l'outil de ligne de commande imqobjmgr) pour créer ces objets administrés. Les instructions suivantes utilisent l'outil de ligne de commande.
PasswordSync et le Listener JMS peuvent être configurés pour utiliser les objets administrés stockés dans un annuaire LDAP. La Figure 11–14 illustre le processus. La servlet PasswordSync et le listener JMS doivent tout deux récupérer les paramètres de fabrique de connexion et de destination de l'annuaire LDAP pour envoyer et recevoir des messages.
Cette section explique l'utilisation de l'outil de ligne de commande de Message Queue (imqobjmgr) pour stocker les objets administrés dans un annuaire LDAP.
Ouvrez l'outil de ligne de commande de Message Queue (imqobjmgr) et saisissez les commandes de Stockage des objets Fabrique de connexion pour stocker les objets Fabrique de connexion.
#> ./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. |
Dans les Stockage des objets Fabrique de connexion imqAddressList définit le nom d'hôte du serveur/courtier JMS (gwenig.coopsrc.com ), le port (7676) et la méthode d'accès (jms).
Dans l'outil de ligne de commande de Message Queue (imqobjmgr), saisissez les commandes de Stockage des objets Destination pour stocker les objets Destination.
#> ./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. |
Vous pouvez contrôler l'objet nouvellement créé avec une ldapsearch ou un navigateur LDAP.
La section consacrée au stockage des objets administrés sur un serveur LDAP est terminée. Ignorez la section suivante, qui explique comment stocker les objets administrés dans un fichier et allez directement à la section consacrée à la Configuration de l'adaptateur Listener JMS pour ce scénario.
PasswordSync et le Listener JMS peuvent être configurés pour utiliser les objets administrés stockés dans un fichier. Si vous ne stockez pas les objets administrés sur un serveur LDAP (Stockage des objets administrés dans un annuaire LDAP), suivez les instructions de cette section.
Ouvrez l'outil de ligne de commande de Message Queue (imqobjmgr) et saisissez les commandes de Stockage des objets Fabrique de connexion pour stocker les objets Fabrique de connexion et indiquer un nom de recherche.
#> ./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. |
Par défaut, le courtier Sun Message Queue permet de créer automatiquement la destination de la file d'attente (voir config.properties, où la valeur par défaut de imq.autocreate.queue est true).
Si la destination de la file d'attente n'est pas créée automatiquement, vous devez créer l'objet Destination sur le courtier en utilisant la commande indiquée dans Création de la destination sur le courtier (où myTestQueue est la destination).
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. |
Vous pouvez stocker les objets administrés dans un annuaire ou dans un fichier :
Dans un annuaire : utiliser un annuaire permet de stocker les objets Fabrique de connexion et Destination de manière centralisée.
Quand vous utilisez un annuaire, ces objets administrés sont stockés sous la forme d'entrées d'annuaire.
Si la servlet PasswordSync d'Identity Manager et le serveur d'Identity Manager ne sont pas la même machine, chacune des machines doit pouvoir accéder au fichier .bindings. Vous pouvez répéter deux fois (une par machine) la création des objets administrés ou copier le fichier .bindings dans l'emplacement approprié sur chaque machine.
Dans un fichier : si la servlet PasswordSync d'Identity Manager et le serveur d'Identity Manager sont exécutés sur le même serveur (ou si vous n'avez pas d'annuaire disponible), vous pouvez stocker les objets administratifs dans un fichier.
Lorsque vous utilisez un fichier, les deux objets administrés sont stockés dans un unique fichier (appelé .bindings sous à la fois Windows et UNIX), sous le répertoire que vous spécifiez pour le java.naming.provider.url (par exemple, file:///c:/temp sous Windows ou file:///tmp sous UNIX).