Notas del release


6.6 Acceso a fuentes de datos Sybase

Antes de añadir fuentes de datos Sybase a un servidor federado, tiene que instalar y configurar el software Sybase Open Client en el servidor federado de DB2. Consulte los procedimientos de instalación de la documentación que viene con el software de bases de datos Sybase para ver detalles específicos sobre cómo instalar el software Open Client. Como parte de la instalación, asegúrese de que los procedimientos almacenados de catálogo de Sybase están instalados en el servidor Sybase y de que las bibliotecas de Sybase Open Client están instaladas en el servidor federado DB2.

Después de configurar la conexión del software de cliente con el servidor Sybase, pruebe la conexión utilizando una de las herramientas de Sybase. Utilice la herramienta isql para UNIX y la herramienta SQL Advantage para Windows.

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

  1. Instalar DB2 Relational Connect Versión 7.2. Consulte 6.3.3, Instalación de DB2 Relational Connect.
  2. Añadir fuentes de datos Sybase al servidor federado.
  3. Especificar las páginas de códigos de Sybase.

Este capítulo trata los pasos 2 y 3.

Las instrucciones de este capítulo se aplican a Windows NT, AIX y al entorno operativo Solaris. Si hay diferencias específicas para cada plataforma, se indican.

6.6.1 Adición de fuentes de datos Sybase a un servidor federado

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

  1. Establecer las variables de entorno y actualizar el registro de perfiles (sólo AIX y Solaris).
  2. Enlazar DB2 al software de cliente Sybase (sólo AIX y Solaris).
  3. Reciclar la instancia de DB2 (sólo AIX y Solaris).
  4. Crear y configurar un archivo de interfaces.
  5. Crear el reiniciador.
  6. Opcional: Establecer la variable de entorno DB2_DJ_COMM.
  7. Crear el servidor.
  8. Opcional: Establecer la opción de servidor CONNECTSTRING.
  9. Crear una correlación de usuario.
  10. Crear apodos para tablas y vistas.

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

6.6.1.1 Paso 1: Establecer las variables de entorno y actualizar el registro de perfiles (sólo AIX y Solaris)

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 del cliente Sybase 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 sqllib/cfg y establezca la siguiente variable de entorno:
     SYBASE="<directorio inicial sybase>"
     
    

    donde <directorio inicial sybase> es el directorio en el que está instalado el cliente Sybase.

  2. 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=$HOME/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 todos los nodos de esta instancia, emita:

    db2set -g DB2_DJ_INI=$HOME/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=$HOME/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.6.1.2 Paso 2: Enlazar DB2 al software de cliente Sybase (sólo AIX y el Entorno operativo Solaris)

Para habilitar el acceso a fuentes de datos Sybase, 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 ejecuta el script djxlink, crea la biblioteca del reiniciador. Para emitir el tipo de script djxlink:

djxlink

6.6.1.3 Paso 3: Reciclar la instancia de DB2 (sólo AIX y el Entorno operativo Solaris)

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 Windows NT:
NET STOP nombre_instancia
NET START nombre_instancia

En servidores DB2 para AIX y Solaris:
db2stop
db2start

6.6.1.4 Paso 4: Crear y configurar un archivo de interfaces

Para crear y configurar un archivo de interfaces, debe crear el archivo y dejarlo accesible.

  1. Utilice el programa de utilidad suministrado por Sybase para crear un archivo de interfaces que incluya los datos para todos los Sybase Open Servers a los que desea acceder. Consulte la documentación de instalación de Sybase para obtener más información sobre cómo utilizar este programa de utilidad.

    Windows NT suele llamar a este archivo sql.ini. Cambie el nombre del archivo que acaba de crear, sql.ini, por interfaces para que el archivo tenga el mismo nombre en todas las plataformas. Si elige no cambiar el nombre de sql.ini por interfaces, debe utilizar el parámetro IFILE o la opción CONNECTSTRING que se explica en el paso 8.

    En sistemas AIX y Solaris, este archivo se llama <inicio instancia>/sqllib/interfaces.

  2. Permita que DB2 pueda acceder al archivo de interfaces.

    En servidores DB2 para Windows NT:
    Coloque el archivo en el directorio %DB2PATH% de la instancia de DB2.

    En servidores DB2 para AIX y Solaris:
    Coloque el archivo en el directorio $HOME/sqllib de la instancia de DB2. Utilice el mandato ln para enlazar con el archivo desde el directorio $HOME/sqllib de la instancia de DB2. Por ejemplo:
    ln -s -f /home/sybase/interfaces  /home/db2djinst1/sqllib
    

6.6.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 Sybase. Los reiniciadores son mecanismos que utilizan los servidores federados para comunicarse con fuentes de datos y recuperar datos de las mismas. DB2 incluye dos reiniciadores para Sybase, CTLIB y DBLIB. El siguiente ejemplo muestra una sentencia CREATE WRAPPER:

CREATE WRAPPER CTLIB 

donde CTLIB es el nombre de reiniciador por omisión que se utiliza con el software Sybase Open Client. El reiniciador CTLIB se puede utilizar en servidores Windows NT, AIX y Solaris.

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 del manual Consulta de SQL de DB2 para obtener más información sobre nombres de bibliotecas de reiniciadores.

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

Para mejorar el rendimiento cuando se accede a la fuente de datos Sybase, establezca la variable de entorno DB2_DJ_COMM. Esta variable determina si el reiniciador se carga 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; por ejemplo:

En servidores DB2 para AIX:
db2set DB2_DJ_COMM='libctlib.a' 

En servidores DB2 para Solaris:
db2set DB2_DJ_COMM='libctlib.so' 

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

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

6.6.1.7 Paso 7: Crear el servidor

Utilice la sentencia CREATE SERVER para definir cada servidor Sybase a cuyas fuentes de datos desea acceder; por ejemplo:

CREATE SERVER SYBSERVER TYPE SYBASE VERSION 12.0 WRAPPER CTLIB
OPTIONS (NODE 'sybnode', DBNAME'sybdb')

donde:

SYBSERVER
Es un nombre que el usuario asigna al servidor Sybase. Este nombre debe ser exclusivo.

SYBASE
Es el tipo de fuente de datos cuyo acceso está configurando. Sybase es la única fuente de datos que recibe soporte.

12.0
Es la versión de Sybase a la que está accediendo. Las versiones soportadas son 10.0, 11.0, 11.1, 11.5, 11.9 y 12.0.

CTLIB
Es el nombre del reiniciador que ha especificado en la sentencia CREATE WRAPPER.

'sybnode'
Es el nombre del nodo en el que reside SYBSERVER. Obtenga el valor del nodo del archivo de interfaces. Este valor es sensible a mayúsculas y minúsculas.

Aunque el nombre del nodo se especifica como una opción, es necesario para fuentes de datos Sybase. Consulte el manual Consulta de SQL de DB2 para obtener información sobre opciones adicionales.

'sybdb'
Es el nombre de la base de datos de Sybase a la que desea acceder. Obtenga este nombre del servidor Sybase.

Puede utilizar la opción de servidor IGNORE_UDT con los protocolos CTLIB y DBLIB para especificar si el servidor federado debe determinar el tipo incorporado que subyace en un UDT sin tipo sólido. Esta opción de servidor se aplica únicamente a las fuentes de datos a las que se accede a través de los protocolos CTLIB y DBLIB. Los valores válidos son:

'Y'
Ignora el hecho de que los UDT están definidos por el usuario y determina qué tipos incorporados subyacen en ellos.

'N'
No ignora las especificaciones definidas por el usuario de los UDT. Éste es el valor por omisión.

Cuando DB2 crea apodos, busca y cataloga información sobre los objetos (tablas, vistas, procedimientos almacenados) a los que apuntan los apodos. Al buscar la información, puede encontrarse con que algunos objetos tengan tipos de datos que no reconoce (es decir, tipos de datos que no se correlacionan con su contrapartida en la base de datos federada). En tales tipos no reconocibles pueden incluirse:

Cuando el servidor federado encuentra tipos de datos que no reconoce, devuelve el mensaje de error SQL3324N. No obstante, puede hacer una excepción a esta práctica. Para las fuentes de datos accesibles a través de los protocolos CTLIB o DBLIB, puede establecer la opción de servidor IGNORE_UDT a fin de que, cuando la base de datos federada encuentre un UDT no reconocible sin tipo sólido, la base de datos federada determine qué tipo incorporado es el que subyace en el UDT. Entonces, si la base de datos federada reconoce este tipo incorporado, dicha base de datos devolverá información sobre el tipo incorporado al catálogo. Para hacer que la base de datos federada determine los tipos incorporados subyacentes de los UDT que no tienen tipo sólido, establezca IGNORE_UDT en 'Y'.

6.6.1.8 Paso 8: Opcional: Establecer la opción de servidor CONNECTSTRING

Especifique los umbrales de tiempo de espera excedido, la vía de acceso y el nombre del archivo de interfaces y el tamaño de paquete del archivo de interfaces. Sybase Open Client utiliza los umbrales de tiempo de espera excedido para interrumpir consultas y respuestas que se ejecutan durante demasiado tiempo. Puede establecer estos umbrales en DB2 mediante la opción CONNECTSTRING de la sentencia CREATE SERVER OPTION DDL. Utilice la opción CONNECTSTRING para especificar:

   .-;--------------------------------.
   V                                  |
>>---+------------------------------+-+------------------------><
     +-TIMEOUT-- = --segundos-------+
     +-LOGIN_TIMEOUT-- = --segundos-+
     +-IFILE-- = --"serie"----------+
     +-PACKET_SIZE-- = --bytes------+
     '-;----------------------------'
 
 
TIMEOUT
Especifica el número de segundos que debe esperar DB2 Universal Database una respuesta de Sybase Open Client para cualquier sentencia SQL. El valor de segundos es un número entero positivo en el rango de enteros de DB2 Universal Database. El valor de tiempo de espera excedido que especifique depende de qué reiniciador utilice. Los servidores Windows NT, AIX y Solaris pueden utilizar el reiniciador DBLIB. El valor por omisión del reiniciador DBLIB es 0. En servidores Windows NT, AIX y Solaris, el valor por omisión correspondiente a DBLIB hace que DB2 Universal Database espere indefinidamente una respuesta.
LOGIN_TIMEOUT
Especifica el número de segundos que debe esperar DB2 Universal Database una respuesta de Sybase Open Client a una petición de inicio de sesión. Los valores por omisión son los mismos que para TIMEOUT.
IFILE
Especifica la vía de acceso y nombre del archivo de interfaces de Sybase Open Client. La vía de acceso identificada en serie debe estar entre dobles comillas ("). En servidores Windows, el valor por omisión es %DB2PATH%. En servidores AIX y Solaris, el valor por omisión es sqllib/interfaces del directorio inicial de la instancia de DB2 Universal Database.
PACKET_SIZE
Especifica el tamaño de paquete del archivo de interfaces en bytes. Si la fuente de datos no da soporte al tamaño de paquete especificado, la conexión fallará. Al aumentar el tamaño de paquete cuando cada registro es muy grande (por ejemplo, cuando se insertan filas en tablas grandes), se aumenta significativamente el rendimiento. El tamaño en bytes es un valor numérico. Obtendrá más información en los manuales de consulta de Sybase.

Ejemplos:

En servidores Windows NT, para establecer el valor de tiempo de espera en 60 segundos y el archivo de interfaces en C:\etc\interfaces utilice el siguiente mandato:

CREATE SERVER OPTION connectstring FOR SERVER sybase1
SETTING 'TIMEOUT=60;LOGIN_TIMEOUT=5;IFILE="C:\etc\interfaces"'
 

En servidores AIX y Solaris, para establecer el valor de tiempo de espera en 60 segundos y el archivo de interfaces en /etc/interfaces utilice el siguiente mandato:

CREATE SERVER OPTION connectstring FOR SERVER sybase1
SETTING 'TIMEOUT=60;PACKET_SIZE=4096;IFILE="/etc/interfaces"'
 

6.6.1.9 Paso 9: Crear una correlación de usuario

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

CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER
OPTIONS ( REMOTE_AUTHID 'sybuser', REMOTE_PASSWORD 'day2night')

donde:

DB2USER
Es el ID de usuario local que está correlacionando con un ID de usuario definido en la fuente de datos Sybase.

SYBSERVER
Es el nombre de la fuente de datos Sybase definida en la sentencia CREATE SERVER.

'sybuser'
Es el ID de usuario de la fuente de datos Sybase con la que está correlacionando DB2USER. Este valor es sensible a mayúsculas y minúsculas.

'day2night'
Es la contraseña asociada con 'sybuser'. Este valor es sensible a mayúsculas y minúsculas.

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

6.6.1.10 Paso 10: Crear apodos para tablas y vistas

Asigne un apodo a cada vista o tabla ubicada en la fuente de datos Sybase. Utilizará estos apodos cuando consulte la fuente de datos Sybase. Los apodos de Sybase son sensibles a mayúsculas y minúsculas. Especifique los nombres de esquema y de tabla entre dobles comillas ("). El siguiente ejemplo muestra una sentencia CREATE NICKNAME:

CREATE NICKNAME SYBSALES FOR SYBSERVER."salesdata"."europe"

donde:

SYBSALES
Es un apodo exclusivo para la tabla o vista de Sybase.

SYBSERVER."salesdata"."europe"
Es un identificador de tres partes que sigue este formato:

nombre_fuente_datos."nombre_esquema_remoto"."nombre_tabla_remota"

Repita este paso para cada tabla o vista para la que desee crear apodos. 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.

6.6.2 Especificación de páginas de códigos de Sybase

Este paso sólo es necesario cuando el servidor federado DB2 y el servidor Sybase ejecutan distintas páginas de códigos. Las fuentes de datos que utilizan el mismo juego de códigos que DB2 no se tienen que convertir. La tabla siguiente ofrece opciones de Sybase equivalentes para páginas de códigos del Soporte de idiomas nacionales (NLS). Las fuentes de datos de Sybase se tienen que configurar para que correspondan con estos equivalentes o bien el código del cliente debe ser capaz de detectar la discrepancia y marcarla como un error o correlacionar los datos utilizando su propia semántica. Si no se encuentra ninguna tabla de conversión entre la página de códigos fuente y la página de códigos de destino, DB2 emite un mensaje de error. Consulte la documentación de Sybase para obtener más información.

Tabla 2. Opciones de páginas de códigos de Sybase

Página de códigos Opción de Sybase equivalente
850 cp850
897 sjis
819 iso_1
912 iso_2
1089 iso_6
813 iso_7
916 iso_8
920 iso_9


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