Menurut Oracle, lokasi ini dicari tnsnames.ora , hal. sqlnet.ora dan ldap.ora :
- File Oracle Net di direktori kerja saat ini (PWD/CWD)
TNS_ADMINdidefinisikan secara sesi atau dengan skrip yang ditentukan penggunaTNS_ADMINdidefinisikan sebagai variabel lingkungan globalTNS_ADMINdidefinisikan dalam registri- File Oracle Net di
%ORACLE_HOME/network|net80\admin(Lokasi default Oracle)
Namun, saya tidak yakin apakah setiap aplikasi/driver mengikuti daftar ini. Saya mendapatkan daftar ini dari Oracle Document 111942.1 mengacu pada Oracle 9i, jadi mungkin sudah ketinggalan zaman.
Dalam Panduan Administrator Layanan Jaringan Basis Data urutannya adalah
TNS_ADMINditentukan oleh variabel lingkunganTNS_ADMINdidefinisikan dalam registri (jikaTNS_ADMINvariabel lingkungan tidak ada)%ORACLE_HOME%/network/admindirektori (jikaTNS_ADMINvariabel lingkungan tidak ada)
Saya akan merekomendasikan untuk mendefinisikan variabel lingkungan untuk TNS_ADMIN dan gunakan hanya satu file tnsnames.ora. Agar aman, periksa juga nilai registri Anda.
Jika file Anda tidak terletak di %ORACLE_HOME%\network\admin , saya sarankan untuk membuat tautan simbolis untuk itu - hanya untuk berada di sangat sisi yang aman, mis. mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin
Catatan lain, Anda tidak harus "bermain" dengan file tnsnames.ora Anda. Dengan Monitor Proses dari Microsoft Sysinternals Anda dapat memantau setiap akses file, yaitu filternya adalah Path contains tnsnames
Perbarui
Ketika saya menjalankan tes di mesin saya, saya mendapatkan pesanan berikut:
- Variabel lingkungan
TNS_ADMIN - Kunci Registri
HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN -
Kunci Registri
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN, hal.HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN-> Hanya jika
TNS_ADMINVariabel lingkungan tidak disetel. %ORACLE_HOME%\network\admin- Direktori saat ini (yang mungkin berbeda dengan direktori tempat aplikasi Anda berada)
- Folder tempat aplikasi Anda berada
Perbarui 2
Jelas tidak ada pencarian perbaikan, ini bervariasi untuk penyedia/driver yang berbeda. Mungkin juga tergantung pada versi Oracle.
Misalnya, Server HTTP Oracle membaca TNS_ADMIN pengaturan dari opmn.xml file konfigurasi.
Contoh lain, untuk ODP.NET Managed Driver (Oracle.ManagedDataAccess) beta versi, saya menemukan pesanan ini di Oracle Managed dan TNS Names :
- alias sumber data di bagian 'sumber data' di bawah
<oracle.manageddataaccess.client>bagian dalam file konfigurasi .NET (yaitumachine.config,web.config,user.config). - alias sumber data di
tnsnames.orafile di lokasi yang ditentukan olehTNS_ADMINdalam file konfigurasi .NET. - alias sumber data di
tnsnames.orafile yang ada di direktori yang sama dengan.exe. - alias sumber data di
tnsnames.orafile ada di%TNS_ADMIN%
(di mana%TNS_ADMIN%adalah pengaturan variabel lingkungan). - alias sumber data di
tnsnames.orafile ada di%ORACLE_HOME%\network\admin
(di mana%ORACLE_HOME%adalah pengaturan variabel lingkungan).
Dalam dokumentasi resmi (12c Rilis 4 (12.1.0.2.4)) dikatakan:
- alias sumber data di
dataSourcesbagian di bawah<oracle.manageddataaccess.client>bagian dalam file konfigurasi .NET (yaitumachine.config,web.config,user.config). - alias sumber data di
tnsnames.orafile di lokasi yang ditentukan olehTNS_ADMINdalam file konfigurasi .NET. Lokasi dapat terdiri dari jalur direktori absolut atau relatif. - alias sumber data di
tnsnames.orafile yang ada di direktori yang sama dengan.exe.
Namun, berdasarkan beberapa pengujian yang saya lakukan dengan ODP.NET Managed Driver (4.121.2.0) dibutuhkan %ORACLE_HOME%\network\admin dan TNS_ADMIN Variabel lingkungan diperhitungkan. Kunci seperti dokumentasi tidak 100% benar.