Podle Oracle jsou tato umístění vyhledávána pomocí tnsnames.ora
, resp. sqlnet.ora
a ldap.ora
:
- Soubory Oracle Net v současném pracovním adresáři (PWD/CWD)
TNS_ADMIN
definované relací nebo uživatelem definovaným skriptemTNS_ADMIN
definována jako globální proměnná prostředíTNS_ADMIN
definované v registru- Soubory Oracle Net v
%ORACLE_HOME/network|net80\admin
(Výchozí umístění Oracle)
Nejsem si však jistý, zda každá aplikace/ovladač tento seznam dodržuje. Tento seznam jsem získal z dokumentu Oracle 111942.1 s odkazem na Oracle 9i, takže může být zastaralý.
V příručce Database Net Services Administrator's Guide je pořadí
TNS_ADMIN
definované proměnnou prostředíTNS_ADMIN
definované v registru (pokudTNS_ADMIN
proměnná prostředí není přítomna)%ORACLE_HOME%/network/admin
adresář (pokudTNS_ADMIN
proměnná prostředí není přítomna)
Doporučil bych definovat proměnnou prostředí pro TNS_ADMIN
a použijte pouze jeden soubor tnsnames.ora. Chcete-li být na bezpečné straně, zkontrolujte také hodnoty registru.
Pokud vaše soubory nejsou umístěn v %ORACLE_HOME%\network\admin
, doporučuji vytvořit na něj symbolický odkaz - jen abyste byli na velmi bezpečná strana, např. mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin
Další poznámka, nemusíte si „hrát“ se svým souborem tnsnames.ora. S Process Monitor od Microsoft Sysinternals můžete sledovat každý přístup k souboru, tj. filtr by byl Path contains tnsnames
Aktualizovat
Když spustím test na svém počítači, dostanu následující pořadí:
- Proměnná prostředí
TNS_ADMIN
- Klíč registru
HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-
Klíč registru
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
, resp.HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-> Pouze pokud
TNS_ADMIN
Proměnná prostředí není nastavena. %ORACLE_HOME%\network\admin
- Aktuální adresář (který se může lišit od adresáře, kde se nachází vaše aplikace)
- Složka, ve které se nachází vaše aplikace
Aktualizace 2
Je zřejmé, že neexistuje žádné hledání oprav, liší se pro různé poskytovatele/ovladače. Možná to také závisí na verzi Oracle.
Například Oracle HTTP Server čte TNS_ADMIN
nastavení z opmn.xml
konfigurační soubor.
Další příklad pro ODP.NET Managed Driver (Oracle.ManagedDataAccess) beta verze, našel jsem tuto objednávku na Oracle Managed a TNS Names:
- alias zdroje dat v sekci 'dataSources' pod
<oracle.manageddataaccess.client>
sekce v konfiguračním souboru .NET (tj.machine.config
,web.config
,user.config
). - alias zdroje dat v
tnsnames.ora
soubor v umístění určenémTNS_ADMIN
v konfiguračním souboru .NET. - alias zdroje dat v
tnsnames.ora
soubor ve stejném adresáři jako.exe
. - alias zdroje dat v
tnsnames.ora
soubor přítomen na%TNS_ADMIN%
(kde%TNS_ADMIN%
je nastavení proměnné prostředí). - alias zdroje dat v
tnsnames.ora
soubor na%ORACLE_HOME%\network\admin
(kde%ORACLE_HOME%
je nastavení proměnné prostředí).
V oficiální dokumentaci (12c Release 4 (12.1.0.2.4)) stojí:
- alias zdroje dat v
dataSources
sekce pod<oracle.manageddataaccess.client>
sekce v konfiguračním souboru .NET (tj.machine.config
,web.config
,user.config
). - alias zdroje dat v
tnsnames.ora
soubor v umístění určenémTNS_ADMIN
v konfiguračním souboru .NET. Umístění mohou obsahovat absolutní nebo relativní cesty k adresáři. - alias zdroje dat v
tnsnames.ora
soubor ve stejném adresáři jako.exe
.
Na základě některých testů, které jsem provedl s ODP.NET Managed Driver (4.121.2.0), však trvá %ORACLE_HOME%\network\admin
a TNS_ADMIN
Proměnná prostředí v úvahu. Zámky jako v dokumentaci nejsou 100% správné.