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%正しくありません。