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:
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.
Para añadir una fuente de datos Sybase a un servidor federado, tiene que:
Estos pasos se explican en detalle en esta sección.
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:
SYBASE="<directorio inicial sybase>"
donde <directorio inicial sybase> es el directorio en el que está instalado el cliente Sybase.
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:
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
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:
NET STOP nombre_instancia NET START nombre_instancia
db2stop db2start
Para crear y configurar un archivo de interfaces, debe crear el archivo y dejarlo accesible.
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.
ln -s -f /home/sybase/interfaces /home/db2djinst1/sqllib
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.
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:
db2set DB2_DJ_COMM='libctlib.a'
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.
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:
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.
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:
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'.
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------+ '-;----------------------------'
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"'
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:
Consulte el manual Consulta de SQL de DB2 para obtener más información sobre opciones adicionales.
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:
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.
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 |