Saltar al contenido

Determinación de la ubicación del archivo tnsnames.ora relevante

Esta pregunta se puede tratar de diversas formas, por lo tanto te dejamos la solución más completa para nosotros.

Solución:

Basándose en sus rutas, tiene dos clientes instalados como sospecha (Toad y dbforge son herramientas, no clientes, por lo que su terminología está un poco fuera de lugar). Uno de 32 bits, el otro de 64 bits. Parece que Toad es de 32 bits según su ruta de instalación, pero ejecútelo y vaya a Ayuda | Paquete de soporte. Verá que el encabezado superior será “INFORMACIÓN DE LA APLICACIÓN (32 bits)” o “INFORMACIÓN DE LA APLICACIÓN (64 bits)” solo para confirmar. Toad 11.6 fue el primero en introducir una versión de 64 bits.

Toad solo verá el cliente de Oracle que es para la misma plataforma que él. Entonces, su cliente de 64 bits es irrelevante por el bien de Toad. El C: Windows TNS parece ser una carpeta utilizada para la carpeta TNS_ADMIN dada su ubicación extraña y el hecho de que Toad la ve. En el símbolo del sistema, ejecute SET TNS_ADMIN y vea si informa “TNS_ADMIN = C: Windows TNS”. Si lo hace, entonces todas las herramientas deberían usar ese tnsnames.ora. Esa es una anulación global si lo desea, que apunta a la carpeta que contiene sus archivos de configuración de red. Si no tiene configurado TNS_ADMIN como variable de entorno, búsquelo en su registro raíz de Oracle: HKEY_LOCAL_MACHINE Software Oracle.

Si usa un conjunto común de conexiones para todas sus herramientas, eliminaría todos sus archivos tnsnames.ora. También reubicaría esa carpeta C: Windows TNS en un lugar más apropiado como C: Oracle Admin y crearía su tnsnames.ora, sqlnet.ora y ldap.ora (si corresponde) allí. Cree una variable de entorno TNS_ADMIN que apunte a esa ubicación.

Según Oracle, estas ubicaciones se buscan tnsnames.ora, resp. sqlnet.ora y ldap.ora:

  1. Archivos de Oracle Net en el directorio de trabajo actual (PWD / CWD)
  2. TNS_ADMIN definido por sesión o por script definido por el usuario
  3. TNS_ADMIN definido como una variable de entorno global
  4. TNS_ADMIN definido en el registro
  5. Archivos de Oracle Net en %ORACLE_HOME/network|net80admin (Ubicación predeterminada de Oracle)

Sin embargo, no estoy seguro de si cada aplicación / controlador sigue esta lista. Obtuve esta lista del documento Oracle 111942.1 que se refiere a Oracle 9i, por lo que podría estar desactualizada.

En la Guía del administrador de Database Net Services, el orden es

  1. TNS_ADMIN definido por la variable de entorno
  2. TNS_ADMIN definido en el registro (si TNS_ADMIN variable de entorno no está presente)
  3. %ORACLE_HOME%/network/admin directorio (si TNS_ADMIN 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, compruebe también los valores de su registro.

Si sus archivos son no situado en %ORACLE_HOME%networkadmin, Recomiendo crear un enlace simbólico para ello, solo para estar en el muy lado seguro, por ejemplo mklink /d %ORACLE_HOME%networkadmin c:Oraclecommonsettingsadmin

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:

  1. Variable ambiental TNS_ADMIN
  2. Clave de registro HKEY_CURRENT_USERSOFTWAREORACLEKEY_Oracle_Home_NameTNS_ADMIN
  3. Clave de registro HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_Oracle_Home_NameTNS_ADMIN, resp. HKEY_LOCAL_MACHINESOFTWAREWow6432NodeORACLEKEY_Oracle_Home_NameTNS_ADMIN

    -> Solo si TNS_ADMIN La variable de entorno no está configurada.

  4. %ORACLE_HOME%networkadmin
  5. Directorio actual (que puede ser diferente al directorio donde se encuentra su aplicación)
  6. Carpeta donde se encuentra su aplicación

Actualización 2

Obviamente, no hay búsqueda de arreglos, varía para diferentes proveedores / controladores. Quizás también dependa de la versión de Oracle.

Por ejemplo, el Servidor HTTP de Oracle lee TNS_ADMIN ajuste 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:

  1. alias de fuente de datos en la sección ‘dataSources’ en sección en el archivo de configuración .NET (es decir machine.config, web.config, user.config).
  2. alias de la fuente de datos en el tnsnames.ora archivo en la ubicación especificada por TNS_ADMIN en el archivo de configuración .NET.
  3. alias de la fuente de datos en el tnsnames.ora archivo presente en el mismo directorio que el .exe.
  4. alias de la fuente de datos en el tnsnames.ora archivo presente en %TNS_ADMIN%

    (donde %TNS_ADMIN% es una configuración de variable de entorno).

  5. alias de la fuente de datos en el tnsnames.ora archivo presente en %ORACLE_HOME%networkadmin

    (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:

  1. alias de la fuente de datos en el dataSources sección debajo sección en el archivo de configuración .NET (es decir machine.config, web.config, user.config).
  2. alias de la fuente de datos en el tnsnames.ora archivo en la ubicación especificada por TNS_ADMIN en el archivo de configuración .NET. Las ubicaciones pueden constar de rutas de directorio absolutas o relativas.
  3. alias de la fuente de datos en el tnsnames.ora archivo presente en el mismo directorio que el .exe.

Sin embargo, según algunas pruebas que hice con el controlador administrado ODP.NET (4.121.2.0), se necesita %ORACLE_HOME%networkadmin y TNS_ADMIN Variable de entorno en cuenta. Bloqueos como si la documentación no fuera 100% correcta.

valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *