Según Oracle, estas ubicaciones se buscan tnsnames.ora
, resp. sqlnet.ora
y ldap.ora
:
- Archivos de Oracle Net en el directorio de trabajo actual (PWD/CWD)
TNS_ADMIN
definido por sesión o por script definido por el usuarioTNS_ADMIN
definida como una variable de entorno globalTNS_ADMIN
definido en el registro- Archivos de Oracle Net en
%ORACLE_HOME/network|net80\admin
(Ubicación predeterminada de Oracle)
Sin embargo, no estoy seguro de si cada aplicación/controlador sigue esta lista. Obtuve esta lista del Documento de Oracle 111942.1 que hace referencia a Oracle 9i, por lo que podría estar desactualizada.
En la Guía del administrador de servicios de red de base de datos, el orden es
TNS_ADMIN
definido por la variable de entornoTNS_ADMIN
definido en el registro (siTNS_ADMIN
la variable de entorno no está presente)%ORACLE_HOME%/network/admin
directorio (siTNS_ADMIN
la variable de entorno no está presente)
Recomendaría definir una variable de entorno para TNS_ADMIN
y use solo un archivo tnsnames.ora. Para estar seguro, verifique también sus valores de registro.
Si sus archivos no ubicado en %ORACLE_HOME%\network\admin
, recomiendo crear un enlace simbólico para él, solo para estar en el muy lado seguro, p. mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin
Otra nota, no tienes que "jugar" con tu archivo tnsnames.ora. Con Process Monitor de Microsoft Sysinternals, puede monitorear el acceso a cada archivo, es decir, el filtro sería Path contains tnsnames
Actualizar
Cuando ejecuto una prueba en mi máquina, obtengo el siguiente orden:
- Variable de entorno
TNS_ADMIN
- Clave de registro
HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-
Clave de registro
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
, resp.HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
-> Solo si
TNS_ADMIN
La variable de entorno no está configurada. %ORACLE_HOME%\network\admin
- Directorio actual (que puede ser diferente al directorio donde se encuentra su aplicación)
- Carpeta donde se encuentra su aplicación
Actualización 2
Obviamente, no hay una búsqueda de soluciones, varía según los diferentes proveedores/controladores. Tal vez también dependa de la versión de Oracle.
Por ejemplo, el Servidor HTTP de Oracle lee TNS_ADMIN
configuración de opmn.xml
archivo de configuración.
Otro ejemplo, para el controlador administrado ODP.NET (Oracle.ManagedDataAccess) beta versión, encontré este pedido en Oracle Managed y TNS Names:
- alias de origen de datos en la sección 'fuentes de datos' en
<oracle.manageddataaccess.client>
sección en el archivo de configuración de .NET (es decir,machine.config
,web.config
,user.config
). - alias de origen de datos en
tnsnames.ora
archivo en la ubicación especificada porTNS_ADMIN
en el archivo de configuración de .NET. - alias de origen de datos en
tnsnames.ora
archivo presente en el mismo directorio que el.exe
. - alias de origen de datos en
tnsnames.ora
archivo presente en%TNS_ADMIN%
(donde%TNS_ADMIN%
es una configuración de variable de entorno). - alias de origen de datos en
tnsnames.ora
archivo presente en%ORACLE_HOME%\network\admin
(donde%ORACLE_HOME%
es una configuración de variable de entorno).
En la documentación oficial (12c Release 4 (12.1.0.2.4)) dice:
- alias de origen de datos en
dataSources
sección debajo de<oracle.manageddataaccess.client>
sección en el archivo de configuración de .NET (es decir,machine.config
,web.config
,user.config
). - alias de origen de datos en
tnsnames.ora
archivo en la ubicación especificada porTNS_ADMIN
en el archivo de configuración de .NET. Las ubicaciones pueden consistir en rutas de directorio absolutas o relativas. - alias de origen de datos en
tnsnames.ora
archivo presente en el mismo directorio que el.exe
.
Sin embargo, según algunas pruebas que realicé con el controlador administrado ODP.NET (4.121.2.0), toma %ORACLE_HOME%\network\admin
y TNS_ADMIN
Variable de entorno en cuenta. Bloqueos como la documentación no es 100% correcto.