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_ADMINdefinido por sesión o por script definido por el usuarioTNS_ADMINdefinida como una variable de entorno globalTNS_ADMINdefinido 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_ADMINdefinido por la variable de entornoTNS_ADMINdefinido en el registro (siTNS_ADMINla variable de entorno no está presente)%ORACLE_HOME%/network/admindirectorio (siTNS_ADMINla 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_ADMINLa 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.oraarchivo en la ubicación especificada porTNS_ADMINen el archivo de configuración de .NET. - alias de origen de datos en
tnsnames.oraarchivo presente en el mismo directorio que el.exe. - alias de origen de datos en
tnsnames.oraarchivo presente en%TNS_ADMIN%
(donde%TNS_ADMIN%es una configuración de variable de entorno). - alias de origen de datos en
tnsnames.oraarchivo 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
dataSourcessecció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.oraarchivo en la ubicación especificada porTNS_ADMINen 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.oraarchivo 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.