Antes de incluir as origens de dados do Sybase em um servidor federado, é preciso instalar e configurar o software Sybase Open Client no servidor federado do DB2. Consulte os procedimentos de instalação na documentação que é fornecida com o software do banco de dados Sybase para obter detalhes específicos sobre como instalar o software Open Client. Como parte da instalação, certifique-se de incluir os procedimentos armazenados do catálogo e as bibliotecas do Sybase Open Client. Depois de configurar a conexão do software cliente ao servidor Sybase, teste a conexão utilizando uma das ferramentas Sybase. Utilize a ferramenta isql para UNIX e a ferramenta SQL Advantage para Windows.
Para configurar o servidor federado para acessar os dados armazenados nas origens de dados Sybase, você precisa:
Este capítulo discute as etapas 2 e 3.
As instruções neste capítulo aplicam-se ao Windows NT, AIX e Solaris Operating Environment. As diferenças específicas da plataforma são observadas onde elas ocorrem.
Para incluir uma origem de dados Sybase em um servidor federado, você precisa:
Estas etapas são explicadas com detalhes nesta seção.
Defina variáveis de ambiente da origem de dados modificando o arquivo db2dj.ini e emitindo o comando db2set. O arquivo db2dj.ini contém informações de configuração sobre o software do cliente Sybase instalado no servidor federado. O comando db2set atualiza o registro de perfil do DB2 com suas definições.
Em um sistema do banco de dados particionado, você pode utilizar um único arquivo db2dj.ini para todos os nós em uma instância específica ou você pode utilizar um único arquivo db2dj.ini para um ou mais nós em uma instância específica. Um sistema de banco de dados não-particionado pode ter apenas um arquivo db2dj.ini por instância.
Para definir as variáveis de ambiente:
SYBASE="<sybase home directory>"
onde <sybase home directory> é o diretório onde o cliente Sybase está instalado.
Se você estiver utilizando o arquivo db2dj.ini em um sistema de banco de dados não-particionado ou se você quiser que o arquivo db2dj.ini se aplique ao nó atual somente, emita:
db2set DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini
Se você estiver utilizando o arquivo db2dj.ini em um sistema do banco de dados particionado e se quiser que os valores no arquivo db2dj.ini se apliquem a todos os nós dentro dessa instância, emita:
db2set -g DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini
Se você estiver utilizando o arquivo db2dj.ini em um sistema do banco de dados particionado e se quiser que os valores no arquivo db2dj.ini se aplique a um nó específico, emita:
db2set -i INSTANCEX 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini
onde:
Para permitir acesso às origens de dados do Sybase, o servidor federado do DB2 deve ser link-edited às bibliotecas do cliente. O processo de link-edit cria um wrapper para cada origem de dados com a qual o servidor federado irá se comunicar. Quando você executar o script djxlink, crie a biblioteca de wrappers. Para emitir o script djxlink, digite:
djxlink
Para assegurar-se de que as variáveis de ambiente estejam definidas no programa, recicle a instância do DB2. Quando você reciclar a instância, atualize a instância do DB2 para aceitar as alterações feitas.
Emita os comandos a seguir, para reciclar a instância do DB2:
NET STOP instance_name NET START instance_name
db2stop db2start
Para criar e configurar um arquivo de interfaces, você deve criar o arquivo e torná-lo acessível.
Tipicamente, o Windows NT nomeia esse arquivo sql.ini. Renomeie o arquivo que acabou de criar de sql.ini para interfaces, para nomear o arquivo universalmente através de todas as plataformas. Se você optar por não renomear sql.ini para interfaces, será necessário utilizar o parâmetro IFILE ou a opção CONNECTSTRING que é explicada na etapa 8.
Em sistemas AIX e Solaris, esse arquivo é nomeado <instance home>/sqllib/interfaces.
ln -s -f /home/sybase/interfaces /home/db2djinst1/sqllib
Use a instrução CREATE WRAPPER para especificar o wrapper que será utilizado para acessar as origens de dados Sybase. Wrappers são mecanismos que os servidores federados utilizam para comunicar-se com e recuperar dados das origens de dados. O DB2 inclui dois wrappers para Sybase, CTLIB e DBLIB. O exemplo a seguir mostra uma instrução CREATE WRAPPER:
CREATE WRAPPER CTLIB
onde CTLIB é o nome do wrapper padrão utilizado com o software Open Client do Sysbase. O wrapper CTLIB pode ser utilizado em servidores Windows NT, AIX e Solaris.
Você pode substituir o nome do wrapper padrão por um nome de sua escolha. Entretanto, se isso acontecer, será necessário também incluir o parâmetro LIBRARY e o nome da biblioteca wrapper para seu servidor federado na instrução CREATE WRAPPER. Consulte a instrução CREATE WRAPPER na publicação DB2 SQL Reference para obter mais informações sobre os nomes de bibliotecas do wrapper.
Para melhorar o desempenho quando a origem de dados Sybase é acessada, defina a variável de ambiente DB2_DJ_COMM. Essa variável determina se um wrapper é carregado quando o servidor federado é inicializado. Defina a variável de ambiente DB2_DJ_COMM para incluir a biblioteca wrapper que corresponde ao wrapper especificado na etapa anterior; por exemplo:
db2set DB2_DJ_COMM='libctlib.a'
db2set DB2_DJ_COMM='libctlib.so'
Assegure-se de que não haja nenhum espaço em nenhum lado do sinal de igual (=).
Consulte a publicação DB2 SQL Reference para obter mais informações sobre os nomes de bibliotecas do wrapper. Consulte a publicação Administration Guide para obter informações sobre a variável de ambiente DB2_DJ_COMM.
Utilize a instrução CREATE SERVER para definir cada servidor Sybase cujas origens de dados você deseja acessar; por exemplo:
CREATE SERVER SYBSERVER TYPE SYBASE VERSION 12.0 WRAPPER CTLIB OPTIONS (NODE 'sybnode', DBNAME'sybdb')
onde:
Embora o nome do nó seja especificado como uma opção, ele é requerido para as origens de dados Sybase. Consulte a publicação DB2 SQL Reference para obter informações sobre as opções adicionais.
Especifique os limites de timeout, o caminho e o nome do arquivo de interfaces e o tamanho do pacote do arquivo de interfaces. O Sybase Open Client utiliza os limites de timeout para interromper as consultas e as respostas que são executadas por um longo período de tempo. Você pode definir esses limites no DB2, utilizando a opção CONNECTSTRING da instrução CREATE SERVER OPTION DDL . Utilize a opção CONNECTSTRING para especificar:
.-;-------------------------------. V | >>---+-----------------------------+-+------------------------->< +-TIMEOUT-- = --seconds-------+ +-LOGIN_TIMEOUT-- = --seconds-+ +-IFILE-- = --"string"--------+ +-PACKET_SIZE-- = --bytes-----+ '-;---------------------------'
Exemplos:
Em servidores Windows NT, para definir o valor de timeout como 60 segundos e o arquivo de interfaces como C:\etc\interfaces, utilize:
CREATE SERVER OPTION connectstring FOR SERVER sybase1 SETTING 'TIMEOUT=60;LOGIN_TIMEOUT=5;IFILE="C:\etc\interfaces"'
Em servidores AIX e Solaris, defina o valor do timeout como 60 segundos e o arquivo de interfaces como/etc/interfaces, utilize:
CREATE SERVER OPTION connectstring FOR SERVER sybase1 SETTING 'TIMEOUT=60;PACKET_SIZE=4096;IFILE="/etc/interfaces"'
Se um ID do usuário ou uma senha no servidor federado for diferente de um ID do usuário ou senha da origem de dados Sybase, utilize a instrução CREATE USER MAPPING para mapear o ID do usuário local para o ID do usuário e a senha definidos na origem de dados Sybase; por exemplo:
CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER OPTIONS ( REMOTE_AUTHID 'sybuser', REMOTE_PASSWORD 'day2night')
onde:
Consulte a publicação DB2 SQL Reference para obter mais informações sobre opções adicionais.
Atribua um pseudônimo para cada exibição ou tabela localizadas em sua origem de dados Sybase. Você utilizará esses pseudônimos quando consultar a origem de dados Sybase. Os pseudônimos do Sybase têm distinção entre maiúsculas e minúsculas. Coloque o esquema e os nomes de tabelas entre aspas duplas ("). O exemplo a seguir mostra uma instrução CREATE NICKNAME:
CREATE NICKNAME SYBSALES FOR SYBSERVER."salesdata"."europe"
onde:
data_source_name."remote_schema_name"."remote_table_name"
Repita essa etapa para cada tabela ou exibição, para a qual você deseja criar pseudônimos. Quando você cria o pseudônimo, o DB2 utilizará a conexão para consultar o catálogo de origens de dados. Essa consulta testa sua conexão à origem de dados. Se a conexão não funcionar, você receberá uma mensagem de erro.
Consulte a publicação DB2 SQL Reference para obter mais informações sobre a instrução CREATE NICKNAME. Para obter mais informações sobre os pseudônimos em geral e para verificar os mapeamentos de tipos de dados, consulte a publicação DB2 Administration Guide.
Esta etapa é necessária apenas quando o servidor federado do DB2 e o
servidor Sybase estão executando diferentes páginas de códigos. As
origens de dados que estão utilizando o mesmo conjunto de códigos que o DB2,
não requerem conversão. A tabela a seguir fornece opções equivalentes
do Sybase para páginas de códigos do NLS (National Language Support).
As origens de dados Sybase devem ser configuradas para corresponder a esses
equivalentes ou o código do cliente deve conseguir detectar a inconsistência e
sinalizá-la como um erro ou mapear os dados utilizando suas próprias
semânticas. Se nenhuma tabela de conversão puder ser encontrada da
página de códigos de origem para a página de códigos de destino, o DB2 emitirá
uma mensagem de erro. Consulte a documentação do Sybase, para obter
mais informações.
Tabela 2. Opções da Página de Códigos Sybase
Página de código | Opção Sybase equivalente |
---|---|
850 | cp850 |
897 | sjis |
819 | iso_1 |
912 | iso_2 |
1089 | iso_6 |
813 | iso_7 |
916 | iso_8 |
920 | iso_9 |