Menurut Oracle, lokasi ini dicari tnsnames.ora
, hal. sqlnet.ora
dan ldap.ora
:
- File Oracle Net di direktori kerja saat ini (PWD/CWD)
TNS_ADMIN
didefinisikan secara sesi atau dengan skrip yang ditentukan penggunaTNS_ADMIN
didefinisikan sebagai variabel lingkungan globalTNS_ADMIN
didefinisikan 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_ADMIN
ditentukan oleh variabel lingkunganTNS_ADMIN
didefinisikan dalam registri (jikaTNS_ADMIN
variabel lingkungan tidak ada)%ORACLE_HOME%/network/admin
direktori (jikaTNS_ADMIN
variabel 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_ADMIN
Variabel 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.ora
file di lokasi yang ditentukan olehTNS_ADMIN
dalam file konfigurasi .NET. - alias sumber data di
tnsnames.ora
file yang ada di direktori yang sama dengan.exe
. - alias sumber data di
tnsnames.ora
file ada di%TNS_ADMIN%
(di mana%TNS_ADMIN%
adalah pengaturan variabel lingkungan). - alias sumber data di
tnsnames.ora
file 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
dataSources
bagian di bawah<oracle.manageddataaccess.client>
bagian dalam file konfigurasi .NET (yaitumachine.config
,web.config
,user.config
). - alias sumber data di
tnsnames.ora
file di lokasi yang ditentukan olehTNS_ADMIN
dalam file konfigurasi .NET. Lokasi dapat terdiri dari jalur direktori absolut atau relatif. - alias sumber data di
tnsnames.ora
file 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.