Notas sobre o Release


6.5 Acessando Origens de Dados 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 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:

  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 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.5.1 Incluindo Origens de Dados do Sybase em um Servidor Federado

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

  1. Definir as variáveis de ambiente e atualizar o registro do perfil (AIX e Solaris somente).
  2. Ligar o DB2 ao software cliente do Sybase (somente AIX e Solaris).
  3. Reciclar a instância do DB2 (AIX e Solaris somente).
  4. Criar e configurar um arquivo de interfaces.
  5. Crie o wrapper.
  6. Opcional: Defina a variável de ambiente DB2_DJ_COMM.
  7. Crie o servidor.
  8. Opcional: Defina a opção de servidor CONNECTSTRING.
  9. Crie 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.5.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil (AIX e Solaris Somente)

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.5.1.2 Etapa 2: Ligar o DB2 ao software do cliente Sybase (apenas AIX e 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.5.1.3 Etapa 3: Recicle a Ocorrência do DB2 (AIX e Solaris Somente)

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:

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

Em servidores DB2 para AIX e Solaris:
db2stop
db2start

6.5.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.

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

    Em servidores DB2 para 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.5.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 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.5.1.6 Etapa 6: Opcional: Defina a variável de ambiente DB2_DJ_COMM

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:

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

Em servidores DB2 para 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 Administration Guide para obter informações sobre a variável de ambiente DB2_DJ_COMM.

6.5.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 Sybase. Consulte a publicação DB2 SQL Reference para obter informações sobre as opções adicionais.

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

6.5.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.5.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 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:

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

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

'sybuser'
É o ID do usuário na origem de dados 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.5.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 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:

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 DB2 Administration Guide.

6.5.2 Especificando as páginas de códigos 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 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 ]