Notas del release


6.8 Acceso a fuentes de datos Informix (capítulo nuevo)

Antes de añadir fuentes de datos Informix a un servidor federado de DB2, tiene que instalar y configurar el software de Informix Client SDK en el servidor federado. Consulte los procedimientos de instalación de la documentación que viene con el software de bases de datos Informix para ver detalles específicos sobre cómo instalar el software de Client SDK. Formando parte de la instalación, asegúrese de incluir las bibliotecas de Informix Client SDK.

Para configurar el servidor federado para que acceda a datos almacenados en fuentes de datos Informix, tiene que:

  1. Instalar DB2 Relational Connect. Consulte 6.3.3, Instalación de DB2 Relational Connect.
  2. Aplicar el FixPak de DB2 más reciente.
  3. Añadir fuentes de datos Informix al servidor federado.

Este capítulo trata el paso 3.

Las instrucciones contenidas en este capítulo se aplican a los sistemas operativos AIX, Entorno operativo Solaris y HP-UX. Si hay diferencias específicas para cada sistema operativo, se indican.

6.8.1 Adición de fuentes de datos Informix a un servidor federado

Para añadir una fuente de datos Informix a un servidor federado, tiene que:

  1. Establecer las variables de entorno y actualizar el registro de perfiles.
  2. Enlazar DB2 con el software de cliente Informix.
  3. Reciclar la instancia de DB2.
  4. Crear el archivo sqlhosts de Informix.
  5. Crear el reiniciador.
  6. Opcional: Establecer la variable de entorno DB2_DJ_COMM.
  7. Crear un servidor.
  8. Crear una correlación de usuario.
  9. Crear apodos para tablas, vistas y sinónimos de Informix.

Estos pasos se explican en detalle en esta sección.

6.8.1.1 Paso 1: Establecer las variables de entorno y actualizar el registro de perfiles

Establezca las variables de entorno de la fuente de datos modificando el archivo db2dj.ini y emitiendo el mandato db2set. El archivo db2dj.ini contiene información de configuración sobre el software de cliente Informix instalado en el servidor federado. El mandato db2set actualiza el registro del perfil de DB2 con sus valores.

En un sistema de bases de datos particionado, puede utilizar un solo archivo db2dj.ini para todos los nodos de una determinada instancia o puede utilizar un archivo db2dj.ini exclusivo para uno o más nodos de una instancia determinada. Un sistema de bases de datos no particionado sólo puede tener un archivo db2dj.ini por instancia.

Para establecer las variables de entorno:

  1. Edite el archivo db2dj.ini situado en el directorio sqllib/cfg y establezca las siguientes variables de entorno:
    Nota:
    Puede crear este archivo usted mismo si aún no está en el sistema.

    INFORMIXDIR

    Establezca la variable de entorno INFORMIXDIR con la vía de acceso al directorio en que está instalado el software de Informix Client SDK; por ejemplo:

    INFORMIXDIR=/informix/csdk
    

    INFORMIXSERVER

    Esta variable identifica el nombre del servidor Informix por omisión.

    INFORMIXSERVER=inf93
     
    

    Nota: Aunque el reiniciador de Informix no utiliza el valor de esta variable, el cliente Informix necesita que ésta se establezca. El reiniciador utiliza el valor de la opción de servidor node, que especifica el servidor de bases de datos Informix al que se desea acceder.

    INFORMIXSQLHOSTS

    Si está utilizando la vía de acceso por omisión para el archivo sqlhosts de Informix ($INFORMIXDIR/etc/sqlhosts), no es necesario que establezca esta variable. Sin embargo, si utiliza para el archivo sqlhosts de Informix una vía de acceso distinta a la predeterminada, tiene que establecer esta variable con el nombre de vía de acceso completa del archivo sqlhosts de Informix. Por ejemplo:

    INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts
     
    
  2. Actualice el archivo .profile de la instancia de DB2 con la variable de entorno de Informix. Puede hacerlo emitiendo los mandatos siguientes para establecer y exportar cada una de las variables:
    PATH=$INFORMIXDIR/bin:$PATH
    export PATH
     
    INFORMIXDIR=<vía_cliente_informix>
    export INFORMIXDIR
    

    donde vía_cliente_informix es la vía de acceso del directorio en que está instalado el cliente Informix en el servidor federado. Si un nombre de la vía de acceso contiene un espacio en blanco, utilice comillas (") que delimiten la vía de acceso.

  3. Ejecute la instancia de DB2 .profile entrando:
    . .profile
    
  4. Emita el mandato db2set para actualizar el registro de perfiles de DB2 con los cambios. La sintaxis de este mandato, db2set, depende de la estructura del sistema de bases de datos. Este paso sólo es necesario si utiliza el archivo db2dj.ini en cualquiera de las siguientes estructuras de sistemas de bases de datos:

    Si utiliza el archivo db2dj.ini en un sistema de bases de datos no particionado o si desea que el archivo db2dj.ini se aplique sólo al nodo actual, emita:

    db2set DB2_DJ_INI=sqllib/cfg/db2dj.ini
    
    Nota:
    Los nombres de vías de acceso de esta sección deben estar totalmente calificados. Por ejemplo, mi_inicio/mi_instancia/sqllib/cfg/db2dj.ini

    Si está utilizando el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen a todos los nodos de esta instancia, emita:

    db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
    

    Si utiliza el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen a un nodo específico, emita:

    db2set -i INSTANCEX 3 DB2_DJ_INI=sqllib/cfg/node3.ini 
    

    donde:

    INSTANCEX
    Es el nombre de la instancia.

    3
    Es el número de nodo listado en el archivo db2nodes.cfg.

    node3.ini
    Es la versión modificada y con el nombre cambiado del archivo db2dj.ini.

6.8.1.2 Paso 2: Enlazar con el software de cliente Informix de DB2

Para habilitar el acceso a fuentes de datos Informix, el servidor federado de DB2 debe estar editado con enlace a las bibliotecas del cliente. El proceso de editar con enlace crea un reiniciador para cada fuente de datos con la que se va a comunicar el servidor federado. Cuando se ejecuta el script djxlinkInformix, se crea la biblioteca del reiniciador de Informix. Para emitir el script djxlinkInformix, escriba:

djxlinkInformix
Nota:

El script djxlinkInformix sólo crea la biblioteca del reiniciador de Informix. Existe otro script, el script djxlink, que intenta crear una biblioteca de reiniciador para cada fuente de datos soportada por DB2 Universal Database (Oracle, Microsoft SQL Server, etc.). Si sólo dispone del software de cliente para algunas de las fuentes de datos instaladas, cuando emita el script djxlink recibirá un mensaje de error para cada una de las fuentes de datos que falten.

Necesita la autorización del Administrador de sistemas UNIX (root) a fin de ejecutar los scripts djxlinkInformix y djxlink.

Los scripts djxlinkInformix y djxlink graban mensajes detallados de error y de aviso en un archivo específico, que depende del sistema operativo. Por ejemplo, en AIX, el script djxlinkInformix graba en /usr/lpp/db2_07_01/lib/djxlinkInformix.out y el script djxlink graba en /usr/lpp/db2_07_01/lib/djxlink.out.

Los scripts djxlinkInformix y djxlink crean la biblioteca del reiniciador en un directorio específico, que depende del sistema operativo. Por ejemplo, en AIX, la biblioteca del reiniciador libinformix.a se crea en el directorio /usr/lpp/db2_07_01/lib.

Compruebe los permisos de la biblioteca del reiniciador libinformix.a después de crearla para asegurarse de que los propietarios de instancias de DB2 la pueden leer y ejecutar. Si los propietarios de instancias de DB2 no se encuentran en el grupo System, los permisos de la biblioteca del reiniciador libinformix.a tendrán que ser: -rwxr-xr-x root system...libinformix.a.

6.8.1.3 Paso 3: Reciclar la instancia de DB2

Para asegurarse de que las variables de entorno están definidas en el programa, recicle la instancia de DB2. Cuando recicla la instancia, renueva la instancia de DB2 para que acepte los cambios realizados.

Emita los siguientes mandatos para reciclar la instancia de DB2:

En servidores DB2 para AIX, Entorno operativo Solaris y HP-UX:
db2stop
db2start

6.8.1.4 Paso 4: Crear el archivo sqlhosts de Informix

El archivo especifica la ubicación de cada servidor de bases de datos Informix y el tipo de conexión (protocolo) para el servidor de bases de datos. Existen varias maneras de crear este archivo. Puede copiarlo de otro sistema que tenga Informix Connect o Informix Client SDK conectado a un servidor Informix. También puede configurar Informix Client SDK en el servidor DB2 para conectarse a un servidor Informix y, así, crear el archivo sqlhosts.

Una vez copiado o creado el archivo sqlhosts, el propietario de instancias de DB2 deberá utilizar dbaccess en Informix (si está en el servidor DB2) a fin de conectarse al servidor Informix y efectuar consultas en él. Con esto, se establecerá que Informix Client SDK pueda conectarse al servidor Informix antes de que se intente configurar DB2 Relational Connect para trabajar con Informix Client SDK.

Para obtener más información sobre cómo definir este archivo, consulte el manual de Informix Administrators Guide for Informix Dynamic Server.

Aviso:

Si no define el nombre del servidor de bases de datos Informix en el archivo sqlhosts, cuando realice una operación que requiera conexión con el servidor de bases de datos Informix recibirá un error.

6.8.1.5 Paso 5: Crear el reiniciador

Utilice la sentencia CREATE WRAPPER para especificar el reiniciador que se utilizará para acceder a fuentes de datos Informix. Los reiniciadores son mecanismos que utilizan los servidores federados para comunicarse con fuentes de datos y recuperar datos de las mismas. El siguiente ejemplo muestra una sentencia CREATE WRAPPER:

CREATE WRAPPER informix

donde informix es el nombre_reiniciador; informix es el nombre de reiniciador por omisión utilizado con el software de Informix Client SDK.

Puede sustituir el nombre de reiniciador por omisión por el nombre que elija. Sin embargo, si lo hace, debe también incluir el parámetro LIBRARY y el nombre de la biblioteca del reiniciador correspondiente al servidor federado en la sentencia CREATE WRAPPER. Consulte la sentencia CREATE WRAPPER en el manual Consulta de SQL de DB2 para obtener más información sobre nombres de bibliotecas de reiniciadores.

Los nombres de bibliotecas de reiniciadores para Informix son:

6.8.1.6 Paso 6: Opcional: Establecer la variable de entorno DB2_DJ_COMM

Para mejorar el rendimiento cuando se acceda a la fuente de datos Informix, establezca la variable de entorno DB2_DJ_COMM en el servidor federado. Esta variable determina si se carga un reiniciador cuando se inicializa el servidor federado. Establezca la variable de entorno DB2_DJ_COMM de modo que incluya la biblioteca del reiniciador que corresponde al reiniciador que ha especificado en el paso anterior. Si está utilizando las interfaces de línea de mandatos del shell Korn o del shell Bourne, utilice los mandatos de exportación siguientes:

En servidores DB2 para AIX:
DB2_DJ_COMM='libinformix.a'
export DB2_DJ_COMM

En servidores DB2 para el Entorno operativo Solaris:
DB2_DJ_COMM='libinformix.so'
export DB2_DJ_COMM

En servidores DB2 para HP-UX:
DB2_DJ_COMM='libinformix.sl'
export DB2_DJ_COMM

Asegúrese de que no hay espacios junto al signo igual (=).

Si está utilizando la interfaz de línea de mandatos del shell C, establezca las variables de entorno mediante los mandatos siguientes:

setenv
DB2_DJ_COMM 'libinformix.a' (servidores DB2 para AIX)
setenv DB2_DJ_COMM 'libinformix.so' (servidores DB2 para el entorno Solaris)
setenv DB2_DJ_COMM 'libinformix.sl' (servidores DB2 para HP--UX)

Consulte el manual Consulta de SQL de DB2 para obtener más información sobre nombres de bibliotecas de reiniciadores y sobre la variable de entorno DB2_DJ_COMM.

6.8.1.7 Paso 7: Crear el servidor

Utilice la sentencia CREATE SERVER para definir cada servidor Informix a cuyas fuentes de datos desea acceder. La sintaxis de esta sentencia es:

CREATE SERVER nombre_servidor TYPE tipo_servidor VERSION versión_servidor
	WRAPPER nombre_reiniciador
OPTIONS (NODE 'nombre_nodo', DBNAME 'nombre_basedatos')

donde:

nombre_servidor
Es un nombre que el usuario asigna al servidor de bases de datos Informix. Este nombre debe ser exclusivo y no un duplicado de otro nombre_servidor definido en la base de datos federada. El nombre_servidor no debe ser el mismo nombre de cualquier espacio de tablas de la base de datos federada.

TYPE tipo_servidor
Especifica el tipo de fuente de datos cuyo acceso está configurando.
Nota:
Para el reiniciador de Informix, el tipo_servidor debe ser informix.

VERSION versión_servidor
Es la versión del servidor de bases de datos Informix al que desea acceder. Las versiones de Informix soportadas son 5, 7, 8 y 9.

WRAPPER nombre_reiniciador
Es el nombre que ha especificado en la sentencia CREATE WRAPPER.

NODE 'nombre_nodo'
Es el nombre del nodo en que reside nombre_servidor. El nombre_nodo se debe definir en el archivo sqlhosts de Informix (vea el paso 4). Aunque el nombre_nodo se especifica como opción en la sentencia CREATE SERVER, es necesario para las fuentes de datos Informix. Este valor es sensible a mayúsculas y minúsculas. Consulte el manual Consulta de SQL de DB2 para obtener información sobre opciones adicionales.

DBNAME 'nombre_basedatos'
Es el nombre de la base de datos Informix a la que desea acceder.

A continuación se muestra un ejemplo de la sentencia CREATE SERVER:

CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix 
OPTIONS (NODE 'abc', DBNAME 'ventas')

Las opciones de servidor FOLD_ID y FOLD_PW afectan al hecho de que el reiniciador convierta o no el ID de usuario y la contraseña en mayúsculas o minúsculas, antes de enviarlos a Informix. A continuación se muestra un ejemplo de la sentencia CREATE SERVER con las opciones de servidor FOLD_ID y FOLD_PW:

CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix 
OPTIONS (NODE 'abc', DBNAME 'ventas', FOLD_ID 'U', FOLD_PW 'U')

6.8.1.8 Paso 8: Crear una correlación de usuario

Si un ID de usuario o contraseña del servidor federado de DB2 no coinciden con el ID de usuario o contraseña de una fuente de datos Informix, utilice la sentencia CREATE USER MAPPING para correlacionar el ID de usuario local con el ID de usuario y la contraseña definidos en la fuente de datos Informix; por ejemplo:

CREATE USER MAPPING FOR idsuario_local SERVER nombre_servidor
OPTIONS (REMOTE_AUTHID 'idusuario_remoto', REMOTE_PASSWORD 'contraseña_remota')

donde:

idusuario_local
Es el ID de usuario local que está correlacionando con un ID de usuario definido en una fuente de datos Informix.

SERVER nombre_servidor
Es el nombre de la fuente de datos Informix definida en la sentencia CREATE SERVER.

REMOTE_AUTHID 'idusuario_remoto'
Es el ID de usuario del servidor de bases de datos Informix con el que está correlacionando idusuario_local. Este valor es sensible a las mayúsculas y minúsculas a no ser que la opción de servidor FOLD_ID se establezca en 'U' o 'L' en la sentencia CREATE SERVER.

REMOTE_PASSWORD 'contraseña_remota'
Es la contraseña asociada con idusuario_remoto. Este valor es sensible a las mayúsculas y minúsculas a no ser que la opción de servidor FOLD_PW se establezca en 'U' o 'L' en la sentencia CREATE SERVER.

A continuación se muestra un ejemplo de la sentencia CREATE USER MAPPING:

CREATE USER MAPPING FOR robert SERVER asia 
OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')

Puede utilizar el registro especial de DB2 USER para correlacionar el ID de autorización de la persona que emite la sentencia CREATE USER MAPPING con el ID de autorización de la fuente de datos especificado en la opción de usuario REMOTE_AUTHID. A continuación se muestra un ejemplo de la sentencia CREATE USER MAPPING que incluye el registro especial USER:

CREATE USER MAPPING FOR USER SERVER asia 
OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')

Consulte el manual Consulta de SQL de DB2 para obtener más información sobre opciones adicionales.

6.8.1.9 Paso 9: Crear apodos para tablas, vistas y sinónimos de Informix

Asigne un apodo a cada tabla, vista o sinónimo de Informix ubicados en su fuente de datos Informix. Los apodos pueden tener una longitud de 128 caracteres. Utilizará estos apodos cuando consulte la fuente de datos Informix. DB2 convertirá los nombres de servidor, esquema y tabla a mayúsculas a no ser que los encierre entre comillas ("). El siguiente ejemplo muestra una sentencia CREATE NICKNAME:

CREATE NICKNAME nickname FOR
			nombre_servidor."nombre_esquema_remoto"."nombre_tabla_remota" 

donde:

apodo
Es un apodo exclusivo que se utiliza para identificar la tabla, vista o sinónimo de Informix.

servidor."nombre_esquema_remoto"."nombre_tabla_remota"
Es un identificador de tres partes para el objeto remoto.

A continuación se muestra un ejemplo de la sentencia CREATE NICKNAME:

CREATE NICKNAME ventasjapón FOR asia."datosventas"."japón"

Repita este paso para cada tabla o vista para la que desee crear un apodo. Cuando cree el apodo, DB2 utilizará la conexión para consultar el catálogo de fuentes de datos. Esta consulta prueba la conexión con la fuente de datos. Si la conexión no funciona, recibirá un mensaje de error.

Consulte el manual Consulta de SQL de DB2 para obtener más información sobre la sentencia CREATE NICKNAME. Para obtener más información sobre apodos en general y para verificar correlaciones de tipos de datos, consulte el manual DB2 Administration Guide.


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]