Oracleによると、これらの場所でtnsnames.oraが検索されます。 、それぞれ。 sqlnet.ora およびldap.ora :
- 現在の作業ディレクトリ(PWD / CWD)にあるOracleNetファイル
-
TNS_ADMINセッションで定義されるか、ユーザー定義のスクリプトによって定義されます -
TNS_ADMINグローバル環境変数として定義 -
TNS_ADMINレジストリで定義されている -
%ORACLE_HOME/network|net80\adminにあるOracleNetファイル (Oracleのデフォルトの場所)
ただし、各アプリケーション/ドライバーがこのリストに従っているかどうかはわかりません。このリストは、Oracle9iを参照するOracleDocument 111942.1から取得したため、古くなっている可能性があります。
Database Net Services管理者ガイドでは、順序は
です。-
TNS_ADMIN環境変数によって定義されます -
TNS_ADMINレジストリで定義されている(TNS_ADMINの場合 環境変数が存在しません) -
%ORACLE_HOME%/network/adminディレクトリ(TNS_ADMINの場合 環境変数が存在しません)
TNS_ADMINの環境変数を定義することをお勧めします 1つのtnsnames.oraファイルのみを使用します。安全を確保するために、レジストリ値も確認してください。
ファイルがない場合 %ORACLE_HOME%\network\adminにあります 、シンボリックリンクを作成することをお勧めします-非常ににあるだけです 安全面、例: mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin
もう1つの注意点として、tnsnames.oraファイルを「再生」する必要はありません。 MicrosoftSysinternalsのProcessMonitorを使用すると、各ファイルアクセスを監視できます。つまり、フィルターはPath contains tnsnamesになります。
更新
自分のマシンでテストを実行すると、次の順序になります。
- 環境変数
TNS_ADMIN - レジストリキー
HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN -
レジストリキー
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN、それぞれ。HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN->
TNS_ADMINの場合のみ 環境変数が設定されていません。 -
%ORACLE_HOME%\network\admin - 現在のディレクトリ(アプリケーションが配置されているディレクトリとは異なる場合があります)
- アプリケーションが配置されているフォルダ
アップデート2
明らかに修正検索はありません。プロバイダー/ドライバーによって異なります。たぶんそれはOracleのバージョンにも依存します。
たとえば、 Oracle HTTP Server TNS_ADMINを読み取ります opmn.xmlからの設定 構成ファイル。
別の例として、ODP.NETマネージドドライバ(Oracle.ManagedDataAccess)のベータ版 バージョン、この注文はOracleManagedおよびTNSNamesで見つかりました:
-
<oracle.manageddataaccess.client>の下の「dataSources」セクションにあるデータソースエイリアス .NET構成ファイルのセクション(つまり、machine.config、web.config、user.config。 -
tnsnames.oraのデータソースエイリアスTNS_ADMINで指定された場所にあるファイル .NET構成ファイル内。 -
tnsnames.oraのデータソースエイリアス.exeと同じディレクトリにあるファイル 。 -
tnsnames.oraのデータソースエイリアス%TNS_ADMIN%に存在するファイル
(%TNS_ADMIN%は環境変数の設定です。 -
tnsnames.oraのデータソースエイリアス%ORACLE_HOME%\network\adminにあるファイル
(%ORACLE_HOME%環境変数設定です)。
公式ドキュメント(12cリリース4(12.1.0.2.4))には、次のように記載されています。
-
dataSourcesのデータソースエイリアス<oracle.manageddataaccess.client>の下のセクション .NET構成ファイルのセクション(つまり、machine.config、web.config、user.config。 -
tnsnames.oraのデータソースエイリアスTNS_ADMINで指定された場所にあるファイル .NET構成ファイル内。場所は、絶対ディレクトリパスまたは相対ディレクトリパスのいずれかで構成できます。 -
tnsnames.oraのデータソースエイリアス.exeと同じディレクトリにあるファイル 。
ただし、ODP.NETマネージドドライバー(4.121.2.0)で行ったいくつかのテストに基づくと、%ORACLE_HOME%\network\adminが必要です。 およびTNS_ADMIN 環境変数を考慮に入れます。ドキュメントのようなロックは100%正しくありません。