Remarques sur l'interopérabilité JNDI
Vous devez accomplir des étapes supplémentaires pour permettre une interopérabilité entre vos programmes et des clients JNDI autres que ceux du produit et pour lier les ressources de MQSeries à un espace de nom.
Clients EJB s'exécutant dans un environnement autre que WebSphere Application Server accédant aux applications EJB s'exécutant sur des serveurs du produit
Quand un client EJB accède à une application EJB s'exécutant dans WebSphere Application Server, la fabrique de contexte initial JNDI est supposée être une implémentation autre que celle du produit. Dans ce cas, le contexte initial par défaut est la racine de cellule. Si le fournisseur de services JNDI utilisé prend en charge les URL d'objets CORBA, le format corbaname peut être utilisé pour rechercher l'interface home d'EJB.
La construction du nom converti en chaîne dépend varie selon que l'objet est installé sur un seul serveur ou sur un cluster de serveurs.
- Serveur unique
- L'URL suivant ayant l'hôte d'amorce myHost, le port 2809 et
le bean enterprise installés dans le serveur server1 dans le noeud node1 et liés dans ce serveur sous le nom myEJB :
initialContext.lookup( "corbaname:iiop:myHost:2809#cell/nodes/node1/servers/server1/myEJB");
- Cluster de serveurs
- L'adresse URL suivante ayant l'hôte d'amorce myHost, le port 2809 et
le bean enterprise installés dans un cluster de serveurs nommé myCluster et liés dans ce cluster sous le nom
myEJB :
initialContext.lookup( "corbaname:iiop:myHost:2809#cell/clusters/myCluster/myEJB");
La recherche fonctionne avec tout serveur de nom et port configurés dans la même cellule.
Elle fonctionnera également si l'hôte et le port d'amorce appartiennent à un membre du cluster. Pour éviter tout point de défaillance unique, l'hôte serveur et le port d'amorce pour chaque membre du cluster pourraient être listés dans l'URL comme suit :
initialContext.lookup( "corbaname:iiop:host1:9810,:host2:9810#cell/clusters/myCluster/myEJB");
Le préfixe cell/clusters/myCluster/ n'est pas nécessaire si l'amorçage se fait sur le cluster lui-même, la recherche fonctionnera avec ou sans. Ce préfixe est toutefois nécessaire lors de la recherche de beans enterprise dans d'autres clusters. Les liaisons de nom sous le contexte clusters sont implémentées sur le serveur de noms pour être résolues en racine de serveur d'un membre de cluster en fonctionnement au cours d'une recherche, ce qui évite la présence d'un point de défaillance unique.
- Absence de prise en charge des URL d'objets CORBA
- Si la fabrique de contextes initiaux JNDI utilisée ne prend pas en charge les URL d'objets CORBA, le contexte initial peut être obtenu du serveur et la recherche exécutée sur le contexte initial, comme suit :
Hashtable env = new Hashtable(); env.put(CONTEXT.PROVIDER_URL, "iiop://myHost:2809"); Context ic = new InitialContext(env); Object o = ic.lookup("cell/clusters/myCluster/myEJB");
Liaison des ressources à partir de MQSeries 5.2
Dans les versions antérieures à WebSphere Application Server version 5.0, l'outil jmsadmin de MQSeries pouvait servir à lier les ressources à l'espace de nom. Lors d'une utilisation avec un espace de nom WebSphere Application Server, la ressource est liée dans une partition transitoire au sein de l'espace de nom et ne persiste pas au-delà de la durée du processus serveur. Au lieu de lier les ressources MQSeries à l'aide de l'outil jmsadmin, liez-les à partir de la console d'administration, sous Ressources, dans l'arborescence de navigation de la console.