Support de la recherche des noms dans les descripteurs de déploiements et les clients partiels

Les objets d'applications serveur, tels que les foyers EJB, sont liés au contexte racine de serveur dans lequel l'application est installée. D'autres objets tels que les ressources peuvent également être liés à une racine de serveur spécifique. Les noms utilisés pour rechercher ces objets doivent être qualifiés afin de pouvoir sélectionner la racine de serveur correcte. Cette rubrique définit les noms relatifs et qualifiés, indique les cas où ils peuvent être utilisés et la façon dont ils sont générés.

A compter de la version 8.0, les objets home EJB sont liés sous le nom java:global/nomApp/nomModule/nomBean. Les noms de cette forme sont indépendant de la topologie et sont donc déjà entièrement qualifiés. De même, toutes les ressources d'application liées avec des noms java:global, java:app ou java:module n'ont pas de besoin de qualification supplémentaire lorsque leur nom de recherche java:global, java:app ou java:module est spécifié. Ces ressources sont, par exemple, des références d'EJB, des références de ressource et des entrées d'environnement.

Noms relatifs

Tous les noms sont relatifs à un contexte. Par conséquent, un nom qui peut être résolu à partir d'un contexte donné de l'espace de nom ne peut pas nécessairement être résolu à partir d'un autre contexte de l'espace de nom. Ceci est significatif car le système lie les objets dont les noms sont relatifs au contexte racine de serveur du serveur dans lequel l'application est installée. Chaque serveur comporte son propre contexte racine de serveur. Le contexte JNDI (Java™ Naming and Directory Interface) initial est le contexte racine de serveur par défaut du serveur identifié par l'URL du fournisseur utilisée pour obtenir le contexte initial. (Généralement, l'URL se compose d'un hôte et d'un port.) Pour les applications exécutées dans un processus serveur, le contexte JNDI initial par défaut est la racine de serveur correspondant à ce serveur. Un nom relatif se résout correctement lorsque le contexte initial est obtenu à partir du serveur qui contient l'objet cible, mais il ne se résout pas correctement à partir d'un contexte initial obtenu à partir d'un autre serveur.

Si tous les clients d'une application serveur sont exécutés dans le même processus serveur que l'application, tous les objets associés à cette application sont liés au même contexte initial que le client. Dans ce cas, seuls les noms relatifs au contexte racine de serveur du serveur sont nécessaires pour accéder à ces objets serveur. Toutefois, il arrive fréquemment qu'une application serveur ait des clients exécutés en dehors du processus serveur de l'application. Le contexte initial de ces clients peut différer de celui de l'application serveur et des recherches sur les noms relatifs des objets de serveur peuvent échouer. Ces clients doivent utiliser le nom qualifié des objets serveur. Cela doit être pris en compte lors de la configuration des valeurs jndiName dans les descripteurs de déploiement d'une application client Java Platform, Enterprise Edition (Java EE) et lors de la génération de noms de recherche dans les clients légers. Les noms qualifiés sont correctement résolus à partir de n'importe quel contexte initial de la cellule.

Noms qualifiés

Tous les noms sont relatifs à un contexte. Ici, le terme nom qualifié fait référence aux noms qui peuvent être résolus à partir de n'importe quel contexte initial d'une cellule. Cette action est accomplie en utilisant des noms qui naviguent vers le même contexte, la racine de cellule. Le reste du nom qualifié est donc relatif à la racine de la cellule et identifie de façon unique un objet de la cellule. Tous les contextes initiaux d'un serveur (c'est-à-dire tous les contextes de nommage d'un serveur enregistrés auprès de l'ORB en tant que référence initiale) contiennent une liaison dont le nom est cell, qui relie au contexte racine de cellule. Tous les noms qualifiés commencent par la chaîne cell/ pour naviguer du contexte initial actuel au contexte racine de cellule.

Le nom qualifié d'un objet est le même dans toute la cellule. Ce nom peut être basé sur la topologie ou fixe et lié sous la racine persistante de la cellule. Les noms basés sur la topologie, décrits ultérieurement dans cette section de façon plus détaillée, naviguent via l'espace de nom du système pour atteindre l'objet cible. Un nom fixe lié sous la racine persistante de la cellule possède le même nom qualifié dans toute la cellule et est indépendant de la topologie. La création d'un nom fixe sous la racine persistante de la cellule pour un objet d'application serveur nécessite une étape supplémentaire lorsque l'application serveur est installée. Cette étape permet d'éviter que le déplacement de l'application à un autre endroit de la topologie de la cellule ait des conséquences sur les clients. Le processus de création d'un nom fixe est également décrit ultérieurement.

Généralement, vous devez utiliser des noms qualifiés pour les valeurs EJB jndiName dans les descripteurs de déploiement d'une application client Java EE et pour les noms de recherche dans les clients légers. Cette règle fait exception si le contexte initial est obtenu à partir du serveur sur lequel se trouve l'objet cible. Par exemple, un bean session client d'un bean entity peut utiliser un nom relatif si les deux beans sont exécutés sur le même serveur. Si le bean session et le bean entity sont exécutés dans des serveurs différents, le jndiName du bean entity doit être qualifié dans les descripteurs de déploiement du bean session. La même condition peut également s'appliquer aux ressources en fonction de la portée de celles-ci.

  • Noms basés sur la topologie

    La partition de l'espace de nom d'une cellule reflète la topologie de cette dernière. Cette structure peut être parcourue pour atteindre chaque objet lié dans l'espace de nom de la cellule. Les noms qualifiés basés sur la topologie comprennent des éléments de la topologie qui reflètent l'emplacement de l'objet dans la cellule.

    Pour un objet lié au système tel qu'une interface home d'EJB, la forme d'un nom qualifié basé sur la topologie varie selon que l'objet est lié à un seul serveur ou à un cluster. Les deux formes sont décrites comme suit :

    Serveur unique
    Un objet lié dans un serveur unique est doté d'un nom qualifié basé sur la topologie de la forme suivante :
    cellule/noeuds/nomNoeud/serveurs/nomServeur/nomJndirelatif
    nomNoeud et nomServeur sont le nom du noeud du serveur et le nom du serveur dans lequel l'objet est lié, et nomJndirelatif est le nom non qualifié de l'objet, c'est-à-dire, le nom de l'objet relatif au contexte racine de serveur de son serveur.
    Cluster de serveurs
    Un objet lié dans un cluster de serveurs est doté d'un nom qualifié basé sur la topologie de la forme suivante :
    cellule/clusters/nomCluster/nomJndirelatif
    nomCluster est le nom du cluster du serveur dans lequel l'objet est lié et nomJndirelatif est le nom non qualifié de l'objet, c'est-à-dire, le nom de l'objet relatif au contexte racine de serveur d'un membre du cluster.
  • Noms fixes

    Il est possible de créer un nom fixe pour un objet de serveur afin que le nom qualifié soit indépendant de la topologie de la cellule. Ceci est souhaitable lorsque des clients de l'application sont exécutés dans d'autres processus serveur ou en tant que clients purs. Les noms fixes présentent l'avantage de ne pas changer si l'objet est placé dans un autre serveur. Les valeurs jndiName des descripteurs de déploiement pour une application client Java EE peuvent faire référence au nom qualifié fixe d'un objet serveur, quelle que soit la topologie de la cellule sur laquelle le client ou l'application serveur est installée.

    La définition d'un nom fixé au niveau de la cellule pour un objet d'application serveur comporte une étape supplémentaire une fois l'application serveur installée. C'est-à-dire qu'une liaison doit être créée pour l'objet sous la racine persistante de la cellule. Un nom fixe lié sous la racine persistante de la cellule peut être un nom quelconque, mais tous les noms situés sous la racine persistante de la cellule doivent être uniques dans la cellule car la racine persistante de la cellule est commune à l'ensemble de la cellule.

    Un nom qualifié fixe se présente sous la forme :
    cell/persistent/nomFixe
    nomFixe est un nom fixe arbitraire.

    La liaison peut être créée par programmation (par exemple, à l'aide de JNDI). Toutefois, il est probablement préférable de configurer une liaison au niveau de la cellule pour l'objet de serveur.

    Vous devez maintenir à jour la liaison programmée ou configurée. Les liaisons EJB configurées dépendent de l'emplacement du bean enterprise au sein de la topologie de la cellule ; le déplacement d'une application EJB vers un autre serveur, par exemple, nécessite la mise à jour de la liaison configurée. Des changements semblables affectent une référence d'interface home d'EJB liée par programmation de sorte que le nom fixe devrait être de nouveau lié à une référence actuelle. Toutefois, la valeur jndiName de l'objet, pour les clients Java EE, et le nom de recherche de l'objet, pour les clients légers, ne changent pas. C'est-à-dire que les clients qui accèdent aux objets à l'aide de noms fixes ne sont pas affectés par les changements de la configuration des applications serveur auxquelles ils accèdent.

Utiliser des noms de recherche dans les liaisons de descripteurs de déploiement

Les applications Java EE peuvent contenir des descripteurs de déploiement, comme ejb-ref, resource-ref et resource-env-ref, qui servent à déclarer différents types de références. Ces déclarations de référence définissent des noms de recherche java:comp/env utilisables par les composants Java EE correspondants. Chaque nom de recherche java:comp/env doit être associé à un nom de recherche dans l'espace de nom global, relatif au contexte racine du serveur, qui est le contexte JNDI initial par défaut.

Si une référence se mappe à un objet qui est lié sous le contexte racine du même serveur en tant que composant exécutant la recherche, vous pouvez utiliser un nom de recherche relatif. Si une référence se mappe à un objet qui est lié sous le contexte racine d'un autre serveur, vous devez qualifier le nom de recherche. Ainsi, vous devrez qualifier un nom de recherche si un servlet qui s'exécute sur un serveur donné déclare un ejb-ref d'un EJB s'exécutant sur un autre serveur. De la même manière, si la référence se mappe à un objet qui est lié dans une partition persistante de l'espace de nom ou à un objet qui est lié via une liaison d'espace de nom configurée de portée cellule ou de portée noeud, vous devrez utiliser un nom qualifié.

Vous pouvez spécifier des valeurs de liaisons de références de descripteurs de déploiement lorsque vous installez l'application et modifier ces valeurs après cette installation. Si vous devez modifier le nom de recherche JNDI à laquelle se mappe une référence, dans la console d'administration, cliquez sur Applications > Types d'applications Types > WebSphere enterprise applications > application_name. La section Références comporte des liens qui correspondent aux divers types de références, comme des références EJB ou d'environnement de ressources, qui sont déclarés par cette application. Cliquez sur le lien correspondant au type de référence que vous devez modifier, puis spécifiez un nouvelle valeur dans la zone Nom JNDI de la ressource cible.


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rnam_names
Nom du fichier : rnam_names.html