El TecnoBaúl de Kiquenet

Kiquenet boring stories

Archive for 11 enero 2012

Configuración de Oracle y TNSNames.ora

Posted by kiquenet en 11 enero 2012

Probar la conexión con un servidor Oracle lo más fácil es probar a través de ping, para ver si se llega a la máquina.

Pero el ping puede estar "capado" por seguridad para algunas máquinas.

Tendríamos que probarlo de alguna forma con el puerto de Oracle.

También podemos utilizar el comando TNSPING

TNSPING y la IP o nombre del servidor, local o remoto comprueba si hay conexión con dicha BBDD y si se conecta te mostrará lo siguiente:

Administrador>tnsping localhost

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 – Production on 21-FEB-2
011 13:41:26

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Archivos de parßmetros utilizados:
\oraclexe\app\oracle\product\10.2.0\server\network\admin\sqlnet.ora

Adaptador HOSTNAME utilizado para resolver el alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTO
COL=TCP)(HOST=127.0.0.1)(PORT=1521)))
Realizado correctamente (0 mseg)

Con esto, aparte de probar la conexión, vemos donde está el fichero sqlnet.ora, que parece que se pierde mucho ( esta última parte sacada de este blog http://sixservix.com/blog/david/2010/02/23/tnsnames/)

Finalmente, si la conexión no va habrá que buscar otras opciones:  un firewall qeu impide el paso, la BBDD no está levantada….no está conectado el cable….etc…

Uno de los problemas más habituales a la hora de trabajar con la base de datos Oracle y todos sus productos asociados es averiguar donde está el fichero TNSNAMES.ORA que configura los alias de las cadenas de conexión a distintas bases de datos. O, mas exactamente cuál -de los trescientos que se puede acabar teniendo en una máquina- es el fichero tnsnames.ora que configura realmente la conexión.

Afortunadamente, cuando se trabaja con java no se utilizan estos ficheros de configuración externos. Se pueden guardar y utilizar las adenas de conexión y usarlas directamente con el driver JDBC de tipo 4 de Oracle, pero  siguen siendo necesarios para usar cualquier cliente o programa que utilice el driver nativo de la base de datos como el PL/SQL Developer o el Toad.

La teoría dice que la variable de entorno TNS_ADMIN es la que configura la ruta donde se encuentra el fichero de configuración tnsnames.ora, pero la cosa se empieza a complicar cuando también se involucra a la variable de entorno PATH.

Cualquier instalación de un producto de Oracle -desde Weblogic a Discoverer- suele manipular la variable de entorno PATH, lo que puede provocar, desde el sorpresivo cambio de la versión de JDK de java que se esta utilizando… hasta el cambio de tnsnames.ora que configura el acceso a base de datos Oracle del sistema.

Para acabar de rematar la faena, Oracle utiliza una búsqueda jerárquica de ficheros de configuración y, además, esta jerarquía es distinta según el sistema operativo utilizado. Hasta puede llegar a utilizar configuración guardada en otra fichero de configuración: sqlnet.ora, lo que puede volver loco al programador mas duro.

Hay un truco para solucionar este problema y averiguar el fichero que configura las conexiones a Oracle: el comando tnsping.

El comando tnsping sirve, originalmente, para hacer un ping que compruebe la conexión a una base de datos remota mediante la siguiente sintaxis:

tnsping alias_de_base_de_datos

Pero, además, tnsping indica la ruta física del fichero de configuración y la propia instalación de Oracle hace que este disponible en el path del sistema, así, se puede utilizar para averiguar donde esta el fichero de configuración de las cadenas de conexión de nuestro sistema, haciendo ping a una base de datos existente o ficticia:

tnsping

Para .NET y ODP.NET, que hacen uso también de tnsnames.ora:

En algunos casos, reinstalar ODP.NET de nuevo.


http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx

http://monimandarina.blogspot.com/2011/02/conexion-oracle-y-tnsping.html

Etiquetas de Technorati: ,,,,

Posted in .NET, Oracle | 1 Comment »