Méthodes de recherche JNDI directes et indirectes pour les sources de données
Vous pouvez utiliser un méthode directe ou indirecte pour utiliser le JNDI (Java™ Naming and Directory Interface) afin d'effectuer une recherche dans la source de données.
Direct
[10/5/07 11:40:38:468 CDT] 0000002e ConnectionFac W J2CA0294W: Direct JNDI lookup of resource jdbc/myDatasource.
The following default values are used:
[Resource-ref CMConfigData key items]
res-auth: 1 (APPLICATION)
res-isolation-level: 0 (TRANSACTION_NONE)
res-sharing-scope: true (SHAREABLE)
loginConfigurationName: null
loginConfigProperties: null
[Resource-ref non-key items]
isCMP1_x: false (not CMP1.x)
isJMS: false (not JMS)
commitPriority 0
Java EE Name: not set
Resource ref name: not set
isCMP: false (not set)
Le premier de ces attributs, res-auth, gère le type d'authentification effectué. Ce paramètre par défaut spécifie que l'alias d'authentification géré par le composant est utilisé si vous n'indiquez pas de spécification d'activation ou si vous ne précisez pas le nom d'utilisateur et le mot de passe de l'appel getConnection. Il indique que l'alias géré par le conteneur n'est pas utilisé.
Le deuxième paramètre, res-isolation-level, indique que le niveau d'isolement est celui par défaut. Pour un bean enterprise, vous pouvez le définir dans le bean EJB (Enterprise JavaBeans) lui-même. Pour un servlet obtenant une connexion, le niveau d'isolement est Repeatable_Read. Il s'agit d'un niveau d'isolement assez restrictif. Il peut entraîner une baisse des performances, car les demandes des applications verrouilleront plus de lignes qu'avec un niveau d'isolement moins restrictif.
Enfin, res-sharing-scope est défini comme Shareable, c'est-à-dire qu'une connexion Shareable est utilisée. Pour certaines applications, une connexion Shareable convient. Pour d'autres, en particulier les servlets qui obtiennent les connexions multiples dans une seule méthode service(), elle n'est pas adaptée.
Pour éviter toute mauvaise surprise avec ces paramètres, modifiez votre application afin qu'elle utilise un nom JNDI indirect au lieu du nom JNDI direct et créez une référence de ressource.
Indirect
Pour utiliser des valeurs différentes des valeurs par défaut, utilisez un outil d'assemblage pour définir votre référence de ressource. La référence de ressource peut aussi être créée dans les éditeurs EJB Deployment Descriptor (ejb-jar.xml), Web Deployment Descriptor (web.xml) ou Application Client Deployment Descriptor (application-client.xml) via un outil d'assemblage. Une fois la référence de ressource définie, vous pouvez faire une recherche JNDI indirect à l'aide du contexte java:comp/env. Les valeurs des propriétés de la référence de ressource définies dans la référence de ressource sont alors utilisées et le message J2CA0122I ne s'affiche plus. Pour plus d'informations, lisez la rubrique relative à la création d'une référence de ressource.