Ir a contenido principal

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. Cierta información de su perfil de developerWorks será mostrada públicamente, pero usted puede editar la información en cualquier momento. Su nombre, apellido (a menos que usted elija ocultarlo) y nombre de usuario acompañarán el contenido que usted publique.

Toda la información enviada es segura.

  • Cerrar [x]

La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

Toda la información enviada es segura.

  • Cerrar [x]

Instalación, configuración y prueba del manejador ODBC de Informix en Unix

Aquiles Loranca Sánchez, . Accelerated Value Program Engineer, Certified IT Specialist, IBM
Aquiles Loranca
Aquiles Loranca es un entusiasta de los productos Informix. Inició su carrera en Informix en 1997 como Ingeniero de Soporte, se graduó como ingeniero Dial-Up en 1998 y actualmente es ingeniero del programa Accelerated Value para productos Informix y DB2 LUW en la organización de Servicios de Software Group. Desde 1996 es profesor en la Universidad La Salle campus Condesa, en la Ciudad de México. Así mismo es miembro del IIUG (Informix International User Group) y es el enlace de ventas para el grupo local de usuarios de Informix en la Ciudad de México desde 2002. Ha escrito varios DCFs para la organización de Soporte Técnico relacionados tanto con productos Informix como con productos DB2, y ha sido expositor en la serie de conferencias vía internet "Charla con los Expertos de Informix" en Español.

Resumen:  El uso del estándar ODBC (Open Database Connectivity), proporciona una flexibilidad importante, tanto a herramientas de desarrollo, como a desarrollos de terceros, que tienen que acceder a diversas bases de datos. Informix cuenta con sus propios manejadores ODBC (ODBC drivers) para poder acceder a los diferentes manejadores de base de datos Informix actualmente soportados. Si bien la instalación y uso de los manejadores ODBC de Informix bajo Windows, es relativamente común y cómoda, la instalación, configuración y prueba de los manejadores ODBC de Informix sobre Unix, suele ser un poco más compleja. Este artículo está pensado en los usuarios que no necesariamente tienen conocimientos de Informix , pero que necesitan hacer una instalación, configuración y prueba básica del manejador ODBC de Informix, así como aquellos usuarios de Informix que necesitan configurar un manejador ODBC sobre Unix por primera vez.

Fecha:  19-11-2012
Nivel:  Intermediaria

Comentario:  

Configuración del archivo sqlhosts

Como mencionamos en la introducción, en nuestro DSN (Data Source Name) incluiremos el nombre de nuestra instancia, pero nuestro manejador nativo de conexiones a Informix, necesitará convertir ese nombre de instancia en una IP-Address, un puerto, y un tipo de conexión. Esta función la hace a través del archivo sqlhosts.

El archivo sqlhosts es un archivo de texto, y se encuentra por omisión bajo el directorio etc, dentro de la ruta donde instalamos el producto, es decir bajo /opt/IBM/informix/etc en nuestro caso. El nombre y ubicación de este archivo puede ser modificado para nuestra sesión a través de la variable de ambiente $INFORMIXSQLHOSTS, pero para nuestro ejemplo usaremos el archivo por omisión. Dado que estaremos trabajando en el directorio donde está instalado el producto, es conveniente que usemos el usuario informix para editarlo, no obstante la configuración y uso de los manejadores ODBC de Informix no está limitado al usuario informix.

Si bien este tutorial no pretende describir a detalle la estructura y opciones del archivo sqlhosts, sino tan sólo la configuración básica del mismo para poder conectarnos a nuestro servidor de base de datos informix, es necesario revisar la estructura básica de una línea en el archivo sqlhosts.

Cada línea en el archivo sqlhosts, típicamente representa el nombre de la instancia a la que deseamos tener acceso, y cada una de esas líneas consta de cinco columnas.

  • La primera columna corresponde al nombre del servidor de base de datos, que en nuestro caso será “on_demo_tcp”
  • La segunda columna describe el NETTYPE, mismo que discutiremos un poco más adelante.
  • La tercera columna corresponde al equipo donde radica nuestra instancia, en esta columna podemos usar directamente la IP-Address del equipo usada por el servidor de base datos, o el nombre de equipo que corresponde a esa IP-Address, de optar por esta última opción, el nombre del equipo deberá estar dado de alta en el archivo /etc/hosts. Si bien se puede usar un servidor DNS (Domain Name System) para resolver la IP-Address por nombre de dicho equipo, hay que tener mucho cuidado de optar por esta alternativa, ya que cualquier problema en la resolución de la IP-Address, puede generar lentitud en la conexión inicial al servidor de base de datos, pudiendo incluso llevar a la aparición del error -908 (“Attempt to connect to database server (servername) failed.”). Para nuestro ejemplo usaremos la IP-Address directamente, y será “192.168.19.135”.
  • La cuarta columna corresponde al servicio TCP/IP que estará escuchando el servidor de base de datos. De manera similar a la tercera columna, podemos usar directamente el número de servicio, o el nombre del servicio, en cuyo caso este nombre deberá estar dado de alta en el archivo /etc/services, indicando en el mismo que se maneja dentro de la capa “tcp”. En nuestro caso el número de puerto es “27678” y lo usaremos directamente.
  • El quinto campo, es el campo de opciones, para este ejemplo lo dejaremos en blanco.

Los campos pueden estar separados por tabuladores, un espacio en blanco, o varios espacios en blanco. Hay que tener especial cuidado de que no capturar erróneamente secuencias de control, ya que esto es una de las principales causas de que la comunicación cliente-servidor falle.

La columna NETTYPE

El NETTYPE es una cadena de 8 caracteres que especifica el protocolo a usar en formato descrito en la figura 2:

Figura 2. Estructura básica de la cadena NETTYPE



Donde:

dd es el tipo de base de datos

iii es el tipo de interfase

ppp es el tipo de protocolo

Un error común es el copiar la línea correspondiente del sqlhosts del servidor de base de datos, directamente al archivo sqlhosts del equipo cliente. Menciono que es un error, por que si bien las subcadenas “dd” y “ppp” deben coincidir con aquellas usadas en el servidor de base de datos, el substring “iii” depende de las interfases soportadas por el equipo local. En nuestro caso, Linux soporta Sockets, por lo que el valor de iii será “soc”. De no usar el tipo de interfase correcta, obtendrá un error “-25507”. Para conocer que tipo de interfase es soportado por el sistema operativo local, recomiendo revisar la nota técnica: “Error ‘25507 The specified service name or protocol is unknown.’ when trying to access a remote database via TCP/IP protocol.”, cuya liga anexo al final de este tutorial.

Así mismo es de mencionar que la comunicación cliente-servidor entre dos máquinas distintas, sólo puede hacerse con protocolos de comunicación vía red, por ejemplo: la conexión a un nombre de servidor de base de datos Informix definido para hacer conexiones vía memoria compartida (onipcshm) no podrá ser accedido desde el equipo remoto vía ODBC.

Basado en lo anterior, añadamos la siguiente línea al archivo /opt/IBM/informix/etc/sqlhosts:

demo_on_tcp     onsoctcp        192.168.19.135  27678

El listado 1, muestra una salida de cómo lucirá nuestro archivo sqlhosts:


Listado 1. Listado del archivo sqlhosts a usar
             
            #**************************************************************************
            #
            #Licensed Material - Property Of IBM#
            #"Restricted Materials of IBM"
            #
            #IBM Informix Dynamic Server
            #Copyright IBM Corporation 1996, 2011
            #
            #Title:       sqlhosts.demo
            #Description: Default sqlhosts file for running demos.
            #
            #**************************************************************************
            #The connectivity information for each database server includes four fields
            #of required information and one optional field. You can also configure
            #database server groups.
            #
            #The format for the five fields of connectivity information for a database
            #server is one line in the UNIX  sqlhosts file, as follows:
            #
            
            #
            #dbservername is the name of a database server on the network.
            #
            #nettype is an 8-character string specifying the protocol in this format:
            #
            #ddiiippp
            #
            #where
            #dd  =  Database product [|ol|on|dr]
            #iii =  Interface type [ipc|soc|tli|sql]
            #ppp =  Protocol [imc|nmp|shm|spx|str|tcp|ssl|mux]
            #
            #hostname is the name of the computer where the database server resides.
            #
            #servicename is a service name entry from the services file.
            #
            #options in the fifth field:
            #
            
            #
            #For additional information on the parameters, see the IBM Informix
            #Administrator's Guide.
            #**************************************************************************
            #IANA (www.iana.org) assigned port number/service names for Informix:
            #sqlexec 9088/tcp
            #sqlexec-ssl 9089/tcp
            demo_on         onipcshm        on_hostname     on_servername
            demo_on_tcp     onsoctcp        192.168.19.135  27678
            

Ahora estamos listos para la configuración del DSN (Data Source Name).

3 de 8 | Anterior | Siguiente

Comentario



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Information mgmt
ArticleID=846256
TutorialTitle=Instalación, configuración y prueba del manejador ODBC de Informix en Unix
publish-date=11192012
author1-email=aloranca@mx1.ibm.com
author1-email-cc=