Instalación y prueba básica de conexión a una instancia de Informix a través de un driver JDBC de IBM - (Parte 1)

Conexión a través del producto “IBM Informix JDBC Driver”

El estándar JDBC (Java Database Connectivity) es una alternativa muy popular para su en uso servidores de aplicaciones, como IBM Websphere Application Server, así como en ambientes que requieren alta portabilidad entre diferentes plataformas, gracias a la independencia de la plataforma que proporciona Java y que, a su vez, requieren conectarse a diferentes bases de datos. El presente artículo está hecho para aquellas personas que necesitan instalar un driver JDBC de IBM para Informix y que necesitan verificar que la instalación sea correcta realizando una prueba de conexión básica a la base de datos. IBM cuenta con dos manejadores JDBC para conectarse a Informix: IBM Informix JDBC Driver y otro incluido en el producto IBM Data Server Driver Package. En esta primera parte instalaremos y probaremos el IBM Informix JDBC Driver, dejando la instalación y prueba del manejador JDBC incluido en el producto IBM Data Server Driver Package para la segunda parte de esta serie.

Aquiles Loranca Sánchez, . Accelerated Value Program Engineer, Certified IT Specialist, IBM México

Aquiles LorancaAquiles 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.



27-11-2013

Introducción

La aparición de Java a mediados de los años 90 y su gran portabilidad gracias a su concepto de máquina virtual, lo ha hecho particularmente atractivo para aplicaciones que desean ser implementadas en diferentes plataformas, en entornos integrados de desarrollo, como Eclipse, así como en la programación de aplicaciones sobre plataformas web, como es el caso de servidores de aplicaciones, tales como IBM Websphere Application Server.

Este tipo de aplicaciones, en no pocas ocasiones, requieren acceder a uno, o incluso, a varios motores de bases de datos. Para ello el estándar JDBC (Java Database Connectivity) ofrece una interfaz para conectarse a diferentes bases de datos, entre ellas Informix.

IBM cuenta con dos manejadores JDBC diferentes para conectarse a Informix, el primero es nativo de Informix y se conoce como IBM Informix JDBC Driver, y el segundo forma parte del producto IBM Data Server Driver Package, que es un conjunto de manejadores, que pueden conectarse a diferentes productos de la familia de motores de base de datos de IBM, entre los que se encuentran Informix y DB2 para Linux, Unix y Windows, por mencionar algunos.

En este tutorial instalaremos el producto IBM Informix JDBC Driver desde cero, y haremos una prueba de conexión básica a una base de datos Informix, dejando la instalación y prueba del manejador JDBC incluido en el producto IBM Data Server Driver Package para una segunda parte.


Obteniendo el Producto IBM Informix JDBC Driver

Como otros productos de IBM, el producto IBM Informix JDBC Driver puede obtenerse directamente desde el sitio IBM Passport Advantage, o desde el sitio IBM Support: Fix Central, cuyas liga incluyo al final de este tutorial. Si no posee un contrato de mantenimiento para poder obtener el producto, pero desea realizar el presente tutorial, puede bajar la versión Developer Edition desde el sitio “Informix trials and demos” cuya liga también incluiré al final de este tutorial, en el entendido de que la versión Developer Edition no deberá ser usada en ambientes productivos. La versión del producto que estaremos usando para este tutorial será Informix JDBC Driver 4.10.JC2DE (Developer Edition).

Asimismo, cabe mencionar que el producto Informix JDBC Driver se puede instalar como parte del motor de base datos Informix; sin embargo, en este artículo partiremos de la premisa que se instalará el producto en un ambiente donde no se tiene instalado el motor de base de datos.


¿Qué es un manejador JDBC y cómo se conecta un programa escrito en Java al motor de base de datos Informix?

En esencia un manejador JDBC es un conjunto de librerías para Java que le permite la conexión a un motor de base de datos determinado a través de un API (Application Programming Interface), este a su vez, le permite a los programas escritos en Java poder conectarse a un motor de base de datos en particular y ejecutar operaciones escritas en el lenguaje SQL (Structured Query Language).

El manejador Informix JDBC Driver es del Tipo 4. Para entender mejor a qué nos referimos, vale la pena resumir un poco los cuatro tipos de manejadores JDBC que maneja el estándar JDBC:

Manejadores del Tipo 1 (Puente JDBC-ODBC, más el manejador ODBC):

Este tipo de manejadores funcionan como un “puente” enviando las llamadas del API de JDBC a un manejador ODBC (Open Database Connectivity) siendo este último el que se conecta a la base de datos, requiriendo que las librerías del manejador ODBC estén instaladas en el equipo en cuestión y que normalmente son específicas de la plataforma.

Manejadores del Tipo 2 (API Nativo, manejador parcialmente escrito en Java):

Este tipo de manejadores requiere de un API nativo para el motor de base de datos, con solo una porción del componente escrita en Java. De forma similar al manejador del tipo 1, este manejador convierte las llamadas del API del JDBC a un API específico del motor de base de datos, lo que requiere que los manejadores nativos del API para el motor de base de datos en cuestión también estén instalados en equipo donde se tenga instalado el manejador JDBC, con todo lo que ello implica.

Manejadores del Tipo 3 (Manejador escrito en Java, pero requiere de una capa intermedia):

Si bien este tipo de manejadores están totalmente escritos en Java, requieren de una capa intermedia, a través de un protocolo independiente al motor de base de datos, y esta capa se encarga de traducir las llamadas de API de JDBC al protocolo específico de comunicación del motor de base de datos en cuestión.

Manejadores del Tipo 4 (Completamente escrito en Java, se conecta directamente a la base de datos):

Este tipo de controladores se conectan directamente al motor de base de datos, sin necesidad de una capa intermedia.

Las principales bondades de contar con un manejador de tipo 4 son la simplicidad de la implementación, al no requerir de componentes adicionales, dependientes de cada plataforma, así como el rendimiento que da el no tener capas intermedias adicionales entre la JVM (Java Virtual Machine) y el protocolo de comunicación de la base de datos.

Las comunicaciones entre el programa Java y el motor de base de datos la haremos mediante una cadena de conexión, si bien es común que varios componentes de software (manejadores de aplicaciones por ejemplo) utilicen un repositorio de conexión de Java, conocido como JNDI (Java Naming and Directory Interface), no será tema de estudio en el presente tutorial.

La biblioteca básica del manejador de JDBC de Informix es el archivo “ifxjdbc.jar”, que incluye las interfases para el manejo del API de JDBC, con sus respectivas clases y métodos.

Si bien existen otras bibliotecas adicionales en el producto, tales como: “ifxjdbcx.jar”, que permite el manejo del arquitecturas XA, así como manejo de Data Sources y agrupación (poolling) de conexiones; “ifxlang.jar”, que contiene el texto de los mensajes soportado por el manejador JDBC en diferentes idiomas; “ifxsqlj.jar”, que incluye las clases para la ejecución de programas usando SQLJ; e “ifxtools.jar” que incluye varias herramientas, no serán objeto de estudio en este tutorial.

Para nuestra prueba necesitaremos de una JVM certificada para trabajar con el manejador JDBC de Informix, el manejador JDBC de Informix, y el programa SimpleConnection.class, estos dos últimos incluidos en el producto Informix JDBC Driver. La instalación de la JVM no forma parte del presente tutorial, si bien, más adelante, mostraremos como revisar que versiones del JDK (Java Devolpment Kit) y del JRE (Java Runtime Environment) son requeridas para trabajar con el manejador JDBC de Informix.

Para este tutorial usaremos la versión 4.10.JC2DE del producto Informix JDBC Driver, en una máquina con arquitectura x86 a 32 bits, sobre Ubuntu 10.04 LTS, a la que llamaremos “IFXLAB0”. Conectándonos a una instancia implementada con Informix 12.10.UC1DE, en otro equipo al que llamaremos “IFXVA”. La prueba de conexión desde el equipo IFXLAB0 la haremos usando el usuario informix, con “korn shell” como intérprete de comandos, si bien la prueba puede ser realizada con cualquier usuario del sistema y con cualquier shell, la ambientación de variables de ambientes usadas en este tutorial, utilizarán las instrucciones y modos del intérprete de comandos “korn shell”. Asimismo, se incluyen algunas observaciones para la plataforma Windows, en caso de que necesite instalar y configurar el manejador JDBC de Informix en esta plataforma.

El nombre del servidor de base de datos informix al que nos conectaremos se llamará “demo_on”, y estará escuchando al puerto 9088, de la IP-Address 192.168.19.132, vía TCP-IP, con un NETTYPE de Informix en el servidor del tipo “onsoctcp”. Estos datos son clave para la configuración de la conexión hacia la instancia remota de Informix, en un ambiente real esta información puede ser proveída por el administrador de la base de datos Informix a la que desea conectarse.

Nota importante: El manejador JDBC incluido en el producto Informix JDBC Driver, no soporta conexiones vía el protocolo DRDA (Distributed Relational Database Architecture) en Informix. En estos tipos de conexión el NETTYPE en el servidor Informix es del tipo: driiitcp, donde ‘iii’ es el tipo de interfase TCP usada, y puede ser “soc” o “tli” dependiendo de la plataforma. De intentar acceder a un puerto del tipo DRDA en Informix a través de este manejador JDBC, obtendrá un mensaje de error de Java. El manejador JDBC para Informix incluido en el producto IBM Data Server Driver Package utiliza las conexiones vía el protocolo DRDA, y será revisado en la segunda parte de esta serie de tutoriales.

Considerando lo anterior, nuestro esquema básico para la conexión vía JDBC usando el producto “Informix JDBC Driver” quedaría como sigue:

Figura 1.

A continuación instalaremos el producto “Informix JDBC Driver” desde cero.


Instalando el producto “IBM Informix JDBC Driver”

Como en otros productos de IBM, antes de proceder a la instalación es importante verificar los prerrequisitos del producto, las versiones soportadas de sistema operativo, así como consideraciones específicas para cada sistema operativo, como puede ser versiones de las bibliotecas, o si se necesitan algunos paquetes especiales. Una característica particularmente benéfica de tratar con un producto hecho totalmente en Java, es que es independiente de la plataforma, mientras se ejecute en una versión soportada de la JVM (Java Virtual Machine). Los prerrequisitos específicos para la versión 4.10.JC2 del producto Informix JDBC Driver, así como las versiones del motor de base de datos Informix a las que se puede conectar usando este producto, se encuentran en la página: Release notes for IBM Informix JDBC Driver, 4.10.JC2, cuya liga se puede encontrar al final de este tutorial. Esta misma información puede encontrarse en la documentación del producto, que son los archivos que se encuentran en el directorio “doc” de nuestro producto descomprimido, si bien es recomendable leerlos todos, para nuestro ejemplo es especialmente importante que se revise el archivo “jdbcrel.htm”. Por favor tome unos minutos para revisar esta información antes de continuar con este tutorial, independientemente de que tenga o no experiencia con la instalación de los productos Informix.

En la documentación podemos observar que necesitamos tener instalado el software: Java Development Kit (JDK) versión 1.5 o superior, así como el software Java Runtime Environment (JRE) versión 1.5 o superior para usar el producto. En mi caso tengo instalado el producto IBM Java SDK, que es el JDK de IBM que se distribuye con algunos productos de IBM. La versión utilizada es la versión 7.0. Si desea compilar programas en Java, o si es prerrequisito de productos que vayan a usar el manejador JDBC de Informix, necesitará instalar el software JDK completo, si no desea compilar programas en Java, sino solo correr programas compilados en Java para conectarse a la base de datos, bastará con tener instalado el software JRE, no obstante, si no está seguro de la que la versión con la que se haya compilado el programa Java sea compatible con la JVM usada, puede considerar la posibilidad de recompilarlo con la versión que corresponda a la JVM en cuestión.

Haremos la instalación del manejador JDBC como el usuario root (en el caso de Windows, se deberá instalar con un usuario que tenga permisos de administrador). Las pruebas de conectividad las haremos con el usuario “informix”, mismo que pertenecerá al grupo informix. No obstante, si no va a instalar ningún producto de la familia Informix adicional al Informix JDBC Driver, no es necesario crear el usuario.

Conectándonos como root, transferiremos el archivo con el producto a un directorio de trabajo, que puede ser /tmp, tomando en cuenta que, en muchos sistemas operativos, /tmp es volátil, es decir, que su contenido es depurado cuando se da de baja el equipo. En nuestro caso el archivo de producto se llama: “JDBC.4.10.JC2DE.tar”.

Como root, lo descomprimimos usando el comando (En el caso de Windows necesitará una utilería que pueda extraer el contenido de archivos “.tar”):

tar -xvf clientsdk.3.70.UC5DE.LINUX.tar

Dentro de los archivos y directorios extraídos, está el directorio con nombre “doc”, mencionado anteriormente, le recomiendo revisarlo.

El producto puede ser instalado en modo de texto (“console”), en modo gráfico (“gui”) o en modo silencioso (“silent”), dado que no siempre se posee de un entrono gráfico para la instalación en Unix, haremos la instalación en modo de texto, para ello bastará con ejecutar el siguiente, comando como root, desde el directorio donde descomprimimos el producto (El mismo comando funciona desde una ventana de DOS en Windows):

java -jar ./setup.jar -i console

Lo primero que tendremos que decidir es el idioma usado para la instalación del producto, dejaremos el valor por omisión y oprimimos la tecla [ENTER] para continuar.

La siguiente ventana mostrará la versión del manejador JDBC de Informix, usamos la tecla [ENTER] para continuar.

La siguiente pantalla mostrará los términos de la licencia, use la tecla [ENTER] para avanzar en el texto de la misma, y una vez que la haya leído teclee “1” y [ENTER] para aceptarlos.

La siguiente pantalla solicitará la ruta donde queremos instalar el producto, el valor por omisión para esta plataforma es Linux es “/opt/IBM/Informix_JDBC_Driver”, y para Windows es “C:\Program Files\IBM\Informix_JDBC_Driver”, no obstante usted puede instalarlo en otro directorio si así lo desea (en caso de instalarlo en Windows a 64 bits recomiendo instalarlo en un directorio diferente, por ejemplo: C:\IBM\Informix_JDBC_Driver, lo anterior por que en ambientes Windows a 64 bits hay dos versiones del directorio “Program Files”: “C:\Program Files” para aplicaciones de 64-bits, y “C:\Program Files (x86)”, para aplicaciones de 32-bits ) oprimimos la tecla [ENTER] para aceptar el directorio por omisión.

Nos mostrará el nombre del producto a instalar, así como la ruta donde será instalado, oprimimos la tecla [ENTER] para proceder con la instalación del mismo.

Nos mostrará el grado de avance en la instalación del producto Informix JDBC Driver, una vez terminada la instalación nos mostrará el siguiente mensaje:

Figura 2.

Oprimimos la tecla [ENTER] para salir del script de instalación y habremos terminado con esta fase.


Probando la conexión a la base de datos

Como mencionamos anteriormente en este tutorial, para hacer la prueba de conexión básica, solo necesitamos la JVM certificada, la librería, y un programa que se conecte a la instancia.

Para hacer la prueba de conexión nos conectaremos como el usuario informix, y configuraremos algunas variables de ambiente:

La primera es asegurarnos de incluir la ruta donde está el archivo “ifxjdbc.jar” en la variable de ambiente CLASSPATH, este archivo se encuentra bajo el directorio “lib” de la ruta donde instalamos el producto, así mismo es conveniente incluir el directorio “.”, tanto en Unix como en Windows, para no tener que incluir todo la ruta al archivo “SimpleConnection.class” hacer la prueba de conexión estando ubicados en el directorio donde éste se encuentra:

export CLASSPATH=/opt/IBM/Informix_JDBC_Driver/lib/ifxjdbc.jar:.:$CLASSPATH

En el caso de Windows la variable de ambiente será:

set CLASSPATH=C:\IBM\Informix_JDBC_Driver\lib\ifxjdbc.jar;.;%CLASSPATH%

Es importante recordar que el separador de directorios dentro de la variable de ambiente CLASSPATH para Unix es “:” (“dos puntos”), mientras que en Windows es “;” (punto y coma).

Si bien no es necesario, este es un buen momento para asegurarnos de que podamos acceder al manejador de JDBC de Informix instalado y, aprovechando el medio, revisar su respectiva versión, través del siguiente comando:

java com.informix.jdbc.Version

La salida debe devolver la versión del manejador de JDBC Driver invocado:

IBM Informix JDBC Driver Version 4.10.JC2DE

De presentar algún error, asegúrese de que la ruta incluida en la variable de ambiente CLASSPATH sea correcta, que el archivo exista, o que tenga bien configuradas sus variables de ambiente para acceder a su JVM.

Por su comodidad, en Unix, puede incluir esta variables de ambiente en su archivo .profile, a fin de prescindir de la necesidad de configurarla cada vez que nos firmemos en el equipo IFXLAB0.

A continuación nos trasladaremos al directorio “demo/basic” debajo del directorio donde instalamos el manejador JDBC, en este encontrará varios programas de demostración:

cd /opt/IBM/Informix_JDBC_Driver/demo/basic

En Windows:

cd C:\IBM\Informix_JDBC_Driver\demo\basic

En este directorio se encuentran tanto los programas fuente, con extensión “.java”; como los programas objeto compilados, con extensión “.class”. El programa que usaremos para probar la conexión es el programa SimpleConnection.class, y utiliza una cadena de conexión básica para probar la conexión, que le proporcionaremos como parámetro. Dicha cadena tiene la siguiente estructura:

'jdbc:informix-sqli://equipo:puerto:informixserver=servidor;user=usuario;password=contraseña'

Donde equipo es el nombre o IP-Address del equipo donde radica nuestra base de datos (192.168.19.132), puertoes el puerto tcp-ip al que está escuchando el servidor de base de datos al que queremos conectarnos (9088), servidores el nombre del servidor de base de datos informix, o alias del mismo en en su caso, al que Informix está escuchando en el puerto y equipo específico (demo_on), y el usuario y contraseña, son el nombre de usuario y contraseña que deseamos usar para conectarnos en el equipo remoto, para fines de prueba la contraseña de mi usuario ‘informix’ será ‘informix’

En este sentido es de mencionar que la cadena de conexión y sus diferentes elementos (también conocidos como ‘propiedades’), son específicas del manejador JDBC de Informix, y muchos de ellos son opcionales, o se usan en condiciones específicas, sin que sean tema de estudio del presente artículo. Asimismo, es de mencionar que, al ser la cadena de conexión una cadena de texto, se puede manipular dicha cadena en el programa Java para solicitar el usuario y el password en tiempo real, antes de usar esa cadena de conexión en el código Java para acceder a la base de datos.

java SimpleConnection “jdbc:informix-sqli://192.168.19.132:9088:informixserver=demo_on;user=informix;password=informix”

A continuación muestro la salida exitosa de este programa tanto en Linux como en Windows:

Figura 3.
Figura 4.

Conclusión

Al final de este tutorial hemos mostrado como instalar el manejador JDBC para Informix, contenido en el producto IBM Informix JDBC Driver, así como probar tanto el acceso al manejador JDBC, como el acceso a una base de datos Informix a través del mismo. Con la intención de ser utilidad a todos aquellos que deseen instalar este manejador JDBC y probar su correcta instalación y comunicación, ya sea para ser usado posteriormente en desarrollos propios, o para su uso con otras herramientas y productos tanto de IBM como de terceros.


Referencias

Para obtener el producto IBM Informix JDBC Driver y ya cuenta con contrato de soporte para este producto, puede hacerlo desde nuestro site:IBM Passport Advantage o nuestro site:IBM Support: Fix Central

O si lo prefiere, puede obtener la edición Developer del producto IBM Informix JDBC Driver en nuestro site:Informix trials and demos

Para conocer los prerrequisitos de la versión, le recomendamos revisar el siguiente URL:Release notes for IBM Informix JDBC Driver, 4.10.JC2

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

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. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



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.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

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

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Information mgmt
ArticleID=954831
ArticleTitle=Instalación y prueba básica de conexión a una instancia de Informix a través de un driver JDBC de IBM - (Parte 1)
publish-date=11272013