Selon Oracle, ces emplacements sont recherchés pour tnsnames.ora
, rép. sqlnet.ora
et ldap.ora
:
- Fichiers Oracle Net dans le répertoire de travail actuel (PWD/CWD)
TNS_ADMIN
défini par session ou par script défini par l'utilisateurTNS_ADMIN
défini comme une variable d'environnement globaleTNS_ADMIN
défini dans le registre- Fichiers Oracle Net dans
%ORACLE_HOME/network|net80\admin
(Emplacement par défaut d'Oracle)
Cependant, je ne suis pas sûr que chaque application/pilote suive cette liste. J'ai obtenu cette liste du document Oracle 111942.1 faisant référence à Oracle 9i, elle est donc peut-être obsolète.
Dans le Guide de l'administrateur de Database Net Services, l'ordre est
TNS_ADMIN
défini par la variable d'environnementTNS_ADMIN
défini dans la base de registre (siTNS_ADMIN
la variable d'environnement n'est pas présente)%ORACLE_HOME%/network/admin
répertoire (siTNS_ADMIN
la variable d'environnement n'est pas présente)
Je recommanderais de définir une variable d'environnement pour TNS_ADMIN
et utilisez un seul fichier tnsnames.ora. Afin d'être du bon côté, vérifiez également vos valeurs de registre.
Si vos fichiers ne sont pas situé dans %ORACLE_HOME%\network\admin
, je recommande de créer un lien symbolique pour cela - juste pour être très côté sûr, par ex. mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin
Une autre note, vous n'avez pas à "jouer" avec votre fichier tnsnames.ora. Avec Process Monitor de Microsoft Sysinternals, vous pouvez surveiller l'accès à chaque fichier, c'est-à-dire que le filtre serait Path contains tnsnames
Mettre à jour
Lorsque j'exécute un test sur ma machine, j'obtiens la commande suivante :
- Variable d'environnement
TNS_ADMIN
- Clé de registre
HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-
Clé de registre
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
, rép.HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-> Uniquement si
TNS_ADMIN
La variable d'environnement n'est pas définie. %ORACLE_HOME%\network\admin
- Répertoire actuel (qui peut être différent du répertoire où se trouve votre application)
- Dossier où se trouve votre application
Mise à jour 2
Évidemment, il n'y a pas de recherche de correctif, cela varie selon les fournisseurs/pilotes. Cela dépend peut-être aussi de la version d'Oracle.
Par exemple, le serveur HTTP Oracle lit TNS_ADMIN
paramètre de opmn.xml
fichier de configuration.
Un autre exemple, pour ODP.NET Managed Driver (Oracle.ManagedDataAccess) beta version, j'ai trouvé cette commande chez Oracle Managed et TNS Names :
- alias de source de données dans la section "dataSources" sous
<oracle.manageddataaccess.client>
section dans le fichier de configuration .NET (c'est-à-diremachine.config
,web.config
,user.config
). - alias de source de données dans
tnsnames.ora
fichier à l'emplacement spécifié parTNS_ADMIN
dans le fichier de configuration .NET. - alias de source de données dans
tnsnames.ora
fichier présent dans le même répertoire que le.exe
. - alias de source de données dans
tnsnames.ora
fichier présent à%TNS_ADMIN%
(où%TNS_ADMIN%
est un paramètre de variable d'environnement). - alias de source de données dans
tnsnames.ora
fichier présent dans%ORACLE_HOME%\network\admin
(où%ORACLE_HOME%
est un paramètre de variable d'environnement).
Dans la documentation officielle (12c Release 4 (12.1.0.2.4)), il est écrit :
- alias de source de données dans
dataSources
section sous<oracle.manageddataaccess.client>
section dans le fichier de configuration .NET (c'est-à-diremachine.config
,web.config
,user.config
). - alias de source de données dans
tnsnames.ora
fichier à l'emplacement spécifié parTNS_ADMIN
dans le fichier de configuration .NET. Les emplacements peuvent être constitués de chemins de répertoire absolus ou relatifs. - alias de source de données dans
tnsnames.ora
fichier présent dans le même répertoire que le.exe
.
Cependant, sur la base de certains tests que j'ai effectués avec ODP.NET Managed Driver (4.121.2.0), il faut %ORACLE_HOME%\network\admin
et TNS_ADMIN
Variable d'environnement en compte. Les verrous comme la documentation ne sont pas corrects à 100 %.