Notas sobre o Release


6.6 Acessando Origens de Dados do Sybase

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 que os procedimentos armazenados do catálogo Sybase sejam instalados no servidor Sybase e as bibliotecas Sybase Open Client sejam instaladas no servidor federado DB2.

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 do Sybase, você precisa:

  1. Instale o DB2 Relational Connect Versão 7.2. Consulte a seção 6.3.3, Instalando o DB2 Relational Connect.
  2. Incluir as origens de dados do Sybase em seu servidor federado.
  3. Especificar as páginas de códigos do Sybase.

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.

6.6.1 Incluindo Origens de Dados do Sybase em um Servidor Federado

Para incluir uma origem de dados do Sybase em um servidor federado, você precisa:

  1. Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil (Apenas AIX e Solaris).
  2. Ligar o DB2 ao Software Cliente do Sybase (Apenas AIX e Solaris).
  3. Reciclar a Instância do DB2 (Apenas AIX e Solaris).
  4. Criar e Configurar um Arquivo de Interfaces.
  5. Criar o Wrapper.
  6. Opcional: Definir a Variável de Ambiente DB2_DJ_COMM.
  7. Criar o Servidor.
  8. Opcional: Definir a Opção de Servidor CONNECTSTRING.
  9. Criar um Mapeamento do Usuário.
  10. Criar Pseudônimos para Tabelas e Exibições.

Estas etapas são explicadas com detalhes nesta seção.

6.6.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil (Apenas AIX e Solaris)

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:

  1. Edite o arquivo db2dj.ini localizado em sqllib/cfg e defina a seguinte variável de ambiente:
     SYBASE="<sybase home directory>"
     
    

    onde <sybase home directory> é o diretório onde o cliente Sybase está instalado.

  2. Emita o comando db2set para atualizar o registro do perfil do DB2 com suas mudanças. A sintaxe desse comando, db2set, é dependente da estrutura do sistema do banco de dados. Essa etapa será necessária apenas, se você estiver utilizando o arquivo db2dj.ini em qualquer uma das seguintes estruturas do sistema do banco de dados:

    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:

    INSTANCEX
    É o nome da instância.

    3
    É o número do nó conforme listado no arquivo db2nodes.cfg.

    node3.ini
    É a versão modificada e renomeada do arquivo db2dj.ini.

6.6.1.2 Etapa 2: Ligar DB2 ao Software do Cliente Sybase (apenas AIX e Ambientes Operacionais Solaris)

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

6.6.1.3 Etapa 3: Reciclar a Instância do DB2 (apenas AIX e Ambientes Operacionais Solaris)

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:

No DB2 para servidores Windows NT:
NET STOP instance_name
NET START instance_name

No DB2 para servidores AIX e Solaris:
db2stop
db2start

6.6.1.4 Etapa 4: Criar e Configurar um Arquivo de Interfaces

Para criar e configurar um arquivo de interfaces, você deve criar o arquivo e torná-lo acessível.

  1. Use o utilitário fornecido pelo Sybase para criar um arquivo de interfaces que inclui os dados para todos os Sybase Open Servers que você deseja acessar. Consulte a documentação da instalação do Sybase para obter mais informações sobre o uso desse utilitário.

    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.

  2. Torne o arquivo de interfaces acessível para DB2.

    No DB2 para servidores Windows NT:
    Coloque o arquivo no diretório %DB2PATH% da instância do DB2.

    No DB2 para servidores AIX e Solaris:
    Coloque o arquivo no diretório $HOME/sqllib da instância do DB2. Utilize o comando ln para ligar-se ao arquivo do diretório $HOME/sqllib da instância do DB2. Por exemplo:
    ln -s -f /home/sybase/interfaces  /home/db2djinst1/sqllib
    

6.6.1.5 Etapa 5: Criar o Wrapper

Use a instrução CREATE WRAPPER para especificar o wrapper que será utilizado para acessar as origens de dados do 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.

6.6.1.6 Etapa 6: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM

Para melhorar o desempenho quando a origem de dados do 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:

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

No DB2 para servidores Solaris:
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 Manual do Administrador para obter informações sobre a variável de ambiente DB2_DJ_COMM.

6.6.1.7 Etapa 7: Criar o Servidor

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:

SYBSERVER
É um nome atribuído ao servidor Sybase. Este nome deve ser único.

SYBASE
É o tipo de origem de dados para o qual você está configurando acesso. Sybase é a única origem de dados que é suportada.

12.0
É a versão do Sybase que você está acessando. As versões suportadas são 10.0, 11.0, 11.1, 11.5, 11.9 e 12.0.

CTLIB
É o nome do wrapper especificado na instrução CREATE WRAPPER.

'sybnode'
É o nome do nó onde SYBSERVER reside. Obtenha o valor do nó do arquivo de interfaces. Esse valor é sensível a maiúsculas e minúsculas.

Embora o nome do nó seja especificado como uma opção, ele é requerido para as origens de dados do Sybase. Consulte a publicação DB2 SQL Reference para obter informações sobre as opções adicionais.

'sybdb'
É o nome do banco de dados do Sybase que você deseja acessar. Obtenha este nome do servidor Sybase.

Você pode utilizar a opção IGNORE_UDT do servidor com os protocolos CTLIB e DBLIB para especificar se o servidor federado deverá determinar o tipo interno sujeito a um UDT sem um tipo forte. Esta opção aplica-se apenas a origens de dados acessadas através dos protocolos CTLIB e DBLIB. Os valores válidos são:

'Y'
Ignora o fato de que UDTs são definidas pelo usuário e determina quais tipos internos estão sujeitos a elas.

'N'
Não ignora as especificações definidas pelo usuário de UDTs. Esta é a definição padrão.

Quando o DB2 cria pseudônimos, procura e cataloga informações sobre os objetos (tabelas, exibições, procedimentos armazenados) aos quais os pseudônimos apontam. Conforme ele procura pelas informações, pode achar que alguns objetos possuem tipos de dados que ele não reconhece (ou seja, tipos de dados que não mapeiam contrapartes no banco de dados federado). Tais tipos não reconhecidos podem incluir:

Quando o servidor federado encontra tipos de dados que ele não reconhece, retorna a mensagem de erro SQL3324N. Entretanto, ele pode fazer uma exceção a esta prática. Para origens de dados acessíveis através de protocolos CTLIB ou DBLIB, é possível definir a opção IGNORE_UDT do servidor de modo que o banco de dados federado encontre um UDT não reconhecido sem impressão intensa, o banco de dados federado determina qual é o tipo interno da UDT. Em seguida, se o banco de dados federado reconhece este tipo interno, o banco de dados federado retorna informações sobre o tipo interno para o catálogo. Para que o banco de dados determine os tipos de UDT que não possuem impressão intensa, defina IGNORE_UDT como 'Y'.

6.6.1.8 Etapa 8: Opcional: Definir a Opção do Servidor CONNECTSTRING

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-----+
     '-;---------------------------'
 
 
TIMEOUT
Especifica o número de segundos para o DB2 Universal Database aguardar uma resposta do Sybase Open Client para qualquer instrução SQL. O valor de segundos é um número inteiro positivo no intervalo de inteiros do DB2 Universal Database. O valor de timeout especificado depende de qual wrapper você está utilizando. Os servidores Windows NT, AIX e Solaris todos conseguem utilizar o wrapper DBLIB. O valor padrão para o servidor DBLIB é 0. Em servidores Windows NT, AIX e Solaris, o valor padrão para o DBLIB faz com que o DB2 Universal Database aguarde indefinidamente uma resposta.
LOGIN_TIMEOUT
Especifica o número de segundos para o DB2 Universal Database aguardar uma resposta do Sybase Open Client para o pedido de início de sessão. Os valores padrão são os mesmos que para TIMEOUT.
IFILE
Especifica o caminho e o nome do arquivo de interfaces do Sybase Open Client. O caminho que é identificado na cadeia deve ser colocado entre aspas duplas ("). Em servidores Windows NT, o padrão é %DB2PATH%. Em servidores AIX e Solaris, o valor padrão é sqllib/interfaces no diretório pessoal da instância do DB2 Universal Database.
PACKET_SIZE
Especifica o tamanho do pacote do arquivo de interfaces em bytes. Se a origem de dados não suportar o tamanho do pacote especificado, a conexão falhará. Aumentar o tamanho do pacote quando cada registro é muito grande (por exemplo, quando inserir linhas em tabelas grandes), aumenta significantemente o desempenho. O tamanho do byte é um valor numérico. Consulte as publicações de referência do Sybase, para obter mais informações.

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"'
 

6.6.1.9 Etapa 9: Criar um Mapeamento do Usuário

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 do 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 do Sybase; por exemplo:

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

onde:

DB2USER
É o ID do usuário local que você está mapeando para um ID do usuário definido em uma origem de dados do Sybase.

SYBSERVER
É o nome da origem de dados do Sybase definido na instrução CREATE SERVER.

'sybuser'
É o ID do usuário na origem de dados do Sybase para o qual você está mapeando DB2USER. Este valor faz distinção entre letras maiúsculas e minúsculas.

'day2night'
É a senha associada ao 'sybuser'. Este valor faz distinção entre letras maiúsculas e minúsculas.

Consulte a publicação DB2 SQL Reference para obter mais informações sobre opções adicionais.

6.6.1.10 Etapa 10: Criar Pseudônimos para Tabelas e Exibições

Atribua um pseudônimo para cada exibição ou tabela localizadas em sua origem de dados do Sybase. Você utilizará esses pseudônimos quando consultar a origem de dados do 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:

SYBSALES
É um pseudônimo único para a tabela ou a exibição Sybase.

SYBSERVER."salesdata"."europe"
É um identificador de três partes que segue este formato:

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 Manual de Administração do DB2.

6.6.2 Especificando as Páginas de Códigos do Sybase

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 do 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


[ Início da Página | Página Anterior | Próxima Página | Índice | Índice Remissivo ]