Notas sobre o Release IBM(R) DB2(R) Universal Database Notas sobre o Release Versão 7.2/Versão 7.1 FixPak 3 © Copyright International Business Machines Corporation 2000, 2001. Todos os Direitos Reservados. Nota para usuários do governo dos Estados Unidos -- Documentação relacionada ao copyright -- Uso, duplicação e divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM Corp. ------------------------------------------------------------------------ Índice * Índice * Bem-vindo ao DB2 Universal Database Versão 7! ------------------------------------------------------------------------ Notas Especiais * Notas Especiais o 1.1 Recursos de Acessibilidade do DB2 UDB Versão 7 + 1.1.1 Entrada de Dados e Navegação através do Teclado + 1.1.1.1 Entrada de Dados através do Teclado + 1.1.1.2 Foco do Teclado + 1.1.2 Recursos para Exibição Acessível + 1.1.2.1 Modo Alto Contraste + 1.1.2.2 Definições das Fontes + 1.1.2.3 Não é dependente da Cor + 1.1.3 Janela de Mensagem de Alerta Alternativa + 1.1.4 Compatibilidade com Tecnologias de Apoio + 1.1.5 Documentação de Fácil Acesso o 1.2 Requisito Adicional do Nível de Correção do Solaris o 1.3 CPUs suportadas no DB2 Versão 7 para Solaris o 1.4 Problemas Ao Incluir Nós em um Banco de Dados Particionado o 1.5 Erros que Ocorreram Durante a Migração o |1.6 Correção do Locale do Chinês no Red Flag Linux o 1.7 A Instalação do DB2 Pode Travar se uma Unidade Removível não Estiver Conectada o 1.8 Definindo Locale Adicional do DB2 para Linux no Ambiente Linux em Japonês e Chinês Simplificado o |1.9 Problema do Centro de Controle no Microsoft Internet Explorer o |1.10 Incompatibilidade entre o Information Catalog Manager e o Sybase no Ambiente Windows o |1.11 Perda de Função do Centro de Controle o |1.12 O CD do Netscape não é enviado com o DB2 UDB o |1.13 Error in XML Readme Files o |1.14 Possível Perda de Dados no Linux para S/390 o |1.15 DB2 UDB no Windows 2000 * Documetação Online (HTML, PDF e Search) o 2.1 Navegadores Web Suportados no Sistema Operacional Windows 2000 o 2.2 Pesquisando Informações Online do DB2 no Solaris o 2.3 Comutando o NetQuestion pelo OS/2 para Usar TCP/IP o 2.4 Mensagens de Erro na Tentativa de Lançar o Netscape o 2.5 Requisitos de Configuração para o Adobe Acrobat Reader nos Sistemas Baseados em UNIX o 2.6 A Referência SQL é Fornecida em Um Arquivo PDF ------------------------------------------------------------------------ Instalação e Configuração * Informações gerais sobre instalação o 3.1 Fazendo o download dos Pacotes de Instalação para Todos os Clientes DB2 Suportados o 3.2 Instalando o DB2 no Windows 2000 o 3.3 Questão de Migração com Respeito às Exibições Definidas com os Registros Especiais o 3.4 Suporte ao Protocolo IPX/SPX no Windows 2000 o 3.5 Interrompendo Processos do DB2 antes de Atualizar uma Versão Anterior do DB2 o 3.6 Executando o db2iupdt após a Instalação do DB2 se outro Produto do DB2 já estiver Instalado o 3.7 Configurando o Ambiente Linux para Executar o Centro de Controle do DB2 o |3.8 DB2 Universal Database Enterprise Edition e DB2 Connect Enterprise Edition para Linux no S/390 o |3.9 DB2 Universal Database Enterprise - Extended Edition para UNIX Quick Beginnings o |3.10 Parâmetro de kernel shmseg para HP-UX o 3.11 Migrando bancos de dados de controle do IBM Visual Warehouse o 3.12 Acessando bancos de dados de controle do warehouse * Iniciação Rápida do Data Links Manager o 4.1 O Início do Dlfm Falha com a Mensagem: "Erro ao obter o afsfid para o prefixo" o 4.2 Definindo a Classe do Gerenciador de Armazenamento do Tivoli para Arquivos de Archive o 4.3 Requisitos de Espaço em Disco para DFS Client Enabler o 4.4 Monitorando o Processo de Backend do Gerenciador do Data Links no AIX o 4.5 Instalação e Configuração do DB2 Data Links Manager para AIX: Considerações Adicionais sobre Instalação em Ambientes DCE-DFS o 4.6 Falha do Comando "dlfm add_prefix" o 4.7 Instalação e Configuração do DB2 Data Links Manager para AIX: Instalação do DB2 Data Links Manager no AIX Usando o Utilitário db2setup o 4.8 Instalando e Configurando DB2 Data Links Manager para AIX: Tarefa de Pós-Instalação no DCE-DFS o 4.9 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando Manualmente o DB2 Data Links Manager Usando o Smit o 4.10 Instalando e Configurando o DB2 Data Links DFS Client Enabler o 4.11 Instalando e Configurando o DB2 Data Links Manager para Solaris: o 4.12 Escolhendo um Método de Backup para o DB2 Data Links Manager no AIX o |4.13 Escolhendo um Método de Backup para o DB2 Data Links Manager no Sistema Operacional Solaris o 4.14 Escolhendo um Método de Backup para o Gerenciador de Data Links do DB2 no Windows NT o |4.15 Fazendo o Backup de um Sistema de Arquivos Armazenado no Diário no AIX o |4.16 Privilégios do Grupo de Administradores do Data Links no Windows NT o |4.17 Minimizar o Log para Instalação do Data Links File System Filter (DLFF) + |4.17.1 Registrando Mensagens após a Instalação o |4.18 Desinstalar Componentes do DLFM Usando o SMIT pode Remover Conjuntos de Arquivos Adicionais o |4.19 Antes de iniciar/determinar o nome do host o |4.20 Trabalhando com o Data Links File Manager: fazendo a limpeza após eliminar um DB2 Data Links Manager de um banco de dados DB2 o |4.21 DLFM1001E (Nova mensagem de erro) o |4.22 Opção do arquivo de configuração DLFM o |4.23 Erro ao executar o script dmapp_prestart de ligação de dados/DFS no AIX o |4.24 Integração do Tivoli Space Manager com o Data Links + |4.24.1 Restrições e Limitações o |4.25 Capítulo 4. Instalando e configurando o DB2 Data Links Manager para AIX + |4.25.1 Considerações comuns de instalação + |4.25.1.1 Migrando do DB2 File Manager Versão 5.2 para o DB2 Data Links Manager Versão 7 * Suplemento da Instalação e Configuração o 5.1 Capítulo 5. Instalando os Clientes DB2 em Sistemas Operacionais UNIX + |5.1.1 Parâmetros de Configuração Kernel de HP-UX o 5.2 Capítulo 12. Executando Seus Próprios Aplicativos + 5.2.1 Fazendo o Bind dos Utilitários de Banco de Dados Utilizando o Cliente de Tempo de execução + 5.2.2 Acesso de Clientes UNIX ao DB2 Usando ODBC o |5.3 Capítulo 24. Configurando o Sistema Federado para Acessar Várias Fontes de Dados + |5.3.1 Sistemas Federados + |5.3.1.1 Restrição + |5.3.2 Instalando o DB2 Relational Connect + |5.3.2.1 Instalando o DB2 Relational Connect em servidores Windows NT + |5.3.2.2 Instalando o DB2 Relational Connect em servidores do Ambiente Operacional AIX, Linux e Solaris o |5.4 Capítulo 26. Acessando as fontes de dados Oracle + |5.4.1 Erros da Documentação o |5.5 Acessando as fontes de dados Sybase (novo capítulo) + |5.5.1 Incluindo as fontes de dados Sybase em um servidor federado + |5.5.1.1 Etapa 1: Definir as variáveis de ambiente e atualizar o registro do perfil + |5.5.1.2 Etapa 2: Ligar o DB2 ao software do cliente Sybase (apenas AIX e Solaris) + |5.5.1.3 Etapa 3: Reciclar a instância do DB2 + |5.5.1.4 Etapa 4: Criar e configurar um arquivo de interfaces + |5.5.1.5 Etapa 5: Criar o wrapper + |5.5.1.6 Etapa 6: Opcional: Defina a variável de ambiente DB2_DJ_COMM + |5.5.1.7 Etapa 7: Criar o servidor + |5.5.1.8 Opcional: Etapa 8: Definir a opção do servidor CONNECTSTRING + |5.5.1.9 Etapa 9: Criar um mapeamento do usuário + |5.5.1.10 Etapa 10: Criar pseudônimos para tabelas e exibições + |5.5.2 Especificando as páginas de códigos Sybase o |5.6 Acessando as fontes de dados do Microsoft SQL Server utilizando o ODBC (novo capítulo) + |5.6.1 Incluindo as fontes de dados do Microsoft SQL Server em um servidor federado + |5.6.1.1 Etapa 1: Definir as variáveis de ambiente (apenas AIX) + |5.6.1.2 Etapa 2: Executar o script de shell (apenas AIX) + |5.6.1.3 Etapa 3: Opcional: Definir a variável de ambiente DB2_DJ_COMM + |5.6.1.4 Etapa 4: Reciclar a instância do DB2 (apenas AIX) + |5.6.1.5 Etapa 5: Criar o wrapper + |5.6.1.6 Etapa 6: Criar o servidor + |5.6.1.7 Etapa 7: Criar um mapeamento do usuário + |5.6.1.8 Etapa 8: Criar pseudônimos para tabelas e exibições + |5.6.1.9 Etapa 9: Opcional: Obter rastreios do ODBC + |5.6.2 Reexibindo as páginas de códigos do Microsoft SQL Server ------------------------------------------------------------------------ Administração * Manual de Administração: Planejamento o |6.1 Capítulo 8. Planejar o Banco de Dados Físico + |6.1.1 Chaves de particionamento o |6.2 Design de grupos de nós o 6.3 Capítulo 9. Planejando Bancos de Dados Distribuídos + 6.3.1 Atualizando vários bancos de dados o 6.4 Capítulo 13. Alta Disponibilidade no Ambiente Windows NT + |6.4.1 Necessário Reinicializar a Máquina Antes de Executar o Utilitário DB2MSCS o 6.5 Capítulo 14. DB2 e Alta Disponibilidade no Sun Cluster 2.2 o |6.6 Suporte a Veritas no Solaris o 6.7 Apêndice B. Regras de nomenclatura + 6.7.1 Observações sobre os IDs do Usuário Com Mais de 8 Caracteres e Nomes de Esquema + |6.7.2 IDs do usuário e senhas o 6.8 Apêndice D. Incompatibilidades entre releases + |6.8.1 DLFS do Windows NT é Incompatível com o Norton Utilities + |6.8.2 SET CONSTRAINTS Substituído por SET INTEGRITY o 6.9 Apêndice E. Suporte ao Idioma Nacional (NLS) + |6.9.1 Versões do Idioma Nacional do DB2 Versão 7 + |6.9.1.1 Centro de Controle e Conjuntos de Arquivos de Documentação + 6.9.2 Definindo Locale para o Servidor de Administração do DB2 + |6.9.3 O DB2 UDB Suporta a Página de Código da Orla Báltica (MS-1257) em Plataformas Windows + |6.9.4 Derivando valores da página de códigos + |6.9.5 Suporte ao código de país e à página de códigos + |6.9.6 Conjuntos de caracteres * Manual de Administração: Implementação o |7.1 Incluindo ou Estendendo Contêineres DMS (Novo Processo) o |7.2 Capítulo 1. Administrando o DB2 utilizando Ferramentas da GUI o |7.3 Capítulo 3. Criando um banco de dados + |7.3.1 Criando uma Table Space + |7.3.1.1 Utilizando E/S bruta no Linux + |7.3.2 Criando uma seqüência + |7.3.3 Comparando colunas e seqüências IDENTITY + |7.3.4 Criando um índice, extensão do índice ou especificação do índice o |7.4 Capítulo 4. Alterando um Banco de Dados + |7.4.1 Incluindo um Contêiner em um Table Space SMS em uma Partição + |7.4.2 Alterando uma coluna de identidade + |7.4.3 Alterando uma seqüência + |7.4.4 Eliminando uma seqüência + |7.4.5 Alternando o Estado de um Table Space + |7.4.6 Modificando contêineres em um table space DMS o 7.5 Capítulo 5. Controlando o acesso ao banco de dados + |7.5.1 Privilégios de seqüência + |7.5.2 Criptografia de dados o 7.6 Capítulo 8. Recuperando um Banco de Dados + |7.6.1 Como Usar a E/S Suspensa + |7.6.2 Recuperação e backup incremental + |7.6.2.1 Restaurando a partir de imagens de backup incremental + |7.6.3 Recuperação paralela + |7.6.4 Backup para canais nomeados + |7.6.5 Backup da imagem dividida + |7.6.6 Archive do log por pedido + |7.6.7 Espelhamento do log + |7.6.8 Suporte a backup e restauração nas plataformas no Sun Solaris e HP + |7.6.9 Considerações sobre DB2 Data Links Manager/Considerações sobre utilitário de backup + |7.6.10 Considerações sobre DB2 Data Links Manager/Considerações sobre o utilitário de restauração e avanço + |7.6.11 Restaurando bancos de dados a partir de um backup offline sem avanço + |7.6.12 Restaurando bancos de dados e table spaces e avanço para o fim dos logs + |7.6.13 Gerenciador do Data Links do DB2 e Interações de recuperação + |7.6.14 Detecção de situações que requerem reconciliação o 7.7 Apêndice C. Rotina de Usuário para Recuperação de Banco de Dados o |7.8 Apêndice D. Emitindo Comandos para Vários Servidores de Partição do Banco de Dados o 7.9 Apêndice I. Comunicações Entre Nós de Alta Velocidade + 7.9.1 Ativando o DB2 para Executar Utilizando VI * Manual de Administração: Desempenho o 8.1 Capítulo 3. Considerações do aplicativo + |8.1.1 Especificando o nível de isolamento + |8.1.2 Ajustando a classe de otimização + |8.1.3 Instruções compostas dinâmicas o |8.2 Capítulo 4. Considerações ambientais + |8.2.1 Utilizando chaves de índice maiores o 8.3 Capítulo 5. Estatísticas do Catálogo de Sistema + 8.3.1 Coletando e Utilizando Estatísticas de Distribuição + |8.3.2 Regras para atualizar estatísticas de catálogo + 8.3.3 Estatísticas do Subelemento o 8.4 Capítulo 6. Entendendo o Compilador SQL + 8.4.1 Tabelas de Resumo Replicadas + 8.4.2 Conceitos e Otimização do Acesso de Dados o 8.5 Capítulo 8. Desempenho Operacional + |8.5.1 Gerenciando o conjunto de buffer do banco de dados + |8.5.2 Gerenciando vários conjuntos de buffer do banco de dados o |8.6 Capítulo 9. Utilizando o Governor o 8.7 Capítulo 13. Configurando o DB2 + 8.7.1 Sort Heap Size (sortheap) + 8.7.2 Sort Heap Threshold (sheapthres) + |8.7.3 Porcentagem Máxima da Lista de Bloqueios Antes da Escalação (maxlocks) + |8.7.4 Configurando o DB2/DB2 Data Links Manager/Intervalo de Expiração do Token do Data Links Access (dl_expint) + |8.7.5 Parâmetro de Configuração de Banco de Dados MIN_DEC_DIV_3 + |8.7.6 Tamanho do heap de controle do aplicativo (app_ctl_heap_sz) + |8.7.7 Tamanho do heap do monitor do sistema de banco de dados (mon_heap_sz) + |8.7.8 Número máximo de aplicativos ativos (maxappls) + |8.7.9 Intervalo de recuperação e de ponto de verificação de software (softmax) + 8.7.10 Rastrear ativação de páginas modificadas (trackmod) + 8.7.11 Alterar o caminho do log do banco de dados (newlogpath) + |8.7.12 Localizando Arquivos de Log (logpath) + |8.7.13 Armazenamento máximo para a lista de bloqueio (locklist) o 8.8 Apêndice A. Registro DB2 e Variáveis de Ambiente + |8.8.1 Tabela das Variáveis de Registro Novas e Alteradas o 8.9 Apêndice C. Ferramentas de Explicações de SQL * |Administering Satellites Guide and Reference o |9.1 Configurando o DB2 Personal Edition e DB2 Workgroup Edition Versão 7.2 como Satélites + |9.1.1 Pré-requisitos + |9.1.1.1 Considerações de Instalação + |9.1.2 Configurando o Sistema Versão 7.2 para Sincronização + |9.1.3 Instalando o FixPak 2 ou Superior em um Sistema Enterprise Edition Versão 6 + |9.1.3.1 Atualizando o DB2 Enterprise Edition Versão 6 para Uso como o Servidor de Controle do DB2 + |9.1.4 Atualizando uma Versão 6 Centro de Controle e Centro de Administração do Satélite * Referência e Comando o 10.1 db2batch - Ferramenta de Benchmark o 10.2 db2cap (novo comando) + db2cap - Ferramenta de Bind do Pacote Estático CLI/ODBC o 10.3 db2ckrst (novo comando) + db2ckrst - Verificar Seqüência de Imagens da Restauração Incremental o 10.4 db2gncol (comando novo) + db2gncol - Atualiza Valores de Colunas Gerados o |10.5 db2inidb - Inicializar um Banco de Dados Espelhado o 10.6 db2look - DB2 Statistics Extraction Tool o |10.7 db2updv7 - Atualizar o Banco de Dados para o Nível de Correção Atual da Versão 7 o 10.8 Nova Opção do Processador de Linha de Comando (-x, Suprime a impressão dos cabeçalhos da coluna) o 10.9 Requisito de fonte Tipo True para o DB2 CLP o |10.10 ADD DATALINKS MANAGER o |10.11 ARCHIVE LOG (comando novo) + |Archive Log o 10.12 BACKUP DATABASE + |10.12.1 Diagrama de sintaxe + |10.12.2 Considerações sobre o DB2 Data Links Manager o |10.13 BIND o 10.14 CALL o |10.15 DROP DATALINKS MANAGER (comando novo) + |DROP DATALINKS MANAGER o 10.16 EXPORT o |10.17 OBTER CONFIGURAÇÃO DE BANCO DE DADOS o 10.18 GET ROUTINE (comando novo) + GET ROUTINE o |10.19 GET SNAPSHOT o 10.20 IMPORT o |10.21 LIST HISTORY o 10.22 LOAD o 10.23 PING (comando novo) + PING o |10.24 PUT ROUTINE (comando novo) + |PUT ROUTINE o |10.25 RECONCILE o |10.26 REORGANIZE TABLE o 10.27 RESTORE DATABASE + |10.27.1 Sintaxe + |10.27.2 Considerações sobre o DB2 Data Links Manager o |10.28 ROLLFORWARD DATABASE o |10.29 Erro na documentação nos códigos de retorno CLP * Guia e Referência dos Utilitário de Movimento dos Dados o 11.1 Capítulo 2. Importar + |11.1.1 Utilizando importação com inserções em buffer o 11.2 Capítulo 3. Carregar + 11.2.1 Estados Pendentes Após uma Operação de Carregamento + 11.2.2 Restrições e Limitações de Carregamento + |11.2.3 Modificador de tipo do arquivo totalfreespace o 11.3 Capítulo 4. Carregador Automático + |11.3.1 rexecd obrigatório para executar o autoloader quando a autenticação estiver definida como YES * Manual de Referência e Replicação o 12.1 Replicação e Servidores Não-IBM o 12.2 Replicando no Windows 2000 o |12.3 Erro Conhecido Ao Salvar os Arquivos SQL o |12.4 Manutenção do DB2 o |12.5 Utilitário de Diferença de Dados na Web o 12.6 Capítulo 3. Cenário de replicação de dados + 12.6.1 Cenários de Replicação o 12.7 Capítulo 5. Planejando replicação + 12.7.1 Nomes de Tabelas e Colunas + 12.7.2 Replicando o DATALINK + 12.7.3 Restrições LOB + 12.7.4 Planejando a Replicação o 12.8 Capítulo 6. Configurando o ambiente de replicação + 12.8.1 Pré-requisito Update-anywhere + 12.8.2 Configurando Seu Ambiente de Replicação o 12.9 Capítulo 8. Determinação de Problemas o 12.10 Capítulo 9. Capture and Apply para AS/400 o 12.11 Capítulo 10. Capture and Apply para OS/390 + |12.11.1 Pré-requisitos para DB2 DataPropagator para OS/390 + |12.11.2 Esquemas de Codificação do UNICODE e ASCII no OS/390 + |12.11.2.1 Escolhendo um Esquema de Codificação + |12.11.2.2 Definindo Esquemas de Codificação o 12.12 Capítulo 11. Capture and Apply para plataformas UNIX + |12.12.1 Definindo Variáveis de Ambiente para Capture and Apply no UNIX e Windows o 12.13 Capítulo 14. Estruturas de Tabelas o 12.14 Capítulo 15. Mensagens de Capture and Apply o 12.15 Apêndice A. Iniciando os Programas Capture and Apply de um Aplicativo * Manual e Referência do System Monitor o 13.1 db2ConvMonStream * Manual da Solução de Problemas o |14.1 Iniciando o DB2 no Windows 95, Windows 98 e Windows ME quando o usuário não iniciou sessão o |14.2 Capítulo 2. Detectando Problemas no DB2 Universal Database Server * Usando o DB2 Universal Database em Plataformas de 64 bits o 15.1 Capítulo 5. Configuração + |15.1.1 LOCKLIST + 15.1.2 shmsys:shminfo_shmmax o 15.2 Capítulo 6. Restrições * |Administração e programação do XML Extender * |MQSeries o |17.1 Instalação e Configuração para as Funções do DB2 MQSeries + |17.1.1 Instalar o MQSeries + |17.1.2 Instalar o MQSeries AMI + |17.1.3 Ativar as Funções do DB2 MQSeries o |17.2 Estilos de Mensagens do MQSeries o |17.3 Estrutura da Mensagem o |17.4 Visão Geral Funcional do MQSeries + |17.4.1 Limitações + |17.4.2 Códigos de Erros o |17.5 Cenários de Utilização + |17.5.1 Mensagens Básicas + |17.5.2 Enviando Mensagens + |17.5.3 Recuperando Mensagens + |17.5.4 Conectividade de Aplicativo a Aplicativo + |17.5.4.1 Comunicações de Pedido/Resposta + |17.5.4.2 Publicar/Associar o |17.6 enable_MQFunctions + |enable_MQFunctions o |17.7 disable_MQFunctions + |disable_MQFunctions ------------------------------------------------------------------------ Ferramentas administrativas * Centro de Controle o 18.1 Capacidade de Administrar o Servidor do DB2 para Servidores VSE e VM o 18.2 Suporte a Java 1.2 para o Centro de Controle o 18.3 Erro "Atalho inválido" ao Usar a Ajuda Online no Sistema Operacional Windows o 18.4 Centro de Controle Java no OS/2 o 18.5 Erro "Acesso negado ao arquivo" ao Tentar Exibir um Job Concluído no Diário no Sistema Operacional Windows o 18.6 Teste de Conexão de Atualização Multisites o 18.7 DB2 Control Center para OS/390 o 18.8 Correção Exigida do Centro de Controle para OS/390 o 18.9 Alteração no Diálogo Criar Camada Espacial o 18.10 Informações de Detecção de Problemas para o DB2 Control Center o 18.11 Resolvendo Problemas do Centro de Controle em Sistemas Baseados em UNIX o 18.12 Possíveis Problemas Com Infopops no OS/2 o 18.13 Ajuda do Parâmetro de Configuração jdk11_path o 18.14 Erro do Sistema Solaris (SQL10012N) na Utilização do Centro de Scripts ou do Diário o 18.15 Ajuda ao Arquivo DPREPL.DFT o 18.16 Lançando Mais de Um Applet do Centro de Controle o 18.17 Ajuda Online do Centro de Controle em Execução como um Applet o 18.18 Executando o Centro de Controle no Modo Applet (Windows 95) o |18.19 Trabalhando com Resultados de Consulta Grandes * Centro de Informações o 19.1 Erro "Atalho Inválido" no Sistema Operacional Windows o 19.2 Abrindo links da Web externos no Netscape Navigator quando o Netscape já está aberto (Sistemas baseados em UNIX) o 19.3 Problemas ao Iniciar o Centro de Informações * Assistentes o 20.1 Definindo o Tamanho Estendido no Assistente Criar Banco de Dados o |20.2 Assistente MQSeries Assist o |20.3 Assistente OLE DB Assist ------------------------------------------------------------------------ Inteligência de negócios * Tutorial Business Intelligence o |21.1 Tutorial Revisado do Business Intelligence * Data Warehouse Center Manual de Administração o 22.1 Detectando problemas o |22.2 Configurando o Excel como origem do Warehouse o 22.3 Definindo e executando processos o 22.4 Diálogo Exportar Meta-dados o 22.5 Definindo valores para um programa Submit OS/390 JCL Jobstream (VWPMVS) o 22.6 Alteração no apêndice da amostra do Data Warehouse o 22.7 Mensagens do Centro de Data Warehouse o 22.8 Criando um contorno e carregando dados no servidor de integração OLAP do DB2 o 22.9 Utilizando a conexão clássica com o Centro de Data Warehouse o 22.10 Estrutura do ambiente do Centro de Data Warehouse o 22.11 Utilizando o Invert Transformer o 22.12 Acessando Dados do DB2 Versão 5 com o Agente de Warehouse do DB2 Versão 7 + 22.12.1 Migrando os servidores do DB2 Versão 5 + 22.12.2 Alterando a configuração do agente + 22.12.2.1 Agentes de Warehouse UNIX + 22.12.2.2 Agentes de warehouse do Microsoft Windows NT, Windows 2000 e OS/2 o |22.13 Programa de extração de meta-dados do IBM ERwin + |22.13.1 Conteúdo + |22.13.2 Requisitos de software + |22.13.3 Arquivos de programas + |22.13.4 Criando os arquivos de linguagem de código + |22.13.5 Importando um arquivo de linguagem de código no Centro de Data Warehouse + |22.13.6 Importando um arquivo de linguagem de código no Information Catalog Manager + |22.13.7 Detectando problemas + |22.13.8 ERwin para mapeamento do Centro de Data Warehouse do DB2 + |22.13.8.1 ERwin para Mapeamento do Information Catalog Manager o |22.14 Limpeza de nome e de endereço no Centro de Data Warehouse + |22.14.1 + |22.14.1.1 Requisitos + |22.14.1.2 Componentes do Sistema de Software Trillium + |22.14.1.3 Utilizando o Sistema em Batch do Trillium com o Centro de Data Warehouse + |22.14.1.4 Importando os meta-dados do Trillium + |22.14.1.5 Mapeando os meta-dados + |22.14.1.6 Restrições + |22.14.2 Gravando o arquivo JCL do Sistema em Batch do Trillium + |22.14.3 Gravando o arquivo de script do Sistema em Batch do Trillium no UNIX e no Windows + |22.14.4 Definindo uma etapa do Sistema em Batch do Trillium + |22.14.5 Utilizando um programa definido pelo usuário do Sistema em Batch do Trillium + |22.14.6 Tratamento de erros + |22.14.6.1 Código de retorno de erro + |22.14.6.2 Arquivo de log o |22.15 Integração do MQSeries com o Centro de Data Warehouse + |22.15.1 Criando exibições para mensagens do MQSeries + |22.15.1.1 Requisitos + |22.15.1.2 Restrições + |22.15.1.3 Criando uma exibição para mensagens do MQSeries + |22.15.2 Importando as mensagens do MQSeries e os meta-dados XML + |22.15.2.1 Requisitos + |22.15.2.2 Restrições + |22.15.2.3 Importando as mensagens do MQSeries e os meta-dados XML + |22.15.2.4 Utilizando o programa definido pelo usuário do MQSeries + |22.15.2.5 Código de retorno de erro + |22.15.2.6 Arquivo de Log de Erro o |22.16 Suporte ao Microsoft OLE DB e Data Transaction Services + |22.16.1 Criando exibições para funções da tabela do OLE DB + |22.16.2 Criando exibições para pacotes DTS o |22.17 Utilizando a consolidação incremental com substituição o |22.18 Nomes de arquivos de dados de rastreio do componente o |22.19 Open Client necessário para origens do Sybase no Ambiente Operacional AIX e Solaris o |22.20 Entradas de amostras corrigidas o 22.21 Capítulo 3. Definindo origens do warehouse + |22.21.1 Mapeando o campo Memo no Microsoft Access para uma origem do warehouse o 22.22 Capítulo 10. Fazendo manutenção do banco de dados do Warehouse + |22.22.1 Fazendo link de tabelas a um subtipo de etapa para o programa RUNSTATS UDB do DB2 o 22.23 O banco de dados padrão de controle do Warehouse o 22.24 A janela Gerenciamento do banco de dados de controle do Warehouse o 22.25 Alterando o banco de dados de controle do warehouse o 22.26 Criando e inicializando um banco de dados de controle do Warehouse o 22.27 Criando etapas SQL adicionais o 22.28 Alterando origens e destinos na janela Modelo do processo o 22.29 Incluindo descrições nos objetos do Centro de Data Warehouse o 22.30 Executando conteúdo da amostra o 22.31 Editando uma instrução SQL Criar DLL o 22.32 Migrando business views do Visual Warehouse o 22.33 Gerando tabelas de destino e chaves primárias o 22.34 Utilizando drivers Merant ODBC o |22.35 Novo driver ODBC o 22.36 Definindo uma origem ou destino do warehouse no banco de dados do OS/2 o 22.37 Monitorando o estado do banco de dados de controle do warehouse o 22.38 Utilizando o Assistente SQL com a amostra de banco de dados TBC_MD o 22.39 Utilizando a função FormatDate o 22.40 Alterando a definição de idioma o 22.41 Utilizando o transformador Gerar tabela chave o 22.42 Fazendo manutenção de conexões para bancos de dados o 22.43 Configurando um cliente remoto do Centro de Data Warehouse o 22.44 Definindo um DB2 para a fonte do warehouse VM o 22.45 Definindo um DB2 para VM ou DB2 para a tabela de destino VSE o 22.46 Ativando suporte ao identificador delimitado o |22.47 O erro na junção de dados indica um problema na ligação o 22.48 Configurando e executando replicação com o Centro de Data Warehouse o 22.49 Dicas para detecção de problemas o 22.50 Acessando origens e destinos o 22.51 Acréscimos às origens do banco de dados não-IBM suportadas o |22.52 Criando uma Fonte de Dados Manualmente no Centro de Data Warehouse o |22.53 Importando e Exportando Meta-dados Usando o Common Warehouse Metadata Interchange (CWMI) + |22.53.1 Introdução + |22.53.2 Importando Meta-dados + |22.53.3 Atualizando os Meta-dados Após Executar o Utilitário de Importação + |22.53.4 Exportando Meta-dados o |22.54 Etapa do utilitário Runstats do OS/390 o |22.55 Etapa do utilitário Load do OS/390 o |22.56 Suporte XML do Common Warehouse Metamodel (CWM) o |22.57 Modelador de processos o |22.58 Modelador de esquema o |22.59 Campos obrigatórios o |22.60 Melhorias da barra de lançamento do Centro de Data Warehouse o |22.61 Imprimindo informações da etapa para um arquivo * Manual do Centro de Data Warehouse Application Integration o |23.1 Modelos de meta-dados adicionais + |23.1.1 Commit.tag + |23.1.1.1 Símbolos + |23.1.1.2 Exemplos de valores + |23.1.2 ForeignKey.tag + |23.1.2.1 Símbolos + |23.1.2.2 Exemplos de valores + |23.1.3 ForeignKeyAdditional.tag + |23.1.3.1 Símbolos + |23.1.3.2 Exemplos de valores + |23.1.4 PrimaryKey.tag + |23.1.4.1 Símbolos + |23.1.4.2 Exemplos de valores + |23.1.5 PrimaryKeyAdditional.tag + |23.1.5.1 Símbolos + |23.1.5.2 Exemplos de valores * Ajuda Online do Centro de Data Warehouse o 24.1 Definindo tabelas ou exibições para replicação o 24.2 Executando VWPs Essbase com o agente do AS/400 o 24.3 Utilizando a janela Publicar meta-dados do Centro de Data Warehouse e propriedades associadas o 24.4 Chaves externas o 24.5 Blocos de notas de replicação o 24.6 Importando uma linguagem de tag o 24.7 Links para incluir dados o 24.8 Importando tabelas o 24.9 Correção à Ajuda Online de RUNSTATS e REORGANIZE TABLE o 24.10 Página de Notificação (Bloco de Notas Propriedades do Warehouse e Bloco de Notas Programação) o 24.11 Campo Módulo do Agente no Bloco de Notas Sites do Agente * DB2 OLAP Starter Kit o |25.1 Site Web do OLAP Server o |25.2 Níveis de Serviços do Sistema Operacional Suportados o 25.3 Concluindo a Configuração do DB2 OLAP Starter Kit no UNIX o |25.4 Configurando o ODBC para o OLAP Starter Kit + |25.4.1 Configurando as Origens de Dados em sistemas UNIX + |25.4.1.1 Configurando as Variáveis de Ambiente ODBC + |25.4.1.2 Editando o Arquivo odbc.ini + |25.4.1.3 Incluindo uma origem de dados em um arquivo odbc.ini + |25.4.1.4 Exemplo de Definições ODBC para DB2 + |25.4.1.5 Exemplo de Definições ODBC para Oracle + |25.4.2 Configurando o OLAP Metadata Catalog em Sistemas UNIX + |25.4.3 Configurando as Origens de Dados em Sistemas Windows + |25.4.4 Configurando o OLAP Metadata Catalog em Sistemas Windows + |25.4.5 Após Você Configurar uma Origem de Dados o 25.5 Iniciando sessão do OLAP Starter Kit Desktop + 25.5.1 Starter Kit Login Example o 25.6 Criando e configurando manualmente os bancos de dados de amostra para OLAP Starter Kit o |25.7 Migrando Aplicativos para OLAP Starter Kit Versão 7.2 o |25.8 Problemas e Limitações Conhecidas o 25.9 Arquivos EQD do Complemento da Planilha OLAP Faltando * Manual de Administração do Information Catalog Manager o 26.1 Utilitário de Inicialização do Gerenciador do Catálogo de Informações + |26.1.1 + 26.1.2 Questões de licenciamento + 26.1.3 Questões de instalação o 26.2 Acessando os Catálogos de Informações do DB2 Versão 5 com o Gerenciador do Catálogo de Informações do DB2 Versão 7 o 26.3 Configurando um catálogo de informações o 26.4 Trocando meta-dados com outros produtos o 26.5 Trocando meta-dados utilizando o comando flgnxoln o 26.6 Trocando meta-dados utilizando o comando MDISDGC o 26.7 Invocando programas * Manual de Referência do Information Catalog Manager Programming o 27.1 Códigos de Razão do Gerenciador do Catálogo de Informações * Manual do Usuário do Information Catalog Manager * Information Catalog Manager: Mensagens Online o 29.1 Mensagem FLG0260E o 29.2 Mensagem FLG0051E o 29.3 Mensagem FLG0003E o 29.4 Mensagem FLG0372E o 29.5 Mensagem FLG0615E * Information Catalog Manager: Ajuda Online o 30.1 Gerenciador do Catálogo de Informações para a Web * DB2 Warehouse Manager Installation Guide o |31.1 Requisitos de software para transformadores do warehouse o |31.2 Conector para SAP R/3 + |31.2.1 Pré-requisitos de Instalação o |31.3 Conector para a Web + |31.3.1 Pré-requisitos de Instalação * Manual de Administração do Query Patroller o 32.1 O Cliente do DB2 Query Patroller é um Componente Separado o |32.2 Migrando da Versão 6 do DB2 Query Patroller Usando dqpmigrate o 32.3 Ativando o Query Management o |32.4 Localização do Table Space para Tabelas de Controle o |32.5 Novos Parâmetros para o Comando dqpstart o |32.6 Novo Parâmetro para o Comando iwm_cmd o |32.7 Nova Variável de Registro: DQP_RECOVERY_INTERVAL o 32.8 Iniciando o Query Administrator o 32.9 Administração do Usuário o 32.10 Criando uma Fila de Jobs o 32.11 Usando a Interface da Linha de Comandos o 32.12 Notas do Query Enabler o |32.13 O rastreador do DB2 Query Patroller pode retornar uma página de coluna em branco o |32.14 Query Patroller e Ferramentas de Replicação o |32.15 Apêndice B. Detectando problemas em clientes do DB2 Query Patroller ------------------------------------------------------------------------ Desenvolvimento de aplicativos * Administrative API Reference o |33.1 db2ArchiveLog (nova API) + |db2ArchiveLog o 33.2 db2ConvMonStream o 33.3 db2DatabasePing (nova API) + db2DatabasePing - Banco de Dados para Execução de Ping o |33.4 db2HistData o |33.5 db2HistoryOpenScan o 33.6 db2XaGetInfo (nova API) + db2XaGetInfo - Obter Informações para o Gerenciador de Recursos o 33.7 db2XaListIndTrans (nova API que sobrepõe sqlxphqr) + db2XaListIndTrans - Lista Transações Duvidosas o |33.8 db2GetSnapshot - Obter instantâneo o |33.9 Registro de Log Esquecido o 33.10 sqlaintp - Obter mensagem de erro o |33.11 sqlbctcq - Fechar consulta do contêiner de tablespace o |33.12 sqlubkp - Backup do banco de dados o |33.13 sqlureot - Reorganizar tabela o |33.14 sqlurestore - Restaurar banco de dados o 33.15 Erro na Documentação com Relação ao Suporte de Memória Compartilhada Estendida (EXTSHM) do AIX o 33.16 SQLFUPD + |33.16.1 locklist o |33.17 SQLEDBDESC o |33.18 Erro na Documentação do SQLFUPD * Manual de Cosntrução de Aplicativo o 34.1 Capítulo 1. Introdução + 34.1.1 Software Suportado + 34.1.2 Programas de Amostra o 34.2 Capítulo 3. Informações Gerais para a Construção de Aplicativos do DB2 + 34.2.1 Construir Arquivos, Makefiles e Utilitários de Verificação de Erro o 34.3 Capítulo 4. Construindo Applets e Aplicativos Java + 34.3.1 Definindo o Ambiente + 34.3.1.1 Nível JDK no OS/2 + |34.3.1.2 Java2 no HP-UX o 34.4 Capítulo 5. Construindo procedimentos SQL + 34.4.1 Definindo o Ambiente de Procedimentos SQL + 34.4.2 Definindo as Variáveis de Ambiente do Compilador + 34.4.3 Personalizando o Comando de Compilação + 34.4.4 Retendo Arquivos Intermediários + 34.4.5 Backup e Restauração + 34.4.6 Criando Procedimentos SQL + 34.4.7 Chamando Procedimentos Armazenados + |34.4.8 Distribuindo Procedimentos SQL Compilados o 34.5 Capítulo 7. Construindo Aplicativos HP-UX. + 34.5.1 HP-UX C + 34.5.2 HP-UX C++ o 34.6 Capítulo 9. Construindo Aplicativos do OS/2 + 34.6.1 VisualAge C++ para OS/2 Versão 4.0 o 34.7 Capítulo 10. Construindo Aplicativos PTX + 34.7.1 ptx/C++ o 34.8 Capítulo 12. Construindo Aplicativos Solaris + 34.8.1 SPARCompiler C++ o 34.9 Capítulo 13. Construindo Aplicativos para os Sistemas Operacionais de 32 bits do Windows + 34.9.1 VisualAge C++ Versão 4.0 * Manual de Desenvolvimento de Aplicativo o 35.1 Capítulo 2. Codificando um Aplicativo do DB2 + 35.1.1 Ativando o IBM DB2 Universal Database Project e Complementos de Ferramentas para Microsoft Visual C++ o 35.2 Capítulo 6. Técnicas comuns do aplicativo DB2 + |35.2.1 Gerando valores seqüenciais + |35.2.1.1 Controlando o comportamento da seqüência + |35.2.1.2 Melhorando o desempenho com objetos de seqüência + |35.2.1.3 Comparando objetos de seqüência com colunas de identidade o 35.3 Capítulo 7. Procedimentos Armazenados + |35.3.1 Falhas do Tipo DECIMAL em Rotinas Java do Linux + |35.3.2 Usando Cursores nos Procedimentos Armazenados Recursivos + 35.3.3 Gravando os Procedimentos Armazenados de Automatização OLE o 35.4 Capítulo 12. Trabalhando com Objetos Complexos: Tipos Estruturados Definidos pelo Usuário + 35.4.1 Inserindo Atributos de Tipos Estruturados em Colunas o 35.5 Capítulo 13. Utilizando Objetos Grandes (LOBs) + |35.5.1 Suporte ao objeto grande (LOBs) em sistemas do banco de dados federados + |35.5.1.1 Como o DB2 recupera os LOBs + |35.5.1.2 Como os aplicativos podem utilizar localizadores do LOB + |35.5.1.3 Restrições nos LOBs + |35.5.1.4 Mapeamentos entre os tipos de dados LOBs e não-LOBs + 35.5.2 Ajuste do sistema o 35.6 Parte 5. Considerações de Programação do DB2 + 35.6.1 IBM DB2 OLE DB Provider o 35.7 Capítulo 20. Programando em C e C++ + 35.7.1 Tipos C/C++ para Procedimentos Armazenados, Funções e Métodos o 35.8 Capítulo 21. Programando em Java + 35.8.1 Assinatura do Método Java nos Procedimentos e Funções PARAMETER STYLE JAVA + |35.8.2 Conectando-se ao Servidor de Applet do JDBC o 35.9 Apêndice B. Programas de Amostra * Manual de Referência ao CLI o 36.1 Fazendo o Bind dos Utilitários de Banco de Dados Utilizando o Cliente de Tempo de execução o 36.2 Utilizando SQL Estático em Aplicativos CLI o 36.3 Limitações do Traçado de Perfil Estático JDBC/ODBC/CLI o 36.4 Transformações ADT o |36.5 Capítulo 3. Usando Recursos Avançados + |36.5.1 Gravando Aplicativos de Multi-Threaded + |36.5.2 Scrollable Cursors + |36.5.2.1 Suporte ao cursor deslocável no lado do servidor para OS/390 + |36.5.3 Utilizando o SQL Composto + |36.5.4 Utilizando os Procedimentos Armazenados + |36.5.4.1 Gravando um Procedimento Armazenado em CLI + |36.5.4.2 Procedimentos Armazenados e Bind Automático da CLI o |36.6 Capítulo 4. Configurando CLI/ODBC e executando amostras de aplicativos + |36.6.1 Palavras-chave de configuração o 36.7 Capítulo 5. Funções da CLI do DB2 + 36.7.1 SQLBindFileToParam - Ligar Referência do Arquivo do LOB ao Parâmetro do LOB + |36.7.2 SQLNextResult - Associar o Próximo Conjunto de Resultados a Outra Manipulação de Instrução + |36.7.2.1 Objetivo + |36.7.2.2 Sintaxe + |36.7.2.3 Argumentos de Função + |36.7.2.4 Uso + |36.7.2.5 Códigos de Retorno + |36.7.2.6 Diagnósticos + |36.7.2.7 Restrições + |36.7.2.8 Referências o 36.8 Apêndice D. Funções Escalares Estendidas + 36.8.1 Funções de Data e Hora o 36.9 Apêndice K. Usando a Funcionalidade de Rastreamento do DB2 CLI/ODBC/JDBC * Referência da Mensagem o |37.1 Obtendo Mensagem e Auxílio SQLSTATE o |37.2 Alteração de Remapeamento do SQLCODE no DB2 Connect o 37.3 Mensagens Novas e Alteradas + 37.3.1 Mensagens da Call Level Interface (CLI) + 37.3.2 Mensagens do DB2 + 37.3.3 Mensagens do DBI + 37.3.4 Mensagens do Centro de Data Warehouse (DWC) + 37.3.5 Mensagens SQL o 37.4 SQLSTATES Corrigido * Referência a SQL o 38.1 A Referência SQL é Fornecida em Um Arquivo PDF o |38.2 Capítulo 3. Elementos de linguagem + |38.2.1 Convenções de Nomenclatura e Qualificações de Nomes de Objetos Implícitos + |38.2.2 Atribuições DATALINK + |38.2.3 Expressões + |38.2.3.1 Diagrama de sintaxe + |38.2.3.2 Funções OLAP + |38.2.3.3 referência de seqüência o 38.3 Capítulo 4. Funções + |38.3.1 Ativando as Novas Funções e Procedimentos + 38.3.2 Funções Escalares + |38.3.2.1 ABS ou ABSVAL + |38.3.2.2 DECRYPT_BIN e DECRYPT_CHAR + |38.3.2.3 ENCRYPT + |38.3.2.4 GETHINT + |38.3.2.5 IDENTITY_VAL_LOCAL + 38.3.2.6 LCASE e UCASE (Unicode) + |38.3.2.7 MQPUBLISH + |38.3.2.8 MQREAD + |38.3.2.9 MQRECEIVE + |38.3.2.10 MQSEND + |38.3.2.11 MQSUBSCRIBE + |38.3.2.12 MQUNSUBSCRIBE + |38.3.2.13 MULTIPLY_ALT + |38.3.2.14 REC2XML + |38.3.2.15 ROUND + 38.3.2.16 WEEK_ISO + 38.3.3 Funções da Tabela + |38.3.3.1 MQREADALL + |38.3.3.2 MQRECEIVEALL + |38.3.4 Procedimentos + |38.3.4.1 GET_ROUTINE_SAR + |38.3.4.2 PUT_ROUTINE_SAR o 38.4 Capítulo 5. Consultas + |38.4.1 select-statement/diagrama de sintaxe + 38.4.2 select-statement/fetch-first-clause o |38.5 Capítulo 6. Instruções SQL + |38.5.1 Atualização da Chave de Particionamento Agora Suportada + |38.5.1.1 Instrução: ALTER TABLE + |38.5.1.2 Instrução: CREATE TABLE + |38.5.1.3 Instrução: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (column-name,...) + |38.5.1.4 Instrução: UPDATE + |38.5.2 Chaves de índice maiores para bancos de dados Unicode + |38.5.2.1 ALTER TABLE + |38.5.2.2 CREATE INDEX + |38.5.2.3 CREATE TABLE + |38.5.3 ALTER SEQUENCE + |ALTER SEQUENCE + |38.5.4 ALTER TABLE + |38.5.5 SQL Composto (Incorporado) + |38.5.6 Instrução composta (dinâmica) + |Instrução composta (dinâmica) + |38.5.7 CREATE FUNCTION (Origem ou Modelo) + |38.5.8 CREATE FUNCTION (SQL Escalar, Tabela ou Linha) + |38.5.9 CREATE METHOD + |CREATE METHOD + |38.5.10 CREATE SEQUENCE + |CREATE SEQUENCE + |38.5.11 CREATE TRIGGER + |CREATE TRIGGER + |38.5.12 CREATE WRAPPER + |38.5.13 DECLARE CURSOR + |38.5.14 DELETE + |38.5.15 DROP + |38.5.16 GRANT (Privilégios da Seqüência) + |GRANT (privilégios de seqüência) + |38.5.17 INSERT + |38.5.18 SELECT INTO + |38.5.19 SET ENCRYPTION PASSWORD + |SET ENCRYPTION PASSWORD + |38.5.20 Variável de transição SET + |variável SET + |38.5.21 UPDATE o |38.6 Capítulo 7. Procedimentos SQL, agora chamado de Capítulo 7. Instruções de controle SQL + |38.6.1 Instrução de procedimento SQL + |Instrução do procedimento SQL + |38.6.2 FOR + |FOR + |38.6.3 Alterações de instrução composta para instrução composta (procedimento) + |38.6.4 RETURN + |RETURN + |38.6.5 SIGNAL + |SIGNAL o |38.7 Apêndice A. Limites de SQL o |38.8 Apêndice D. Exibições do Catálogo + |38.8.1 SYSCAT.SEQUENCES * DB2 Stored Procedure Builder o 39.1 suporte ao Java 1.2 o DB2 Stored Procedure Builder o 39.2 Fazendo Depuração Remota dos DB2 Stored Procedures o 39.3 Construindo Procedimentos SQL na Plataforma Windows, OS/2 ou UNIX o 39.4 Utilizando o DB2 Stored Procedure Builder na Plataforma Solaris o 39.5 Problemas e Limitações Conhecidas o 39.6 Utilizando o DB2 Stored Procedure Builder com Locale do Chinês Tradicional o 39.7 Instalações UNIX (AIX, Sun Solaris, Linux) e o Stored Procedure Builder o |39.8 Construindo Procedimentos Armazenados SQL no OS/390 o |39.9 Depurando procedimentos armazenados SQL o |39.10 Exportando procedimentos armazenados Java o |39.11 Inserindo procedimentos armazenados no OS/390 o |39.12 Definindo opções de construção para procedimentos armazenados SQL em um servidor de estação de trabalho o |39.13 Atualizando automaticamente o espaço de endereçamento WLM para procedimentos armazenados construídos no OS/390 o |39.14 Desenvolvendo procedimentos armazenados Java em OS/390 o |39.15 Criando uma função definida pelo usuário (UDF) do DB2 para MQ Series e OLE DB * |Atualizações do Unicode o |40.1 Introdução + |40.1.1 Bancos de Dados e Aplicativos do DB2 Unicode + |40.1.2 Atualizações de Documentação o |40.2 Referência a SQL + |40.2.1 Capítulo 3 Elementos de Linguagem + |40.2.1.1 Promoção de Tipos de Dados + |40.2.1.2 Conversão entre Tipos de Dados + |40.2.1.3 Atribuições e Comparações + |40.2.1.4 Regras para Tipos de Dados de Resultado + |40.2.1.5 Regras para Conversões de Cadeias + |40.2.1.6 Expressões + |40.2.1.7 Predicados + |40.2.2 Capítulo 4 Funções + |40.2.2.1 Funções Escalares o |40.3 Manual de Referência do CLI + |40.3.1 Capítulo 3. Usando Recursos Avançados + |40.3.1.1 Escrevendo um Aplicativo Unicode do DB2 CLI + |40.3.2 Apêndice C. DB2 CLI e ODBC + |40.3.2.1 Aplicativos Unicode do ODBC o |40.4 Manual e Referência dos Utilitário de Movimento dos Dados + |40.4.1 Apêndice C. Formatos de Arquivo do Utilitário de Exportação/Importação/Carregamento ------------------------------------------------------------------------ Conectando aos sistemas host * Connectivity Supplement o 41.1 Configurando o Servidor de Aplicativos em um Ambiente VM o 41.2 Configuração do PATCH1 CLI/ODBC/JDBC e Definições do PATCH2 ------------------------------------------------------------------------ Informações gerais * Informações gerais o 42.1 Apresentação do DB2 Universal Database Business Intelligence o 42.2 O DB2 Everywhere é Agora DB2 Everyplace o 42.3 Exigências de Mouse o 42.4 Tentativa para fazer o Bind a partir dos Resultados do Cliente de Tempo de execução do DB2 em um Erro "Arquivos de Bind não encontrados" o 42.5 Pesquisa de Descoberta o 42.6 Janelas de Memória do HP-UX 11 o 42.7 Falha da Ação do Usuário para dlfm client_conf o 42.8 No Evento de Pouca Freqüência que Copia o Daemon e que Não Para com dlfm stop o 42.9 Desinstalando o DB2 DFS Client Enabler o 42.10 Autenticação de Cliente no Windows NT o 42.11 O Carregador Automático Pode Travar Durante uma Bifurcação o 42.12 Restaurar DATALINK o 42.13 Definir a ID do Usuário e a Senha em Servidores de Comunicações IBM para Windows NT (CS/NT) + 42.13.1 Definição do Nó o 42.14 Restrições de Sistemas Federados o 42.15 Restrição do DataJoiner o 42.16 Gerenciador do Catálogo de Informações em Hebraico para Windows NT o 42.17 Suporte de Atualização do Microsoft SNA Server e SNA Multisite (Commit de Duas Fases) o 42.18 SNA SPM do DB2 Falhou ao Iniciar Após a Inicialização do Windows o 42.19 Definindo locale para o Servidor de Administração do DB2 o 42.20 Atalhos que Não Funcionam o 42.21 Requisitos da Conta de Serviço para DB2 no Windows NT e Windows 2000 o 42.22 O Privilégio EXECUTE para Usuários do Query Patroller Criados na Versão 6 não está Implementado o 42.23 Restrições do Query Patroller o 42.24 É Necessário Fazer o Commit de Todos os Programas Definidos pelo Usuário que serão Usados no Centro de Data Warehouse (DWC) o 42.25 Nova Opção para a Exportação da Linha de Comandos do Centro de Data Warehouse o 42.26 APIS dos Serviços de Backup (XBSA) o |42.27 Agente do OS/390 + |42.27.1 Visão geral da instalação + |42.27.2 Detalhes da instalação + |42.27.3 Configurando as funções adicionais do agente + |42.27.4 Planejamento de etapas do warehouse com o programa de disparo (XTClient) + |42.27.5 Transformadores + |42.27.6 Acessando os bancos de dados fora da família DB2 + |42.27.7 Executando utilitários do DB2 para OS/390 + |42.27.8 Replicação + |42.27.9 Log de agente o |42.28 Armazenamento em Cache no Lado Cliente no Windows NT o |42.29 Produtos para teste em CD-ROMs UNIX Enterprise Edition o |42.30 Produtos para teste em CD-ROMs UNIX do DB2 Connect Enterprise Edition o |42.31 Eliminar o Data Links Manager o |42.32 Desinstalar Componentes do DLFM Usando o SMIT pode Remover Conjuntos de Arquivos Adicionais o |42.33 Erro SQL1035N ao utilizar CLP no Windows 2000 o |42.34 Melhorias no SQL Assist o |42.35 Integração do Desktop Gnome e KDE para DB2 no Linux o |42.36 Executando o DB2 no Servidor Terminal do Windows 2000, Nó de Administração o |42.37 Auxílio Online para Comandos de Backup e de Restauração o 42.38 O "Warehouse Manager" Deveria Ser "DB2 Warehouse Manager" ------------------------------------------------------------------------ Outras Informações * Outras Informações o 43.1 Suporte Online ao DB2 Universal Database e ao DB2 Connect o 43.2 Revista do DB2 ------------------------------------------------------------------------ Apêndices * Apêndice A. Avisos o A.1 Marcas * Índice ------------------------------------------------------------------------ Bem-vindo ao DB2 Universal Database Versão 7! Nota: Defina a fonte para o monospace para obter uma melhor exibição dessas Notas sobre o Release. O site do DB2 Universal Database e do DB2 Connect Support é atualizado regularmente. Verifique http://www.ibm.com/software/data/db2/udb/winos2unix/support para obter as últimas informações. Este arquivo contém informações sobre os seguintes produtos que não estavam disponíveis quando os manuais DB2 foram impressos: IBM DB2 Universal Database Personal Edition, Versão 7.2 IBM DB2 Universal Database Workgroup Edition, Versão 7.2 IBM DB2 Universal Database Enterprise Edition, Versão 7.2 IBM DB2 Data Links Manager, Versão 7.2 IBM DB2 Universal Database Enterprise - Extended Edition, Versão 7.2 IBM DB2 Query Patroller, Versão 7.2 IBM DB2 Personal Developer's Edition, Versão 7.2 IBM DB2 Universal Developer's Edition, Versão 7.2 IBM DB2 Data Warehouse Manager, Versão 7.2 IBM DB2 Relational Connect, Versão 7.2 Um arquivo de Notas sobre o Release separado, instalado como READCON.TXT, é fornecido para os seguintes produtos: IBM DB2 Connect Personal Edition, Versão 7.2 IBM DB2 Connect Enterprise Edition, Versão 7.2 O manual O Que Há de Novo contém uma visão geral de algumas das principais melhorias do DB2 para a Versão 7.2. Se você não tiver a versão 7.2 do manual O Que Há de Novo, poderá exibir e fazer download dela a partir do http://www.ibm.com/software/data/db2/udb/winos2unix/support. Nota: Uma barra de revisão (|) à esquerda de uma página indica que a linha nesse nível foi incluída ou modificada desde a primeira publicação das Notas sobre Release. ------------------------------------------------------------------------ Notas Especiais ------------------------------------------------------------------------ Notas Especiais ------------------------------------------------------------------------ 1.1 Recursos de Acessibilidade do DB2 UDB Versão 7 Os produtos da família do DB2 UDB incluem um número de recursos que tornam os produtos mais acessíveis para pessoas sem habilidades. Estes recursos incluem: * Recursos que facilitam entrada de dados e a navegação através do teclado * Recursos que melhoram as propriedades de exibição * Opções da janela de mensagem de alerta audiovisual * Compatibilidade com tecnologias de apoio * Compatibilidade com recursos de acessibilidade do sistema operacional * Formatos de documentação de fácil acesso 1.1.1 Entrada de Dados e Navegação através do Teclado 1.1.1.1 Entrada de Dados através do Teclado O DB2 Control Center pode ser operado usando-se apenas o teclado. Os itens do menu e dos controles fornecem teclas de acesso que permitem aos usuários ativar um controle ou selecionar um item do menu diretamente a partir do teclado. Estas teclas são auto-documentadas, nas teclas de acesso que são sublinhadas no controle ou no menu onde ele aparecer. 1.1.1.2 Foco do Teclado Nos sistemas baseados em UNIX, a posição do foco do teclado é destacada, indicando qual área da janela está ativa e onde a ação do usuário digitar através do teclado terá efeito. 1.1.2 Recursos para Exibição Acessível O DB2 Control Center possui um número de recursos que melhora a interface do usuário e aperfeiçoa a acessibilidade para usuários com problemas de visão. Estas melhorias de acessibilidade incluem suporte para definições de alto contraste e propriedades de fontes personalizáveis. 1.1.2.1 Modo Alto Contraste A interface do Centro de Controle suporta a opção modo alto contraste fornecido pelo sistema operacional. Este recurso auxilia os usuários que exigem um alto grau de contraste entre as cores de background e foreground. 1.1.2.2 Definições das Fontes A interface do Centro de Controle permite aos usuários selecionar a cor, tamanho e fonte para o texto nos menus e janelas de diálogo. 1.1.2.3 Não é dependente da Cor Os usuários não precisam distinguir cores para usar quaisquer funções neste produto. 1.1.3 Janela de Mensagem de Alerta Alternativa O usuário pode optar para receber as mensagens de alertas através do áudio ou da janela visual. 1.1.4 Compatibilidade com Tecnologias de Apoio A interface do DB2 Control Center é compatível com os aplicativos de leitor de tela tais como Via Voice. Quando em modo de aplicativo, a interface do Centro de Controle possui as propriedades exigidas para acessar de modo fácil os aplicativos que tornam as informações disponíveis para usuários com sérios problemas de visão. 1.1.5 Documentação de Fácil Acesso A documentação para os produtos da família DB2 está disponível no formato HTML. Isto permite aos usuários exibir a documentação de acordo com as preferências de exibição, definidas pelos seus navegadores. Ela também permite o uso de leitores de telas e outras tecnologias de apoio. ------------------------------------------------------------------------ 1.2 Requisito Adicional do Nível de Correção do Solaris O DB2 Universal Database Versão 7 para Solaris Versão 2.6 requer a correção 106285-02 ou superior, em complemento às correções relacionadas no manual DB2 for UNIX Quick Beginnings. ------------------------------------------------------------------------ 1.3 CPUs suportadas no DB2 Versão 7 para Solaris Versões de CPU anteriores ao UltraSparc não são suportadas. ------------------------------------------------------------------------ 1.4 Problemas Ao Incluir Nós em um Banco de Dados Particionado Ao incluir nós em um banco de dados particionado que possui um ou mais table spaces temporários no sistema com um tamanho de página que é diferente do tamanho de página padrão (4 KB), você pode receber a mensagem de erro: "SQL6073N Falhou a operação Incluir Nó" e um SQLCODE. Isto ocorre porque apenas o pool de buffer IBMDEFAULTBP existe com um tamanho de página de 4 KB quando o nó é criado. Por exemplo, você pode usar o comando db2start para incluir um nó em um banco de dados particionado atual: DB2START NODENUM 2 ADDNODE HOSTNAME newhost PORT 2 Se o banco de dados particionado possui table spaces temporários do sistema com o tamanho de página padrão, a seguinte mensagem é retornada: SQL6075W A operação Iniciar Gerenciador de Banco de Dados incluiu o nó com sucesso. O nó não está ativo até que todos os nós sejam interrompidos e inicializados novamente. De qualquer modo, se o banco de dados particionado possuir table spaces temporários do sistema que não tenham o tamanho de página padrão, a seguinte mensagem será retornada: SQL6073N Falhou a inclusão do Nó. SQLCODE = "<-902>" Em um exemplo similar, você pode usar o comando ADD NODE após atualizar manualmente o arquivo db2nodes.cfg com a nova descrição do nó. Após a edição do arquivo e da execução do comando ADD NODE com um banco de dados particionado que possui tables spaces temporários do sistema com tamanho de página padrão, a seguinte mensagem é retornada: DB20000I O comando ADD NODE foi concluído com sucesso. De qualquer modo, se o banco de dados particionado possuir table spaces temporários do sistema que não tenham o tamanho de página padrão, a seguinte mensagem será retornada: SQL6073N Falhou a inclusão do Nó. SQLCODE = "<-902>" Uma maneira de impedir os problemas delineados acima é executar: DB2SET DB2_HIDDENBP=16 antes de emitir o comando db2start ou ADD NODE. Esta variável de registro ativa o DB2 para alocar pools de buffer ocultos de 16 páginas cada utilizando um tamanho de página diferente do padrão. Isto ativa a operação ADD NODE para o sucesso completo. Outra maneira de impedir estes problemas é especificar a cláusula WITHOUT TABLESPACES no comando ADD NODE ou db2start. Feito isto, você terá de criar os pools de buffer usando a instrução CREATE BUFFERPOOL, e associar os tables spaces temporários do sistema para os pools de buffer usarem a instrução ALTER TABLESPACE. Ao incluir nós em um grupo de nó existente que possui uma ou mais table spaces com um tamanho de página diferente do tamanho de página padrão (4 KB), você pode encontrar a mensagem de erro: "SQL0647N Bufferpool "" não está ativo atualmente.". Isto ocorre porque o tamanho da página do pool de buffer não padrão criada no novo nó não foi ativada para os table spaces. Por exemplo, você pode usar a instrução ALTER NODEGROUP para incluir um nó em um grupo de nós: DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) Se o grupo de nós possui table spaces com tamanho de página padrão, a seguinte mensagem é retornada: SQL1759W A redistribuição do grupo de nós é requerida para alterar o posicionamento de dados para objetos no grupo de nós "" para incluir alguns nós acrescentados ou excluir alguns nós eliminados. De qualquer modo, se o grupo de nó possui table spaces que não tenham o tamanho de página padrão, a mensagem retornada é: SQL0647N Bufferpool "" não está ativo atualmente. Uma maneira de impedir este problema e criar pools de buffer para cada tamanho de página e depois se conectar novamente ao banco de dados antes de emitir a instrução ALTER NODEGROUP. DB2START CONNECT TO mpp1 CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192 CONNECT RESET CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) Uma segunda maneira para impedir o problema é executar: DB2SET DB2_HIDDENBP=16 antes de emitir o comando db2start, e as instruções CONNECT e ALTER NODEGROUP. Outro problema pode ocorrer quando a instrução ALTER TABLESPACE é utilizada para incluir um table space em um nó. Por exemplo: DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2) Esta série de comandos e instruções gera a mensagem de erro SQL0647N (e não a mensagem esperada SQL1759W). Para concluir esta alteração corretamente, você deve se reconectar ao banco de dados após a instrução ALTER NODEGROUP... WITHOUT TABLESPACES. DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES CONNECT RESET CONNECT TO mpp1 ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2) Outra maneira para impedir o problema é executar: DB2SET DB2_HIDDENBP=16 antes de emitir o comando db2start e as instruções CONNECT, ALTER NODEGROUP e ALTER TABLESPACE. ------------------------------------------------------------------------ 1.5 Erros que Ocorreram Durante a Migração Durante a migração, entradas de erro no arquivo db2diag.log (banco de dados não migrado) aparecem mesmo quando a migração foi concluída com sucesso, e podem ser ignoradas. ------------------------------------------------------------------------ |1.6 Correção do Locale do Chinês no Red Flag Linux | | |Se estiver usando o Chinês Simplificado no Red Flag Linux Server |Versão 1.1, entre em contato com o Red Flag para receber a correção do |locale do Chinês Simplificado. Sem a correção de locale do Chinês |Simplificado para a Versão 1.1, o DB2 não reconhece que a página de |códigos do Chinês Simplificado é 1386. ------------------------------------------------------------------------ 1.7 A Instalação do DB2 Pode Travar se uma Unidade Removível não Estiver Conectada Durante a instalação do DB2, a instalação pode travar após a seleção do tipo de instalação ao utilizar um computador com uma unidade removível não conectada. Para resolver este problema, execute a configuração, especificando a opção -a: setup.exe -a ------------------------------------------------------------------------ 1.8 Definindo Locale Adicional do DB2 para Linux no Ambiente Linux em Japonês e Chinês Simplificado Uma definição de locale adicional será necessária quando você quiser usar as ferramentas GUI para Java, como o Centro de Controle, no sistema Linux em japonês ou chinês simplificado. Os caracteres em japonês ou chinês não podem ser exibidos corretamente sem essa definição. Inclua a seguinte definição no perfil de usuário ou execute-a a partir da linha de comandos antes de cada solicitação do Centro de Controle. Para um sistema em japonês: export LC_ALL=ja_JP Para um sistema em Chinês Simplificado: export LC_ALL=zh_CN ------------------------------------------------------------------------ |1.9 Problema do Centro de Controle no Microsoft Internet Explorer | | |Existe um problema causado pelas definições das opções de segurança do |Internet Explorer (IE). O Centro de Controle usa jars sem assinatura, |portanto, o acesso às informações do sistema fica desativado pelo gerenciador |de segurança. |Para eliminar este problema, reconfigure as opções de segurança do IE da |seguinte forma: | 1. |Selecione Opções da Internet no menu Exibir (IE4) ou |no menu Ferramentas (IE5). 2. |Na página Segurança, selecioneZona de sites de depósitos |bancários. 3. |Clique em Adicionar Sites.... 4. |Inclua o servidor Web do Centro de Controle na lista de sites de |segurança. Se o servidor Web do Centro de Controle estiver no mesmo |domínio, poderá ser útil para incluir somente o nome do servidor web (sem o |nome do domínio). Por exemplo: | http://ccWebServer.ccWebServerDomain | http://ccWebServer 5. |Clique em OK. 6. |Clique em Configurações.... 7. |Desloque-se até Java --> Permissões Java e |selecione Personalizar. 8. |Clique em Configurações Personalizadas |Java.... 9. |Selecione a página Editar Permissões. 10. |Desloque-se para Conteúdo Não-assinado --> Executar Conteúdo |Não-assinado --> Permissões Adicionais Não-assinadas |--> Informações do Sistema e selecione Ativar. 11. |Clique em OK em cada janela aberta. | ------------------------------------------------------------------------ |1.10 Incompatibilidade entre o Information Catalog Manager e o Sybase no Ambiente Windows | | |A instalação do Information Catalog Manager (ICM) Versão 7 na mesma máquina |Windows NT ou Windows 2000 com Sybase Open Client resulta em um erro e o |Sybase Utilities pára de funcionar. Uma mensagem de erro similar a esta |é exibida: | Falha ao inicializar o LIBTCL.DLL. Verifique se a variável de ambiente |SYBASE está definida corretamente. |Evite esse cenário removendo o parâmetro de ambiente LC_ALL dos parâmetros |do Ambiente Windows. LC_ALL é um parâmetro de categoria do |locale. As categorias de locale são constantes visíveis utilizadas |pelas rotinas de localização para especificar qual parte das informações do |locale um programa deve usar. O locale refere-se à |localidade (ou país) para a qual determinados aspectos do programa podem ser |personalizados. As áreas dependentes do locale incluem, por exemplo, a |formatação de datas ou o formato de exibição para valores monetários. |LC_ALL afeta todo o comportamento específico do locale (todas as |categorias). |Se você remover o parâmetro de ambiente LC_ALL para que o ICM possa |coexistir com o Sybase na plataforma Windows NT, os seguintes recursos não |funcionarão mais: | * |Usuário do Catálogo de Informações * |Administrador do Catálogo de Informações * |Gerenciador do Catálogo de Informações | ------------------------------------------------------------------------ |1.11 Perda de Função do Centro de Controle |Não devem ser apresentados problemas contra os clientes do Centro de |Controle do nível anterior, aplicando FixPak 2 em um servidor DB2. |Entretanto, os clientes do Centro de Controle do nível anterior do DB2 Versão |7.2 perdem praticamente toda a funcionalidade. O nível anterior |neste caso se refere qualquer cliente da Versão 6 anterior ao FixPak 6 e |qualquer cliente da Versão 7 anterior ao FixPak 2. Os clientes da |Versão 5 não são afetados. |A correção sugerida é atualizar todos os clientes afetados. Os |clientes da Versão 6 devem ser atualizados para o FixPak 6 ou posterior e os |clientes da Versão 7 para o FixPak 2 ou posterior. ------------------------------------------------------------------------ |1.12 O CD do Netscape não é enviado com o DB2 UDB |O CD do Netscape não é mais enviado com o DB2 UDB. Os produtos |Netscape estão disponíveis a partir do |http://www.netscape.com. ------------------------------------------------------------------------ |1.13 Error in XML Readme Files |O arquivo README.TXT para DB2 XML Extender Versão 7.1 informa |o seguinte em "Considerações": | | 3. A versão padrão do DB2 UDB é DB2 UDB Versão 7.1. |Se você desejar utilizar o DB2 UDB Versão 6.1 no AIX e Solaris, deverá |assegurar-se de que você está executando com a instância do DB2 UDB |V6.1 e com as bibliotecas do DB2 UDB V6.1. | |Isto está incorreto. O DB2 XML Extender é suportado apenas com |o DB2 Versão 7.1 e 7.2. |Os arquivos readme.aix, readme.nt e readme.sun listam |os Requisitos de Software de: | * |DB2 UDB 6.1 com FP1_U465423 ou superior (AIX) * |DB2 Universal Database Versão 6.1 ou superior com o FixPak 3 |instalado (NT) * |DB2 UDB Versão 6.1 com FixPak FP1_U465424 ou superior (Sun) | |Isto está incorreto. O DB2 XML Extender requer DB2 Versão |7.1 ou 7.2. ------------------------------------------------------------------------ |1.14 Possível Perda de Dados no Linux para S/390 |Quando utilizar o DB2 no Linux para S/390 com um kernel série 2.2, a |quantidade de RAM disponível na máquina Linux deve ser limitada a menos de 1 |GB. Limitando a RAM a 1 GB evitará possíveis perdas de dados no DB2 |devido a um bug do kernel do Linux. |Isso afeta apenas o DB2 no Linux para S/390 e não Linux na Intel. |Uma correção do kernel será disponibilizada em http://www10.software.ibm.com/developerworks/opensource/linux390/alpha_src.html |a qual será possível utilizar mais de 1 GB de RAM. ------------------------------------------------------------------------ |1.15 DB2 UDB no Windows 2000 |Através destas Notas de Release, quando é feita a referência para o Windows |NT, isso inclui o Windows 2000, a não ser que seja especificado o |contrário. ------------------------------------------------------------------------ Documetação Online (HTML, PDF e Search) ------------------------------------------------------------------------ 2.1 Navegadores Web Suportados no Sistema Operacional Windows 2000 Recomendamos a utilização do Microsoft Internet Explorer no Windows 2000. Caso utilize o Netscape, saiba o seguinte: * A conclusão das pesquisas de informações online do DB2 pode demorar no Windows 2000 usando o Netscape. O Netscape usará todos os recursos disponíveis da CPU e irá aparentar uma execução de duração indefinida. Embora os resultados da pesquisa possam eventualmente retornar, recomendamos que altere o foco clicando em outra janela após submeter a pesquisa. Os resultados da pesquisa, então, retornarão em um período razoável de tempo. * Observe que ao solicitar a ajuda, ela será exibida corretamente na janela do navegador Netscape; no entanto, se você deixar a janela do navegador aberta e solicitar a ajuda mais tarde em uma parte diferente do Centro de Controle, nada irá se alterar no navegador. Se fechar a janela do navegador e solicitar ajuda novamente, a ajuda correta surgirá. Você pode resolver esse problema seguindo estas etapas em 2.4, Mensagens de Erro na Tentativa de Lançar o Netscape. Você também pode contornar o problema fechando a janela do navegador antes de solicitar ajuda para o Centro de Controle. * Quando solicitar Ajuda do Centro de Controle ou um tópico no Centro de Informações, você pode obter uma mensagem de erro. Para corrigir isso, siga as etapas em 2.4, Mensagens de Erro na Tentativa de Lançar o Netscape. ------------------------------------------------------------------------ 2.2 Pesquisando Informações Online do DB2 no Solaris Se você tiver problemas na pesquisa de informações online do DB2 no Solaris, verifique os parâmetros de kernel do sistema em /etc/system. Aqui estão os parâmetros de kernel mínimos requeridos pelo sistema de pesquisa do DB2, o NetQuestion: semsys:seminfo_semmni 256 semsys:seminfo_semmap 258 semsys:seminfo_semmns 512 semsys:seminfo_semmnu 512 semsys:seminfo_semmsl 50 shmsys:shminfo_shmmax 6291456 shmsys:shminfo_shmseg 16 shmsys:shminfo_shmmni 300 Para definir um parâmetro de kernel, inclua uma linha no final de /etc/system, como no exemplo a seguir: set = value Você deve reinicializar seu sistema para quaisquer valores alterados tomarem efeito. ------------------------------------------------------------------------ 2.3 Comutando o NetQuestion pelo OS/2 para Usar TCP/IP As instruções para comutar para o NetQuestion para poder usar o TCP/IP nos sistemas OS/2 estão incompletas. A localização dos arquivos *.cfg mencionados nas instruções é o subdiretório do diretório de instalação do NetQuestion. Para determinar o diretório de instalação do NetQuestion, digite um destes comandos: echo %IMNINSTSRV% //para instalações SBCS echo %IMQINSTSRV% //para instalações DBCS ------------------------------------------------------------------------ 2.4 Mensagens de Erro na Tentativa de Lançar o Netscape Caso encontre as seguintes mensagens de erro ao tentar lançar o Netscape: Não foi possível encontrar o arquivo (ou um de seus componentes). Assegure-se de que o caminho e o nome de arquivo estejam corretos e que todas as bibliotecas requeridas estejam disponíveis. Impossível abrir "D:\Arquivos de Programas\SQLLIB\CC\.. \doc\html\db2help\XXXXX.htm" você deve executar as seguintes etapas para corrigir esse problema no Windows NT, 95 ou 98 (consulte a seguir o que fazer no Windows 2000): 1. No menu Iniciar, selecione Programas --> Windows Explorer. O Windows Explorer é aberto. 2. No Windows Explorer, selecione Exibir --> Opções. O Bloco de Notas Opções é aberto. 3. Clique na guia Tipos de arquivos. A página Tipos de arquivos é aberta. 4. Coloque em destaque o Documento Hipertexto do Netscape no campo Tipos de arquivos registrados e clique em Editar. A janela Editar os tipos de arquivos é aberta. 5. Destaque "Open" no campo Ações. 6. Clique no botão Editar. A janela Editando a ação para o tipo é aberta. 7. Desmarque a caixa de seleção Usar DDE. 8. No campo Aplicativo usado para executar a ação, verifique se %1" aparece no final da cadeia (incluindo as aspas e o espaço em branco antes das aspas). Caso encontre as mensagens no Windows 2000, execute as seguintes etapas: 1. A partir do menu Iniciar, selecione Windows Explorer. O Windows Explorer é aberto. 2. A partir do Windows Explorer, selecione Ferramentas --> Opções de pasta. O Bloco de Notas Opções de pasta é aberto. 3. Clique na guia Tipos de arquivo. 4. Na página Tipos de arquivo, no campo Tipos de arquivo registrados, destaque: Documento de Hipertexto HTM Netscape e clique em Avançado. A janela Editar tipo de arquivo é aberta. 5. Destaque "open" no campo Ações. 6. Clique no botão Editar. A janela Editando ação para o tipo é aberta. 7. Desmarque a caixa de seleção Usar DDE. 8. No campo Aplicativo usado para executar a ação, verifique se %1" aparece no final da cadeia (incluindo as aspas e o espaço em branco antes das aspas). 9. Clique em OK. 10. Repita as etapas 4 a 8 para os tipos de arquivos Documento de Hipertexto HTML Netscape e Documento de Hipertexto SHTML Netscape. ------------------------------------------------------------------------ 2.5 Requisitos de Configuração para o Adobe Acrobat Reader nos Sistemas Baseados em UNIX O Acrobat Reader é oferecido apenas em Inglês nas plataformas baseadas em UNIX, e erros podem ser retornados na tentativa de abrir os arquivos PDF com idiomas locais diferentes do Inglês. Estes erros sugerem o acesso às fontes ou problemas de extração com o arquivo PDF, porém são atualmente provocados pelo fato de que o Acrobat Reader em Inglês pode não funcionar corretamente dentro de um local de idioma diferente do Inglês no UNIX. Para exibir tais arquivos PDF, modifique para o locale do Inglês executando uma das seguintes etapas antes de lançar o Acrobat Reader em Inglês: * Edite o script de lançamento do Acrobat Reader, incluindo a seguinte linha após a instrução #!/bin/sh no arquivo de lançamento do script: LANG=C;export LANG Esta abordagem assegurará um comportamento correto quando o Acrobat Reader for lançado por outros aplicativos, tais como Netscape Navigator ou um menu de ajuda do aplicativo. * Digite LANG=C na linha de comando para definir o ambiente de aplicativo do Acrobat Reader. Para informações adicionais, contacte a Adobe Systems (http://www.Adobe.com). ------------------------------------------------------------------------ 2.6 A Referência SQL é Fornecida em Um Arquivo PDF O apêndice "Usando a Biblioteca do DB2" em cada manual indica que a Referência SQL está disponível no formato PDF como dois volumes separados. Isto está incorreto. Embora o manual impresso apareça em dois volumes, e os dois números de formulário correspondentes estejam corretos, existe apenas um arquivo PDF e ele contém ambos os volumes. O nome do arquivo PDF é db2s0x70. ------------------------------------------------------------------------ Instalação e Configuração Índice Parcial * Informações gerais sobre instalação o 3.1 Fazendo o download dos Pacotes de Instalação para Todos os Clientes DB2 Suportados o 3.2 Instalando o DB2 no Windows 2000 o 3.3 Questão de Migração com Respeito às Exibições Definidas com os Registros Especiais o 3.4 Suporte ao Protocolo IPX/SPX no Windows 2000 o 3.5 Interrompendo Processos do DB2 antes de Atualizar uma Versão Anterior do DB2 o 3.6 Executando o db2iupdt após a Instalação do DB2 se outro Produto do DB2 já estiver Instalado o 3.7 Configurando o Ambiente Linux para Executar o Centro de Controle do DB2 o |3.8 DB2 Universal Database Enterprise Edition e DB2 Connect Enterprise Edition para Linux no S/390 o |3.9 DB2 Universal Database Enterprise - Extended Edition para UNIX Quick Beginnings o |3.10 Parâmetro de kernel shmseg para HP-UX o 3.11 Migrando bancos de dados de controle do IBM Visual Warehouse o 3.12 Acessando bancos de dados de controle do warehouse * Iniciação Rápida do Data Links Manager o 4.1 O Início do Dlfm Falha com a Mensagem: "Erro ao obter o afsfid para o prefixo" o 4.2 Definindo a Classe do Gerenciador de Armazenamento do Tivoli para Arquivos de Archive o 4.3 Requisitos de Espaço em Disco para DFS Client Enabler o 4.4 Monitorando o Processo de Backend do Gerenciador do Data Links no AIX o 4.5 Instalação e Configuração do DB2 Data Links Manager para AIX: Considerações Adicionais sobre Instalação em Ambientes DCE-DFS o 4.6 Falha do Comando "dlfm add_prefix" o 4.7 Instalação e Configuração do DB2 Data Links Manager para AIX: Instalação do DB2 Data Links Manager no AIX Usando o Utilitário db2setup o 4.8 Instalando e Configurando DB2 Data Links Manager para AIX: Tarefa de Pós-Instalação no DCE-DFS o 4.9 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando Manualmente o DB2 Data Links Manager Usando o Smit o 4.10 Instalando e Configurando o DB2 Data Links DFS Client Enabler o 4.11 Instalando e Configurando o DB2 Data Links Manager para Solaris: o 4.12 Escolhendo um Método de Backup para o DB2 Data Links Manager no AIX o |4.13 Escolhendo um Método de Backup para o DB2 Data Links Manager no Sistema Operacional Solaris o 4.14 Escolhendo um Método de Backup para o Gerenciador de Data Links do DB2 no Windows NT o |4.15 Fazendo o Backup de um Sistema de Arquivos Armazenado no Diário no AIX o |4.16 Privilégios do Grupo de Administradores do Data Links no Windows NT o |4.17 Minimizar o Log para Instalação do Data Links File System Filter (DLFF) + |4.17.1 Registrando Mensagens após a Instalação o |4.18 Desinstalar Componentes do DLFM Usando o SMIT pode Remover Conjuntos de Arquivos Adicionais o |4.19 Antes de iniciar/determinar o nome do host o |4.20 Trabalhando com o Data Links File Manager: fazendo a limpeza após eliminar um DB2 Data Links Manager de um banco de dados DB2 o |4.21 DLFM1001E (Nova mensagem de erro) o |4.22 Opção do arquivo de configuração DLFM o |4.23 Erro ao executar o script dmapp_prestart de ligação de dados/DFS no AIX o |4.24 Integração do Tivoli Space Manager com o Data Links + |4.24.1 Restrições e Limitações o |4.25 Capítulo 4. Instalando e configurando o DB2 Data Links Manager para AIX + |4.25.1 Considerações comuns de instalação + |4.25.1.1 Migrando do DB2 File Manager Versão 5.2 para o DB2 Data Links Manager Versão 7 * Suplemento da Instalação e Configuração o 5.1 Capítulo 5. Instalando os Clientes DB2 em Sistemas Operacionais UNIX + |5.1.1 Parâmetros de Configuração Kernel de HP-UX o 5.2 Capítulo 12. Executando Seus Próprios Aplicativos + 5.2.1 Fazendo o Bind dos Utilitários de Banco de Dados Utilizando o Cliente de Tempo de execução + 5.2.2 Acesso de Clientes UNIX ao DB2 Usando ODBC o |5.3 Capítulo 24. Configurando o Sistema Federado para Acessar Várias Fontes de Dados + |5.3.1 Sistemas Federados + |5.3.1.1 Restrição + |5.3.2 Instalando o DB2 Relational Connect + |5.3.2.1 Instalando o DB2 Relational Connect em servidores Windows NT + |5.3.2.2 Instalando o DB2 Relational Connect em servidores do Ambiente Operacional AIX, Linux e Solaris o |5.4 Capítulo 26. Acessando as fontes de dados Oracle + |5.4.1 Erros da Documentação o |5.5 Acessando as fontes de dados Sybase (novo capítulo) + |5.5.1 Incluindo as fontes de dados Sybase em um servidor federado + |5.5.1.1 Etapa 1: Definir as variáveis de ambiente e atualizar o registro do perfil + |5.5.1.2 Etapa 2: Ligar o DB2 ao software do cliente Sybase (apenas AIX e Solaris) + |5.5.1.3 Etapa 3: Reciclar a instância do DB2 + |5.5.1.4 Etapa 4: Criar e configurar um arquivo de interfaces + |5.5.1.5 Etapa 5: Criar o wrapper + |5.5.1.6 Etapa 6: Opcional: Defina a variável de ambiente DB2_DJ_COMM + |5.5.1.7 Etapa 7: Criar o servidor + |5.5.1.8 Opcional: Etapa 8: Definir a opção do servidor CONNECTSTRING + |5.5.1.9 Etapa 9: Criar um mapeamento do usuário + |5.5.1.10 Etapa 10: Criar pseudônimos para tabelas e exibições + |5.5.2 Especificando as páginas de códigos Sybase o |5.6 Acessando as fontes de dados do Microsoft SQL Server utilizando o ODBC (novo capítulo) + |5.6.1 Incluindo as fontes de dados do Microsoft SQL Server em um servidor federado + |5.6.1.1 Etapa 1: Definir as variáveis de ambiente (apenas AIX) + |5.6.1.2 Etapa 2: Executar o script de shell (apenas AIX) + |5.6.1.3 Etapa 3: Opcional: Definir a variável de ambiente DB2_DJ_COMM + |5.6.1.4 Etapa 4: Reciclar a instância do DB2 (apenas AIX) + |5.6.1.5 Etapa 5: Criar o wrapper + |5.6.1.6 Etapa 6: Criar o servidor + |5.6.1.7 Etapa 7: Criar um mapeamento do usuário + |5.6.1.8 Etapa 8: Criar pseudônimos para tabelas e exibições + |5.6.1.9 Etapa 9: Opcional: Obter rastreios do ODBC + |5.6.2 Reexibindo as páginas de códigos do Microsoft SQL Server ------------------------------------------------------------------------ Informações gerais sobre instalação ------------------------------------------------------------------------ 3.1 Fazendo o download dos Pacotes de Instalação para Todos os Clientes DB2 Suportados Para fazer download dos pacotes de instalação para todos os clientes DB2 suportados, que incluem todos os clientes pré-Versão 7, conecte-se ao site Web IBM DB2 Client Application Enabler Pack em http://www.ibm.com/software/data/db2/db2tech/clientpak.html ------------------------------------------------------------------------ 3.2 Instalando o DB2 no Windows 2000 No Windows 2000, ao instalar sobre uma versão anterior do DB2 ou ao reinstalar a versão atual, assegure-se de que as opções de recuperação para todos os serviços do DB2 estejam definidas como "Sem Efeito". ------------------------------------------------------------------------ 3.3 Questão de Migração com Respeito às Exibições Definidas com os Registros Especiais As exibições tornam-se não-utilizáveis após a migração do banco de dados se o registrador especial USER ou CURRENT SCHEMA for usado para definir uma coluna de exibição. Por exemplo: create view v1 (c1) as values user Na Versão 5, USER e CURRENT SCHEMA eram do tipo de dado CHAR(8), mas a partir da Versão 6, eles foram definidos como VARCHAR(128). Neste exemplo, o tipo de dados para a coluna c1 é CHAR se a exibição for criada na Versão 5, ele irá permanecer como CHAR após a migração do banco de dados. Quando a exibição for usada após a migração, ela irá compilar em tempo de execução, porém falhará devido à não coincidência do tipo de dados. A solução é eliminar e em seguida criar novamente a exibição. Antes de eliminar a exibição, capture a sintaxe utilizada para criá-la consultando a exibição de catálogo SYSCAT.VIEWS. Por exemplo: select text from syscat.views where viewname='<>' ------------------------------------------------------------------------ 3.4 Suporte ao Protocolo IPX/SPX no Windows 2000 Estas informações se referem ao capítulo Planejando para Instalação no manual Quick Beginnings, na seção chamada "Possíveis Cenários de Conectividade Cliente para Servidor." O gráfico de suportes de protocolo publicado não está completamente correto. Um cliente Windows 2000 conectado a qualquer servidor baseado em OS/2 ou UNIX usando IPX/SPX não é suportado. O mesmo ocorre para qualquer cliente baseado em OS/2 ou UNIX conectado a um servidor Windows usando IPX/SPX. ------------------------------------------------------------------------ 3.5 Interrompendo Processos do DB2 antes de Atualizar uma Versão Anterior do DB2 Estas informações se refem às informações de migração no manual Quick Beginnings do DB2 para Windows. Se estiver atualizando uma versão anterior do DB2 em execução na máquina Windows, o programa de instalação fornecerá um aviso contendo uma lista de processos que estão mantendo DLLs do DB2 na memória. Nesse ponto, você tem a opção de parar manualmente os processos que aparecem na lista ou permitir que o programa de instalação os encerre automaticamente. É recomendado que você pare todos os processos do DB2 manualmente antes da instalação para evitar perda de dados. A melhor maneira de garantir que os processos do DB2 não estejam em execução é exibir os processos do sistema através do painel Serviços do Windows. Nesse painel, certifique-se de que não haja nenhum serviço do DB2, do OLAP ou do Data warehouse em execução. Nota: Você só pode ter uma versão do DB2 executando por vez nas plataformas Windows. Por exemplo, você não pode ter o DB2 Versão 7 e DB2 Versão 6 sendo executados na mesma máquina Windows. Se você instalar o DB2 Versão 7 em uma máquina que tem o DB2 Versão 6 instalado, o programa de instalação excluirá o DB2 Versão 6 durante a instalação. Consulte o manual Iniciação Rápida adequado para obter maiores informações sobre a migração a partir de versões anteriores do DB2. ------------------------------------------------------------------------ 3.6 Executando o db2iupdt após a Instalação do DB2 se outro Produto do DB2 já estiver Instalado As informações a seguir devem ser disponibilizadas na documentação da instalação do Quick Beginnings. Ao instalar o DB2 UDB Versão 7 em sistemas baseados em UNIX e um produto DB2 já instalado, você precisará executar o comando db2iupdt para atualizar essas instâncias com as quais pretende utilizar os novos recursos desse produto. Alguns recursos não estarão disponíveis até esse comando ser executado. ------------------------------------------------------------------------ 3.7 Configurando o Ambiente Linux para Executar o Centro de Controle do DB2 Estas informações devem ser incluídas com o capítulo "Instalando o Centro de Controle do DB2" no manual Quick Beginnings. Após sair do desinstalador do DB2 no Linux e retornar à janela do terminal, digite os seguintes comandos para definir o ambiente correto para executar o DB2 Control Center: su -l export JAVA_HOME=/usr/jdk118 export DISPLAY=:0 Em seguida, abra outra janela do terminal e digite: su root xhost + Feche a janela do terminal e retorne ao terminal onde está conectado como a ID de proprietário da instância e digite o comando: db2cc para iniciar o Centro de Controle. ------------------------------------------------------------------------ |3.8 DB2 Universal Database Enterprise Edition e DB2 Connect Enterprise Edition para Linux no S/390 | |O DB2 Universal Database Enterprise Edition e o DB2 Connect Enterprise |Edition agora estão disponíveis para o Linux no S/390. Antes de |instalar o Linux em uma máquina S/390, saiba dos requisitos de software e |hardware: |Hardware |S/390 9672 Geração 5 ou posterior, Multiprise 3000. |Software | * |SuSE Linux v7.0 para S/390 ou Turbolinux Server 6 para zSeries e |S/390 * |kernel nível 2.2.16, com correções para S/390 (veja a |seguir) * |glibc 2.1.3 * |libstdc++ 6.1 | |As seguintes correções serão necessárias para o Linux no S/390: | * |nenhuma correção é necessária neste momento. | |Para atualizações posteriores, vá para o site web |http://www.software.ibm.com/data/db2/linux. |Notas: 1. |Somente o Linux de 32 bits baseado em Intel e o Linux no S/390 são |suportados. 2. |Os itens a seguir não estão disponíveis no Linux/390 no DB2 |Versão 7: | o |DB2 UDB Enterprise - Extended Edition o |DB2 Extenders o |Gerenciador de Ligações de Dados o |DB2 Administrative Client o |Suporte de Alteração da Senha o |Suporte LDAP | | ------------------------------------------------------------------------ |3.9 DB2 Universal Database Enterprise - Extended Edition para UNIX Quick Beginnings |Capítulo 5. Instalando e Configurando o DB2 Universal Database no |Linux deve indicar que cada nó físico em um cluster do Linux EEE deve ter os |mesmos níveis de kernel, glibc e libstdc++. |Pode ser feito download de uma versão experimental do DB2 EEE para Linux do |seguinte Web site: http://www6.software.ibm.com/dl/db2udbdl/db2udbdl-p ------------------------------------------------------------------------ |3.10 Parâmetro de kernel shmseg para HP-UX |As informações sobre a atualização dos parâmetros de configuração do kernel |do HP-UX fornecidas no manual Quick Beginnings estão incorretas. O |valor recomendado para o parâmetro de kernel shmseg para HP-UX deve ser |ignorada. |Em vez dele, o valor padão do HP-UX (120) deve ser utilizado. ------------------------------------------------------------------------ 3.11 Migrando bancos de dados de controle do IBM Visual Warehouse DB2 Universal Database Quick Beginnings for Windows fornece informações sobre como o banco de dados de controle de warehouse ativo é migrado durante uma instalação típica do DB2 Universal Database Versão 7 no Windows NT e Windows 2000. Se você tiver de fazer a migração de mais de um banco de dados de controle do warehouse, deverá usar a janela Gerenciamento do Banco de Dados de Controle do Warehouse para fazer a migração dos bancos de dados adicionais. Somente um banco de dados de controle do warehouse pode ficar ativo por vez. Se o último banco de dados que foi migrado não for aquele que você pretende usar quando efetuar o próximo logon no Centro de Data Warehouse , use a janela Gerenciamento do Banco de Dados de Controle do Warehouse para registrar o banco de dados que pretende usar. ------------------------------------------------------------------------ 3.12 Acessando bancos de dados de controle do warehouse Em uma instalação típica do DB2 Versão 7 no Windows NT, um banco de dados de controle do warehouse do DB2 Versão 7 é criado juntamente com o servidor do warehouse. Se você tiver um banco de dados de controle do warehouse do Visual Warehouse, deverá atualizar o servidor do DB2 que contém o banco de dados de controle do warehouse para o DB2 Versão 7 antes que os meta-dados do banco de dados de controle do warehouse possam ser migrados para uso pelo Centro de Data Warehouse do DB2 Versão 7.1. Você deve migrar quaisquer bancos de dados de controle de warehouse que deseja continuar utilizando para a Versão 7. Os meta-dados do banco de dados de controle do warehouse ativo são migrados para a Versão 7 durante o processo de instalação do DB2 Versão 7. Para migrar os meta-dados de todos os bancos de dados adicionais de controle do warehouse, use o utilitário Migração do Banco de Dados de Controle do Warehouse, que você inicia com a seleção de Iniciar --> Programas --> DB2 IBM --> Gerenciamento do Banco de Dados de Controle do Warehouse no Windows NT. Para obter informações sobre a migração dos bancos de dados de controle do warehouse, consulte o DB2 Universal Database para Windows Iniciação Rápida. ------------------------------------------------------------------------ Iniciação Rápida do Data Links Manager ------------------------------------------------------------------------ 4.1 O Início do Dlfm Falha com a Mensagem: "Erro ao obter o afsfid para o prefixo" Para um Data Links Manager em execução no ambiente DCE-DFS, entre em contato com o Serviço da IBM se o dlfm start falhar com o seguinte erro: Erro ao obter o afsfid para o prefixo O erro pode ocorrer quando um conjunto de arquivos DFS registrado no Data Links Manager com "dlfm add_prefix" for excluído. ------------------------------------------------------------------------ 4.2 Definindo a Classe do Gerenciador de Armazenamento do Tivoli para Arquivos de Archive Para especificar qual a classe de gerenciamento TSM usar para arquivos archive, defina a entrada de registro DB2 DLFM_TSM_MGMTCLASS DB2 para o nome de classe de gerenciamento apropriada. ------------------------------------------------------------------------ 4.3 Requisitos de Espaço em Disco para DFS Client Enabler O DFS Client Enabler é um componente opcional que você pode selecionar durante a instalação do DB2 Universal Database cliente ou servidor. Você não pode instalar um DFS Client Enabler sem instalar o produto cliente ou servidor do DB2 Universal Database, ainda que o DFS Client Enabler execute por ele mesmo sem precisar de um cliente ou servidor do DB2 UDB. Além disso, o espaço em disco de 2 MB de espaço exigido para o código do DFS Client Enabler, você deve definir à parte um adicional de 40 MB se estiver instalando o DFS Client Enabler como parte de uma instalação do Cliente de Tempo de execução do DB2. Você irá precisar de mais espaço em disco se instalar o DFS Client Enabler como parte de uma instalação do Cliente de Administração do DB2 ou servidor do DB2. Para obter maiores informações sobre os requisitos de espaço em disco para os produtos DB2 Universal Database, consulte o manual DB2 for UNIX Quick Beginnings. ------------------------------------------------------------------------ 4.4 Monitorando o Processo de Backend do Gerenciador do Data Links no AIX Existe uma alteração feita à saída do comando dlfm see.Quando este comando é emitido para monitorar os processos de back-end do Gerenciador de Arquivo do Data Links no AIX, a saída que é retornada será similar ao seguinte: PID PPID PGID RUNAME UNAME ETIME DAEMON NAME 17500 60182 40838 dlfm root 12:18 dlfm_copyd_(dlfm) 41228 60182 40838 dlfm root 12:18 dlfm_chownd_(dlfm) 49006 60182 40838 dlfm root 12:18 dlfm_upcalld_(dlfm) 51972 60182 40838 dlfm root 12:18 dlfm_gcd_(dlfm) 66850 60182 40838 dlfm root 12:18 dlfm_retrieved_(dlfm) 67216 60182 40838 dlfm dlfm 12:18 dlfm_delgrpd_(dlfm) 60182 1 40838 dlfm dlfm 12:18 dlfmd_(dlfm) DLFM SEE a solicitação teve sucesso. O nome que está fechado entre parênteses é o nome da instância dlfm, neste caso "dlfm". ------------------------------------------------------------------------ 4.5 Instalação e Configuração do DB2 Data Links Manager para AIX: Considerações Adicionais sobre Instalação em Ambientes DCE-DFS Na seção chamada "Pré-requisitos da Instalação", existe uma nova informação que deve ser incluída: Você deve instalar também um e-fix para DFS 3.1, ou um PTF set 1 (quando ele se tornar disponível). O e-fix pode ser encontrado em: http://www.transarc.com/Support/dfs/datalinks/efix_dfs31_main_page.html Também: O cliente dfs deve ser executado antes de você instalar o Gerenciador de Data Links . Use db2setup ou smitty. Na seção chamada "arquivo Keytab", há um erro que deve ser corrigido da seguinte maneira: O arquivo keytab, que contém o usuário principal e as informações de senha, deve se chamado datalink.ktb e .... O nome correto: datalink.ktb é usado no exemplo a seguir. A seção "Arquivo Keytab" deve ser transferida para ficar sob a "Tarefa de Pós-Instalação de DCE-DFS", já que a criação desse arquivo só pode ocorrer depois da criação da instância DLMADMIN. Na seção chamada "Servidores e clientes do Gerenciador de Arquivo de Data Links", deve ser observado que o servidor do Gerenciador de Data Links precisa ser instalado antes de qualquer clientes do Gerenciador de Data Links. Deve ser incluída uma nova seção, "Diretório de backup": Se o método de backup destinar-se para um sistema de arquivos local, este sistema deverá ser um diretório do sistema de arquivos DFS. Confira se esse conjunto de arquivos DFS foi criado por um administrador DFS. Ele não deve ser um conjunto de arquivos DMLFS. ------------------------------------------------------------------------ 4.6 Falha do Comando "dlfm add_prefix" Para um Data Links Manager em execução em um ambiente DCE/DFS, o comando dlfm add_prefix poderá falhar com um código de retorno -2061 (falha do backup). se isto ocorrer, faça o seguinte: 1. Pare os processos de daemon do Data Links Manager, emitindo o comando dlfm stop. 2. Pare os processos do DB2, emitindo o comando dlfm stopdbm. 3. Obtenha as credenciais de raiz dce através do comando dce_login root. 4. Inicie os processos do DB2 emitindo o comando dlfm startdbm. 5. Registre o conjunto de arquivos no Data Links Manager através do comando dlfm add_prefix. 6. Inicie os processos de daemon do Data Links Manager emitindo o comando dlfm start. ------------------------------------------------------------------------ 4.7 Instalação e Configuração do DB2 Data Links Manager para AIX: Instalação do DB2 Data Links Manager no AIX Usando o Utilitário db2setup Na seção "Banco de dados do DB2 DLFM_DB criado", o DLFM_DB não é criado no ambiente DCE_DFS. Isto deve ser feito como uma etapa pós-instalação. Na seção "Registro de pré-início no DCE-DFS para DMAPP", a etapa 2 deve ser alterada assim: 2. Comandos são incluídos para /opt/dcelocal/tcl/user_cmd.tcl, para garantir que o DMAPP é iniciado quando o DFS é inicializado. ------------------------------------------------------------------------ 4.8 Instalando e Configurando DB2 Data Links Manager para AIX: Tarefa de Pós-Instalação no DCE-DFS Deve ser incluída esta nova seção, "Complete a Instalação do Gerenciador de Data Links": No servidor do Gerenciador de Data Links, é preciso efetuar as seguintes etapas para completar a instalação: 1. Crie o arquivo keytab conforme destacado no "Arquivo Keytab" na seção "Considerações Adicionais sobre a Instalação no Ambiente DCE-DFS", no capítulo "Instalação e Configuração do DB2 Data Links Manager para AIX". 2. Como raiz, digite os seguintes comandos para iniciar o DMAPP: stop.dfs all start.dfs all 3. Execute "dlfm setup" usando credenciais raiz do dce: a. Efetue o login como administrador do Gerenciador de Data Links, DLMADMIN. b. Como raiz, emita dce_login. c. Digite o comando: dlfm setup. No cliente Gerenciador de Data Links, para completar a instalação é preciso fazer o seguinte: 1. Crie o arquivo keytab conforme destacado no "Arquivo Keytab" na seção "Considerações Adicionais sobre a Instalação no Ambiente DCE-DFS", no capítulo "Instalação e Configuração do DB2 Data Links Manager para AIX". 2. Como raiz, digite os seguintes comandos para iniciar o DMAPP: stop.dfs all start.dfs all ------------------------------------------------------------------------ 4.9 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando Manualmente o DB2 Data Links Manager Usando o Smit Sob a seção, "Tarefas de Pós-Instalação do SMIT", modifique a etapa 7 para indicar que o comando "dce_login root" deve ser emitido antes do "dlfm setup". A etapa 11 não é necessária. Esta etapa é executada automaticamente quando a Etapa 6 (dlfm server_conf) ou Etapa 8 (dlfm client_conf) é feita. Remova também a etapa 12 (dlfm start). Para concluir a instalação, faça o seguinte: 1. Crie o arquivo keytab conforme destacado no "Arquivo Keytab" na seção "Considerações Adicionais sobre a Instalação no Ambiente DCE-DFS", no capítulo "Instalação e Configuração do DB2 Data Links Manager para AIX". 2. Como raiz, digite os seguintes comandos para iniciar o DMAPP: stop.dfs all start.dfs all ------------------------------------------------------------------------ 4.10 Instalando e Configurando o DB2 Data Links DFS Client Enabler Na seção "Configuração do DFS Client Enaber", inclua a seguinte informação na etapa 2: Executar o comando "secval" deverá normalmente completar a configuração. Contudo, pode ser necessário reinicializar também a máquina. Se forem encontrados problemas durante o acesso aos arquivos READ PERMISSION DB, reinicialize a máquina onde o DB2 DFS Client Enabler acabou de ser instalado. ------------------------------------------------------------------------ 4.11 Instalando e Configurando o DB2 Data Links Manager para Solaris: As seguintes ações devem ser executadas após a instalação do DB2 Data Links Manager para Solaris: 1. Inclua as três linhas a seguir no arquivo /etc/system: set dlfsdrv:glob_mod_pri=0x100800 set dlfsdrv:glob_mesg_pri=0xff set dlfsdrv:ConfigDlfsUid=UID em que UID representa a ID do usuário do id dlfm. 2. Reinicialize a máquina para ativar as alterações. ------------------------------------------------------------------------ 4.12 Escolhendo um Método de Backup para o DB2 Data Links Manager no AIX Além do Disk Copy e do XBSA, pode também ser usado o Tivoli Storage Manager (TSM) para fazer o backup de arquivos que residem em um servidor de Data Links. Para usar o Tivoli Storage Manager como servidor de arquivo acumulativo: 1. Instale o Tivoli Storage Manager no servidor de Data Links. Para mais informações, consulte a documentação do Tivoli Storage Manager. 2. Registre o aplicativo cliente servidor de Data Links no servidor do Tivoli Storage Manager. Para mais informações, consulte a documentação do Tivoli Storage Manager. 3. Inclua nos arquivos de script do Administrador do Gerenciador de Data Links, db2profile ou db2cshrc, as seguintes variáveis de ambiente: (para Bash, Bourne ou Korn shell) export DSMI_DIR=/usr/tivoli/tsm/client/api/bin export DSMI_CONFIG=$HOME/tsm/dsm.opt export DSMI_LOG=$HOME/dldump export PATH=$PATH:$DSMI_DIR (for C shell) setenv DSMI_DIR /usr/tivoli/tsm/client/api/bin setenv DSMI_CONFIG ${HOME}/tsm/dsm.opt setenv DSMI_LOG ${HOME}/dldump setenv PATH=${PATH}:$DSMI_DIR 4. Verifique se o arquivo de opções do sistema do TSM dsm.sys está no diretório $DSMI_DIR. 5. Verifique se o arquivo de opções do usuário dsm.opt do TSM está no diretório INSTHOME/tsm, sendo que INSTHOME é o diretório pessoal do Administrador do Gerenciador de Data Links. 6. |Defina a opção PASSWORDACCESS como generate no |arquivo de opções do sistema |/usr/tivoli/tsm/client/api/bin/dsm.sys do Tivoli Storage |Manager. 7. Registre a senha do TSM com a opção generate antes de iniciar o Gerenciador de Arquivo de Data Links pela primeira vez. Dessa maneira, não será preciso fornecer a senha quando o Gerenciador de Arquivo de Data Links iniciar uma conexão com o servidor do TSM. Para mais informações, consulte a documentação do TSM. 8. Defina a variável de registro DLFM_BACKUP_TARGET para TSM. O valor da variável de registro DLFM_BACKUP_DIR_NAME será ignorado nesse caso. Com isso, a opção de backup do Tivoli Storage Manager será ativada. Notas: 1. Ao alterar a definição da variável de registro DLFM_BACKUP_TARGET entre TSM e disco no tempo de execução, lembre-se de que os arquivos de tipo acumulativo não são transferidos para a nova localização especificada. Por exemplo, se você iniciar o Gerenciador de Arquivo do Data Links com o valor de registro DLFM_BACKUP_TARGET definido para TSM e alterar o valor do registro para uma localização do disco, todos os arquivos recentemente arquivados ficarão armazenados na nova localização do disco. Os arquivos anteriormente acumulados no TSM não passarão para a nova localização do disco. 2. Para substituir a classe de gerenciamento padrão do TSM, há uma variável de registro nova chamada DLFM_TSM_MGMTCLASS. Se essa variável de registro ficar sem definição, será usada a classe de gerenciamento TSM padrão. 9. Interrompa o Gerenciador de Arquivo de Data Links, digitando para isso o comando dlfm stop. 10. Inicie o Gerenciador de Arquivo de Data Links, digitando o comando dlfm start. ------------------------------------------------------------------------ |4.13 Escolhendo um Método de Backup para o DB2 Data Links Manager no Sistema Operacional Solaris |Além do Disk Copy e do XBSA, pode também ser usado o Tivoli Storage Manager |(TSM) para fazer o backup de arquivos que residem em um servidor de Data |Links. |Para usar o Tivoli Storage Manager como servidor de arquivo |acumulativo: | 1. |Instale o Tivoli Storage Manager no servidor de Data Links. Para |mais informações, consulte a documentação do Tivoli Storage Manager. 2. |Registre o aplicativo cliente servidor de Data Links no servidor do Tivoli |Storage Manager. Para mais informações, consulte a documentação do |Tivoli Storage Manager. 3. |Inclua nos arquivos de script do Administrador do Gerenciador de Data |Links, db2profile ou db2cshrc, as seguintes variáveis de |ambiente: | (para Bash, Bourne ou Korn shell) | export DSMI_DIR=/opt/tivoli/tsm/client/api/bin | export DSMI_CONFIG=$HOME/tsm/dsm.opt | export DSMI_LOG=$HOME/dldump | export PATH=$PATH:/opt/tivoli/tsm/client/api/bin | | (for C shell) | setenv DSMI_DIR /opt/tivoli/tsm/client/api/bin | setenv DSMI_CONFIG ${HOME}/tsm/dsm.opt | setenv DSMI_LOG ${HOME}/dldump | setenv PATH=${PATH}:/opt/tivoli/tsm/client/api/bin | 4. |Assegure-se de que o arquivo de opções do sistema do TSM |class="ibmfilepath">dsm.sys esteja localizado no diretório |/opt/tivoli/tsm/client/api/bin. 5. |Verifique se o arquivo de opções do usuário dsm.opt do |TSM está no diretório INSTHOME/tsm, sendo que |INSTHOME é o diretório pessoal do Administrador do Gerenciador de |Data Links. 6. |Defina a opção PASSWORDACCESS como gerar no |arquivo de opções do sistema Tivoli Storage Manager |/opt/tivoli/tsm/client/api/bin/dsm.sys. 7. |Registre a senha do TSM com a opção generate antes de | iniciar o Gerenciador de Arquivo de Data Links pela primeira |vez. Dessa maneira, não será preciso fornecer a senha quando o |Gerenciador de Arquivo de Data Links iniciar uma conexão com o servidor do |TSM. Para mais informações, consulte a documentação do TSM. 8. |Defina a variável de registro DLFM_BACKUP_TARGET para TSM. O |valor da variável de registro DLFM_BACKUP_DIR_NAME será ignorado |nesse caso. Com isso, a opção de backup do Tivoli Storage Manager será |ativada. |Notas: 1. |Ao alterar a definição da variável de registro DLFM_BACKUP_TARGET |entre TSM e disco no tempo de execução, lembre-se de que os arquivos de tipo |acumulativo não são transferidos para a nova localização especificada. |Por exemplo, se você iniciar o Gerenciador de Arquivo de Data Links com o |valor de registro DLFM_BACKUP_TARGET definido para TSM e alterar o valor |do registro para uma localização do disco, todos os arquivos recentemente |arquivados ficarão armazenados na nova localização do disco. Os |arquivos anteriormente acumulados no TSM não passarão para a nova localização |do disco. 2. |Para substituir a classe de gerenciamento padrão do TSM, há uma variável |de registro nova chamada DLFM_TSM_MGMTCLASS. Se essa variável de |registro ficar sem definição, será usada a classe de gerenciamento TSM |padrão. | 9. |Interrompa o Gerenciador de Arquivo de Data Links, digitando para isso o |comando dlfm stop. 10. |Inicie o Gerenciador de Arquivo de Data Links, digitando o comando |dlfm start. | ------------------------------------------------------------------------ 4.14 Escolhendo um Método de Backup para o Gerenciador de Data Links do DB2 no Windows NT Sempre que um valor do DATALINK for inserido em uma tabela com uma coluna DATALINK que seja definida para recuperação, os arquivos do DATALINK correspondentes no servidor de Data Links serão programados para serem compactados em um servidor de arquivos acumulativos. No momento, Disk Copy (método padrão) e o Tivoli Storage Manager são as duas opções suportadas para fazer o backup de arquivos para um servidor de arquivos acumulativos. Os releases futuros do Gerenciador de Data Links do DB2 para Windows NT vão suportar mídias e softwares de backup de outros fornecedores. Disk Copy (método padrão) Quando o comando backup é digitado no servidor do DB2, fica garantido que os arquivos ligados são copiados para o servidor do Data Links ao diretório especificado pela variável de ambiente DLFM_BACKUP_DIR_NAME. O valor padrão da variável é c:\dlfmbackup, sendo que c:\ representa a unidade de instalação de backup do Gerenciador de Data Links. Para definir essa variável para c:\dlfmbackup, digite o comando: db2set -g DLFM_BACKUP_DIR_NAME=c:\dlfmbackup A localização especificada pela variável de ambiente DLFM_BACKUP_DIR_NAME não pode ficar em um sistema de arquivos que use Data Links Filesystem Filter e o espaço necessário deve estar disponível no diretório especificado para os arquivos de backup. É preciso ainda que a variável DLFM_BACKUP_TARGET seja definida para LOCAL, através do seguinte comando: db2set -g DLFM_BACKUP_TARGET=LOCAL Depois de definir ou alterar essas variáveis, pare e reinicie o Gerenciador de Arquivos do Data Links usando os comandos dlfm stop e dlfm start. Tivoli Storage Manager Para usar o Tivoli Storage Manager como servidor de arquivo acumulativo: 1. Instale o Tivoli Storage Manager no servidor de Data Links. Para mais informações, consulte a documentação do Tivoli Storage Manager. 2. Registre o aplicativo cliente servidor de Data Links no servidor do Tivoli Storage Manager. Para mais informações, consulte a documentação do Tivoli Storage Manager. 3. Clique em Iniciar e selecione Definições --> Painel de Controle --> Sistema.A janela Propriedades do Sistema é aberta. Selecione a guia Ambiente e digite as seguintes variáveis de ambiente e seus correspondentes valores: Variável Valor DSMI_DIR c:\tsm\baclient DSMI_CONFIG c:\tsm\baclient\dsm.opt DSMI_LOG c:\tsm\dldump 4. Verifique se o arquivo de opções do sistema do TSM dsm.sys está no diretório c:\tsm\baclient. 5. Verifique se o arquivo de opções do usuário do TSM dsm.opt está no diretório c:\tsm\baclient. 6. Defina a opção PASSWORDACCESS para generate no arquivo de opções do sistema c:\tsm\baclient\dsm.sys do Tivoli Storage Manager. 7. Registre a senha do TSM com a opção generate antes de iniciar o Gerenciador de Arquivo de Data Links pela primeira vez. Dessa maneira, não será preciso fornecer a senha quando o Gerenciador de Arquivo de Data Links iniciar uma conexão com o servidor do TSM. Para mais informações, consulte a documentação do TSM. 8. Defina a variável de ambiente DLFM_BACKUP_TARGET para o TSM através do comando: db2set -g DLFM_BACKUP_TARGET=TSM O valor da variável de ambiente DLFM_BACKUP_DIR_NAME será ignorado nesse caso. Com isso, a opção de backup do Tivoli Storage Manager será ativada. Notas: 1. Se você alterar a definição da variável de ambiente DLFM_BACKUP_TARGET entre TSM e LOCAL no tempo de execução, lembre-se de que os arquivos acumulativos não são transferidos para nova localização. Por exemplo, se você iniciar o Gerenciador de Arquivo de Data Links com a variável de ambiente DLFM_BACKUP_TARGET definida para TSM e alterar seu valor para LOCAL, todos os arquivos recentemente arquivados ficarão armazenados na nova localização do disco. Os arquivos anteriormente acumulados no TSM não passarão para a nova localização do disco. 2. Para substituir a classe de gerenciamento padrão do TSM, há uma variável de ambiente chamada DLFM_TSM_MGMTCLASS. Se essa variável ficar sem definição, será usada a classe de gerenciamento TSM padrão. 9. Interrompa o Gerenciador de Arquivo de Data Links, digitando para isso o comando dlfm stop. 10. Inicie o Gerenciador de Arquivo de Data Links, digitando o comando dlfm start. ------------------------------------------------------------------------ |4.15 Fazendo o Backup de um Sistema de Arquivos Armazenado no Diário no AIX |Segundo o manual, o Gerenciador de Data Links deve ser interrompido para |que seja feito um backup offline do sistema de arquivos. A abordagem a |seguir, que remove as exigências de interrupção do Gerenciador de Data Links, |é sugerida para usuários que necessitam de maior disponibilidade. | 1. |Acesse o arquivo fonte CLI quiesce.c e o script de shell |online.sh. Esses arquivos estão localizados no |diretório /samples/dlfm. 2. |Compile quiesce.c: | xlC -o quiesce -L$HOME/sqllib/lib -I$HOME/sqllib/include -c quiesce.c 3. |Como root, execute o script no nó que possui o sistema de arquivos do |DLFS. | |O script de shell online.sh pressupõe que você possui uma |entrada de catálogo no nó do Gerenciador de Data Link para cada banco de dados |registrado no Gerenciador de Data Link. Ele também assume que |/etc/filesystems possui a entrada completa do sistema de arquivos |do DLFS. O script de shell faz o seguinte: | * |Desativa todas as tabelas registradas no Gerenciador de Data Links. |Com isso, qualquer nova atividade será interrompida. * |Desmonta e remonta o sistema de arquivos como sistema somente para |leitura. * |Faz um backup do sistema de arquivos. * |Desmonta e remonta o sistema de arquivos como sistema de leitura e |gravação. * |Redefine as tabelas do DB2, retirando-as do estado desativado. | |O script deve ser modificado para adequar-se ao sem ambiente da seguinte |maneira: | 1. |Selecione o comando de backup e coloque-o na função do_backup do |script. 2. |Defina as seguintes variáveis de ambiente dentro do script: | o |DLFM_INST: defina-o para o nome da instância do DLFM. o |PATH_OF_EXEC: defina-o para o caminho em que reside o programa |executável de "desativação". | | |Chame o script assim: | online.sh ------------------------------------------------------------------------ |4.16 Privilégios do Grupo de Administradores do Data Links no Windows NT |No Windows NT, um usuário que pertence ao grupo de administradores terá os |mesmos privilégios, com relação aos arquivos ligados através do DataLinks, de |um usuário raiz no UNIX para a maioria das funções. A seguinte tabela |compara ambos. | Operação Unix (raiz) Windows NT (Administrador) Renomear Sim Sim Acessar arquivo sem tokenSim Sim Excluir Sim Não (veja nota a seguir) Atualizar Sim Não (veja nota a seguir) |Nota: O NTFS não permite essas operações para um arquivo somente para |leitura. O usuário administrador pode tornar essas operações |bem-sucedidas ativando a permissão de gravação para o arquivo. | ------------------------------------------------------------------------ |4.17 Minimizar o Log para Instalação do Data Links File System Filter (DLFF) |Você pode minimizar o log para a Instalação do Data Links File System |Filter (DLFF) alterando o arquivo dlfs_cfg . O arquivo |dlfs_cfg é passado para a rotina strload para carregar os |parâmetros do driver e da configuração. Ele está localizado no |diretório /usr/lpp/db2_07_01/cfg/. Através de um link |simbólico, o arquivo também pode ser encontrado no diretório |/etc. O arquivo dlfs_cfg tem o seguinte |formato: | d 'driver-name' 'vfs number' 'dlfm id' 'global message priority' | 'global module priority' - 0 1 | |onde: | |d |O parâmetro d especifica que o driver deve ser carregado. |driver-name |É o caminho completo do driver a ser carregado. Por exemplo, o |caminho completo para a Versão 7 do DB2 é |/usr/lpp/db2_07_01/bin/dlfsdrv. O nome da unidade é |dlfsdrv. |vfs number |É a entrada vfs para o DLFS no/etc/vfs. |dlfm id |Este é o ID do usuário do administrador do DataLinks |Manager. |global message priority |É a prioridade de mensagem global. |global module priority |É a prioridade de módulo global. |0 1 |0 1 são os menores números para a criação de nós não clonados para esse |driver. Os nomes de nós são criados anexando-se o menor número ao nome |do nó do driver clonado. Podem ser fornecidos no máximo cinco números |menores (0-4). | |Um exemplo real seria este: | d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,255,-1 - 0 1 | |As mensagens que são registradas dependem das definições para a prioridade |de mensagem global e prioridade de módulo global. Para minimizar os |registros, você pode alterar o valor para prioridade de mensagem |global. |Existem quatro valores de prioridade de mensagem para ser usados: | #define LOG_EMERGENCY 0x01 | #define LOG_TRACING 0x02 | #define LOG_ERROR 0x04 | #define LOG_TROUBLESHOOT 0x08 |A maioria das mensagens no DLFF tem LOG_TROUBLESHOOT como a prioridade de |mensagem. A seguir estão alguns exemplos de configuração |alternativa: |Se precisar de mensagens de emergência e mensagens de erro, defina a |prioridade de mensagem global para 5 (1+4) no arquivo de configuração |dlfs_cfg: | d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,5,-1 - 0 1 | |Se precisar somente de mensagens de erro, defina a prioridade de mensagem |global para 4: | d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,4,-1 - 0 1 | |Se não precisar de registros para o DLFS, então defina a prioridade de |mensagem global para 0: | d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,0,-1 - 0 1 | |4.17.1 Registrando Mensagens após a Instalação |Se precisar registrar mensagens de emergência, de erro e de detecção de |problemas após a instalação, modifique o arquivo dlfs_cfg |file. O arquivo dlfs_cfg está localizado no |diretório/usr/lpp/db2_07_01/cfg. A prioridade de mensagem |global deve ser definida para 255 (prioridade máxima) ou 13 (8+4+1). A |definição da prioridade para 13 (8+4+1) registrará informações de emergência, |de erro e de detecção de problemas. |Após definir a prioridade de mensagem global, desmonte o sistema de |arquivos do filtro DLFS e recarregue o driver dlfsdrv para que os |novos valores de prioridade sejam definidos no tempo de carregamento. |Após recarregar o driver dlfsdrv, o sistema de arquivos do filtro DLFS deverá |ser remontado. |Nota: As definições do dlfs_cfg permanecerão para qualquer carregamento subseqüente |do driver dlfsdrv, até que o arquivo dlfs_cfg seja alterado novamente. | ------------------------------------------------------------------------ |4.18 Desinstalar Componentes do DLFM Usando o SMIT pode Remover Conjuntos de Arquivos Adicionais |Antes de desinstalar o DB2 (Versões 5, 6 ou 7) a partir de uma máquina AIX |na qual o Data Links Manager está instalado, siga estas etapas: | 1. |Como raiz, faça uma cópia de /etc/vfs usando o comando: |cp -p /etc/vfs /etc/vfs.bak 2. |Desinstale o DB2. 3. |Como raiz, substitua /etc/vfs pela cópia de backup feita na |etapa 1: |cp -p /etc/vfs.bak /etc/vfs | ------------------------------------------------------------------------ |4.19 Antes de iniciar/determinar o nome do host |Determine os nomes de cada um dos servidores do DB2 e servidores de Ligação |de dados. É necessário saber esses nomes de host para verificar a |instalação. Ao fazer conexão com um Gerenciador de Arquivos de Ligação |de dados do DB2, o servidor UDB do DB2 envia internamente as seguintes |informações para o DLFM: | * |Nome do banco de dados * |Nome da instância * |Nome do host | |Em seguida, o DLFM compara essas informações som suas tabelas internas para |determinar se a conexão deve ser permitida. Ele permite a conexão |somente se essa combinação de nome do banco de dados, nome da instância e nome |do host tiver sido registrada com ele, utilizando o comando dlfm |add_db. O nome do host utilizado no comando dlfm add_db deve |corresponder exatamente ao nome do host enviado internamente pelo servidor IDB |do DB2. |Utilize o nome de host exato, obtido da seguinte forma: | 1. |Digite o comando de nome do host no servidor do DB2. Por exemplo, |esse comando pode retornar db2server. 2. |Dependendo da sua plataforma execute uma das seguintes ações: | o |No AIX, digite o comando db2server, onde db2server é o nome obtido na |etapa anterior. Esse comando deve retornar saída semelhante à |seguinte: | db2server.services.com is 9.11.302.341, Aliases: db2server o |No Windows NT, digite o comando nslookup db2server, onde db2server é o |nome obtido na etapa anterior. Esse comando deve retornar saída |semelhante à seguinte: | Servidor: dnsserv.services.com | Endereço: 9.21.14.135 | Nome: db2server.services.com | Endereço: 9.21.51.178 o |No Solaris, digite cat /etc/hosts | grep 'hostname'. Essa |ação deve retornar saída semelhante à seguinte, se o nome do host for |especificado sem o nome de domínio em /etc/hosts: |9.112.98.167 db2server loghost |Se o nome do host for especificado com nome de domínio, o comando retorna |saída semelhante à seguinte: |9.112.98.167 db2server.services.com loghost | | |Utilize db2server.services.com como nome do host ao registrar |um banco de dados UDB do DB2 utilizando o comando dlfm add_db. As |conexões internas do servidor do DB2 com o DLFM falham se algum outro alias |for utilizado no comando dlfm add_db. |O servidor de Ligação de dados é registrado com um banco de dados do DB2, |utilizando o comando "add datalinks manager for database database_alias using |node hostname port port_number" do DB2. |O nome do host é o nome do servidor de Ligação de dados. Todos os |alias válidos do servidor de Ligação de dados podem ser utilizados neste |comando. Os valores de DATALINK que são referências para este servidor |de Ligação de dados devem especificar o nome do host no valor da URL, isto é, |o nome exato utilizado no comando "add datalinks manager" deve ser utilizado |ao atribuir valores de URL a colunas DATALINK. O uso de um alias |diferente faz com que a instrução SQL falhe. ------------------------------------------------------------------------ |4.20 Trabalhando com o Data Links File Manager: fazendo a limpeza após eliminar um DB2 Data Links Manager de um banco de dados DB2 |Quando o DB2 Data Links Manager é eliminado de um banco de dados utilizando |o comando DROP DATALINKS MANAGER, o próprio comando não limpa as informações |correspondentes no DB2 Data Links Manager. Os usuários podem iniciar |explicitamente a ação de desfazer links dos arquivos ligados ao banco de dados |e a coleta de lixo de informações de backup. Isto pode ser feito |utilizando o comando dlfm drop_dlm. Esse comando inicia a exclusão |assíncrona de todas as informações de um determinado banco de dados. O |DB2 Data Links Manager deve estar executando para que esse comando seja bem |sucedido. É extremamente importante que esse comando seja utilizado |somente após eliminar um DB2 Data Links Manager; caso contrário, |informações importantes sobre o DB2 Data Links Manager serão perdidas e não |poderão ser recuperadas. |Para iniciar o processo de desfazer os links e de coleta de lixo das |informações de backup em um determinado banco de dados: | 1. |Inicie sessão no sistema como administrador do DB2 Data Links |Manager. 2. |Emita o seguinte comando: | dlfm drop_dlm banco de dados |instância nome do host | | onde: | | banco de dados é o nome do banco de dados UDB DB2 remoto; | instância é a instância na qual o banco de dados reside e | nome do host é o nome do host do servidor UDB DB2 | no qual o banco de dados reside. 3. |Encerre a sessão. | |Para obter uma situação de uso completa que mostra o conteúdo no qual esse |comando deve ser utilizado, consulte Command |Reference. |Foi criado um novo código de erro para esse comando (consulte 4.21, DLFM1001E (Nova mensagem de erro)). ------------------------------------------------------------------------ |4.21 DLFM1001E (Nova mensagem de erro) |DLFM1001E: Erro no processamento de drop_dlm. |Motivo: |O Data Links Manager não pôde iniciar o processo de desfazer links e de |coleta de lixo para o banco de dados especificado. Isto pode ocorrer |devido a um dos seguintes motivos: | * |O Data Links Manager não está executando. * |Uma combinação inválida de banco de dados, instância e nome do host foi |especificada no comando. * |Ocorreu uma falha em um dos serviços de componentes no Data Links |Manager. | |Ação: |Execute as seguintes etapas: | 1. |Verifique se o Data Links Manager está executando: Inicie o Data |Links Manager, se ele não estiver executando. 2. |Verifique se a combinação de banco de dados, instância e nome do host |identifica um banco de dados registrado. Isto pode ser feito utilizando |o comando "dlfm list registered databases" no Data Links Manager. 3. |Se ainda ocorrer um erro, consulte as informações no arquivo |db2diag.log para verificar se algum serviço de componente (por exemplo, |o Connection Management Service o Transaction Management Service, etc.) |falhou. Observe o código de erro em db2diag.log e execute as |ações apropriadas sugeridas nesse código de erro. | ------------------------------------------------------------------------ |4.22 Opção do arquivo de configuração DLFM |A opção dlfm.cfg da configuração dlfm foi removida. As |referências a ela na documentação devem ser ignoradas. ------------------------------------------------------------------------ |4.23 Erro ao executar o script dmapp_prestart de ligação de dados/DFS no AIX |Se o comando |/usr/sbin/cfgdmepi -a "/usr/lib/drivers/dmlfs.ext" |falhar com o código de retorno 1 quando você executar o script Data |Links/DFS dmapp_prestart, instale o DFS 3.1 ptfset1 para |corrigir o cfgdmepi. ------------------------------------------------------------------------ |4.24 Integração do Tivoli Space Manager com o Data Links |O DB2 Data Links Manager conseguirá aproveitar a funcionalidade do |Tivoli Space Manager. O programa cliente do Hierarchical Storage |Manager (HSM) do Tivoli Space Manager migra automaticamente arquivos |apropriados para armazenamento, para manter os níveis específicos de espaço |livre em sistemas de arquivos locais. Ele rechama automaticamente |arquivos migrados quando eles são acessados e permite que usuários migrem e |rechamem os arquivos específicos. |Esse novo recurso beneficia clientes que têm sistemas de arquivos |com arquivos grandes que são requeridos a serem movidos para armazenamento |terciário periodicamente, no qual o espaço do sistema de arquivos precisa ser |gerenciado em uma base regular. Para muitos clientes, o Tivoli Space |Manager atualmente fornece o meio de gerenciar seu armazenamento |terciário. O novo suporte do DB2 Data Links Manager ao Tivoli Space |Manager fornece flexibilidade maior no gerenciamento do espaço de arquivos |DATALINK. Em vez de pré-alocar armazenamento suficiente no sistema de |arquivos do Data Links Manager para todos os arquivos que podem ser |armazenados lá, o Tivoli Space Manager permite alocações do sistema de |arquivos gerenciado pelo Data Links a ser ajustado em um período de tempo sem |o risco de preencher inadvertidamente o sistema de arquivos durante o uso |normal. | |Incluindo suporte Data Links e HSM em um sistema de arquivos |Quando registrar um sistema de arquivos com o Hierarchical Storage |Management (HSM), registre-o com HSM primeiro e, em seguida, com o |DataLinks File Manager. | 1. |Registre com o HSM, utilizando o comando "dsmmigfs add |/fs". 2. |Registre com o DLM, utilizando o comando "dlfmfsmd /fs". | |O suporte ao Data Links para um sistema de arquivos refletido na sub-rotina |em /etc/filesystems para um sistema de arquivos HSM através das |seguintes entradas: | vfs = dlfs | mount = false | options = rw,Basefs=fsm | nodename = - |Incluindo suporte Data Links em um sistema de arquivos HSM |Registre com o DLM, utilizando o comando "dlfmfsmd /fs". |Incluindo suporte HSM em um sistema de arquivos do Data Links existente | 1. |Registre com o HSM, utilizando o comando "dsmmigfs add |/fs". 2. |Registre com o DLM, utilizando o comando "dlfmfsmd /fs". | |Removendo o suporte Data Links de um sistema de arquivos HSM do Data Links |Remova o suporte Data Links, utilizando o comando "dlfmfsmd -j |/fs". |Removendo o suporte HSM de um sistema de arquivos HSM do Data Links | 1. |Remova o suporte HSM, utilizando o comando "dsmmigfs remove |/fs". 2. |Remova o suporte Data Links, "dlfmfsmd -j /fs". 3. |Registre com o DLM, utilizando o comando "dlfmfsmd /fs". | |Removendo o suporte Data Links e HSM de um sistema de arquivos HSM do Data |Links | 1. |Remova o suporte HSM, utilizando o comando "dsmmigfs remove |/fs". 2. |Remova o suporte Data Links, utilizando o comando "dlfmfsmd |-j/fs". | |4.24.1 Restrições e Limitações | |Essa função é atualmente suportada apenas no AIX. | |A migração seletiva (dsmmigrate) e a rechamada de um arquivo ligado ao FC |(DB com permissão de leitura) devem ser feitos apenas por um usuário |principal. |A migração seletiva pode ser executada apenas pelo proprietário do arquivo |que no caso de arquivos DB de Permissão de Leitura é o Administrador do |Gerenciador do DataLink (dlfm). Para acessar tais arquivos, um símbolo |é requerido do lado do banco de dados do host. O único usuário que não |requer um símbolo é o usuário "principal". Será mais fácil para um |usuário "principal" executar a migração seletiva e a rechamada em arquivos DB |de Permissão de Leitura. O usuário dlfm pode migrar um arquivo FC |utilizando um símbolo válido apenas a primeira vez. A segunda migração |é tentada (após uma rechamada ), a operação falhará com a mensagem de erro |"ANS1028S Erro de programa interno. Consulte seu representante de |serviço." Não será bem-sucedido executar o dsmmigrate em um |arquivo FC através de um usuário não-principal. Essa limitação é |secundária, à medida que os administradores acessam tipicamente os arquivos no |servidor de arquivos. |chamadas do sistema stat e statfs mostrarão o tipo Vfs como fsm em vez de |dlfs, embora dlfs está montado em fsm. |O procedimento acima é para a funcionalidade normal de daemons |dsmrecalld, que executam statfs no sistema de arquivos para |verificar se seu tipo de Vfs é fsm ou não. |O comando "dsmls" não mostrará nenhuma saída, se um arquivo que tem o |número mínimo de inode for FC (DB de permissão de leitura) ligado |O comando dsmls é semelhante ao comando ls e lista |os arquivos que estão sendo administrados pelo TSM. Nenhuma ação do |usuário é requerida. | ------------------------------------------------------------------------ |4.25 Capítulo 4. Instalando e configurando o DB2 Data Links Manager para AIX |4.25.1 Considerações comuns de instalação |4.25.1.1 Migrando do DB2 File Manager Versão 5.2 para o DB2 Data Links Manager Versão 7 |As informações da etapa 3 estão incorretas. A etapa 3 deve mostrar o |seguinte: |"3. Como o administrador DLFM, execute o comando |/usr/lpp/db2_07_01/adm/db2dlmmg. ------------------------------------------------------------------------ Suplemento da Instalação e Configuração ------------------------------------------------------------------------ 5.1 Capítulo 5. Instalando os Clientes DB2 em Sistemas Operacionais UNIX |5.1.1 Parâmetros de Configuração Kernel de HP-UX |A recomendação para definição de parâmetros kernel de HP-UX declara |incorretamente que msgmbn e msgmax devem ser definidos |como 65535 ou superior. Ambos os parâmetros devem ser definidos |exatamente como 65535. ------------------------------------------------------------------------ 5.2 Capítulo 12. Executando Seus Próprios Aplicativos 5.2.1 Fazendo o Bind dos Utilitários de Banco de Dados Utilizando o Cliente de Tempo de execução O Cliente de Tempo de execução não pode ser usado para fazer o bind dos utilitários de banco de dados (importar, exportar, reorganizar, o processador da linha de comandos) e o DB2 CLI faz o bind dos arquivos para cada banco de dados antes que possam ser utilizados com aquele banco de dados. Você deve usar o Cliente de Administração do DB2 ou o Cliente de Desenvolvimento de aplicativo do DB2 preferivelmente. Você deve fazer o bind destes utilitários de banco de dados e dos arquivos de bind do DB2 CLI para cada banco de dados antes que estes possam ser utilizados com aquele banco de dados. Em um ambiente de rede, se você estiver usando múltiplos clientes que executam em diferentes sistemas operacionais, em diferentes versões ou níveis de serviço do Db2, você deve fazer o bind dos utilitários uma vez para cada sistema operacional e para a combinação da versão do DB2. 5.2.2 Acesso de Clientes UNIX ao DB2 Usando ODBC O capítulo 12 ("Running Your Own Applications") especifica que você precisará atualizar odbcinst.ini se instalar um Gerenciador do Driver ODBC com o aplicativo cliente ODBC ou o ODBC SDLK. Isto está parcialmente incorreto. Você não precisará atualizar o odbcinst.ini se instalar um produto Merant ODBC Driver Manager. ------------------------------------------------------------------------ |5.3 Capítulo 24. Configurando o Sistema Federado para Acessar Várias Fontes de Dados |5.3.1 Sistemas Federados | | | |Um sistema federado do DB2 é um tipo especial de sistema de gerenciamento |do banco de dados distribuído (DBMS). Um sistema federado permite que |você consulte e recupere dados localizados em outros DBMSs, tais como Oracle, |Sybase e Microsoft SQL Server. As instruções SQL podem se referir a |vários bancos de dados DBMSs ou individuais em uma única instrução. Por |exemplo, você pode unir os dados localizados em uma tabela do DB2 Universal |Database, em uma tabela do Oracle e em uma exibição do Sybase. Os DBMSs |suportados incluem o Oracle, o Sybase, o Microsoft SQL Server (para Windows |NT) e os membros da família DB2 Universal Database (tais como DB2 para OS/390, |DB2 para AS/4000 e DB2 para Windows). |Um sistema federado do DB2 consiste em um servidor com uma instância do DB2 |(um banco de dados que servirá como o banco de dados federado) e em uma ou |mais fontes de dados. O banco de dados federado contém entradas de |catálogos que identificam as fontes de dados e suas características. |Uma fonte de dados consiste em um DBMS e em dados. O DB2 Universal |Database possui protocolos, chamados wrappers, que você pode utilizar para |acessar essas fontes de dados. Wrappers são mecanismos que os |servidores federados utilizam para comunicar-se com as fontes de dados e |recuperar dados destas fontes. Os pseudônimos são utilizados para se |referirem a tabelas e exibições localizadas nas fontes de dados. Os |aplicativos conectam-se ao banco de dados federado apenas como qualquer outro |banco de dados DB2. O wrapper que você utiliza depende da plataforma na |qual o DB2 Universal Database está sendo executado. |Após um sistema federado ser configurado, as informações nas fontes de |dados podem ser acessadas como se elas estivessem em um banco de dados |grande. Os usuários e os aplicativos enviam consultas para um banco de |dados federado, que recupera dados das fontes de dados. |Um sistema federado do DB2 opera em algumas restrições. Os pedidos |distribuídos são limitados às operações somente leitura no DB2 Versão |7. Além disso, você não pode executar operações do utilitário (LOAD, |REORG, REORGCHK, IMPORT, RUNSTATS e assim por diante) contra |pseudônimos. Entretanto, você pode utilizar um recurso de acesso |direito para submeter as instruções DDL e DML diretamente aos DBMSs, |utilizando o dialeto do SQL associado a essa fonte de dados. |5.3.1.1 Restrição |Os novos wrappers na Versão 7.2 (como Oracle no Linux e Solaris, |Sybase no AIX e Solaris e Microsoft SQL Server no NT e AIX) não estão |disponíveis no FixPak 3; você deve comprar o DB2 Relational Connect |Versão 7.2. |5.3.2 Instalando o DB2 Relational Connect | |Esta seção fornece instruções para instalação do DB2 Relational Connect no |servidor que você utilizará como o servidor do sistema federado. |5.3.2.1 Instalando o DB2 Relational Connect em servidores Windows NT |Antes de você instalar o DB2 Relational Connect em seu servidor federado do |Windows NT: | * |Certifique-se de ter o DB2 Universal Database Enterprise Edition ou o DB2 |Universal Database Enterprise -- Extended Edition instalado no servidor |federado. Se você pretende incluir os bancos de dados da família DB2 |nos pedidos distribuídos, deverá selecionar a opção de fontes de dados |União Distribuída para DB2, quando você instalou o DB2 Universal |Database. Para verificar se essa opção foi implementada, verifique se o |parâmetro FEDERATED está definido como YES. Você pode verificar essa |definição emitindo o comando GET DATABASE MANAGER CONFIGURATION, |que exibe todos os parâmetros e suas definições atuais. * |Certifique-se de ter instalado o software do cliente para a fonte de dados |(tal como Sybase Open Client) no servidor federado. | | 1. |Conecte-se ao sistema com a conta de usuário criada para fazer a |instalação. 2. |Encerre quaisquer outros programas que estão sendo executados, para que o |programa de configuração possa atualizar os arquivos conforme |solicitado. 3. |Chame o programa de configuração. Você pode invocar o programa de |configuração automática ou manualmente. Se o programa de configuração |falhar ao iniciar automaticamente ou se você desejar executar a configuração |em um idioma diferente, invoque o programa de configuração manualmente. | o |Para invocar automaticamente o programa de configuração, insira o CD DB2 |Relational Connect na unidade. O recurso de execução automática inicia |o programa de configuração. O idioma do sistema é determinado e o |programa de configuração para esse idioma é lançado. o |Para invocar manualmente o programa de configuração: | a. |Clique em Iniciar e selecione a opção |Executar. b. |No campo Abrir, digite o seguinte comando: |x:\setup /i language onde: | |x: |Representa sua unidade de CD-ROM. |language |Representa o código do país para seu idioma (por exemplo, EN para |inglês). | c. |Dê um clique em OK. | | |A barra de lançamento da instalação é aberta. 4. |Clique em Instalar para começar o processo de |instalação. 5. |Siga os prompts no programa de configuração. |Quando o programa for concluído, o DB2 Relational Connect será instalado em |seu diretório de instalação com outros produtos do DB2. | |5.3.2.2 Instalando o DB2 Relational Connect em servidores do Ambiente Operacional AIX, Linux e Solaris | |Antes de instalar o DB2 Relational Connect nos servidores federados do |Ambiente Operacional AIX, Linux e Solaris: | * |Certifique-se de ter o DB2 Universal Database Enterprise Edition ou o DB2 |Universal Database Enterprise -- Extended Edition instalado no servidor |federado. Se você pretende incluir os bancos de dados da família DB2 |nos pedidos distribuídos, deverá selecionar a opção de fontes de dados |União Distribuída para DB2, quando você instalou o DB2 Universal |Database. Para verificar se essa opção foi implementada, verifique se o |parâmetro FEDERATED está definido como YES. Você pode verificar essa |definição emitindo o comando GET DATABASE MANAGER CONFIGURATION, |que exibe todos os parâmetros e suas definições atuais. * |Certifique-se de ter instalado o software do cliente para a fonte de dados |(tal como Sybase Open Client) no servidor federado. | |Para instalar o DB2 Relational Connect nos servidores do Ambiente |Operacional AIX, Linux e Solaris, use o utilitário db2setup: | 1. |Efetue login como um usuário com autoridade root (raiz). 2. |Insira e instale o CD-ROM do produto do DB2. Para obter informações |sobre como montar um CD-ROM, consulte Quick Beginnings for |AIX. 3. |Mude para o diretório onde o CD-ROM está montado, digitando o comando |cd /cdrom, onde cdrom é o ponto de |montagem do CD-ROM do produto. 4. |Digite o comando ./db2setup. Depois de alguns |instantes, a janela Utilitário de Configuração do DB2 é aberta. 5. |Selecione Instalar. A janela Instalar o DB2 V7 é |aberta. 6. |Navegue para o produto DB2 Relational Connect de seu cliente, por exemplo, |Relational Connect para Sybase e pressione a barra de espaço para |selecioná-lo. Aparece um asterisco perto da opção, quando ela for |selecionada. 7. |Selecione OK. A janela Criar o DB2 Services é |aberta. 8. |Você pode optar por criar uma instância do DB2. Selecione |OK. A janela Instalação do Relatório de Resumo é |aberta. Dois itens são automaticamente instalados: a união |distribuída para Oracle e a Assinatura do Produto para DB2 Relational |Connect. A Assinatura do Produto é requerida para você conectar-se às |fontes de dados Sybase. 9. |Escolha Continuar. Aparece uma janela para indicar isso, |é a sua chance final para parar a configuração do Relational Connect. |Escolha OK para continuar com a configuração. Isso pode |levar alguns minutos para concluir a configuração. 10. |Quando aparece um aviso indicando que a instalação foi concluída com |êxito, selecione OK. A janela Relatório do Resumo é aberta |indicando o sucesso ou a falha de cada opção instalada; selecione |OK novamente. |Quando a instalação está concluída, o DB2 Relational Connect será instalado |no diretório com os outros produtos do DB2. No AIX, este é o diretório |/usr/lpp/db2_07_01. No Solaris, este é o diretório |/opt/IBMdb2/V7.1. No Linux, este é o diretório |/usr/IBMdb2/V7.1. | ------------------------------------------------------------------------ |5.4 Capítulo 26. Acessando as fontes de dados Oracle | | | |Além de suportar os wrappers no AIX e Windows NT, o DB2 Universal Database |suporta o wrapper do Oracle no Ambiente Operacional Linux e Solaris. |Esse suporte é limitado ao Oracle Versão 8. Para acessar os wrappers |para estas plataformas, você precisa inserir o CD V7.2 DB2 Relational |Connect e selecionar as fontes de dados DB2 Relational Connect para |Oracle. |Quando você tiver instalado o DB2 Relational Connect, poderá incluir uma |fonte de dados do Oracle em um servidor federado: | 1. |Instale e configure o software do cliente Oracle no servidor federado do |DB2. 2. |Defina as variáveis de ambiente da fonte de dados, modificando o arquivo |db2dj.ini e emitindo o comando db2set. 3. |Para servidores federados do DB2 que são executados em plataformas UNIX, |execute o script djxlink para ligar-editar as bibliotecas Oracle |SQL*Net ou Net8 para o servidor federado do DB2. 4. |Assegure-se de que o arquivo SQL*Net ou Net8 tnsnames.ora esteja |atualizado. 5. |Recicle a instância do DB2. 6. |Crie o wrapper. 7. |Opcional: Defina a variável de ambiente DB2_DJ_COMM. 8. |Crie um servidor. 9. |Crie um mapeamento do usuário. 10. |Crie pseudônimos para tabelas e exibições. | |As instruções detalhadas para estas etapas, incluindo a definição das |variáveis de ambiente, estão no Capítulo 26. Configurando um Sistema |Federado para Acessar as Fontes de Dados Oracle no Suplemento de |Instalação e |Configuração do DB2. |5.4.1 Erros da Documentação |A seção "Incluindo fontes de dados Oracle em um Sistema |federado" tem os seguintes erros: | * |Um etapa está ausente no procedimento. As etapas corretas |são: | 1. |Instale e configure o software do cliente Oracle no servidor federado do |DB2 usando a documentação fornecida pela Oracle. 2. |Defina variáveis de ambiente da fonte de dados modificando o arquivo |db2dj.ini e emitindo o comando db2set. O |comando db2set atualiza o registro de perfil do DB2 com suas |definições. |O Capítulo 26 contém instruções detalhadas para as variáveis de |ambiente. Configurando um Sistema federado para acessar fontes de dados |Oracledp Suplemento de instalação e configuração do DB2. 3. |Para servidores federados do DB2 em execução nas plataformas UNIX, |execute o script djxlink para ligar-editar as bibliotecas Oracle SQL*Net ou |Net8 para o servidor federado do DB2. Dependendo de sua plataforma, o |script djxlink está localizado em: | | /usr/lpp/db2_07_01/bin no AIX | /opt/IBMdb2/V7.1/bin Solaris | /usr/IBMdb2/V7.1/bin Linux | |Execute o script djxlink apenas após instalar o software do cliente do |Oracle no servidor federado do DB2. | * |A documentação indica para definir: |DB2_DJ_INI = sqllib/cfg/db2dj.ini |Isso está incorreto e deve ser definido para o seguinte: |DB2_DJ_INI = $INSTHOME/sqllib/cfg/db2dj.ini | ------------------------------------------------------------------------ |5.5 Acessando as fontes de dados Sybase (novo capítulo) | | |Antes de incluir as fontes 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. |Para configurar o servidor federado para acessar os dados armazenados nas |fontes de dados Sybase, você precisa: | 1. |Instalar o DB2 Relational Connect Versão 7.2. Consulte 5.3.2, Instalando o DB2 Relational Connect. 2. |Incluir as fontes 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 Ambiente Operacional Windows NT, |AIX e Solaris. As diferenças específicas da plataforma são observadas |onde elas ocorrem. |5.5.1 Incluindo as fontes de dados Sybase em um servidor federado | |Para incluir uma fonte de dados Sybase em um servidor federado, você |precisa: | 1. |Definir as variáveis de ambiente e atualizar o registro do perfil. 2. |Fazer o link do DB2 ao software do cliente Sybase (apenas AIX e Solaris) 3. |Reciclar a instância do DB2. 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 um servidor. 8. |Opcional: Definir a opção do 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. |5.5.1.1 Etapa 1: Definir as variáveis de ambiente e atualizar o registro do perfil |Defina variáveis de ambiente da fonte 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 do 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="" | |onde é o diretório onde o cliente |Sybase está instalado. 2. |Atualize o arquivo .profile da instância do DB2 com a |variável de ambiente do Sybase. Você pode fazer isso emitindo o |seguinte comando: |export PATH="$SYBASE/bin:$PATH" |export SYBASE="" |onde é o diretório onde o cliente |Sybase está instalado. 3. |Execute a instância do DB2 .profile digitando: |. .profile 4. |Emita o comando db2set para atualizar o registro do perfil do |DB2 com suas mudança.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 do banco de dados não-particionado ou se quiser que o arquivo |db2dj.ini se aplique apenas ao nó atual, emita: |db2set DB2_DJ_INI = 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 = 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 = 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. | | | |5.5.1.2 Etapa 2: Ligar o DB2 ao software do cliente Sybase (apenas AIX e Solaris) |Para permitir acesso às fontes de dados do Sybase, o servidor federado do |DB2 deve ser ligado-editado às bibliotecas do cliente. O processo de |ligar-editar cria um wrapper para cada fonte 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 |5.5.1.3 Etapa 3: Reciclar a instância do DB2 |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 |Em servidores DB2 para AIX e Solaris: |db2stop |db2start | |5.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 /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 | | |5.5.1.5 Etapa 5: Criar o wrapper |Use a instrução CREATE WRAPPER para especificar o wrapper que será |utilizado para acessar as fontes de dados Sybase. Wrappers são |mecanismos que os servidores federados utilizam para comunicar-se com e |recuperar dados das fontes 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 no |DB2 SQL Reference para obter mais informações sobre os nomes de |bibliotecas do wrapper. |5.5.1.6 Etapa 6: Opcional: Defina a variável de ambiente DB2_DJ_COMM | |Para melhorar o desempenho quando a fonte 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 Windows NT: |db2set DB2_DJ_COMM='ctlib.dll' |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 o DB2 SQL Reference para obter mais informações sobre |os nomes de bibliotecas do wrapper. Consulte o Administration |Guide para obter informações sobre a variável de ambiente |DB2_DJ_COMM. |5.5.1.7 Etapa 7: Criar o servidor |Utilize a instrução CREATE SERVER para definir cada servidor Sybase cujas |fontes 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 fonte de dados para o qual você está configurando |acesso. Sybase é a única fonte 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 fontes de dados Sybase. Consulte 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. | |5.5.1.8 Opcional: Etapa 8: Definir a opção do servidor CONNECTSTRING |Especifique os limites de tempo limite, 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 tempo limite 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: | * |Duração de tempo limite para consultas SQL. * |Duração de tempo limite para resposta de início de sessão. * |Caminho e nome do arquivo de interfaces. * |Tamanho do pacote. | | .-;-----------------------------------. | V | |>>----+-------------------------------+--+--------------------->< | +-TIMEOUT-- = --segundos--------+ | +-LOGIN_TIMEOUT-- = --segundos--+ | +-IFILE-- = --"cadeia"----------+ | +-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 tempo limite 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 fonte 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 os manuais de referência do Sybase, para obter mais |informações. | |Exemplos: |Em servidores Windows NT, para definir o valor de tempo limite 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 tempo limite 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";' | |5.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 fonte 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 fonte de dados Sybase; por exemplo: |CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER |OPTIONS ( REMOTE_AUTHID 'sybuser', REMOTE_PASSWORD 'dayl1te') |onde: | |DB2USER |É o ID do usuário local que você está mapeando para um ID do usuário |definido em uma fonte de dados Sybase. |SYBSERVER |É o nome da fonte de dados Sybase definido na instrução CREATE |SERVER. |'sybuser' |É o ID do usuário na fonte de dados Sybase para o qual você está mapeando |DB2USER. Este valor faz distinção entre letras maiúsculas e |minúsculas. |'dayl1te' |É a senha associada ao 'sybuser'. Este valor faz |distinção entre letras maiúsculas e minúsculas. | |Consulte o DB2 SQL Reference para obter mais informações sobre |opções adicionais. |5.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 fonte |de dados Sybase. Você utilizará esses pseudônimos quando consultar a |fonte 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 fontes de dados. Essa consulta |testa sua conexão à fonte de dados. Se a conexão não funcionar, você |receberá uma mensagem de erro. |Consulte 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 o DB2 Administration Guide. |5.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 |fontes 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 National Language Support (NLS). |As fontes 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 1. Opções da Página de Códigos Sybase Página de Opção Sybase equivalente código 850 cp850 897 sjis 819 iso_1 912 iso_2 1089 iso_6 813 iso_7 916 iso_8 920 iso_9 ------------------------------------------------------------------------ |5.6 Acessando as fontes de dados do Microsoft SQL Server utilizando o ODBC (novo capítulo) | | |Antes de incluir as fontes de dados do servidor Microsoft SQL em um |servidor federado do DB2, é preciso instalar e configurar o driver ODBC no |servidor federado. Consulte os procedimentos de instalação na |documentação que é fornecida com o driver ODBS, para obter detalhes |específicos sobre como instalar o driver ODBC. |Para configurar o servidor federado para acessar os dados armazenados nas |fontes de dados do servidor Microsoft SQL, você precisa: | 1. |Instale e configure o driver ODBC no servidor federado. Consulte os |procedimentos de instalação na documentação que é fornecida com o driver ODBS, |para obter detalhes específicos sobre como instalar o driver ODBC. | |Em servidores DB2 para Windows NT: |Configure um DSN do sistema, utilizando o gerenciador de dispositivo |ODBC. |Em servidores DB2 para AIX: |Instale a versão encadeada das bibliotecas fornecidas pelo MERANT, |especifique o diretório da biblioteca MERANT como a primeira entrada no |LIBPATH e configure o arquivo .odbc.ini. Crie |o arquivo .odbc.ini no diretório pessoal. | 2. |Instale o DB2 Relational Connect Versão 7.2. Consulte 5.3.2, Instalando o DB2 Relational Connect. 3. |Inclua as fontes de dados do Microsoft SQL Server em seu servidor |federado. 4. |Especifique as páginas de códigos do Microsoft SQL Server. | |Este capítulo discute as etapas 3 e 4. |As instruções neste capítulo aplicam-se às plataformas Windows NT e |AIX. As diferenças específicas da plataforma são observadas onde elas |ocorrem. |5.6.1 Incluindo as fontes de dados do Microsoft SQL Server em um servidor federado |Após você instalar o driver ODBC e o DB2 Relational Connect, inclua as |fontes de dados do Microsoft SQL Server em seu servidor federado utilizando |estas etapas: | 1. |Defina as variáveis de ambiente (apenas AIX). 2. |Execute o script de shell (apenas AIX). 3. |Opcional: Defina a variável de ambiente DB2_DJ_COMM. 4. |Recicle a instância do DB2 (apenas AIX). 5. |Crie o wrapper. 6. |Crie o servidor. 7. |Crie um mapeamento do usuário. 8. |Crie pseudônimos para tabelas e exibições. 9. |Opcional: Obtenha os rastreios do ODBC. | |Estas etapas são explicadas com detalhes nas seções a seguir. |5.6.1.1 Etapa 1: Definir as variáveis de ambiente (apenas AIX) | |Defina variáveis de ambiente da fonte de dados modificando o arquivo |db2dj.ini e emitindo o comando db2set.O |arquivo db2dj.ini contém informações de configuração para |conectar-se às fontes de dados do Microsoft SQL Server. 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 do 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 |$HOME/sqllib/cfg/ e defina as seguintes variáveis de |ambiente: |ODBCINI=$HOME/.odbc.ini |DJX_ODBC_LIBRARY_PATH=/lib |LIBPATH=/lib |DB2ENVLIST=LIBPATH | | |Emita o comando db2set para atualizar o registro do perfil do |DB2 com suas mudança.A sintaxe de db2set é dependente da |estrutura do sistema do banco de dados: | * |Se você estiver utilizando o arquivo db2dj.ini em um |sistema do banco de dados não-particionado ou se 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 |apenas ao nó atual, emita este comando: | |db2set DB2_DJ_INI=/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 este comando: |db2set -g DB2_DJ_INI=/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 este |comando: |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. | | |5.6.1.2 Etapa 2: Executar o script de shell (apenas AIX) | |O script de shell djxlink.sh liga as bibliotecas do |cliente às bibliotecas do wrapper. Para executar o script de |shell: |djxlink |5.6.1.3 Etapa 3: Opcional: Definir a variável de ambiente DB2_DJ_COMM | |Se você achar que ela obtém um período de tempo irregular para acessar a |fonte de dados do Microsoft SQL Server, poderá melhorar o desempenho definindo |a variável de ambiente DB2_DJ_COMM para carregar o wrapper quando o servidor |federado é inicializado, em vez de quando você tenta acessar a finte de |dados. Defina a variável de ambiente DB2_DJ_COMM para incluir a |biblioteca wrapper que corresponde ao wrapper especificado na Etapa 5. |Por exemplo: | |Em servidores DB2 para Windows NT: |db2set DB2_DJ_COMM=djxmssql3.dll |Em servidores DB2 para AIX: |db2set DB2_DJ_COMM=libmssql3.a | |Assegure-se de que não haja nenhum espaço em nenhum lado do sinal de igual |(=). |Consulte o DB2 SQL Reference para obter mais informações sobre |os nomes da biblioteca wrapper. |5.6.1.4 Etapa 4: Reciclar a instância do DB2 (apenas AIX) |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. Recicle |a instância do DB2, emitindo os seguintes comandos: |db2stop |db2start |5.6.1.5 Etapa 5: Criar o wrapper | |O DB2 Universal Database possui dois protocolos diferentes, chamados |wrappers, que você pode utilizar para acessar as fontes de dados do Microsoft |SQL Server. Wrappers são mecanismos que os servidores federados |utilizam para comunicar-se com as fontes de dados e recuperar dados destas |fontes. O wrapper que você utiliza depende da platarfoma na qual o DB2 |Universal Database está sendo executado. Utilize Tabela 2 como um guia, para selecionar o wrapper apropriado. | |Tabela 2. controladores ODBC controlador ODBC Plataforma Nome do Wrapper Driver ODBC 3.0 (ou superior) Windows NT DJXMSSQL3 Driver MERANT DataDirect Connect AIX MSSQLODBC3 ODBC 3.6 |Utilize a instrução CREATE WRAPPER para especificar o wrapper que |será utilizado para acessar as fontes de dados do Microsoft SQL Server. |O exemplo a seguir mostra uma instrução CREATE WRAPPER: |CREATE WRAPPER DJXMSSQL3 |onde DJXMSSQL3 é o nome do wrapper padrão utilizado em um |servidor DB2 para Windows NT (utilizando o driver ODBC 3.0). Se |você tiver um servidor DB2 para AIX, especificará o nome do wrapper |MSSQLODBC3. |Você pode substituir o nome do wrapper padrão por um nome de sua |escolha. Entretanto, se isso acontecer, você deverá incluir o parâmetro |LIBRARY e o nome da biblioteca wrapper para seu servidor federado na instrução |CREATE WRAPPER. Por exemplo: | |Em servidores DB2 para Windows NT: |CREATE WRAPPER wrapper_name LIBRARY 'djxmssql3.dll' |onde wrapper_name é o nome que você deseja fornecer ao wrapper |e 'djxmssql3.dll' é o nome da biblioteca. |Em servidores DB2 para AIX: |CREATE WRAPPER wrapper_name LIBRARY 'libmssql3.a' |onde wrapper_name é o nome que você deseja fornecer ao wrapper |e 'libdjxmssql.a' é o nome da biblioteca. | |Consulte a instrução CREATE WRAPPER no DB2 SQL Reference para |obter mais informações sobre os nomes de bibliotecas do wrapper. |5.6.1.6 Etapa 6: Criar o servidor | |Utilize a instrução CREATE SERVER para definir cada fonte de dados do |Microsoft SQL Server ao qual você deseja conectar-se. Por |exemplo: |CREATE SERVER sqlserver TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3 |OPTIONS (NODE 'sqlnode', DBNAME 'database_name') |onde: | |sqlserver |É o nome atribuído ao servidor do Microsoft SQL Server. Este nome |deve ser único. |MSSQLSERVER |É o tipo de fonte de dados para o qual você está configurando |acesso. |7.0 |É a versão do Microsoft SQL Server que você está acessando. O DB2 |Universal Database suporta as versões 6.5 e 7.0 do Microsoft SQL |Server. |DJXMSSQL3 |É o nome do wrapper definido na instrução CREATE WRAPPER. |'sqlnode' |É o nome do DSN do sistema que se refere ao Microsoft SQL Server. |Este valor faz distinção entre letras maiúsculas e minúsculas. Versão |do Microsoft SQL Server que você está acessando. O DB2 Universal |Database suporta as versões 6.5 e 7.0 do Microsoft SQL |Server. |Embora o nome do nó (nome do DSN do Sistema) esteja especificado como uma |opção na instrução CREATE SERVER, ele é requerido para as fontes de dados do |Microsoft SQL Server. |Consulte o DB2 SQL Reference para obter opções adicionais que |você pode utilizar com a instrução CREATE WRAPPER. |'database_name' |É o nome do banco de dados ao qual você está se conectando. |Embora o nome do banco de dados esteja especificado como uma opção na |instrução CREATE SERVER, ele é requerido para as fontes de dados do Microsoft |SQL Server. | |5.6.1.7 Etapa 7: 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 de uma fonte de dados do Microsoft SQL Server, utilize |a instrução CREATE USER MAPPING para mapear o ID do usuário local para o ID do |usuário e para a senha definidos na fonte de dados do Microsoft SQL |Server; por exemplo: |CREATE USER MAPPING FOR db2user SERVER server_name |OPTIONS (REMOTE_AUTHID 'mssqluser', REMOTE_PASSWORD 'dayl1te') |onde: | |db2user |É o ID do usuário local que você está mapeando para um ID do usuário |definido na fonte de dados do Microsoft SQL Server. |server_name |É o nome do servidor definido na instrução CREATE SERVER. |'mssqluser' |É o ID do usuário na fonte de dados do Microsoft SQL Server para o qual |você está mapeando o db2user. Este valor faz distinção entre |letras maiúsculas e minúsculas. |'dayl1ite' |É a senha associada ao 'mssqluser'. Este valor |faz distinção entre letras maiúsculas e minúsculas. | |Consulte o DB2 SQL Reference para obter as opções adicionais que |você pode utilizar com a instrução CREATE USER MAPPING. |5.6.1.8 Etapa 8: Criar pseudônimos para tabelas e exibições |Atribua um pseudônimo para cada exibição ou tabela localizadas em sua fonte |de dados do Microsoft SQL Server que você deseja acessar. Você |utilizará esses pseudônimos, quando consultar a fonte de dados do Microsoft |SQL Server. Utilize a instrução CREATE NICKNAME para atribuir um |pseudônimo. Os pseudônimos têm distinção entre maiúsculas e |minúsculas. O exemplo a seguir mostra uma instrução CREATE |NICKNAME: |CREATE NICKNAME mssqlsales FOR server_name.salesdata.europe |onde: | |mssqlsales |É um pseudônimo único para a tabela ou a exibição do Microsoft SQL |Server. |server_name.salesdata.europe |É um identificador de três partes que segue este formato: |data_source_server_name.remote_schema_name.remote_table_name |As aspas duplas são recomendadas para as partes |remote_schema_name e remote_table_name do |pseudônimo. | |Quando você cria um pseudônimo, o DB2 tenta acessar as tabelas do catálogo |de fontes de dados (o Microsoft SQL Server refere-se a estas como tabelas do |sistema). Isso testa a conexão à fonte de dados. Se a conexão |falhar, você receberá uma mensagem de erro. |Repita esta etapa para todas as tabelas e exibições do banco de dados para |o qual você deseja criar pseudônimos. |Para obter mais informações sobre a instrução CREATE NICKNAME, consulte o |DB2 SQL Reference. Para obter mais informações sobre os |pseudônimos em geral e para verificar os mapeamentos dos tipos de dados, |consulte o DB2 Administration Guide. |5.6.1.9 Etapa 9: Opcional: Obter rastreios do ODBC | |Se você estiver tendo problemas quando acessar a fonte de dados, poderá |obter as informações de rastreio do ODBC para analisar e resolver esses |problemas. Para garantir que o rastreio do ODBC funciona corretamente, |utilize a ferramenta de rastreio fornecida pelo ODBC Data Source |Administrator. Ativar o rastreio impacta o desempenho do sistema, |portanto, você deve desligar o rastreio quando tiver resolvido os |problemas. |5.6.2 Reexibindo as páginas de códigos do Microsoft SQL Server | |O Microsoft SQL Server suporta muitas opções comuns da página de códigos do |National Language Support (NLS) que o UDB do DB2 suporta. As fontes de |dados que estão utilizando o mesmo conjunto de códigos que o DB2, não requerem |conversão. A tabela 3 lista as páginas de códigos que são suportadas |pelo DB2 Universal Database e Microsoft SQL Server. | |Tabela 3. Opções da Página de Códigos do UDB do DB2 e do Microsoft SQL Server Página de Idioma suportado código 1252 Conjunto de caracteres ISO 850 Multilíngüe 437 Inglês Americano 874 Tai 932 Japonês 936 Chinês (simplificado) 949 Coreano 950 Chinês (tradicional) 1250 Europa Central 1251 Cirílico 1253 Grego 1254 Turco 1255 Hebraico 1256 Árabe |Quando o servidor federado do DB2 e o Microsoft SQL Server estiverem |executando diferentes páginas de códigos do National Language Support (NLS), |as fontes de dados do servidor Microsoft SQL devem ser configuradas para |corresponderem a estes equivalentes ou o código cliente deve conseguir |detectar a inconsistência e sinalizá-la como um erro ou mapear os dados |utilizando sua própria semântica. 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 |Microsoft SQL Server, para obter mais informações. ------------------------------------------------------------------------ Administração Índice Parcial * Manual de Administração: Planejamento o |6.1 Capítulo 8. Planejar o Banco de Dados Físico + |6.1.1 Chaves de particionamento o |6.2 Design de grupos de nós o 6.3 Capítulo 9. Planejando Bancos de Dados Distribuídos + 6.3.1 Atualizando vários bancos de dados o 6.4 Capítulo 13. Alta Disponibilidade no Ambiente Windows NT + |6.4.1 Necessário Reinicializar a Máquina Antes de Executar o Utilitário DB2MSCS o 6.5 Capítulo 14. DB2 e Alta Disponibilidade no Sun Cluster 2.2 o |6.6 Suporte a Veritas no Solaris o 6.7 Apêndice B. Regras de nomenclatura + 6.7.1 Observações sobre os IDs do Usuário Com Mais de 8 Caracteres e Nomes de Esquema + |6.7.2 IDs do usuário e senhas o 6.8 Apêndice D. Incompatibilidades entre releases + |6.8.1 DLFS do Windows NT é Incompatível com o Norton Utilities + |6.8.2 SET CONSTRAINTS Substituído por SET INTEGRITY o 6.9 Apêndice E. Suporte ao Idioma Nacional (NLS) + |6.9.1 Versões do Idioma Nacional do DB2 Versão 7 + |6.9.1.1 Centro de Controle e Conjuntos de Arquivos de Documentação + 6.9.2 Definindo Locale para o Servidor de Administração do DB2 + |6.9.3 O DB2 UDB Suporta a Página de Código da Orla Báltica (MS-1257) em Plataformas Windows + |6.9.4 Derivando valores da página de códigos + |6.9.5 Suporte ao código de país e à página de códigos + |6.9.6 Conjuntos de caracteres * Manual de Administração: Implementação o |7.1 Incluindo ou Estendendo Contêineres DMS (Novo Processo) o |7.2 Capítulo 1. Administrando o DB2 utilizando Ferramentas da GUI o |7.3 Capítulo 3. Criando um banco de dados + |7.3.1 Criando uma Table Space + |7.3.1.1 Utilizando E/S bruta no Linux + |7.3.2 Criando uma seqüência + |7.3.3 Comparando colunas e seqüências IDENTITY + |7.3.4 Criando um índice, extensão do índice ou especificação do índice o |7.4 Capítulo 4. Alterando um Banco de Dados + |7.4.1 Incluindo um Contêiner em um Table Space SMS em uma Partição + |7.4.2 Alterando uma coluna de identidade + |7.4.3 Alterando uma seqüência + |7.4.4 Eliminando uma seqüência + |7.4.5 Alternando o Estado de um Table Space + |7.4.6 Modificando contêineres em um table space DMS o 7.5 Capítulo 5. Controlando o acesso ao banco de dados + |7.5.1 Privilégios de seqüência + |7.5.2 Criptografia de dados o 7.6 Capítulo 8. Recuperando um Banco de Dados + |7.6.1 Como Usar a E/S Suspensa + |7.6.2 Recuperação e backup incremental + |7.6.2.1 Restaurando a partir de imagens de backup incremental + |7.6.3 Recuperação paralela + |7.6.4 Backup para canais nomeados + |7.6.5 Backup da imagem dividida + |7.6.6 Archive do log por pedido + |7.6.7 Espelhamento do log + |7.6.8 Suporte a backup e restauração nas plataformas no Sun Solaris e HP + |7.6.9 Considerações sobre DB2 Data Links Manager/Considerações sobre utilitário de backup + |7.6.10 Considerações sobre DB2 Data Links Manager/Considerações sobre o utilitário de restauração e avanço + |7.6.11 Restaurando bancos de dados a partir de um backup offline sem avanço + |7.6.12 Restaurando bancos de dados e table spaces e avanço para o fim dos logs + |7.6.13 Gerenciador do Data Links do DB2 e Interações de recuperação + |7.6.14 Detecção de situações que requerem reconciliação o 7.7 Apêndice C. Rotina de Usuário para Recuperação de Banco de Dados o |7.8 Apêndice D. Emitindo Comandos para Vários Servidores de Partição do Banco de Dados o 7.9 Apêndice I. Comunicações Entre Nós de Alta Velocidade + 7.9.1 Ativando o DB2 para Executar Utilizando VI * Manual de Administração: Desempenho o 8.1 Capítulo 3. Considerações do aplicativo + |8.1.1 Especificando o nível de isolamento + |8.1.2 Ajustando a classe de otimização + |8.1.3 Instruções compostas dinâmicas o |8.2 Capítulo 4. Considerações ambientais + |8.2.1 Utilizando chaves de índice maiores o 8.3 Capítulo 5. Estatísticas do Catálogo de Sistema + 8.3.1 Coletando e Utilizando Estatísticas de Distribuição + |8.3.2 Regras para atualizar estatísticas de catálogo + 8.3.3 Estatísticas do Subelemento o 8.4 Capítulo 6. Entendendo o Compilador SQL + 8.4.1 Tabelas de Resumo Replicadas + 8.4.2 Conceitos e Otimização do Acesso de Dados o 8.5 Capítulo 8. Desempenho Operacional + |8.5.1 Gerenciando o conjunto de buffer do banco de dados + |8.5.2 Gerenciando vários conjuntos de buffer do banco de dados o |8.6 Capítulo 9. Utilizando o Governor o 8.7 Capítulo 13. Configurando o DB2 + 8.7.1 Sort Heap Size (sortheap) + 8.7.2 Sort Heap Threshold (sheapthres) + |8.7.3 Porcentagem Máxima da Lista de Bloqueios Antes da Escalação (maxlocks) + |8.7.4 Configurando o DB2/DB2 Data Links Manager/Intervalo de Expiração do Token do Data Links Access (dl_expint) + |8.7.5 Parâmetro de Configuração de Banco de Dados MIN_DEC_DIV_3 + |8.7.6 Tamanho do heap de controle do aplicativo (app_ctl_heap_sz) + |8.7.7 Tamanho do heap do monitor do sistema de banco de dados (mon_heap_sz) + |8.7.8 Número máximo de aplicativos ativos (maxappls) + |8.7.9 Intervalo de recuperação e de ponto de verificação de software (softmax) + 8.7.10 Rastrear ativação de páginas modificadas (trackmod) + 8.7.11 Alterar o caminho do log do banco de dados (newlogpath) + |8.7.12 Localizando Arquivos de Log (logpath) + |8.7.13 Armazenamento máximo para a lista de bloqueio (locklist) o 8.8 Apêndice A. Registro DB2 e Variáveis de Ambiente + |8.8.1 Tabela das Variáveis de Registro Novas e Alteradas o 8.9 Apêndice C. Ferramentas de Explicações de SQL * |Administering Satellites Guide and Reference o |9.1 Configurando o DB2 Personal Edition e DB2 Workgroup Edition Versão 7.2 como Satélites + |9.1.1 Pré-requisitos + |9.1.1.1 Considerações de Instalação + |9.1.2 Configurando o Sistema Versão 7.2 para Sincronização + |9.1.3 Instalando o FixPak 2 ou Superior em um Sistema Enterprise Edition Versão 6 + |9.1.3.1 Atualizando o DB2 Enterprise Edition Versão 6 para Uso como o Servidor de Controle do DB2 + |9.1.4 Atualizando uma Versão 6 Centro de Controle e Centro de Administração do Satélite * Referência e Comando o 10.1 db2batch - Ferramenta de Benchmark o 10.2 db2cap (novo comando) + db2cap - Ferramenta de Bind do Pacote Estático CLI/ODBC o 10.3 db2ckrst (novo comando) + db2ckrst - Verificar Seqüência de Imagens da Restauração Incremental o 10.4 db2gncol (comando novo) + db2gncol - Atualiza Valores de Colunas Gerados o |10.5 db2inidb - Inicializar um Banco de Dados Espelhado o 10.6 db2look - DB2 Statistics Extraction Tool o |10.7 db2updv7 - Atualizar o Banco de Dados para o Nível de Correção Atual da Versão 7 o 10.8 Nova Opção do Processador de Linha de Comando (-x, Suprime a impressão dos cabeçalhos da coluna) o 10.9 Requisito de fonte Tipo True para o DB2 CLP o |10.10 ADD DATALINKS MANAGER o |10.11 ARCHIVE LOG (comando novo) + |Archive Log o 10.12 BACKUP DATABASE + |10.12.1 Diagrama de sintaxe + |10.12.2 Considerações sobre o DB2 Data Links Manager o |10.13 BIND o 10.14 CALL o |10.15 DROP DATALINKS MANAGER (comando novo) + |DROP DATALINKS MANAGER o 10.16 EXPORT o |10.17 OBTER CONFIGURAÇÃO DE BANCO DE DADOS o 10.18 GET ROUTINE (comando novo) + GET ROUTINE o |10.19 GET SNAPSHOT o 10.20 IMPORT o |10.21 LIST HISTORY o 10.22 LOAD o 10.23 PING (comando novo) + PING o |10.24 PUT ROUTINE (comando novo) + |PUT ROUTINE o |10.25 RECONCILE o |10.26 REORGANIZE TABLE o 10.27 RESTORE DATABASE + |10.27.1 Sintaxe + |10.27.2 Considerações sobre o DB2 Data Links Manager o |10.28 ROLLFORWARD DATABASE o |10.29 Erro na documentação nos códigos de retorno CLP * Guia e Referência dos Utilitário de Movimento dos Dados o 11.1 Capítulo 2. Importar + |11.1.1 Utilizando importação com inserções em buffer o 11.2 Capítulo 3. Carregar + 11.2.1 Estados Pendentes Após uma Operação de Carregamento + 11.2.2 Restrições e Limitações de Carregamento + |11.2.3 Modificador de tipo do arquivo totalfreespace o 11.3 Capítulo 4. Carregador Automático + |11.3.1 rexecd obrigatório para executar o autoloader quando a autenticação estiver definida como YES * Manual de Referência e Replicação o 12.1 Replicação e Servidores Não-IBM o 12.2 Replicando no Windows 2000 o |12.3 Erro Conhecido Ao Salvar os Arquivos SQL o |12.4 Manutenção do DB2 o |12.5 Utilitário de Diferença de Dados na Web o 12.6 Capítulo 3. Cenário de replicação de dados + 12.6.1 Cenários de Replicação o 12.7 Capítulo 5. Planejando replicação + 12.7.1 Nomes de Tabelas e Colunas + 12.7.2 Replicando o DATALINK + 12.7.3 Restrições LOB + 12.7.4 Planejando a Replicação o 12.8 Capítulo 6. Configurando o ambiente de replicação + 12.8.1 Pré-requisito Update-anywhere + 12.8.2 Configurando Seu Ambiente de Replicação o 12.9 Capítulo 8. Determinação de Problemas o 12.10 Capítulo 9. Capture and Apply para AS/400 o 12.11 Capítulo 10. Capture and Apply para OS/390 + |12.11.1 Pré-requisitos para DB2 DataPropagator para OS/390 + |12.11.2 Esquemas de Codificação do UNICODE e ASCII no OS/390 + |12.11.2.1 Escolhendo um Esquema de Codificação + |12.11.2.2 Definindo Esquemas de Codificação o 12.12 Capítulo 11. Capture and Apply para plataformas UNIX + |12.12.1 Definindo Variáveis de Ambiente para Capture and Apply no UNIX e Windows o 12.13 Capítulo 14. Estruturas de Tabelas o 12.14 Capítulo 15. Mensagens de Capture and Apply o 12.15 Apêndice A. Iniciando os Programas Capture and Apply de um Aplicativo * Manual e Referência do System Monitor o 13.1 db2ConvMonStream * Manual da Solução de Problemas o |14.1 Iniciando o DB2 no Windows 95, Windows 98 e Windows ME quando o usuário não iniciou sessão o |14.2 Capítulo 2. Detectando Problemas no DB2 Universal Database Server * Usando o DB2 Universal Database em Plataformas de 64 bits o 15.1 Capítulo 5. Configuração + |15.1.1 LOCKLIST + 15.1.2 shmsys:shminfo_shmmax o 15.2 Capítulo 6. Restrições * |Administração e programação do XML Extender * |MQSeries o |17.1 Instalação e Configuração para as Funções do DB2 MQSeries + |17.1.1 Instalar o MQSeries + |17.1.2 Instalar o MQSeries AMI + |17.1.3 Ativar as Funções do DB2 MQSeries o |17.2 Estilos de Mensagens do MQSeries o |17.3 Estrutura da Mensagem o |17.4 Visão Geral Funcional do MQSeries + |17.4.1 Limitações + |17.4.2 Códigos de Erros o |17.5 Cenários de Utilização + |17.5.1 Mensagens Básicas + |17.5.2 Enviando Mensagens + |17.5.3 Recuperando Mensagens + |17.5.4 Conectividade de Aplicativo a Aplicativo + |17.5.4.1 Comunicações de Pedido/Resposta + |17.5.4.2 Publicar/Associar o |17.6 enable_MQFunctions + |enable_MQFunctions o |17.7 disable_MQFunctions + |disable_MQFunctions ------------------------------------------------------------------------ Manual de Administração: Planejamento ------------------------------------------------------------------------ |6.1 Capítulo 8. Planejar o Banco de Dados Físico |6.1.1 Chaves de particionamento | |Na subseção "Considerações no design do grupo de nós" da seção |"Design de grupos de nós", o texto a seguir, da subseção "Chaves de |particionamento", indicando os pontos a serem considerados ao definir |chaves de particionamento, deve ser excluído somente se |DB2_UPDATE_PART_KEY=ON: |Nota: Se DB2_UPDATE_PART_KEY=OFF, as restrições ainda são válidas. | |Nota: |No FixPak 3 e posterior, o valor padrão é ON. | | * |Você não pode atualizar o valor de coluna da chave de particionamento para |uma linha na tabela. * |Você pode somente excluir ou inserir valores de coluna da chave de |particionamento. | ------------------------------------------------------------------------ |6.2 Design de grupos de nós | |Dentro da seção intitulada "Design de grupos de nós", a subseção |"Considerações no design do grupo de nós" e a subseção "Tabelas de |resumo replicadas" ignoram a última frase do segundo parágrafo: |A palavra-chave REPLICATED pode ser especificada somente para uma tabela de |resumo definida com a opção REFRESH DEFERRED. ------------------------------------------------------------------------ 6.3 Capítulo 9. Planejando Bancos de Dados Distribuídos 6.3.1 Atualizando vários bancos de dados Na seção "Atualizando Múltiplos Bancos de Dados", a lista de etapas de configuração contém um erro. Etapa 4, que está assim: Pré-compile o programa do aplicativo para especificar uma conexão do tipo 2 (ou seja, especifique CONNECT 2 no comando PRECOMPILE PROGRAM) e o commit de uma fase (ou seja, especifique SYNCPOINT ONEPHASE no comando PRECOMPILE PROGRAM), como descrito no Manual de Desenvolvimento de Aplicativo. deve ser modificada para: Pré-compile o programa do aplicativo para especificar uma conexão do tipo 2 (ou seja, especifique CONNECT 2 no comando PRECOMPILE PROGRAM) e o commit de duas fases (ou seja, especifique SYNCPOINT TWOPHASE no comando PRECOMPILE PROGRAM), como descrito no Manual de Desenvolvimento de Aplicativo. ------------------------------------------------------------------------ 6.4 Capítulo 13. Alta Disponibilidade no Ambiente Windows NT |6.4.1 Necessário Reinicializar a Máquina Antes de Executar o Utilitário DB2MSCS | |O utilitário DB2MSCS é usado para executar a configuração requerida para |ativar o DB2 para suporte de failover no ambiente Microsoft Cluster |Service. Para que o utilitário DB2MSCS seja executado com sucesso, o |Cluster Service deve localizar a DLL de recurso, db2wolf.dll, que se |localiza no diretório %Arquivos de Programas%\SQLLIB\bin. |O Programa de Instalação do DB2 UDB Versão 7 define a variável de ambiente |PATH do sistema para apontar para o diretório %Arquivos de |Programas%\SQLLIB\bin. No entanto, não há necessidade de |reinicializar a máquina após a instalação se estiver executando no sistema |operacional Windows 2000. |Se deseja executar o utilitário DB2MSCS, você deve reinicializar a máquina, |assim a variável do ambiente PATH é atualizada para o Serviço do |Grupo. ------------------------------------------------------------------------ 6.5 Capítulo 14. DB2 e Alta Disponibilidade no Sun Cluster 2.2 O DB2 Connect é suportado no Sun Cluster 2.2 se: * O protocolo para o host é TCP/IP (não SNA) * O commit de duas-fases não é utilizado. Esta restrição será desprezada se o usuário configurar o log SPM para estar em um disco compartilhado (o que pode ser feito através do parâmetro de configuração do gerenciador de banco de dados spm_log_path), e a máquina que falhou possuir uma configuração TCP/IP idêntica (o mesmo nome do host, endereço IP e assim por diante). ------------------------------------------------------------------------ |6.6 Suporte a Veritas no Solaris | | |O DB2 suporta a Veritas, que fornece suporte ao cluster para Alta |Disponibilidade do DB2 no Solaris. | |Descrição |torna online, torna offline e monitora uma instância UDB do DB2. |Pontos de entrada | |Online |Utilize db2start para ativar a instância. |Offline |utilize db2stop para desativar a instância. |Monitorar |Determina se a instância especificada do DB2 está ativa. utiliza |monitoramento de processos apropriado e monitoramento do banco de dados |(opcional). |Limpar |Remove recursos da instância do DB2. | | | Atributo Tipo Definição probeDatabase cadeia Banco de dados a ser monitorado instanceOwner cadeia Nome do proprietário da instância instanceHome cadeia Diretório pessoal do proprietário da instância probeTable cadeia Tabela no probeDatabase a ser monitorada monitorLevel inteiro 1 implica em monitoramento do processo, 2 implica em monitoramento do bd nodeNumber inteiro Número do nó da instância a ser iniciada (não definido é EE) | |Definição de tipo |type DB2UDB ( | static int CleanTimeout = 240 | static int MonitorTimeout = 30 | static int OfflineTimeout = 240 | static int OnlineRetryLimit = 2 | static int OnlineTimeout = 120 | static int OnlineWaitLimit = 1 | static int RestartLimit = 3 | static int ToleranceLimit = 1 | static str ArgList[] = |{ probeDatabase, instanceOwner, instanceHome, probeTable, monitorLevel, nodeNumber } | NameRule = resource.db2udb | str probeDatabase | str instanceOwner | str instanceHome | str probeTable | int monitorLevel | int nodeNumber |) |Exemplo de configuração |DB2UDB db2_resource_n0 ( | probeDatabase = sample | probeTable = vcstable | instanceOwner = stevera | instanceHome = "/export/home/stevera" | monitorLevel = 2 | ) | |Instalação | o |Crie o diretório /opt/VRTSvcs/bin/DB2UDB. o |Copie os arquivos online, offline, monitorar, limpar, DB2UDBAgent para |/opt/VRTSvcs/bin/DB2UDB e verifique se estão marcados como |executáveis. o |Copie o arquivo db2udb.type.cf para |/etc/VRTSvcs/conf/config. o |Pare o cluster (por exemplo, hastop -all). o |Inclua a linha include db2udb.type.cf no arquivo |main.cf após a linha include types.cf o |Verifique se a configuração do cluster é válida com |/opt/VRTSvcs/bin/hacf -verify /etc/VRTSvcs/conf/config | |Agora você está pronto para criar os recursos do DB2 necessários para |controlar instâncias do DB2. | ------------------------------------------------------------------------ 6.7 Apêndice B. Regras de nomenclatura 6.7.1 Observações sobre os IDs do Usuário Com Mais de 8 Caracteres e Nomes de Esquema * Os produtos DB2 Versão 7 nas plataformas de 32 bits do Windows suportam IDs do usuário que podem possuir até 30 caracteres de comprimento. De qualquer modo, por causa do suporte nativo do Windows NT e Windows 2000, o limite prático para a ID do usuário é 20 caracteres. * O DB2 Versão 7 suporta clientes de 32 bits não-Windows conectados ao Windows NT e Windows 2000 com IDs do usuário maiores de 8 caracteres quando o ID do usuário e a senha forem especificadas explicitamente. Isto exclui as conexões utilizando autenticação do Cliente ou DCE. * A autenticação DCE em todas as plataformas continua a possuir limite de 8 caracteres para a ID do usuário. * A id de autor retornada no SQLCA de um CONNECT ou ATTACH efetuado com sucesso é truncada em 8 caracteres. Os campos SQLWARN contêm avisos sobre quando ocorre o truncamento. Para mais informações, consulte a descrição da instrução CONNECT em SQL Reference. * A id de autor retornada pelo processador de linha de comando (CLP) de um CONNECT ou ATTACH efetuado com sucesso é truncada em 8 caracteres. Uma elipse (...) é anexada à id de autor para indicar o truncamento. * O DB2 Versão 7 suporta nomes de esquema com até 30 bytes de comprimento, com as seguintes exceções: o Tabelas com nomes de esquema com mais de 18 bytes não podem ser replicados. o Tipos definidos de usuário (UDTs) não podem possuir nomes de esquema com mais de 8 bytes. |6.7.2 IDs do usuário e senhas | |Dentro da seção intitulada "IDs do usuário e senhas", altere a |referência a "A a Z" para: |Letras latinas maiúsculas e minúsculas de byte simples (A...Z, |a...z). O suporte a outras letras e caracteres depende da página |de códigos que está sendo utilizada. Consulte o apêndice intitulado |"Suporte ao idioma nacional (NLS)" para obter mais informações sobre |suporte à página de códigos. ------------------------------------------------------------------------ 6.8 Apêndice D. Incompatibilidades entre releases |6.8.1 DLFS do Windows NT é Incompatível com o Norton Utilities | | |O Sistema de Arquivos de Ligações de Dados do Windows NT é incompatível com |o Norton Utilities. Quando um arquivo é excluído a partir de uma |unidade controlada pelo DLFS, o resultado é uma exceção de kernel: |error 0x1E (Exceção de Modo Kernel Não Manipulada). A |exceção é 0xC00000005 (Violação de Acesso). Essa violação de acesso |ocorre porque o driver do Norton Utilities fica carregado após o driver de |filtro do DLFS ser carregado. |Uma solução alternativa temporária é carregar o driver do DLFSD, após |carregar o driver do Norton Utilities. Essa solução alternativa pode |ser feita com a alteração da inicialização do driver DLFSD para manual. |Clique em Iniciar e selecione Configurações--> Painel |de Controle-->Dispositivos-->DLFSD e defina-a para |manual. |Um arquivo batch, que pode ser incluído à pasta de inicialização, pode ser |criado para carregar o driver DLFSD e o Serviço DLFM na inicialização do |sistema. O conteúdo do arquivo batch é o seguinte: | net start dlfsd | net start "dlfm service" |Nomeie esse arquivo batch start_dlfs.bat e copie-o para o |diretório C:\WINNT\Profiles\Administrador\Menu |Iniciar\Programas\Inicializar. |Somente o administrador tem o privilégio para carregar o driver de filtro |DLFS e o serviço DLFM. |6.8.2 SET CONSTRAINTS Substituído por SET INTEGRITY | | |A instrução SET CONSTRAINTS foi substituída pela instrução SET |INTEGRITY. Para compatibilidade inversa, ambas as instruções são |aceitas no DB2 UDB V7. ------------------------------------------------------------------------ 6.9 Apêndice E. Suporte ao Idioma Nacional (NLS) |6.9.1 Versões do Idioma Nacional do DB2 Versão 7 | | |O DB2 Versão 7 está disponível em Inglês, Francês, Alemão, Italiano, |Espanhol, Português do Brasil, Japonês, Coreano, Chinês Simplificado, Chinês |Tradicional, Dinamarquês, Finlandês, Norueguês, Sueco, Tcheco, Holandês, |Húngaro, Polonês, Turco, Russo, Búlgaro e Esloveno. |Nas plataformas baseadas em UNIX, as mensagens e a biblioteca do produto |DB2 podem ser instalados em vários idiomas diferentes. O utilitário de |instalação do DB2 mostra os conjuntos de arquivos do catálogo de mensagens no |diretório do locale mais utilizado para uma determinada plataforma, conforme |mostrado nas tabelas a seguir. A Tabela 4 fornece informações para AIX, HP-UX e Solaris. A Tabela 5 fornece informações para Linux, Linux/390, |SGI e Dynix. | |Tabela 4. AIX, HP-UX, Solaris Sistema AIX HP-UX Solaris Operacional Idioma Local Pág Local Pág Local Pág de de de Cód Cód Cód Francês fr_FR 819 fr_FR.iso88591 819 fr 819 Fr_FR 850 fr_FR.roman8 1051 Alemão de_DE 819 de_DE.iso88591 819 de 819 De_DE 850 de_DE.roman8 1051 Italiano it_IT 819 it_IT.iso88591 819 it 819 It_IT 850 it_IT.roman8 1051 Espanhol es_ES 819 es_ES.iso88591 819 es 819 Es_ES 850 es_ES.roman8 1051 Português do pt_BR 819 pt_BR 819 Brasil Japonês ja_JP 954 ja_JP.eucJP 954 ja 954 Ja_JP 932 Coreano ko_KR 970 ko_KR.eucKR 970 ko 970 Chinês zh_CN 1383 zh_CN.hp15CN 1383 zh 1383 Simplificado Zh_ 1386 CN.GBK Chinês zh_TW 964 zh_TW.eucTW 964 zh_TW 964 Tradicional Zh_TW 950 zh_TW.big5 950 zh_TW.BIG5 950 Dinamarquês da_DK 819 da_DK.iso88591 819 da 819 Da_DK 850 da_DK.roman8 1051 Finlandês fi_FI 819 fi_FI.iso88591 819 fi 819 Fi_FI 850 fi_FI.roman8 1051 Norueguês no_NO 819 no_NO.iso88591 819 não 819 No_NO 850 no_NO.roman8 1051 Sueco sv_SE 819 sv_SE.iso88591 819 sv 819 Sv_SE 850 sv_SE.roman8 1051 Tcheco cs_CZ 912 Húngaro hu_HU 912 Polonês pl_PL 912 Holandês nl_NL 819 Nl_NL 850 Turco tr_TR 920 Russo ru_RU 915 Búlgaro bg_BG 915 bg_BG.iso88595 915 Esloveno sl_SI 912 sl_SI.iso88592 912 sl_SI 912 | |Tabela 5. Linux, Linux/390, SGI, Dynix Sistema Linux Linux/390 SGI Dynix Operacional Idioma Local Pág Local Pág Local Pág Local Pág de de de de Cód Cód Cód Cód Francês fr 819 fr 819 fr 819 Alemão de 819 de 819 de 819 Italiano es 819 Espanhol Português do Brasil Japonês ja_JP.ujis 954 ja_JP.ujis954 ja_JP.EUC954 Coreano ko 970 ko 970 ko_KO.euc 970 Chinês zh 1386 zh 1386 Simplificado zh_CN.GBK zh_CN.GBK Chinês zh_TW.Big5 950 zh_TW.Big5950 Tradicional Dinamarquês Finlandês Norueguês Sueco Tcheco Húngaro Polonês Holandês nl 819 Turco Russo Búlgaro Esloveno |Se o sistema usa as mesmas páginas de código porém com nomes locais |diferentes dos fornecidos acima, você pode ainda ver as mensagens traduzidas |criando um link para o diretório de mensagens apropriado. |Por exemplo, se o local padrão da máquina AIX for |ja_JP.IBM-eucJP e a página de código para |ja_JP.IBM-eucJP for 954, você poderá criar um link a |partir de /usr/lpp/db2_07_01/msg/ja_JP.IBM-eucJP |para /usr/lpp/db2_07_01/msg/ja_JP emitindo o seguinte |comando: |ln -s /usr/lpp/db2_07_01/msg/ja_JP |/usr/lpp/db2_07_01/msg/ja_JP.IBM-eucJP |Após a execução deste comando, todas as mensagens do DB2 aparecerão em |Japonês. |6.9.1.1 Centro de Controle e Conjuntos de Arquivos de Documentação | |O Centro de Controle, a Ajuda do Centro de Controle e os conjuntos de |arquivos de documentação são colocados nos seguintes diretórios da estação de |trabalho de destino: | * |DB2 para AIX: | o |/usr/lpp/db2_07_01/cc/%L o |/usr/lpp/db2_07_01/java/%L o |/usr/lpp/db2_07_01/doc/%L o |/usr/lpp/db2_07_01/qp/$L o |/usr/lpp/db2_07_01/spb/%L | * |DB2 para HP-UX: | o | /opt/IBMdb2/V7.1/cc/%L o |/opt/IBMdb2/V7.1/java/%L o |/opt/IBMdb2/V7.1/doc/%L | * |DB2 para Linux: | o | /usr/IBMdb2/V7.1/cc/%L o |/usr/IBMdb2/V7.1/java/%L o |/usr/IBMdb2/V7.1/doc/%L | * |DB2 para Solaris: | o |/opt/IBMdb2/V7.1/cc/%L o | /usr/IBMdb2/V7.1/java/%L o |/opt/IBMdb2/V7.1/doc/%L | | |Os conjuntos de arquivos do Centro de Controle estão na página de código |Unicode. A documentação e os conjuntos de arquivos de ajuda do Centro |de Controle estão em um conjunto de códigos reconhecidos pelo |navegador. Se o seu sistema usar um nome local diferente do fornecido, |você poderá ainda executar a versão traduzida do Centro de Controle e ver a |versão traduzida da ajuda criando links para os diretórios de idiomas |apropriados. |Por exemplo, se o local padrão da máquina AIX for |ja_JP.IBM-eucJP, você poderá criar links de |/usr/lpp/db2_07_01/cc/ja_JP.IBM-eucJP para |/usr/lpp/db2_07_01/cc/ja_JP e de |/usr/lpp/db2_07_01/doc/ja_JP.IBM-eucJP para |/usr/lpp/db2_07_01/doc/ja_JP emitindo os seguintes |comandos: | * |ln -s /usr/lpp/db2_07_01/cc/ja_JP |/usr/lpp/db2_07_01/cc/ja_JP.IBM-eucJP * |ln -s /usr/lpp/db2_07_01/doc/ja_JP |/usr/lpp/db2_07_01/doc/ja_JP.IBM-eucJP | |Após a execução desses comandos, o Centro de Controle e os textos de |ajuda aparecerão em Japonês. |Nota: |O Centro de Controle na Web não é suportado quando executado de |forma nativa no Linux/390 ou NUMA-Q. Ele pode ser utilizado a partir de |uma estação de trabalho cliente para gerenciar bancos de dados nessas |plataformas. | 6.9.2 Definindo Locale para o Servidor de Administração do DB2 Certifique-se de que o locale da instância do Servidor de Administração do DB2 sejam compatíveis com o locale da instância do DB2. Caso contrário, a instância do DB2 não poderá se comunicar com o Servidor de Administração do DB2. Se a variável de ambiente LANG não estiver definida no perfil de usuário do Servidor de Administração do DB2, este iniciará com o locale do sistema padrão. Se o locale do sistema padrão não estiver definido, o Servidor de Administração do DB2 será iniciado com a página de código 819. Se a instância do DB2 utilizar um locale do DBCS e o Servidor de Administração do DB2 for iniciado com a página de código 819, a instância não conseguirá se comunicar com o Servidor de Administração do DB2. O locale do Servidor de Administração do DB2 e o locale da instância do DB2 devem ser compatíveis. Por exemplo, em um sistema Linux com chinês simplificado, "LANG=zh_CN" deve ser definido no perfil de usuário do Servidor de Administração do DB2. |6.9.3 O DB2 UDB Suporta a Página de Código da Orla Báltica (MS-1257) em Plataformas Windows | | |O DB2 UDB suporta a página de código da Orla Báltica, MS-1257, em sistemas |operacionais Windows de 32 bits. Essa página de código é usada por |letões, lituanos e estonianos. |6.9.4 Derivando valores da página de códigos | | | | |Dentro da seção intitulada "Derivação de valores da página de |códigos", altere o primeiro parágrafo de: |Entretanto, não é necessário definir a variável de registro DB2CODEPAGE, |porque o DB2 determina o valor apropriado da página de códigos a partir do |sistema operacional. |para: Normalmente, não é necessário definir a variável de registro |DB2CODEPAGE, porque o DB2 deriva as informações sobre a página de códigos |automaticamente do sistema operacional. |6.9.5 Suporte ao código de país e à página de códigos | |Dentro da seção intitulada "Suporte ao código de país e à página de |códigos", inclua as seguintes informações na tabela: | Código País | Pág. Grupo Cj códig Tr. Cód. Locale SO Nome país | ---- ----- -------- -- --- ----- ---- --------------- | 943 D-1 IBM-943 JP 81 ja_JP.PCK Sun Japão |6.9.6 Conjuntos de caracteres |Dentro da seção intitulada "Conjuntos de caracteres" e da subseção |"Conjunto de caracteres para identificadores", substitua as duas últimas |frases do primeiro parágrafo pelo seguinte: |Utilize os caracteres especiais #, @ e $ com cuidado |em um ambiente NLS, pois não estão incluídos no conjunto de caracteres |invariável do host NLS (EBCDIC). Os caracteres do conjunto de |caracteres estendidos também podem ser utilizados, dependendo da página de |códigos utilizada. Se você estiver utilizando o banco de dados em um |ambiente de várias páginas de códigos, verifique se todas as páginas de |códigos oferecem suporte aos elementos do conjunto de caracteres estendido que |você pretende utilizar. ------------------------------------------------------------------------ Manual de Administração: Implementação ------------------------------------------------------------------------ |7.1 Incluindo ou Estendendo Contêineres DMS (Novo Processo) | | |Os contêineres DMS (contêineres de arquivo e contêineres de dispositivo não |processado) que são incluídos (durante ou após a criação da tablespace) ou |estendidos agora estão estruturados em paralelo através das buscas |iniciais. Para alcançar um aumento no paralelismo dessas operações de |criação/redimensionamento de contêiner, é possível aumentar o número de buscas |iniciais em execução no sistema. O único processo que não é feito em |paralelo é o registro dessas ações e, no caso da criação de contêineres, a |marcação dos contêineres. |Nota: O paralelismo da operação CREATE TABLESPACE / ALTER TABLESPACE (com relação à |inclusão de novos contêineres em um tablespace existente) não aumentará mais |quando o número de buscas iniciais for igual ao número de contêineres que |estão sendo incluídos. | ------------------------------------------------------------------------ |7.2 Capítulo 1. Administrando o DB2 utilizando Ferramentas da GUI | | |Dentro da seção intitulada "Centro de alerta", remova as duas últimas |frases da seção. |Dentro da seção intitulada "Monitor de desempenho", remova o segundo |item com marcador da lista "Definir variáveis de desempenho" na subseção |"Monitoramento do desempenho em um instante." |Mias à frente nessa mesma subseção, os últimos parágrafos da seção devem |ser reescritos da seguinte forma: |Para cada um deles, é possível monitorar diversas variáveis de |desempenho. A Ajuda de referência da variável de desempenho, disponível |no menu Ajuda de qualquer janela Monitor de instantâneo, fornece |uma descrição de todas as variáveis de desempenho. Essas variáveis são |organizadas em categorias. Existem as seguintes categorias: | * |Ocorrência: Agentes, Conexões, Classificar * |Banco de Dados: Trava e Bloqueio, Conjunto do buffer e E/S, |Conexões, Classificar, Atividade da instrução SQLy * |Tabela: Tabela * |Table space: Conjunto do buffer e E/S * |Conexões do banco de dados: Conjunto do buffer e E/S, Trava e |Bloqueio, Classificar, Atividade da instrução SQL | |Para obter informações detalhadas sobre como gerar instantâneos, consulte a |ajuda online. |Nessa mesma seção, remova a última frase da subseção intitulada "Ação |necessária quando aparece um objeto no centro de alerta." ------------------------------------------------------------------------ |7.3 Capítulo 3. Criando um banco de dados |7.3.1 Criando uma Table Space |7.3.1.1 Utilizando E/S bruta no Linux |O Linux tem um conjunto de nós de dispositivo brutos que devem ser ligados |a um serviço de blocos antes de executar E/S bruta. Existe um |controlador de dispositivos brutos que age como repositório central dos dados |brutos para bloquear informações de ligação do dispositivo. A ligação é |executada com um utilitário denominado raw, que normalmente é |fornecido pelo distribuidor do Linux. |Antes de configurar a E/S bruta no Linux, é necessário o seguinte: | * |uma ou mais partições de disco IDE ou SCSI vazias * |kernel Linux 2.4.0 ou posterior (entretanto, algumas |distribuições do Linux oferecem E/S bruta em kernel 2.2). * |um controlador do dispositivo bruto, denominado /dev/rawctl ou |/dev/raw. Caso contrário, crie um link simbólico: |# ln -s /dev/your_raw_dev_ctrl /dev/rawctl * |o utilitário raw, que normalmente é fornecido com a distribuição do Linux * |DB2 Versão 7.1 FixPak 3 ou posterior | |Nota: |Entre as distribuições que atualmente suportam E/S bruta, a |nomenclatura dos nós de dispositivos brutos é diferente: |Distribuição Nós de disp. brutos Controlador disp. bruto |------------ -------------------- --------------------- |RedHat 6.2 /dev/raw/raw1 to 255 /dev/rawctl |SuSE 7.0 /dev/raw1 to 63 /dev/raw |O DB2 oferece suporte a todos os controladores de dispositivo bruto acima |e à maior parte dos outros nomes de nós de dispositivos brutos. Os |dispositivos brutos não são suportados pelo DB2 no Linux/390. | |Para configurar E/S bruta no Linux: |Neste exemplo, a partição bruta a ser utilizada é |/dev/sda5. Ela deve não deve contar dados valiosos. | Etapa 1. Calcule o número de páginas de 4 096 bytes nessa partição, arredondando para baixo, se necessário. Por exemplo: # fdisk /dev/sda Comando (m para ajuda): p Disco /dev/sda: 255 cabeças, 63 setores, 1106 cilindros Unidades = cilindros de 16065 * 512 bytes Boot dispositivo Início Fim Blocos Id Sistema /dev/sda1 1 523 4200997 83 Linux /dev/sda2 524 1106 4682947+ 5 Estendido /dev/sda5 524 1106 4682947 83 Linux Comando (m para ajuda): q # O número de páginas em /dev/sda5 é num_pages = floor( ((1106-524+1)*16065*512)/4096 ) num_pages = 11170736 Etapa 2. Ligue um nós de dispositivo bruto não utilizado a essa partição. Isto deve ser feito sempre que a máquina for reinicializada e requer acesso à raiz. Utilize raw -a para ver quais nós de dispositivos brutos já estão sendo utilizados: # raw /dev/raw/raw1 /dev/sda5 /dev/raw/raw1: ligado o 8 maior, 5 menor Etapa 3. Defina permissões de leitura globais no controlador do dispositivo bruto na partição do disco. Defina permissões globais de leitura e gravação no dispositivo bruto: # chmod a+r /dev/rawctl # chmod a+r /dev/sdb1 # chmod a+rw /dev/raw/raw1 Etapa 4. Crie a table space no DB2 especificando o dispositivo bruto, não a partição do disco. Por exemplo: CREATE TABLESPACE dms1 MANAGED BY DATABASE USING (DEVICE '/dev/raw/raw1' 11170736) |As table spaces nos dispositivos brutos também são suportados para |todos os outros tamanhos de página suportados pelo DB2. |7.3.2 Criando uma seqüência | |Após a seção intitulada "Definição de uma coluna de identidade em uma |nova tabela", inclua a seguinte seção "Criando uma seqüência": |Uma seqüência é um objeto do banco de dados que permite a |geração automática de valores. As seqüências são ajustadas de forma |ideal à tarefa de gerar valores de chaves exclusivos. Os aplicativos |podem utilizar seqüências para evitar possíveis problemas no desempenho e |concorrência resultantes da geração de um contador exclusivo fora do banco de |dados. |ao contrário de um atributo de coluna de identidade, a seqüência não é |vinculada e uma determinada coluna da tabela e nem é ligada a uma coluna de |tabela exclusiva, podendo ser acessada somente através dessa coluna. |A seqüência pode ser criada ou alterada para que gere valores de uma dessas |formas: | * |Acréscimo ou decréscimo estável, sem ligação * |Acréscimo ou decréscimo estável até um limite e parada definidos pelo |usuário * |Acréscimo ou decréscimo estável até um limite definido pelo usuário, |retorno ao início e reinício | |A seguir é fornecido um exemplo da criação de um objeto de seqüência: | CREATE SEQUENCE order_seq | START WITH 1 | INCREMENT BY 1 | NOMAXVALUE | NOCYCLE | CACHE 24 |Neste exemplo, a seqüência é chamada order_seq. Ela |inicia com 1 e aumenta em incrementos de 1, sem limite superior. Não |existe motivo para retornar ao início e reiniciar a partir de 1, porque não |existe limite superior. O número associado ao parâmetro |CACHE especifica o número máximo de valores de seqüência que o |gerenciador do banco de dados pré-aloca a mantém na memória. |Os números de seqüência gerados têm as seguintes propriedades: | * |Os valores podem assumir qualquer tipo de dados numérico exato em uma |escala de zero. Esses tipos de dados incluem: SMALLINT, BIGINT, |INTEGER e DECIMAL. * |Os valores consecutivos podem diferir em um incremento inteiro |especificado. O valor padrão do incremento é 1. * |O valor do contador é recuperável. O valor do contador é |reconstruído a partir de logs quando é necessária a recuperação. * |Os valores podem ser armazenados em cache para melhorar o |desempenho. A pré-alocação e armazenamento de valores em cache reduz a |E/S síncrona no log quando são gerados valores para a seqüência. |No caso de uma falha no sistema, todos os valores em cache que não foram |consolidados nunca são utilizados, sendo considerados perdidos. O valor |especificado para CACHE é o número máximo de valores de seqüência |que podem ser perdidos. | |Se um banco de dados que contém uma ou mais seqüências for recuperado para |um momento anterior, isto pode provocar a geração de valores em duplicata para |algumas seqüências. Para evitar possíveis valores em duplicata, não |recupere um banco de dados com seqüências para um momento anterior. |As seqüências são suportadas somente no banco de dados de um único |nó. |Existem duas expressões utilizadas com a seqüência. | | | | |A expressão PREVVAL retorna o último valor gerado para a seqüência |especificada de uma instrução anterior dentro da sessão atual. |A expressão NEXTVAL retorna o próximo valor da seqüência |especificada. É gerado um novo número de seqüência quando a expressão |NEXTVAL especifica o nome da seqüência. Entretanto, se houver várias |instâncias de uma expressão NEXTVAL especificando o mesmo nome de seqüência |dentro de uma consulta, o contador da seqüência é incrementado somente uma vez |para cada linha do resultado. |O mesmo número de seqüência pode ser utilizado como valor de chave |exclusiva em duas tabelas separadas, fazendo referência ao número de seqüência |com a expressão NEXTVAL para a primeira tabela e com a expressão PREVVAL para |as tabelas adicionais. |Por exemplo: | INSERT INTO order (orderno, custno) | VALUES (NEXTVAL FOR order_seq, 123456); | INSERT INTO line_item (orderno, partno, quantity) | VALUES (PREVVAL FOR order_seq, 987654, 1) |As expressões NEXTVAL ou PREVVAL podem ser utilizadas nas seguintes |localizações: | * |instrução INSERT, cláusula VALUES * |instrução SELECT, lista SELECT * |instrução de atribuição SET * |instrução UPDATE, cláusula SET * |instrução VALUES ou VALUES INTO | |7.3.3 Comparando colunas e seqüências IDENTITY |Após a nova seção intitulada "Criação de uma seqüência", inclua a |seguinte seção: | | |Ao mesmo tempo que existem semelhanças entre as colunas e seqüências |IDENTITY, também existem diferenças. As características de cada uma |podem ser utilizadas ao projetar o banco de dados e aplicativos. |Uma coluna de identidade tem as seguintes características: | * |A coluna de identidade pode ser definida como parte de uma tabela somente |quando esta é criada. Após a criação da tabela, não é possível |alterá-la para incluir uma coluna de identidade (entretanto, as |características da coluna de identidade existente podem ser alteradas). * |A coluna de identidade gera automaticamente valores para uma única |tabela. * |Quando uma coluna de identidade é definida como GENERATED ALWAYS, os |valores utilizados sempre são gerados pelo gerenciador do banco de |dados. Os aplicativos não podem fornecer seus próprios valores durante |a modificação do conteúdo da tabela. | |Um objeto de seqüência tem as seguintes características: | * |O objeto de seqüência é um objeto do banco de dados que não está ligado a |nenhuma tabela. * |O objeto de seqüência gera valores seqüenciais que podem ser utilizados em |qualquer instrução SQL. * |Como o objeto de seqüência pode ser utilizado por qualquer aplicativo, |existem duas expressões utilizadas para controlar a recuperação do próximo |valor na seqüência especificada e o valor gerado antes da execução da |instrução. A expressão PREVVAL retorna o último valor gerado para a |seqüência especificada de uma instrução anterior dentro da sessão |atual. A expressão NEXTVAL retorna o próximo valor da seqüência |especificada. O uso dessas expressões permite o que o mesmo valor seja |utilizado em várias instruções SQL dentro de várias tabelas. | |Apesar de estas não serem todas as características desses dois itens, elas |o ajudam a determinar qual deve ser utilizado, dependendo do design do banco |de dados e dos aplicativos que o utilizam. |7.3.4 Criando um índice, extensão do índice ou especificação do índice |Dentro da seção intitulada "Criação de um índice, extensão do índice ou |especificação do índice", inclua a seguinte nota no parágrafo que começa |com a frase: "qualquer coluna que faça parte de uma chave de índice é |limitada a 255 bytes." | |Nota: A variável de registro DB2_INDEX_2BYTEVARLEN pode ser utilizada para permitir |que colunas com mais de 255 bytes sejam especificadas como parte de uma chave |de índice. | ------------------------------------------------------------------------ |7.4 Capítulo 4. Alterando um Banco de Dados |Sob a seção "Alterando um Table Space", as seguintes novas seções |devem ser incluídas. |7.4.1 Incluindo um Contêiner em um Table Space SMS em uma Partição | | |Você pode incluir um contêiner em um table space SMS em uma partição (ou |nó) que não possui contêineres atualmente. |O conteúdo do table space é rebalanceado através de todos os |contêineres. O acesso ao table space não é restringido durante o |rebalanceamento. Caso precise incluir mais de um contêiner você deve |incluí-los (todos) no mesmo tempo. |Para incluir um contêiner em um table space SMS utilizando a linha de |comandos, digite o seguinte: | ALTER TABLESPACE | ADD ('') | ON NODE () |A partição especificada pelo número, e cada partição (ou nó) no intervalo |de partições, deve existir no grupo de nó no qual o table space está |definido. Um número_partição deve apenas aparecer explicitamente ou |dentro de um intervalo exatamente em uma cláusula de nós para a |instrução. |O seguinte exemplo mostra como incluir um novo contêiner para a partição |número 3 do grupo de nó utilizado pelo table space "plans" em um sistema |operacional baseado em UNIX: | ALTER TABLESPACE plans | ADD ('/dev/rhdisk0') | ON NODE (3) |Após a seção intitulada "Alteração de atributos da tabela", |inclua as seguintes seções: |7.4.2 Alterando uma coluna de identidade | |Modifique os atributos de uma coluna de identidade existente com a |instrução ALTER TABLE. Para obter mais informações sobre essa |instrução, inclusive sua sintaxe, consulte SQL |Reference. |Existem diversas formas de modificar uma coluna de identidade para que ela |tenha algumas das características das seqüências. |Algumas tarefas são exclusivas da coluna de identidade e ALTER TABLE: | * |RESTART redefine a seqüência associada à coluna de identidade para o valor |especificado de forma implícita ou explícita como o valor inicial quando a |coluna de identidade foi criada. * |RESTART WITH redefine a seqüência associada à |coluna de identidade para o valor exato da constante numérica. A |constante numérica pode ter qualquer valor positivo ou negativo, sem valores |diferentes de zero à direita de qualquer ponto decimal que possa ser atribuído |à coluna de identidade. | |7.4.3 Alterando uma seqüência | |Modifique os atributos de uma seqüência existente com a instrução ALTER |SEQUENCE. Para obter mais informações sobre essa instrução, inclusive |sua sintaxe, consulte SQL Reference. |Os atributos da seqüência que podes ser modificados incluem: | * |Alterar o incremento entre valores futuros * |Estabelecer novos valores mínimo ou máximo * |Alterar o número de números de seqüência em cache * |Alterar se a seqüência retorna ou não * |Alterar se os números de seqüência devem ser gerados pela ordem do pedido * |Reinício da seqüência | |Existem duas tarefas não encontradas como parte da criação de uma |seqüência. São elas: | * |RESTART. Redefine a seqüência para o valor especificado de forma |implícita ou explícita como o valor inicial quando a seqüência foi |criada. * |Constante numérica RESTART WITH. Redefine a seqüência para o valor |exato da constante numérica. A constante numérica pode ter qualquer |valor positivo ou negativo, sem dígitos diferentes de zero à direita de |qualquer ponto decimal. | |Após reiniciar uma seqüência ou alterar para CYCLE, é possível gerar |números de seqüência em duplicata. Somente os números de seqüência |futuros são afetados pela instrução ALTER SEQUENCE. |O tipo de dados de uma seqüência não pode ser alterado. Em vez |disso, elimine a seqüência atual e crie uma nova, especificando o novo tipo de |dados. |Todos os valores de seqüência em cache não utilizados pelo DB2 são perdidos |quando a seqüência é alterada. |7.4.4 Eliminando uma seqüência | |Para excluir uma seqüência, utilize a instrução DROP. Para obter |mais informações sobre essa instrução, inclusive sua sintaxe, consulte SQL Reference. |É possível eliminar uma seqüência específica utilizando: | DROP SEQUENCE nome_seqüência |onde nome_seqüência é o nome da seqüência a ser eliminada e |inclui o nome implícito ou explícito do esquema para identificar com exatidão |uma seqüência existente. |As seqüências criadas pelo sistema para colunas IDENTITY não podem ser |eliminadas utilizando a instrução DROP SEQUENCE. |Quando uma seqüência é eliminada, todos os seus privilégios também são |eliminados. |7.4.5 Alternando o Estado de um Table Space | | |A cláusula SWITCH ONLINE da instrução ALTER TABLESPACE pode ser utilizada |para mover os table spaces de um estado OFFLINE para um estado ONLINE se os |contêineres associados ao table space se tornarem acessíveis. O table |space é movido para um estado ONLINE enquanto o restante do banco de dados |está ainda sendo utilizado. |Uma alternativa para utilizar esta cláusula é desconectar todos os |aplicativos do banco de dados e em seguida fazer a conexão dos aplicativos |para o o banco de dados novamente. Isto move o table space de um estado |OFFLINE para um estado ONLINE. |Para alternar o table space para um estado ONLINE usando a linha de |comando, digite: | ALTER TABLESPACE | SWITCH ONLINE |7.4.6 Modificando contêineres em um table space DMS | |Tables spaces DMS são criados e redimensionados em paralelo, o que oferece |uma vantagem para o desempenho. O grau de paralelismo é igual ao número |de buscas iniciais mais 1. ------------------------------------------------------------------------ 7.5 Capítulo 5. Controlando o acesso ao banco de dados |Após a seção intitulada "Privilégios de índice", inclua a |seguinte seção: |7.5.1 Privilégios de seqüência | | | |O criador de uma seqüência recebe automaticamente o privilégio |USAGE. Esse privilégio é necessário para utilizar as expressões NEXTVAL |e PREVVAL para a seqüência. Para permitir que outros usuários utilizem |as expressões NEXTVAL e PREVVAL, é necessário conceder privilégios de |seqüência a PUBLIC. Isto permite que todos os usuários utilizem as |expressões com a seqüência especificada. |Após a seção intitulada "Monitora do acesso a dados utilizando o |recurso de auditoria", inclua a seguinte seção: |7.5.2 Criptografia de dados | | |Uma parte do seu plano de segurança pode envolver criptografia dos |dados. Para isto, você pode utilizar as funções internas de |criptografia e decriptografia: ENCRYPT, DECRYPT_BIN, DECRYPT_CHAR |e GETHINT. Para obter mais informações sobre essas funções, inclusive |sua sintaxe, consulte a seção Referência SQL nas Notas do Mais release. | |A função ENCRYPT criptografa dados utilizando um método de criptografia |baseado em senha. Essas funções também permitem encapsular uma dica de |senha. A dica de senha é incorporada nos dados criptografados. |Uma vez criptografados, a única forma de criptografar os dados é utilizar a |senha correta. Os desenvolvedores que optam por utilizar essas funções |devem planejar o gerenciamento de senhas esquecidas e dados não |utilizáveis. |O resultado das funções ENCRYPT é o mesmo tipo de dados que o primeiro |argumento. |Somente VARCHARs podem ser criptografados. |O comprimento declarado do resultado é um dos seguintes: | * |O comprimento do argumento de dados mais 42 quando o parâmetro de dica |opcional for especificado. * |O comprimento do argumento de dados mais 10 quando o parâmetro de dica |opcional não for especificado. | | |As funções DECRYPT_BIN e DECRYPT_CHAR decriptografam dados utilizando |decriptografia baseada em senha. |O resultado das funções DECRYPT_BIN e DECRYPT_CHAR é o mesmo tipo de |dados que o primeiro argumento. |O comprimento declarado do resultado é o comprimento dos dados |originais. | |A função GETHINT retorna uma dica de senha encapsulada. A dica de |senha é uma frase que ajuda os proprietários dos dados a lembrarem-se das |senhas. Por exemplo, a palavra "Oceano" pode ser utilizada como |dica para lembrar da senha "Pacifico". |A senha utilizada para criptografar os dados é determinada de uma dessas |duas formas: | * |Argumento de senha. A senha é uma cadeia passada explicitamente |quando a função ENCRYPT é invocada. Os dados são criptografados e |decriptografados com a senha indicada. | * |Senha de registro especial. A instrução SET ENCRYPTION PASSWORD |criptografa o valor da senha e envia a senha criptografada para que o |gerenciador do banco de dados a armazene em um registro especial. As |funções ENCRYPT, DECRYPT_BIN e DECRYPT_CHAR invocadas sem um parâmetro |de senha utilizam o valor do registro especial ENCRYPTION PASSWORD. |O valor inicial ou padrão do registro especial é uma cadeia vazia. | |Os comprimentos válidos para senha são de 6 e 127, inclusive. Os |comprimentos válidos para dicas são de 0 a 32, inclusive. |Quando o registro especial ENCRYPTION PASSWORD é definido a partir do |cliente, a senha é criptografada no cliente, enviada ao servidor do banco de |dados e depois decriptografada. Para assegurar isto a senha não é |legível, ela também é criptografada novamente no servidor do banco de |dados. As funções DECRYPT_BIN e DECRYPT_CHAR devem decriptografar |o registro especial antes do uso. O valor encontrado em ENCRYPTION |PASSWORD também não permanece legível. A segurança de gateway não é |suportada. ------------------------------------------------------------------------ 7.6 Capítulo 8. Recuperando um Banco de Dados |7.6.1 Como Usar a E/S Suspensa | | | | | |No Capítulo 8."Recuperando um Banco de Dados", a nova seção a |seguir sobre o uso da função E/S suspensa deve ser incluída: |Nota: As informações abaixo sobre o utilitário db2inidb substituem as informações |no manual O Que Há de Novo Versão 7.2. | |O db2inidb é uma nova ferramenta enviada com o DB2 que pode executar a |recuperação após uma falha e colocar um banco de dados em pendência de |avanço. |A E/S suspensa suporta disponibilidade de sistema contínua, fornecendo uma |implementação completa para a manipulação online de espelhamento dividido, ou |seja, dividir um espelhamento sem encerrar o banco de dados. Se um |cliente não conseguir fazer backups offline ou online em um banco de dados |extenso, os backups ou cópias do sistema poderão ser feitos a partir de uma |imagem espelhada usando a E/S suspensa e o espelho dividido. |Dependendo de como os dispositivos de armazenamento estão sendo espelhados, |os usos do db2inidb irão variar. Os seguintes usos assumem que o banco |de dados inteiro está espelhado de forma consistente através do sistema de |armazenamento. |Em um ambiente com vários nós, a ferramenta db2inidb deve ser |executada em cada partição para que a imagem dividida possa ser utilizada a |partir de uma das partições. A ferramenta db2inidb pode ser executada |em todas as partições simultaneamente. | | 1. |Fazendo um Banco de Dados Clone |O objetivo aqui é ter um clone do banco de dados primário que deverá ser |usado como somente para leitura. O seguinte procedimento descreve como |um banco de dados clone pode ser feito: | a. |Suspenda a E/S do sistema primário digitando o seguinte comando: | db2 set write suspend for database b. |Use o comando no nível do sistema operacional para dividir o espelhamento |a partir do banco de dados primário. c. |Retome a E/S no sistema primário digitando o seguinte comando: | db2 set write resume for database |Após executar o comando, o banco de dados no sistema primário deverá |voltar ao estado normal. d. |Anexe o banco de dados espelhado a partir de outra máquina. e. |Inicie a instância do banco de dados digitando o seguinte comando: | db2start f. |Inicie a recuperação após uma falha do DB2 digitando o seguinte |comando: |db2inidb database_name AS SNAPSHOT |Nota: Esse comando reverterá as alterações feitas pelas transações que estão na |trajetória no momento da divisão. | | |Esse processo também pode ser utilizado para um backup offline, mas |se for restaurado no sistema principal, esse backup não pode ser utilizado |para avanço, pois a cadeia de log não corresponde. | 2. |Usando o Espelhamento Dividido como um Banco de Dados Standby |Como o banco de dados de espelhamento (standby) é continuamente avançado |através dos logs, os novos logs que são criados pelo banco de dados primário |são constantemente buscados no sistema primário. O seguinte |procedimento descreve como o espelhamento dividido pode ser usado como um |banco de dados standby: | a. |Suspenda as gravações da E/S no banco de dados primário. b. |Divida o espelho a partir do sistema primário. c. |Retome as gravações da E/S no banco de dados primário para que ele volte |ao processamento normal. d. |Anexe o banco de dados espelhado a outra instância. e. |Coloque o espelhamento no estado pendente de avanço e avance o |espelhamento. Execute a ferramenta db2inidb (db2inidb |como standby) para remover o estado de gravação suspenso e para colocar o |banco de dados espelhado em um estado pendente de avanço. f. |Copie os logs configurando um programa de saída do usuário para recuperar |arquivos de log a partir do sistema primário, a fim de garantir que os logs |mais recentes estejam disponíveis para esse banco de dados espelhado. g. |Avance o banco de dados para o final dos logs. h. |Volte para a etapa f e repita esse processo até que o banco de dados |principal fique desativado. | | 3. |Usando o Espelhamento Dividido como uma Imagem de Backup |O seguinte procedimento descreve como usar o sistema de espelhamento como |uma imagem de backup para restauração através do sistema primário: | a. |Use os comandos do sistema operacional para copiar os dados e logs |espelhados na parte superior do sistema primário. b. |Inicie a instância do banco de dados digitando o seguinte comando: | db2start c. |Execute o comando a seguir para colocar o banco de dados espelhado em um |estado pendente de avanço e remover o estado de gravação suspenso. |db2inidb database_alias AS MIRROR d. |Avance o banco de dados para o final dos logs. | | |7.6.2 Recuperação e backup incremental |No Capítulo 8,"Recuperando um banco de dados", o que segue é uma nova |seção sobre recuperação e backup incremental: | | | | |Conforme o tamanho dos bancos de dados e principalmente dos dispositivos de |armazenamento continua a expandir a uma taxa em terabytes e petabytes, o tempo |e os recursos de hardware necessários para fazer backup e recuperar esses |bancos de dados cresce substancialmente. Backups completos do banco de |dados e do table space nem sempre são a melhor abordagem ao lidar com bancos |de dados grandes, pois os requisitos de armazenamento para várias cópias |desses bancos de dados são enormes. Considere as seguintes |questões: | * |Quando uma pequena porcentagem dos dados de um armazenamento muda, não |deve ser necessário fazer backup do banco de dados inteiro. * |Anexar table spaces a bancos de dados existentes e depois fazer backup |somente do table space é arriscado, pois os dados de fora do table space podem |mudar. | |Agora o DB2 suporta recuperação e backup incremental (mas não de campo |longo ou de dados de objetos grandes). O backup incremental |é uma imagem de backup que contém somente as páginas atualizadas desde o |backup anterior. Além dos dados e páginas do índice atualizados, cada |imagem de backup incremental também contém todos os meta-dados do banco de |dados inicial (como por exemplo a configuração do banco de dados, definições |do table space, histórico do banco de dados, etc) que normalmente são |armazenados em imagens de backup completo. |São suportados dois tipos de backup incremental: | * |Incremental. Uma imagem de backup incremental é uma |cópia de todos os dados do banco de dados alterados desde a última operação de |backup completo bem sucedido. Ela também é conhecida como imagem de |backup cumulativo, pois em uma série de backups incrementais efetuadas no |tempo, cada uma tem o conteúdo da imagem de backup incremental |anterior. O predecessor de uma imagem de backup incremental sempre é o |último backup completo bem sucedido do mesmo objeto. * |Delta. Um delta, ou delta incremental é uma cópia de |todos os dados do banco de dados alterados deste o último backup bem sucedido |(completo, incremental ou delta) do table space em questão. Ela também |é conhecida como imagem de backup diferencial, não cumulativa. O |predecessor de uma imagem de backup delta é o último backup bem sucedido que |contém uma cópia de cada um dos table spaces da imagem de backup delta. | |A principal diferença entre imagens de backup incremental e delta é seu |comportamento quando são criados backups sucessivos de um objeto que muda |continuamente. Cada imagem incremental sucessiva contém todo o conteúdo |da imagem incremental anterior, mais os dados alterados ou novos, desde o |backup anterior. As imagens de backup delta contêm somente as páginas |alteradas desde que a imagem anterior foi produzida. |É permitido combinar backups incrementais do banco de dados e de table |space, nos modos de operação online ou offline. Cuidado ao planejar sua |estratégia de backup, pois a combinação de backups incrementais de banco de |dados e de table space implica que o predecessor de um backup do banco de |dados (ou backup de table space de vários table spaces) não é necessariamente |uma única imagem, mas pode ser um conjunto exclusivo de backups anteriores de |banco de dados e de table space criados em momentos diferentes. |Para recriar o banco de dados ou o table space em um estado consistente, o |processo de recuperação deve iniciar com uma imagem consistente do objeto |inteiro (banco de dados ou table space) a ser restaurado e depois deve aplicar |cada uma das imagens de backup incremental apropriadas na ordem descrita |abaixo (consulte a seção "Método de restauração"). |Para permitir o rastreamento das atualizações do banco de dados, o DB2 |suporta um novo parâmetro de configuração do banco de dados, TRACKMOD, que |pode ter um desses valores aceitos: | * |Não. O backup incremental não é permitido com essa |configuração. As atualizações de páginas do banco de dados não são |rastreadas ou registradas. * |SIM. O backup incremental é permitido com essa configuração. |Quando o rastreamento da atualização está ativado, a alteração torna-se |efetiva na primeira conexão bem sucedida com qualquer banco de dados da |instância. É necessário fazer um backup completo do banco de dados |antes do backup incremental. | |A definição padrão TRACKMOD para bancos de dados já existentes é |NÃO; para bancos de dados novos ela é SIM. |A granularidade do rastreamento está no nível do table space, tanto para |SMS quanto para DMS. |Apesar de ser mínimo, o rastreamento de atualizações para o banco de dados |pode provocar impacto no desempenho de tempo de execução das transações que |atualizam ou inserem dados. |7.6.2.1 Restaurando a partir de imagens de backup incremental |Uma operação de restauração de imagens de backup incremental sempre |consiste nas seguintes etapas: | 1. |Identificar a imagem do destino incremental. O DBA deve determinar |primeiro a imagem final a ser restaurada e depois solicitar uma operação de |restauração incremental a partir do utilitário de restauração do DB2. |Essa imagem é conhecida como imagem de destino da restauração incremental, |pois será a última imagem a ser restaurada. Um comando de restauração |incremental para essa imagem pode iniciar a criação de um novo banco de dados |com a configuração e definições de table space dessa imagem de destino. |A imagem de destino incremental é especificada utilizando o parâmetro TAKEN AT |no comando RESTORE DATABASE. 2. |Restaurar a imagem completa do banco de dados ou table space mais recente |para estabelecer uma linha de base contra a qual cada uma das imagens de |backup incremental pode ser aplicada. 3. |Restaurar cada uma das imagens de backup incremental completa ou de table |space necessário, na ordem em que foram produzidas, acima da imagem da linha |de base restaurada na Etapa 2. 4. |Repetir a Etapa 3 até que a imagem de destino da Etapa 1 seja lida uma |segunda vez. A imagem de destino é acessada duas vezes durante uma |operação de restauração incremental completa. Durante o primeiro |acesso, somente os dados iniciais da imagem são lidos. Os dados do |usuário não são lidos. A imagem completa é lida e processada somente |durante o segundo acesso. |A imagem de destino da operação de restauração incremental deve ser |acessada duas vezes, para garantir que o banco de dados seja configurado |inicialmente com as definições corretas de histórico, configuração do banco de |dados e table space para o banco de dados que será criado durante a operação |de restauração. Nos casos em que um table space tiver sido eliminado |desde o último backup completo inicial do banco de dados, os dados do table |space dessa imagem são lidos a partir das imagens de backup, mas ignorados |durante o processamento da restauração incremental. | |Por exemplo: | 1. restauração da amostra de banco de dados incremental do db2 efetuada em | | onde: | indica a última imagem do backup incremental a ser restaurada | | 2. restauração da amostra de banco de dados incremental do db2 efetuada em | | onde: | indica a imagem do banco de dados completo inicial (ou table space) | | 3. restauração da amostra de banco de dados incremental do db2 efetuada em | | onde: | indica cada imagem do backup incremental na seqüência de criação | | 4. Repita a Etapa 3, restaurando cada imagem do backup incremental e incluindo a imagem |Nos casos em que está sendo tentada uma operação de restauração do banco de |dados e foram produzidas imagens de backup incremental de table space, as |imagens de table space devem ser restauradas na ordem cronológica de suas |marcas de hora de backup. |7.6.3 Recuperação paralela | | |Agora o DB2 utiliza vários agentes para executar recuperação de erros e |recuperação de avanço do banco de dados. Você pode esperar melhor |desempenho durante essas operações, principalmente em máquinas do |multiprocessador simétrico (SMP). O uso de vários agentes durante a |recuperação do banco de dados aproveita as CPUs adicionais disponíveis em |máquinas SMP. |O novo tipo de agente apresentado por esse aperfeiçoamento é o |db2agnsc. O DB2 escolhe o número de agentes a serem utilizados para a |recuperação do banco de dados com base no número de CPUs na máquina. |Para máquinas SMP, o número de agentes utilizados é (número de CPUs + |1). Em uma máquina com uma única CPU, são utilizados três agentes para |uma leitura mais eficiente dos logs, processamento dos registros de logs e |buscas iniciais de páginas de dados. |O DB2 distribui registros de log para esses agentes para que possam ser |reaplicados simultaneamente, quando apropriado. Os registros de log são |feitos em paralelo no nível da página (registros de log na mesma página de |dados são processados pelo mesmo agente); portanto, o desempenho é |melhorado, mesmo se todo o trabalho foi feito em uma tabela. |7.6.4 Backup para canais nomeados | | |Agora existe suporte ao backup do banco de dados (e sua restauração) para |canais nomeados locais em sistemas baseados em UNIX. Tanto o autor |quanto o leitor do canal nomeado devem estar na mesma máquina. O canal |deve existir e estar localizado em um sistema de arquivos local. Como o |canal nomeado é tratado como dispositivo local, não há necessidade de |especificar que o destino é um canal nomeado. A seguir é fornecido um |exemplo no AIX: | 1. |Crie um canal nomeado: | mkfifo /u/dbuser/mypipe | | 2. utilize esse canal como destino para uma operação de backup do banco de |dados: | db2 backup db sample to /u/dbuser/mypipe | | 3. Restaure o banco de dados: | db2 restore db sample into mynewdb from /u/dbuser/mypipe |7.6.5 Backup da imagem dividida | |Agora o DB2 suporta um backup completo offline do banco de dados na cópia |espelhada dividida de um banco de dados. O backup online não é |suportado e não é necessário, pois o banco de dados, que está no estado de |avanço pendente, não está disponível. Quando uma imagem espelhada |dividida é restaurada, deve ser avançada, pois poderiam existir operações |ativas quando ocorreu a divisão. | |Nota: No DB2 Versão 7.1 FixPak 3 e no DB2 Versão 7.2, esse suporte é |limitado a bancos de dados que contêm somente table spaces DMS. Se for |feita uma tentativa de fazer backup de um banco de dados após a divisão e o |banco de dados tiver somente table spaces SMS o backup falha. | |Quando o banco de dados tiver sido dividido, o utilitário |db2inidb deve ser utilizado para especificar uma das seguintes |opções: | * |Instantâneo. Inicia a recuperação de erros, tornando o banco de |dados consistente. Uma nova cadeia de log inicia e o banco de dados não |pode avançar por nenhum dos logs do banco de dados original. O banco de |dados está disponível para qualquer operação, inclusive backup. * |Standby. Coloca o banco de dados no estado de avanço |pendente. A recuperação de erros não é executada e o banco |de dados permanece inconsistente. * |Espelhamento. Faz com que uma cópia espelhada do banco de dados |substitua o banco de dados original. O banco de dados é colocado no |estado de avanço pendente e o estado WRITE SUSPEND é desativado. A |recuperação de erros não é executada e o banco de dados permanece |inconsistente. | |A seguir são fornecidas algumas situações de uso: | * |Criar um clone do banco de dados. |O objetivo aqui é ter um clone do banco de dados primário somente leitura, |que pode ser utilizado, por exemplo, para criar relatórios. Para fazer |isto, execute as seguintes etapas: | 1. |Suspenda a E/S do sistema primário: | db2 set write suspend for database 2. |Divida o espelho. Utilize os comandos no nível do sistema |operacional para dividir o espelhamento a partir do banco de dados |primário. 3. |Retome a E/S no sistema primário: | db2 set write resume for database |O banco de dados no sistema primário deverá voltar ao estado |normal. 4. |Monte os espelhamentos divididos do banco de dados em outro host. 5. |Inicie a instância: | db2start 6. |Inicie a recuperação de erros do DB2: | db2inidb as snapshot |Esse processo também pode ser utilizado para um backup offline, mas se |for restaurado no sistema principal, esse backup não pode ser utilizado para |avanço, pois a cadeia de log não corresponde. | * |Utilização do espelhamento dividido como banco de dados standby. |Como o banco de dados de espelhamento (standby) é continuamente avançado |através dos logs, os novos logs que são criados pelo banco de dados primário |são constantemente buscados no sistema primário. Para utilizar o |espelhamento dividido como banco de dados standby, execute estas etapas: | 1. |Suspenda a E/S do sistema primário: | db2 set write suspend for database 2. |Divida o espelho. Utilize os comandos no nível do sistema |operacional para dividir o espelhamento a partir do banco de dados |primário. 3. |Retome a E/S no sistema primário: | db2 set write resume for database |O banco de dados no sistema primário deverá voltar ao estado |normal. 4. |Monte os espelhamentos divididos do banco de dados em outro host. 5. |Remova o estado de gravação suspenso e coloque o banco de dados espelhado |no estado de avanço pendente. | db2inidb as standby 6. |Copie os logs. Configure um programa de saída do usuário para |recuperar arquivos de log a partir da localização de archive sistema primário, |para que os logs mais recentes estejam disponíveis para esse banco de dados |espelhado. 7. |Avance o espelho para o final dos logs. | db2 rollforward db to end of logs 8. |Repita o processo da etapa 6 até que o banco de dados principal seja |desativado. | * |Utilização do espelhamento dividido para recuperar o sistema |principal. |O seguinte procedimento descreve como utilizar o sistema de espelhamento |como imagem de backup para restaurar o sistema principal: | 1. |Copie sobre. Use os comandos do sistema operacional para copiar os |dados e logs espelhados na parte superior do sistema primário. 2. |Inicie a instância: | db2start 3. |Coloque o banco de dados espelhado no estado de avanço pendente e avance o |espelhamento para o fim dos logs: | db2inidb as mirror | * |Criação de backup sem executar recuperação de erros. |A criação de um backup offline no espelhamento dividido sem executar |recuperação de erros significa que você pode restaurar essa imagem de backup |sobre o sistema principal. Para fazer isto, execute as seguintes |etapas: | 1. |Suspenda a E/S do sistema primário: | db2 set write suspend for database 2. |Divida o espelho. Utilize os comandos no nível do sistema |operacional para dividir o espelhamento a partir do banco de dados |primário. 3. |Retome a E/S no sistema primário: | db2 set write resume for database |O banco de dados no sistema primário deverá voltar ao estado |normal. 4. |Monte os espelhamentos divididos do banco de dados em outro host. 5. |Inicie a instância: | db2start 6. |Coloque o banco de dados espelhado no estado de avanço pendente: | db2inidb as standby 7. |Chame uma operação de backup do banco de dados: | db2 backup database |Isto resulta em uma conexão implícita do banco de dados, mas não inicia a |recuperação de danos do DB2. | | |7.6.6 Archive do log por pedido | | | |Agora o DB2 suporta o fechamento (e, se a opção de saída do usuário estiver |ativada, o archive) do log ativo para um banco de dados recuperável, a |qualquer momento. Isto permite a coleta de um conjunto completo de |arquivos de log até um ponto conhecido. Em seguida, esses arquivos de |log são utilizados para atualizar um banco de dados em standby. | |Nota: |O archive de logs por pedido não garante que os arquivos de log |sejam arquivados imediatamente. Ele trunca o arquivo de log e emite um |pedido de archive, mas ainda está sujeito a atrasos associados ao programa de |saída do usuário | |Você pode iniciar o archive de log por pedido invocando o novo comando DB2 |ARCHIVE LOG, ou chamando a nova API db2ArchiveLog. |7.6.7 Espelhamento do log | | | |No Capítulo 8,"Recuperando um banco de dados", inclua a seguinte nova |seção sobre o uso da E/S suspensa: |Agora o DB2 suporta espelhamento do log no nível do banco de dados. |O espelhamento de arquivos de log ajuda a proteger o banco de dados |contra: | * |Exclusão acidental de um log ativo * |Danos nos dados devido a falha de hardware | |Se você suspeita que os logs ativos possam ser danificados (como resultado |de uma falha no disco), considere a possibilidade de utilizar uma nova |variável de registro do DB2, DB2_NEWLOGPATH2, para especificar um caminho |secundário para que o banco de dados gerencie cópias do log ativo, espelhando |os volumes nos quais os logs são armazenados. |A variável de registro DB2_NEWLOGPATH2 permite que o banco de dados |grave uma segunda cópia idêntica dos arquivos de log em um caminho |diferente. Recomenda-se que você coloque o caminho de log secundário em |um disco fisicamente separado (de preferência um que também esteja em um |controlador de disco diferente). Dessa forma, o controlador de disco |não pode ser um ponto de falha. |Nota: Como o Windows NT e o OS/2 não permitem a "montagem" de um dispositivo com um |nome de caminho arbitrário, não é possível (nessas plataformas) especificar um |caminho secundário em um dispositivo separado. | |O DB2_NEWLOGPATH2 pode ser ativado (definido como 1) ou |desativado (definido como 0). O valor padrão é zero. |Se essa variável for definida como 1, o nome do caminho secundário |é o valor atual da variável LOGPATH concatenado com o caractere |2. Por exemplo, em um ambiente SMP, se LOGPATH for |/u/dbuser/sqllogdir/logpath, o caminho de log secundário será |/u/dbuser/sqllogdir/logpath2. Em um ambiente MPP, se LOGPATH |for /u/dbuser/sqllogdir/logpath, o DB2 anexa o indicador do nó no |caminho e utiliza /u/dbuser/sqllogdir/logpath/NODE0000 como caminho |de log principal. Nesse caso, o caminho de log secundário é |/u/dbuser/sqllogdir/logpath2/NODE0000. |Quando DB2_NEWLOGPATH2 é o primeiro ativado, não é utilizado até que o |arquivo de log atual seja concluído na próxima inicialização do banco de |dados. Ele é semelhante à forma como NEWLOGPATH é utilizado |atualmente. |Se ocorrer um erro na gravação do caminho de log principal ou secundário, o |banco de dados marca o caminho que falhou como "incorreto", grava uma mensagem |no arquivo db2diag.log e grava registros de log posteriores |somente no caminho de log "correto" restante. O DB2 não tenta utilizar |o caminho "incorreto" novamente até que o arquivo de log atual seja |concluído. Quando o DB2 precisa abrir o próximo arquivo de log, |verifica se esse caminho é válido e se for, começa a utilizá-lo. Caso |contrário, o DB2 não tenta utilizar o caminho novamente até que o próximo log |seja acessado pela primeira vez. Não há tentativa de sincronizar os |caminhos de log, mas o DB2 mantém informações sobre os erros de acesso |ocorridos, para que os caminhos corretos sejam utilizados quando os arquivos |de log forem obtidos. Caso ocorra uma falha ao gravar no caminho |"correto" restante, o banco de dados tem fim anormal. |7.6.8 Suporte a backup e restauração nas plataformas no Sun Solaris e HP | | |Agora existe suporte disponível para backup e restauração entre as |plataformas Sun Solaris e HP. Quando a imagem de backup é transferida |entre sistemas, isto deve ser feito no modo binário. No sistema de |destino, o banco de dados deve ser criado com a mesma página de |códigos/território que o sistema no qual o banco de dados foi |criado. |7.6.9 Considerações sobre DB2 Data Links Manager/Considerações sobre utilitário de backup |Substitua o segundo parágrafo dessa seção por: | Quando os arquivos são ligados, os servidores de Ligação de dados os agendam |para cópia assíncrona para um servidor de archive tal como o ADSM, ou para disco. |Quando o utilitário de backup executa, o DB2 garante que todos os arquivos |agendados para cópia foram copiados. No início do processamento de backup, o |DB2 entra em contato com todos os servidores de Ligação de dados especificados no |arquivo de configuração do DB2. Se o servidor de Ligação de dados tiver um ou |mais arquivos ligados e não estiver executando, ou parar de executar durante |a operação de backup, o backup não conterá informações completas do DATALINK. |A operação de backup é concluída com êxito. Para que o servidor de Ligação de |dados seja marcado como disponível para o banco de dados novamente, o |processamento de backup para todos os backups pendentes deve ser concluído |com êxito. Se o backup for iniciado quando já existir o dobro de valores |de backup num_db_backups (consulte abaixo) pendentes que aguardam a |conclusão no servidor de Ligação de dados, a operação de backup falha. |O servidor de Ligação de dados deve ser reiniciado e os backups pendentes, |concluídos para que backups adicionais sejam permitidos. |7.6.10 Considerações sobre DB2 Data Links Manager/Considerações sobre o utilitário de restauração e avanço |substitua os parágrafos que começam com: | Quando você restaurar um banco de dados ou table space e não especificar |WITHOUT DATALINK... | | e | |Quando você restaurar um banco de dados ou table space e especificar |a opção WITHOUT DATALINKn... |com: | Quando você restaurar um |banco de dados ou table space, as seguintes condições |devem ser atendidas para que a operação de restauração seja bem sucedida: | | o Se algum servidor de Ligação de dados registrado no arquivo backup não |estiver executando, |a operação de restauração ainda é concluída com êxito. | |As tabelas com informações da coluna DATALINK afetadas pelo servidor de |Ligação de dados ausente são colocadas no estado reconciliação da ligação de |dados pendente após a operação de restauração (ou a operação de avanço, se for |utilizada). Para que os servidores de Ligação de dados possam ser marcados como |disponíveis para o banco de dados novamente, esse processamento de restauração |deve ser concluído com êxito. | | o Se algum servidor de Ligação de dados registrado no arquivo backup parar |de executar durante a operação de restauração, esta falha. A restauração pode |ser reiniciada com o servidor de Ligação de dados inativo (consulte acima). | | o Se uma operação de restauração do banco de dados anterior ainda |estiver incompleta em algum servidor de Ligação de dados, as operações |posteriores de restauração do banco de dados ou de table space. falham |até que os servidores de Ligação de dados sejam reiniciados e a restauração |incompleta seja concluída. | | o As informações sobre todas as colunas DATALINK registradas no arquivo |de backup devem existir nas tabelas de registro dos servidores de Ligação |de dados apropriados. | |Se todas as informações sobre as colunas DATALINK não forem registradas nas |tabelas de registro, a tabela com as informações da coluna DATALINK ausentes |é colocada no estado reconciliação da ligação de dados impossível após a |operação de restauração (ou a operação de avanço, se for utilizada). | |Se o backup não for registrado nas tabelas de registro, pode significar que |o arquivo backup fornecido é anterior ao valor de |num_db_backups e que já ocorreu "coleta de lixo" nele. Isso significa que |os arquivo archive desse backup anterior foram removidos e não podem |ser restaurados. Todas as tabelas que têm colunas DATALINK são colocadas no |estado reconciliação da ligação de dados pendente. | |Se o backup não for registrado nas tabelas de registro, pode significar que |o processo de backup ainda não foi concluído, pois o servidor de Ligação |de dados não está executando. Todas as tabelas que têm colunas DATALINK não |colocadas no estado reconciliação da ligação de dados pendente. Quando o |servidor de Ligação de dados é reiniciado, o processo de backup é concluído |antes do processo de restauração. | |A tabela permanece disponível aos usuários, mas os valores nas colunas |DATALINK podem não fazer referência aos arquivos corretamente (por exemplo, |pode não ser encontrado um arquivo que corresponda ao valor da coluna |DATALINK). Se você não deseja esse comportamento, pode colocar a tabela no |estado pendente de verificação emitindo a instrução "SET CONSTRAINTS for |tablename TO DATALINK RECONCILE PENDING". |Se após uma operação de restauração você tiver uma tabela no estado |reconciliação da ligação de dados impossível, pode corrigir os dados da coluna |DATALINK de uma das forma sugeridas em "Remoção de uma tabela do estado |Datalink_Reconcile_Not_Possible". |A nota na parte inferior do primeiro parágrafo permanece igual. |Inclua o seguinte no fim dessa seção: | Recomenda-se que o arquivo datalink.cfg seja arquivado para cobrir determinados |casos de recuperação incomuns, já que o arquivo datalink.cfg na imagem de backup |do banco de dados reflete o datalink.cfg somente a partir do momento do backup. |É necessário possuir o arquivo datalink.cfg mais recente para cobrir todos os |casos de recuperação. Portanto, deve ser feito backup do arquivo datalink.cfg |após cada chamada de comando ADD DATALINKS MANAGER ou DROP DATALINKS MANAGER. |Isto ajuda a recuperar o arquivo datalink.cfg mais recente, se o arquivo |datalink.cfg mais recente não estiver disponível em disco. | |Se o arquivo datalink.cfg mais recente não estiver disponível em disco, |substitua o arquivo datalink.cfg existente (restaurado de uma imagem de |backup) pelo arquivo datalink.cfg mais recente arquivado antes de executar |uma operação de avanço. Faça isto após a restauração do banco de dados. |7.6.11 Restaurando bancos de dados a partir de um backup offline sem avanço |A restauração sem avanço pode ser feita somente no nível do banco de dados, |não no nível do table space. Para restaurar um banco de dados sem |avanço, restaure um banco de dados não recuperável (isto é, um banco de dados |que utiliza log circular) ou especifique o parâmetro WITHOUT ROLLING FORWARD |no comando RESTORE DATABASE. |Se você utiliza o utilitário de restauração com a opção WITHOUT DATALINK, |todas as tabelas com colunas DATALINK são colocadas no estado reconciliação da |ligação de dados pendente (DRP) e não é efetuada reconciliação com os |servidores de Ligação de dados durante a operação de restauração. |Se você não utiliza a opção WITHOUT DATALINK e um servidor de Ligação de |dados registrado no arquivo de backup não está mais definido no banco de dados |(isto é, foi eliminado utilizando o comando DROP DATALINKS MANAGER), as |tabelas que contêm dados DATALINK e fazem referência ao servidor de Ligação de |dados são colocadas no estado DRP pelo utilitário de restauração. |Se você não utilizar a opção WITHOUT DATALINK, todos os servidores de |Ligação de dados estiverem disponíveis e todas as informações sobre as colunas |DATALINK forem totalmente registradas nas tabelas de registro, ocorre o |seguinte para cada servidor de Ligação de dados gravado no arquivo de |backup: | * |Todos os arquivos ligados após a imagem de backup utilizada para a |operação de restauração do banco de dados são marcados como desvinculados |(porque não estão registrados na imagem de backup como ligados). * |Todos os arquivos desvinculados após a imagem de backup, mas que estavam |ligados antes da criação da imagem de backup, são marcados como ligados |(porque estão registrados na imagem de backup como ligados). Se |posteriormente o arquivo for ligado a outra tabela em outro banco de dados, a |tabela restaurada é colocada no estado reconciliação da ligação de dados |pendente. | | |Nota: As ações acima não podem ser executadas se a imagem de backup utilizada para |a operação de restauração do banco de dados foi criada quando no mínimo um |servidor de Ligação de dados não estava executando, já que as informações |DATALINK no backup estão incompletas. As ações acima também não são |executadas se a imagem de backup utilizada para a operação de restauração do |banco de dados foi criada após uma restauração do banco de dados com ou sem |avanço. Nos dois casos, todas as tabelas com colunas DATALINK são |colocadas no estado reconciliação da ligação de dados pendente e não é |executada a reconciliação com os servidores de Ligação de dados durante a |operação de restauração. | |7.6.12 Restaurando bancos de dados e table spaces e avanço para o fim dos logs |Se você restaurar e depois avançar o banco de dados ou table space para o |fim dos logs (indicando que todos os logs foram fornecidos), não é necessário |efetuar verificação da reconciliação, a não ser que no mínimo um dos |servidores de Ligação de dados registrados no arquivo de backup não esteja |executando durante a operação de restauração. Se você não tiver certeza |se todos os logs foram fornecidos para a operação de avanço, ou se acha que |pode ser necessário reconciliar valores DATALINK, proceda da seguinte |forma: | 1. |Emita a instrução SQL para a tabela (ou tabelas) envolvidas: | SET CONSTRAINTS FOR tablename TO DATALINK RECONCILE PENDING Esta ação coloca a tabela no estado de reconciliação da ligação de |dados pendente e no estado verificar pendente. 2. |Se você não deseja que a tabela fique no estado verificar pendente, emita |a seguinte instrução SQL: | SET CONSTRAINTS FOR tablename IMMEDIATE CHECKED Isto faz com que a tabela saia do estado verificar pendente, mas a |deixa no estado de ligação de dados de reconciliação pendente. Utilize |o utilitário de reconciliação para retirar a tabela desse estado. | |O arquivo backup pode conter dados DATALINK que fazem referência a um DB2 |Data Links Manager (isto é, um DB2 Data Links Manager registrado no banco de |dados quando o backup foi criado) eliminado do banco de dados. Para |cada table space avançado que contém no mínimo uma tabela com dados DATALINK |que fazem referência ao DB2 Data Links Manager, eliminado, todas as tabelas |são colocadas no estado DRP pelo utilitário de avanço. |7.6.13 Gerenciador do Data Links do DB2 e Interações de recuperação | | |A tabela a seguir mostra os diferentes tipos de recuperação que podem ser |efetuados, o processamento Gerenciador do Data Links do DB2 que ocorre durante |o processo de restauração e avanço e se é necessário executar o utilitário de |reconciliação após a recuperação: | Tipo de Processamento Gerenciador do Processamento Gerenciador do Reconciliação recuperação Data Links do DB2 durante a Data Links do DB2 durante o restauração avanço Banco de dados não recuperável (logretain=NO) Restauração doÉ executada reconciliação rápida N/A Pode ser executado banco de dados opcionalmente se de um backup houver suspeita de completo, problema com todos os ligações do arquivo Servidores de ligação de dados ativados Restauração doTabelas colocadas no estado N/A Obrigatória banco de dadosDatalink_Reconcile_Pending utilizando a opção WITHOUT DATALINK Restauração doA reconciliação rápida é NA Obrigatória para banco de dadosexecutada somente nas tabelas em tabelas em table de um backup table spaces que não têm spaces com ligações completo, no ligações para um servidor de para o servidor de mínimo um Ligação de dados desativado. As Ligação de dados servidor de outras tabelas são colocadas no desativado Ligação de estado dados Datalink_Reconcile_Pending desativado Restauração doA reconciliação rápida não é NA Obrigatória banco de dadosexecutada e todas as tabelas com de um backup colunas DATALINK são colocadas incompleto, no estado todos os Datalink_Reconcile_Pending Servidores de ligação de dados ativados Banco de dados recuperável (logretain=YES) Restauração doÉ executada reconciliação rápida N/A Opcional banco de dados utilizando a opção WITHOUT ROLLING FORWARD, utilizando um backup completo, todos os Servidores de ligação de dados ativados Restauração doTabelas colocadas no estado N/A Obrigatória banco de dadosDatalink_Reconcile_Pending utilizando as opções WITHOUT ROLLING FORWARD e WITHOUT DATALINK, utilizando um backup incompleto, Servidores de ligação de dados ativados ou não Restauração doA reconciliação rápida é N/A Obrigatória para banco de dadosexecutada somente nas tabelas em tabelas em table utilizando a table spaces que não têm spaces com ligações opção WITHOUT ligações a um servidor de para o servidor de ROLLING Ligação de dados desativado. As Ligação de dados FORWARD, outras tabelas são colocadas no desativado utilizando um estado backup Datalink_Reconcile_Pending completo, no mínimo um servidor de Ligação de dados desativados Restauração doA reconciliação rápida não é N/A Obrigatória banco de dadosexecutada e todas as tabelas com utilizando a colunas DATALINK são colocadas opção WITHOUT no estado ROLLING Datalink_Reconcile_Pending FORWARD, utilizando um backup incompleto, Servidores de ligação de dados ativados ou não Restauração e Sem ação Sem ação Opcional avanço do banco de dados para o fim dos logs, utilizando um backup completo, todos os Servidores de ligação de dados ativados Restauração e Sem ação Sem ação Opcional avanço do banco de dados para o fim dos logs, utilizando um backup completo, no mínimo um servidor de Ligação de dados desativado durante o processamento de avanço Restauração e Sem ação Todas as tabelas com colunas Obrigatória pata avanço do DATALINK colocadas no estado todas as tabelas banco de dados Datalink_Reconcile_Pending com colunas para o fim dos DATALINK logs, utilizando um backup completo ou incompleto, todos os Servidores de ligação de dados desativados durante a restauração Restauração e Sem ação Sem ação Opcional avanço do banco de dados para o fim dos logs, utilizando um backup completo, todos os Servidores de ligação de dados ativados durante a restauração Restauração e Sem ação Todas as tabelas nas table Obrigatória avanço do spaces com ligações ao servidor banco de dados de Ligação de dados em que o para o fim dos backup é desconhecido são logs, colocadas no estado utilizando um Datalink_Reconcile_Pending backup completo ou incompleto, todos os Servidores de ligação de dados ativados, backup desconhecido nos servidores de Ligação de dados Restauração e Sem ação Sem ação Opcional avanço do table space para o fim dos logs, utilizando um backup completo, todos os Servidores de ligação de dados ativados Restauração e Sem ação Sem ação Opcional avanço do table space para o fim dos logs, utilizando um backup completo, no mínimo um servidor de Ligações de Dados desativado durante o processamento de avanço Restauração e Sem ação Todas as tabelas nos table Obrigatória para avanço de spaces com ligações para tabelas em table table space qualquer servidor de Ligação de spaces com ligações para o fim dos dados desativado são colocadas a um servidor de logs, no estado Ligação de dados utilizando um Datalink_Reconcile_Pending desativado backup completo ou incompleto, todos os Servidores de ligação de dados desativados durante a restauração Restauração e Sem ação Sem ação Opcional avanço de table space para o fim dos logs, utilizando um backup completo, todos os Servidores de ligação de dados ativados Restauração e Sem ação Tabelas colocadas no estado Obrigatória avanço do Datalink_Reconcile_Pending banco de dados para um ponto no tempo, utilizando um backup completo ou incompleto, Servidores de ligação de dados ativados ou desativados durante a restauração e/ou avanço Restauração e Sem ação Tabelas colocadas no estado Obrigatória avanço de Datalink_Reconcile_Pending table space para um ponto no tempo, utilizando um backup completo ou incompleto, Servidores de ligação de dados ativados ou desativados durante a restauração e/ou avanço Restauração doTabelas colocadas no estado N/A Opcional, mas as banco de dadosDatalink_Reconcile_Not_Possible tabelas no estado para um nome, Datalink_Reconcile alias, nome do _Not_Possible devem host, ou ser corrigidas instância do manualmente banco de dados diferente, sem avanço (NOTE1) Restauração doSem ação Tabelas colocadas no estado Opcional, mas as banco de dados Datalink_Reconcile_Not_Possible tabelas no estado para um nome, Datalink_Reconcile alias, nome do _Not_Possible devem host, ou ser corrigidas instância do manualmente banco de dados diferente e avanço Restauração doTabelas colocadas no estado Sem ação Obrigatória banco de dadosDatalink_Reconcile_Pending de um backup não utilizável (foi feita coleta de lixo da imagem no servidor de Ligação de dados), sem avanço (NOTE1), com ou sem a opção WITHOUT DATALINK Restauração doSem ação Tabelas colocadas no estado Obrigatória banco de dados Datalink_Reconcile_Pending de um backup não utilizável (foi feita coleta de lixo da imagem no servidor de Ligação de dados), com avanço, com ou sem a opção WITHOUT DATALINK Restauração doSem ação Tabelas colocadas no estado Obrigatória table space de Datalink_Reconcile_Pending um backup não utilizável (foi feita coleta de lixo da imagem no servidor de Ligação de dados) e avanço |Notas: 1. |Uma restauração utilizando backup offline e a opção WITHOUT |ROLLING FORWARD (logretain ativado), ou uma restauração utilizando |backup offline (logretain desativado). 2. |Um backup completo é efetuado com todos os servidores de |Ligação de dados executando. O backup incompleto é efetuado |com no mínimo um dos servidores de Ligação de dados desativado. 3. |O processo de reconciliação rápida não é executado se a imagem de backup |utilizada para a operação de restauração do banco de dados foi criada após uma |restauração do banco de dados, com ou sem avanço. Nesse caso, todas as |tabelas com colunas DATALINK são colocadas no estado |Datalink_Reconcile_Pending. | |7.6.14 Detecção de situações que requerem reconciliação |A seguir são fornecidas algumas situações nas quais pode ser necessário |executar o utilitário de reconciliação: | * |O banco de dados inteiro é restaurado e avançado para um ponto no |tempo. Como o banco de dados inteiro é avançado para uma transação |consolidada, não existem tabelas no estado de verificação pendente (devido a |limitações referenciais ou de verificação). Todos os dados do banco de |dados vão para o estado consistente. As colunas DATALINK, entretanto, |podem não ser sincronizadas com os meta-dados no DB2 Data Links Manager e é |necessária reconciliação. |Nessa situação, as tabelas com dados DATALINK já estarão no estado |DRP. Invoque o utilitário de reconciliação para cada uma dessas |tabelas. * |Um determinado servidor de Ligação de dados executando o DB2 Data Links |Manager perde seus meta-dados. Isto pode ocorrer por vários |motivos. Por exemplo: | o |O servidor de Ligação de dados foi inicializado à frio. o |Os meta-dados do servidor de Ligação de dados foram armazenados em um |estado de nível inferior. | Em algumas situações, como durante UPDATEs e DELETEs SQL, o DB2 pode |detectar um problema com os meta-dados no servidor de Ligação de dados. |Nessas situações, a instrução SQL falha. Coloque a tabela no estado DRP |utilizando a instrução SET CONSTRAINTS e depois execute o utilitário de |reconciliação na tabela. * |O sistema de arquivos não está disponível (por exemplo, devido a uma falha |no disco) e não é restaurado para o estado atual. Nessa situação, |alguns arquivos podem estar ausentes. * |O DB2 Data Links Manager é eliminado a partir de um banco de dados e |existem valores DATALINK FILE LINK CONTROL que fazem referência ao DB2 Data |Links Manager. Execute o utilitário de reconciliação nessas |tabelas. | ------------------------------------------------------------------------ 7.7 Apêndice C. Rotina de Usuário para Recuperação de Banco de Dados Sob a seção "Considerações de Arquivos Acumulativos e Recuperações", o seguinte parágrafo não é mais verdadeiro e deve ser removido da lista: Uma rotina de usuário pode ser interrompida se um cliente remoto perder sua conexão com o servidor DB2. Isto é, durante a manipulação dos arquivos acumulativos de logs através de uma rotina de usuário, um dos diferentes clientes conectados SNA é excluído ou desligado, resultando em um sinal (SIGUSR1) enviado ao servidor. O servidor transfere o sinal à rotina do usuário causando uma interrupção. O programa de saída do usuário pode ser alterado para verificar uma interrupção e depois continuar. A seção Manipulação de Erro possui uma lista de Notas que deve substituir o conteúdo da Nota 3 com a seguinte informação: * As solicitações do programa de saída do usuário são interrompidas por cinco minutos. Durante este tempo, todas as solicitações são ignoradas incluindo a solicitação do arquivo de log que causou o código de retorno. Após os cinco minutos de suspensão nas solicitações em processamento, a próxima solicitação é processada. Se não ocorrer erros com o processamento desta solicitação, então o processamento das novas solicitações do programa de saída do usuário continua e o DB2 irá emitir novamente a solicitação do arquivo acumulativo para os arquivos de log, se houver falha no arquivo acumulativo anterior ou dos que foram suspensos. Se um código de retorno maior que 8 for gerado durante a nova tentativa, as solicitações são suspensas por cinco minutos adicionais. Os cinco minutos de suspensão continuam até que o problema seja corrigido ou o banco de dados seja interrompido e reiniciado. Uma vez que todos os aplicativos se desconectam do banco de dados e o banco de dados é aberto novamente, o DB2 emitirá a solicitação do arquivo acumulativo para qualquer arquivo de log que não pode ser arquivado com sucesso na utilização anterior do banco de dados. Se o programa de saída do usuário falhar ao fazer o arquivo acumulativo dos arquivos de log, seu disco pode ser preenchido com arquivos de log e o desempenho pode ser degradado por causa do trabalho extra para formatar aqueles arquivos de log. Uma vez que o disco está sem espaço, o gerenciador de banco de dados não irá aceitar solicitações de aplicativos adicionais para alterações do banco de dados. Se o programa de saída do usuário foi chamado para recuperar arquivos de log, a recuperação rollforward é suspensa mas não interrompida a menos que o processo de parar seja especificado no utilitário ROLLFORWARD DATABASE. Se um processo de parar não foi especificado, você pode corrigir o problema e resumir a recuperação. ------------------------------------------------------------------------ |7.8 Apêndice D. Emitindo Comandos para Vários Servidores de Partição do Banco de Dados | | | |Na parte inferior da seção "Especificando o Comando a Ser Executado", |inclua o seguinte: |Quando você executa qualquer script de shell da shell korn que contém a |lógica para leitura do stdin no seghundo plano, você deve explicitamente |redirecionar stdin para uma origem onde o processo pode ler sem ficar parado |no terminal (mensagem SIGTTIN). Para redirecionar stdin, você pode |executar um script com o seguinte formato: | shell_script 8.5 AND C <= 10. A estimativa do valor r_2 utilizando a interpolação linear deve ser alterada para o seguinte: 10 - 8.5 r_2 *= ---------- x (número de linhas com valor > 8,5 e <= 100,0) 100 - 8,5 10 - 8,5 r_2 *= ---------- x (10 - 7) 100 - 8,5 1,5 r_2 *= ---- x (3) 91,5 r_2 *= 0 O parágrafo seguinte neste novo exemplo deve também ser alterado para parecer o seguinte: A estimativa final é r_1 + r_2 *= 7, e o erro é apenas -12.5%. |8.3.2 Regras para atualizar estatísticas de catálogo |Dentro da seção intitulada "Regras para atualizar estatísticas de |colunas", o último item da lista com marcadores deve ser substituído pelo |seguinte: |HIGH2KEY deve ser maior que LOW2KEY sempre que houver mais de 3 valores |distintos na coluna correspondente. No caso de 3 ou menos valores |distintos na coluna, HIGH2KEY pode ser igual a LOW2KEY. 8.3.3 Estatísticas do Subelemento No FixPak1, foi fornecida uma função para coletar e utilizar estatísticas do subelemento. Estas são as estatísticas sobre o conteúdo de dados nas colunas, quando os dados têm uma estrutura na forma de uma série de subcampos ou subelementos entre espaços em branco. Por exemplo, supondo-se que um banco de dados contenha a tabela DOCUMENTS, na qual cada linha descreve um documento, e que em DOCUMENTS existe uma coluna chamada KEYWORDS, que contém uma lista de palavras-chave relevantes referentes a este documento para fins de recuperação de texto. Os valores em KEYWORDS podem ser os seguintes: 'inteligência de negócio analítico na simulação do banco de dados' 'temperatura de reprodução da mosca da fruta do modelo de simulação' 'precipitação na erosão do solo na limpeza florestal' 'fogo na precipitação de solo da temperatura da floresta' Neste exemplo, cada coluna consiste em 5 subelementos, sendo cada um uma palavra (a palavra-chave), separado dos outros por um espaço em branco. Para consultas que especificam predicados LIKE em tais colunas que utilizam o caractere %elemento a ser correspondido_: SELECT .... FROM DOCUMENTS WHERE KEYWORDS LIKE '%simulação%' é geralmente útil para o otimizador que se saiba algumas estatísticas básicas sobre a estrutura do subelemento da coluna, como segue: SUB_COUNT O número médio de subelementos. SUB_DELIM_LENGTH O comprimento médio de cada delimitador que separa cada subelemento, onde um delimitador, neste contexto, consiste em um ou mais caracteres consecutivos em branco. No exemplo da coluna KEYWORDS, SUB_COUNT é 5 e SUB_DELIM_LENGTH é 1, porque cada delimitador é um caractere simples em branco. No FixPak1, o administrador do sistema controla a coleção e o uso destas estatísticas através de uma extensão da variável de registro DB2_LIKE_VARCHAR. Esta variável de registro afeta o modo com que o otimizador do DB2 UDB trabalha com um predicado na forma: COLUMN LIKE '%xxxxxx' em que xxxxxx indica qualquer cadeia de caracteres; ou seja, qualquer predicado LIKE cujo valor de pesquisa se inicie com um caractere %. (Pode ou não terminar com um caractere %). São referidos como "predicados LIKE de caractere curinga" abaixo. Para todos os predicados, o otimizador apresenta uma estimativa de quantas linhas deverão corresponder ao predicado. Para predicados LIKE do caractere curinga, o otimizador supões que COLUMN que está sendo correspondida contém a estrutura de uma série de elementos concatenados para formar a coluna inteira e estima o comprimento de cada elemento baseado no comprimento da cadeia, excluindo os caracteres % iniciais e finais. A nova sintaxe será: db2set DB2_LIKE_VARCHAR=[Y|N|S|num1][,Y|N|num2] em que - o primeiro termo (precedendo a vírgula) significa o seguinte, mas somente para colunas que não tenham estatísticas positivas do subelemento S Usa o algoritmo como no DB2 Versão 2. N Usa um algoritmo do subelemento de comprimento fixo. Y (padrão) Usa um algoritmo do subelemento de comprimento variável com o valor padrão para o parâmetro do algoritmo. num1 Usa um algoritmo do subelemento de comprimento variável e num1 como o parâmetro do algoritmo. - o segundo termo (depois da vírgula) significa: N (padrão) Não coleta ou usa estatísticas do subelemento. Y Coleta estatísticas do subelemento. Usa um algoritmo do subelemento de comprimento variável que usa estas estatísticas, junto a um valor padrão para o parâmetro do algoritmo no caso de colunas com estatísticas do subelemento positivo. num2 Coleta estatísticas do subelemento. Usa um algoritmo do subelemento de comprimento variável que usa estas estatísticas, junto ao num2 como o parâmetro do algoritmo no caso de colunas com estatísticas do subelemento positivo. Se o valor de DB2_LIKE_VARCHAR contiver somente o primeiro termo, nenhuma estatística de subelemento será coletada, e qualquer uma coletada anteriormente será ignorada. O valor especificado afeta a maneira que o otimizador calcula a seletividade dos predicados LIKE do caractere curinga do mesmo modo que anteriormente, ou seja: * Se o valor for S, o otimizador usará o mesmo algoritmo utilizado no DB2 Versão 2, que não presume o modelo do subelemento. * Se o valor for N, o otimizador usará um algoritmo que presume o modelo do subelemento e supõe que COLUMN possui um comprimento fixo, mesmo que esteja definida para o comprimento variável. * Se o valor for Y (o padrão) ou uma constante de vírgula flutuante, o otimizador usará um algoritmo que presume o modelo do subelemento e reconhece que COLUMN é de comprimento variável, se estiver definida assim. Também infere as estatísticas do subelemento a partir da própria consulta, em vez dos dados. Este algoritmo envolve um parâmetro (o "parâmetro algoritmo") que especifica o quanto um elemento é maior que a cadeia entre os caracteres %. * Se o valor for Y, o otimizador utilizará um valor padrão de 1,9 para o parâmetro do algoritmo. * Se o valor for uma constante de vírgula flutuante, o otimizador usará o valor especificado para o parâmetro do algoritmo. Esta constante deve estar dentro do intervalo de 0 a 6,2. Se o valor de DB2_LIKE_VARCHAR contiver dois termos e o segundo for Y ou uma constante de vírgula flutuante, as estatísticas do subelemento em colunas de cadeia do conjunto de caracteres de byte simples do tipo CHAR, VARCHAR, GRAPHIC ou VARGRAPHIC serão coletadas durante uma operação RUNSTATS e usadas durante a compilação das consultas que envolvem os predicados LIKE do caractere curinga. O otimizador usa um algoritmo que presume o modelo do subelemento e utiliza as estatísticas SUB_COUNT e SUB_DELIM_LENGTH, assim como um parâmetro do algoritmo, para calcular a seletividade do predicado. O parâmetro do algoritmo é especificado da mesma forma que o algoritmo deduzível, ou seja: * Se o valor for Y, o otimizador utilizará um valor padrão de 1,9 para o parâmetro do algoritmo. * Se o valor for uma constante de vírgula flutuante, o otimizador usará o valor especificado para o parâmetro do algoritmo. Esta constante deve estar dentro do intervalo de 0 a 6,2. Se, durante a compilação, o otimizador descobrir que as estatísticas do subelemento não foram coletadas na consulta envolvida na consulta, ele utilizará o algoritmo do subelemento "conclusivo", ou seja, o algoritmo que é utilizado na especificação do primeiro termo de DB2_LIKE_VARCHAR. Assim, para que as estatísticas do subelemento sejam usadas pelo otimizador, o segundo termo de DB2_LIKE_VARCHAR dever ser definido durante o RUNSTATS e a compilação. Os valores das estatísticas do subelemento podem ser vistos consultando-se SYSIBM.SYSCOLUMNS. Por exemplo: select substr(NAME,1,16), SUB_COUNT, SUB_DELIM_LENGTH a partir de sysibm.syscolumns em que tbname = 'DOCUMENTS' As colunas SUB_COUNT e SUB_DELIM_LENGTH não estão presentes na exibição da estatística SYSSTAT.COLUMNS e, portanto, não podem ser atualizadas. Nota: RUNSTATS pode demorar mais se esta opção for utilizada. Por exemplo, RUNSTATS pode levar de 15 a 40% mais tempo em uma tabela com 5 colunas de caracteres, se as opções DETAILED e DISTRIBUTION não forem usadas. Se a opção DETAILED ou DISTRIBUTION estiver especificada, a sobrecarga de porcentagem será menor, embora a quantidade absoluta de sobrecarga seja a mesma. Se estiver considerando o uso desta opção, faça a estimativa desta sobrecarga em comparação com as melhorias no desempenho da consulta. ------------------------------------------------------------------------ 8.4 Capítulo 6. Entendendo o Compilador SQL As seguintes seções requerem alterações: 8.4.1 Tabelas de Resumo Replicadas A seguinte informação substituirá ou será incluída a uma informação já existente nesta seção. As tabelas de resumo replicadas podem ser usadas para ajudar na colocação de junções. Por exemplo, se você possui um esquema em estrela onde há uma grande extensão de tabela de fato através de vinte nós, então as junções entre a tabela de fato e as tabelas de dimensões são mais eficientes se estas tabelas estiverem colocadas. Pela colocação de todas as tabelas no mesmo grupo de nós, no máximo deveria haver uma tabela de dimensão particionada correta para um join colocado. Todas as outras tabelas de dimensões deveriam não estar aptas para serem utilizadas em um join colocado porque a(s) coluna(s) de join na tabela de fato deveria(m) não corresponder à chave de particionamento da tabela de fato. Por exemplo, você poderia ter uma tabela chamada FACT (C1, C2, C3, ...) particionada em C1; e uma tabela chamada DIM1 (C1, dim1a, dim1b, ...) particionada em C1; e uma tabela chamada DIM2 (C2, dim2a, dim2b, ...) particionada em C2; e assim por diante. A partir deste exemplo, você poderia ver que a junção entre FACT e DIM1 é perfeita porque o predicado DIM1.C1 = FACT.C1 poderia ser colocado. Ambas tabelas são particionadas na coluna C1. A junção entre DIM2 com o predicado WHERE DIM2.C2 = FACT.C2 não pode ser colocado porque FACT é particionado na coluna C1 e não na coluna C2. Neste caso, seria bom replicar o DIM2 de fato no grupo de nó da tabela. Desta forma podemos fazer o join localmente em cada partição. Nota: A discussão das tabelas de resumo replicadas aqui têm que ser feita com a replicação no banco de dados. A replicação no banco de dados deve ser feita com subscrições, tabelas de controle e dados localizados em diferentes bancos de dados em diferentes sistemas operacionais. Se você estiver interessado na replicação no banco de dados, consulte Replication Guide and Reference para mais informações. Ao criar uma tabela de resumo replicada, a tabela de origem deve ser uma tabela de grupo de nó de nó único ou uma tabela de grupo de nó de nó múltiplo. Na maioria dos casos, a tabela é pequena e pode ser colocada em um grupo de nó único. Você pode colocar um limite nos dados que devem ser replicados especificando apenas um subconjunto de colunas da tabela, ou limitando o número de linhas através dos predicados utilizados ou usando ambos os métodos ao criar a tabela de resumo replicada. Nota: A opção de captura de dados não é requerida para funcionar com tabelas de resumo replicadas. A tabela de resumo replicada pode também ser criada em um nó de grupo multinó. O grupo de nó é o mesmo que o grupo de nó no qual você colocou suas grandes tabelas. Neste caso, cópias da tabela de origem são criadas em todas as partições do grupo de nó. Junções entre uma tabela grande e as tabelas de dimensão possuem uma melhor chance de serem feitas localmente neste ambiente, ao contrário de distribuir a tabela de origem para todas as partições. Os índices nas tabelas replicadas não são criados automaticamente. Os índices são criados e podem ser diferentes daqueles identificados na tabela fonte. Nota: Você não pode criar índices únicos (ou colocar quaisquer restrições) nas tabelas replicadas. Isto irá impedir violações de restrições que não estão presentes nas tabelas fonte. Estas restrições são desativadas mesmo que exista a mesma restrição na tabela fonte. Após o uso da instrução REFRESH, você deve executar o RUNSTATS na tabela replicada como faria em qualquer outra tabela. As tabelas replicadas podem ser referenciadas diretamente dentro de uma consulta. De qualquer modo, você não pode usar o predicado NODENUMBER() com uma tabela replicada para ver o dado da tabela em uma partição particular. Para ver se uma tabela de resumo replicada foi utilizada (uma dada consulta que referencia a tabela fonte), você pode usar a funcionalidade EXPLAIN. Primeiro, você deveria assegurar a existência das tabelas EXPLAIN. Em seguida, deveria criar um plano de explicação para a instrução SELECT na qual esteja interessado. Finalmente, deveria utilizar o utilitário db2exfmt para formatar a saída EXPLAIN. O plano de acesso escolhido pelo otimizador pode ou não utilizar a tabela de resumo replicada dependendo da informação necessária que precisa ser unida. A não utilização da tabela de resumo replicada poderia ocorrer se o otimizador determinar que seria mais simples distribuir a tabela da fonte original para as outras partições no grupo de nó. 8.4.2 Conceitos e Otimização do Acesso de Dados A seção "Acesso ao Índice Múltiplo" em "Conceitos de Rastreamento do Índice" foi alterada. Adicione as seguintes informações antes da nota no final da seção: Para perceber os benefícios de desempenho dos bitmaps dinâmicos na varredura de vários índices, convém alterar o valor do parâmetro sort heap size (sortheap) de configuração do banco de dados e do parâmetro sort heap threshold (sheapthres) de configuração do gerenciador de banco de dados. É necessário ter espaço adicional para o sort heap quando bitmaps dinâmicos são usados em planos de acesso. Quando sheapthres é definido para ficar relativamente próximo a sortheap (ou seja menos de um fator em duas ou três vezes por consulta simultânea), os bitmaps dinâmicos com acesso a vários índices devem trabalhar com bem menos memória que o otimizador antecipou. A solução é aumentar o valor de sheapthres com relação a sortheap. A seção "Estratégias de Pesquisa para Star Join" em "Terminologia de Atributos" foi alterada. Inclua as seguintes informações no final da seção: Os bitmaps dinâmicos criados e usados como parte da técnica Star Join usam memória do sort heap. Consulte o Capítulo 13, "Configurando o DB2" no manual Administration Guide: Performance para obter maiores informações sobre o parâmetro de configuração do banco de dados Sort Heap Size (sortheap). ------------------------------------------------------------------------ 8.5 Capítulo 8. Desempenho Operacional |8.5.1 Gerenciando o conjunto de buffer do banco de dados | | |Dentro da seção intitulada "Gerenciamento do conjunto de buffer do banco |de dados", inclua as seguintes informações após o parágrafo que inicia com |"Ao criar um conjunto de buffer, por padrão o tamanho da página é 4 |KB.": |Ao trabalhar com o Windows 2000, são suportados os conjuntos de buffer com |até 64 GB menos o tamanho do DB2 e do sistema operacional. Isto supões |que o DB2 seja o produto principal no sistema. Esse suporte está |disponível através do Microsoft Address Windowing Extensions (AWE). |Apesar de o AWE poder ser utilizado com conjuntos de buffer de qualquer |tamanho, se você deseja utilizar o AWE em conjuntos de buffer maiores existem |outros produtos Windows recomendados. O Windows 2000 Advanced Server |suporta até 8 GB de memória. O Windows 2000 Data Center Server suporta |até 64 GB de memória. |O DB2 e o Windows 2000 devem ser configurados para suportar conjuntos de |buffer AWE. O conjunto de buffer que vai utilizar o AWE deve existir no |banco de dados. |Para ter um espaço de usuário de 3 GB alocado, utilize a opção de |inicialização /3GB do Windows 2000. Isto permite o uso de uma |janela do AWE maior. Para permitir o acesso a mais de 4 GB de memória |através da interface de memória do AWE, utilize a opção de inicialização |/PAE do Windows 2000. Para verificar se a opção de inicialização |correta está selecionada, em Controle selecione Sistema e depois |"Inicialização e recuperação". Na lista drop down são mostradas as |opções de inicialização disponíveis. Se a opção de inicialização |(/3GB ou /PAE) desejada estiver selecionada, você está pronto para |continuar com a próxima tarefa de configurar o suporte a AWE. Se a |opção desejada não estiver disponível para seleção, inclua-a no arquivo |boot.ini na unidade do sistema. O arquivo boot.ini contém |uma lista de ações a serem executadas quando o sistema operacional for |iniciado. Inclua /3GB ou /PAE, ou ambos (separados por |espaços em branco) no fim da lista de parâmetros existentes. quando |tiver salvo esse arquivo alterado, você pode verificar e selecionar a opção de |inicialização correta, conforme mencionado acima. |O Windows 2000 também deve ser modificado a fim de associar "lock pages |in memory"-right com o usuário no qual o DB2 está instalado. Para |definir "lock pages in memory"-right, quando tiver iniciado sessão no |Windows 2000 como o usuário que instalou o DB2, no menu Iniciar do Windows |2000, selecione a pasta "Ferramentas administrativas" e o programa |"Local Security Policy". Nas políticas locais, selecione a |atribuição de direitos do usuário para "lock pages in |memory"-right. |O DB2 requer a definição da variável de registro DB2_AWE. Para |definir essa variável de registro corretamente, é necessário saber o ID do |conjunto de buffer no qual você deseja permitir suporte ao AWE. É |necessário também saber o número de páginas físicas e as páginas da janela de |endereços a serem alocadas. O número de páginas físicas a serem |alocadas deve ter um valor menor que o total de páginas físicas |disponíveis. O número real escolhido depende do seu ambiente de |trabalho. Por exemplo, se em seu ambiente o sistema utiliza somente |aplicativos do DB2 e de banco de dados, você pode optar entre meio e um GB a |menos que o tamanho total das páginas físicas como valor utilizado com a |variável DB2_AWE. Se em seu ambiente outros aplicativos que não são do |banco de dados utilizam o sistema, é necessário aumentar o valor subtraído do |total para permitir mais páginas físicas para esses outros aplicativos. |O número utilizado na variável de registro DB2_AWE é o número de páginas |físicas a serem utilizadas para suportar o AWE e para serem utilizadas pelo |DB2. O limite superior para páginas da janela de endereço é 1,5 GB ou |2,5 GB quando a opção de inicialização do Windows 2000 /3GB estiver em |vigor. |Para obter informações sobre a configuração da variável de registro do DB2 |DB2_AWE, consulte a tabela de variáveis de registro novas e alteradas no |"Apêndice A. Registro do DB2 e variáveis de ambiente" |posteriormente nesta seção. |8.5.2 Gerenciando vários conjuntos de buffer do banco de dados | | |Dentro da seção intitulada "Gerenciamento de vários conjuntos de buffer |do banco de dados", inclua o seguinte parágrafo após o parágrafo que inicia |com "Ao trabalhar com o design do banco de dados, você determinou que |tabelas com páginas de 8 KB são melhores.": |Ao trabalhar com o Windows 2000, a variável de registro DB2_AWE pode ser |utilizada para substituir as configurações de tamanho do conjunto de buffer no |catálogo e nos arquivos de configuração. O uso dessa variável de |registro permite conjuntos de buffer de aproximadamente 64 GB. |Dentro da mesma seção, substitua o parágrafo imediatamente antes da nota |pelo seguinte: |O motivo de permitir que o gerenciador do banco de dados inicie com valores |de tamanho mínimo é permitir a conexão com o banco de dados. Em seguida |é os tamanhos do conjunto de buffer podem ser reconfigurados, ou você pode |executar outras tarefas críticas com o objetivo de reiniciar o banco de dados |com tamanhos de conjunto de buffer corretos. Não opere o banco de dados |por muito tempo nesse estado. |Dentro da seção intitulada "Reorganização dos catálogos e tabelas do |usuário", a última frase (com uma lista curta) do parágrafo que inicia com |"O utilitário REORG permite especificar um table space |temporário..." pode ser substituído por: |Utilizar o mesmo table space para reorganizar tabelas é mais rápido, mas |ocorre mais registro e deve existir espaço suficiente para a tabela |reorganizada. Se você especificar um table space temporário, geralmente |é recomendado especificar um table space SMS temporário. O table space |DMS temporário não é recomendado já que é possível ter somente REORG em |andamento utilizando esse tipo de table space. |Dentro da seção intitulada "Extensão da memória", inclua o seguinte |parágrafo após o terceiro parágrafo desta seção: |Ao colocar conjuntos de buffer Address Windowing Extensions (AWE) do |Windows 2000 utilizando a variável de registro DB2_AWE, a cache de |armazenamento estendido não pode ser utilizada. ------------------------------------------------------------------------ |8.6 Capítulo 9. Utilizando o Governor | |Dentro da seção intitulada "Criação do arquivo de configuração do |Governor", a primeira frase do primeiro parágrafo após a discussão da ação |de planejamento deve ser substituída por: |Se mais de uma regra for válida para um aplicativo, todas as regras são |aplicadas. Dependendo da regra e dos limites definidos, a ação |associada ao limite de regra encontrado primeiro é a primeira ação a ser |aplicada. ------------------------------------------------------------------------ 8.7 Capítulo 13. Configurando o DB2 Os seguintes parâmetros requerem alterações: 8.7.1 Sort Heap Size (sortheap) A seção "Recomendação" foi alterada. As informações nela, agora, são: Ao trabalhar com o sort heap considere o seguinte: * Índices adequados podem minimizar o uso do sort heap. * Buffers e bitmaps dinâmicos de hash join (usados para ANDing e Star Joins de índice) usam memória do sort heap. Aumente o tamanho desse parâmetro quando essas técnicas forem usadas. * Aumente o tamanho desse parâmetro quando ordenações extensas forem usadas com freqüência. * ... (o restante dos itens permanece inalterado) 8.7.2 Sort Heap Threshold (sheapthres) O segundo e último parágrafo na descrição desse parâmetro foi alterado. Ele agora deve ser: Exemplos dessas operações que usam o sort heap incluem: ordenações, bitmaps dinâmicos (usados para ANDing e Star Joins de índice) e operações onde a tabela está na memória. A seguinte informação deve ser incluída para a descrição deste parâmetro: Não existe razão para aumentar o valor deste parâmetro ao se mover de um ambiente de nó único para um nó múltiplo. Uma vez ajustado o banco de dados e os parâmetros de configuração do gerenciador de banco de dados em um ambiente de nó único (em um DB2 EE), os mesmos valores irão na maioria dos casos trabalhar bem em um ambiente de nó múltiplo (em um DB2 EEE). O parâmetro Sort Heap Threshold, como um parâmetro de configuração de banco de dados, se aplica através da instância DB2 inteira. A única forma de definir este parâmetro com valores diferentes em nós diferentes ou partições é criar mais de uma instância DB2. Isto irá exigir o gerenciamento de bancos de dados DB2 diferentes sobre nós de grupos diferentes. Essa disposição anula o propósito de aproveitar as vantagens de um ambiente do banco de dados particionado. |8.7.3 Porcentagem Máxima da Lista de Bloqueios Antes da Escalação (maxlocks) | | |A seguinte alteração pertence à seção Recomendação do parâmetro de |configuração do banco de dados "Porcentagem Máxima da Lista de Bloqueios Antes |da Escalação (maxlocks)". |Recomendação: A seguinte fórmula permite que você defina |maxlocks para que um aplicativo possa conter duas vezes o número |médio de bloqueios: | maxlocks = 2 * 100 / maxappls |Em que 2 é usado para alcançar duas vezes a média e |100 representa o maior valor de porcentagem permitido. Se |você tiver somente alguns aplicativos que executam simultaneamente, poderá |utilizar a seguinte fórmula como uma alternativa para a primeira |fórmula: | maxlocks = 2 * 100 / (número médio de aplicativos em execução |simultaneamente) |Uma das considerações ao definir maxlocks é usá-lo em conjunto |com o tamanho da lista de bloqueios (locklist). O limite |real do número de bloqueios contido por um aplicativo antes de ocorrer a |escalação de bloqueio é: | maxlocks * locklist * 4096 / (100 * 36) |Em que 4096 é o número de bytes em uma página, 100 |é o maior valor de porcentagem permitido para maxlocks e |36 é o número de bytes por bloqueio. Se você souber que um |dos aplicativos precisa de 100 bloqueios e não quiser que ocorra a escalação |de bloqueio, então escolha valores para maxlocks e |locklist nessa fórmula de forma que o resultado seja maior que |1000. (Ao usar 10 para maxlocks e 100 para |locklist, essa fórmula resultará em um número maior que os 1000 |bloqueios necessários.) |Se maxlocks for definido para um número muito baixo, a escalação |de bloqueio ocorrerá quando ainda houver espaço de bloqueio suficiente para |outros aplicativos simultâneos. Se maxlocks for definido |para um número muito alto, alguns aplicativos poderão consumir a maioria do |espaço de bloqueio e outros aplicativos terão de desempenhar a escalação de |bloqueio. A necessidade de escalação de bloqueio nesse caso resultará |em uma simultaneidade ruim. |Você pode usar o monitor de sistema do banco de dados para ajudá-lo a |acompanhar e ajustar esse parâmetro de configuração. |8.7.4 Configurando o DB2/DB2 Data Links Manager/Intervalo de Expiração do Token do Data Links Access (dl_expint) | |Ao contrário do que está descrito na documentação, se dl_expint for |definido para "-1", o token do controle de acesso expirará. A solução |alternativa para isso é definir dl_expint para seu valor máximo, 31536000 |(segundos). Isso corresponde ao tempo de expiração de um ano, que seria |adequado para todos os aplicativos. |8.7.5 Parâmetro de Configuração de Banco de Dados MIN_DEC_DIV_3 | |A inclusão do parâmetro de configuração de banco de dados MIN_DEC_DIV_3 é |fornecida como uma forma rápida de ativar uma alteração no cálculo da escala |para divisão decimal na SQL. O MIN_DEC_DIV_3 pode ser definido para YES |ou NO. O valor padrão é NO. |O parâmetro de configuração do banco de dados MIN_DEC_DIV_3 altera a escala |resultante de uma operação aritmética decimal que envolve divisão. Se o |valor for NO, a escala será calculada como 31-p+s-s'. Consulte a |Referência a SQL, Capítulo 3, "Aritmética Decimal em SQL" para |obter maiores informações. Se for definido para YES, a escala será |calculada como MAX(3, 31-p+s-s'). Isso faz com que o resultado da |divisão decimal sempre tenha uma escala de pelo menos 3. A precisão é |sempre 31. |A alteração do parâmetro de configuração de banco de dados pode causar |alterações nos aplicativos de bancos de dados existentes. Isso pode |ocorrer quando a escala resultante da divisão decimal for afetada pela |alteração desse parâmetro de configuração de banco de dados. A seguir, |estão listados alguns cenários possíveis que podem gerar impacto em |aplicativos. Esses cenários deveriam ser considerados antes de alterar |o MIN_DEC_DIV_3 em um servidor de banco de dados com os bancos de dados |existentes. | * |Se a escala resultante de uma das colunas da exibição for alterada, uma |exibição que for definida em um ambiente com uma definição poderá falhar com |SQLCODE -344 quando referida após o parâmetro de configuração de banco de |dados ser alterado. A mensagem SQL0344N refere-se a expressões de |tabela recursivas, no entanto, se o nome do objeto (primeiro token) for uma |exibição, então será necessário eliminar a exibição e criá-la novamente para |evitar esse erro. * |Um pacote estático não mudará de comportamento até refazer a ligação, |implícita ou explicitamente. Por exemplo, após alterar o valor de NO |para YES, os dígitos de escala adicionais poderão não ser incluídos nos |resultados até a ligação ser refeita. Para todos os pacotes estáticos |alterados, um comando explícito para refazer a ligação pode ser usado para |forçar uma nova ligação. * |Uma restrição de verificação que envolve divisão decimal pode restringir |alguns valores que foram anteriormente aceitos. Tais linhas agora podem |violar a restrição, mas não serão detectadas até que uma das colunas |envolvidas na restrição de verificação seja atualizada ou o comando SET |INTEGRITY com a opção IMMEDIATE CHECKED seja |processado. Para forçar a verificação de tal restrição, execute um |comando ALTER TABLE para eliminar a restrição de verificação e, em |seguida, execute um comando ALTER TABLE para incluir a restrição |novamente. | | |Nota: O DB2 Versão 7 também tem as seguintes limitações: | 1. |O comando GET DB CFG FOR DBNAME não exibirá a definição |MIN_DEC_DIV_3. A melhor maneira de determinar a definição atual é |observar o efeito colateral do resultado de uma divisão decimal. Por |exemplo, considere a seguinte instrução: |VALUES (DEC(1,31,0)/DEC(1,31,5)) |Se essa instrução retornar sqlcode SQL0419N, então o banco de dados não |terá o suporte MIN_DEC_DIV_3 ou ele estará definido para OFF. Se a |instrução retornar 1.000, então MIN_DEC_DIV_3 está definido |para ON. 2. |MIN_DEC_DIV_3 não aparece na lista de palavras-chave de configuração |quando você executa o seguinte comando: ? UPDATE DB CFG | | |8.7.6 Tamanho do heap de controle do aplicativo (app_ctl_heap_sz) | | |O texto desse parâmetro deve ser: |Para bancos de dados particionados e não particionados com |intra-paralelismo ativado (intra_parallel=ON), este é o tamanho da área de |memória compartilhada alocada para o heap de controle do aplicativo. |Para bancos de dados não particionados nos quais o intra-paralelismo está |desativado, (intra_parallel=OFF), esta é a memória privada máxima que será |alocada para o heap. Não existe heap de controle do aplicativo por |conexão por partição. |O heap de controle do aplicativo é necessário principalmente para |compartilhar informações entre agentes que trabalham em nome do mesmo pedido |e, em um ambiente de banco de dados particionado, para armazenar seções |executáveis que representam instruções SQL. O uso desse heap é mínimo |para bancos de dados não particionados ao executar consultas com um grau de |paralelismo menor ou igual a 1. |Esse heap também é utilizado para armazenar informações do descritor para |tabelas temporárias declaradas. As informações sobre o descritor de |todas as tabelas temporárias que não foram eliminadas explicitamente são |mantidas na memória desses heap e não podem ser eliminadas até que a tabela |temporária declarada seja eliminada. |A parte "Recomendação" permanece inalterada. |8.7.7 Tamanho do heap do monitor do sistema de banco de dados (mon_heap_sz) | | |O padrão do servidor de banco de dados OS/2 e Windows NT com clientes |locais e remotos e do servidor de banco de dados Satellite com clientes locais |mudou de 24 para 32. O intervalo permanece inalterado. |8.7.8 Número máximo de aplicativos ativos (maxappls) | | |O limite máximo do intervalo para todas as plataformas mudou de |64 000 para 60 000. O valor padrão permanece |inalterado. |8.7.9 Intervalo de recuperação e de ponto de verificação de software (softmax) | | |A unidade de medida foi alterada para a porcentagem do tamanho de um |arquivo de log primário. 8.7.10 Rastrear ativação de páginas modificadas (trackmod) Tipo de configuração: Banco de dados Tipo de parâmetro: Configurável Padrão [intervalo]: Desativado [ ativado; desativado ] Quando esse parâmetro está definido como ON, o gerenciador do banco de dados verifica quais páginas do banco de dados foram alteradas desde o último backup completo. Isto permite que o utilitário de backup determine quais páginas devem ser incluídas em um backup incremental sem a necessidade de examinar cada página individualmente. Para tablespaces SMS, a granularidade desse rastreamento está no nível do ritmo das tabelas. Para table spaces DMS, a granularidade está no nível de extensão dos dados e páginas do índice e no nível de table space para outros tipos de páginas. Após configurar esse parâmetro como ON, faça um backup incremental completo para ter uma linha de base contra a qual podem ser feitos backups incrementais. 8.7.11 Alterar o caminho do log do banco de dados (newlogpath) Tipo de configuração: Banco de dados Tipo de parâmetro: Configurável Padrão [intervalo]: Nulo [ qualquer caminho ou dispositivo válido] Parâmetros relacionados: Localização dos arquivos de log (logpath); o banco de dados é consistente (database_consistent) Esse parâmetro permite especificar uma cadeia de até 242 bytes para alterar a localização na qual os arquivos de log são armazenados. A cadeia pode indicar um nome de caminho ou um dispositivo bruto. Se a cadeia indicar um nome de caminho, deve ser um nome completo, não um nome de caminho relativo. Nota: Em um ambiente de banco de dados particionado, o número do nó é anexado ao caminho automaticamente. Isto é feito para manter a exclusividade do caminho em vários configurações lógicas do nó. Para especificar um dispositivo, especifique uma cadeia que o sistema operacional identifica como dispositivo. Por exemplo, no Windows NT, \\.\d: ou \\.\PhysicalDisk5 Nota: É necessário ter o Windows NT Versão 4.0 com Service Pack 3 instalado para poder gravar logs em um dispositivo. Em plataformas baseadas em UNIX, /dev/rdblog8 Nota: É possível especifica um dispositivo apenas nas plataformas AIX, Windows 2000, Windows NT, Solaris, HP-UX, NUMA-Q e Linux. A nova definição não torna-se o valor de logpath até que ocorra o seguinte: * O banco de dados esteja em estado consistente, conforme indicado pelo parâmetro database_consistent. * Todos os usuários estejam desconectado do banco de dados. Quando a primeira nova conexão for feita no banco de dados, seu gerenciador move os logs para a nova localização especificada pelo caminho do log. Podem existir arquivos de log no caminho de log antigo. Esses arquivos podem não ter sido arquivados. Pode ser necessário arquivar esses arquivos de log manualmente. Além disso, se você estiver executando replicação no banco de dados, ela ainda pode precisar os arquivos de log de antes da alteração no caminho. Se o banco de dados estiver configurado com o parâmetro de configuração do banco de dados Ativar saída do usuário (userexit) definido como "Sim" e se todos os arquivos de log tiverem sido arquivados automaticamente pelo DB2 ou manualmente por você, o DB2 pode recuperar os arquivos de log a fim de concluir o processo de replicação. Caso contrário, você pode copiar os arquivos do caminho de log antigo para o novo. Recomendação: O ideal é que os arquivos de log estejam em um disco físico que não tenha E/S alta. Por exemplo, evite colocar os logs no mesmo disco que o sistema operacional ou com bancos de dados de grande volume. isto permite uma atividade de registro eficiente, com um mínimo de sobra, como por exemplo, aguardar a E/S/ Utilize o monitor do sistema do banco de dados para rastrear o número de E/Ss relacionadas ao log do banco de dados. Para obter mais informações, consulte as seguintes descrições do elemento monitor, no Manual e referência do monitor do sistema: * log_reads (número de páginas do log lidas) * log_writes (número de páginas do log gravadas) Os elementos de dados acima retornam a quantidade de atividade de E/S relacionada ao log do banco de dados. Utilize uma ferramenta de monitoramento do sistema operacional para coletar informações sobre outras atividades de E/S do disco e depois compare os dois tipos de atividade de E/S. |8.7.12 Localizando Arquivos de Log (logpath) |Tipo de configuração: Banco de dados |Tipo de parâmetro: Informativo |Parâmetros relacionados: Alterar o caminho do log do banco |de dados (newlogpath) |Esse parâmetro contém o caminho atual que está sendo utilizado para |log. Esse parâmetro não pode ser alterado diretamente, pois é definido |pelo gerenciador do banco de dados quando uma alteração no parâmetro |newlogpath torna-se efetiva. Quando um banco de dados é criado, o |arquivo do log de recuperação para ele é criado em um subdiretório do |diretório que contém o banco de dados. O padrão é um subdiretório |denominado SQLOGDIR no diretório criado para o banco de dados. |8.7.13 Armazenamento máximo para a lista de bloqueio (locklist) |O valor máximo foi aumentado de 60.000 para |524.288. ------------------------------------------------------------------------ 8.8 Apêndice A. Registro DB2 e Variáveis de Ambiente As seguintes variáveis de registro são novas ou requerem alterações: |8.8.1 Tabela das Variáveis de Registro Novas e Alteradas | |Tabela 6. Variáveis de Registro Nome da Variável Sistema Valores Operacional Descrição DB2MAXFSCRSEARCH Todos Padrão=5 Valores: -1, 1 a 33554 Especifica o número de registro do controle de espaço livre para pesquisar ao incluir um registro na tabela. O padrão é pesquisar cinco registros de controle do espaço livre. A alteração deste valor permite balancear a velocidade de inclusão com utilização novamente do espaço. Use valores grandes para otimizar a utilização novamente do espaço. Use valores pequenos para otimizar a velocidade de inclusão. Definir o valor como -1 força o gerenciador de banco de dados a pesquisar todos os registros de controle do espaço livre. DLFM_TSM_MGMTCLASS AIX, Windows Padrão: a classe de NT, Solaris gerenciamento TSM padrão Valores: qualquer classe de gerenciamento TSM válido Especifica quais classes de gerenciamento TSM usar para fazer o arquivo acumulativo e a recuperação de arquivos ligados. Caso não exista valor definido para esta variável, a classe de gerenciamento TSM padrão é utilizada. DB2_CORRELATED_PREDICATES Todos Padrão=YES Valores: YES ou NO O padrão para essa variável é YES. Quando há índices exclusivos em colunas correlatas em uma junção e esta variável de registro for YES, o otimizador tenta detectar e compensar a correlação de predicados de junção. Quando esta variável de registro for YES, o otimizador utiliza a informação KEYCARD das estatísticas do índice exclusivo para detectar casos de correlação e ajustar dinamicamente as seletividades combinadas dos predicados correlacionados, obtendo assim uma estimativa mais apurada do tamanho e custo da junção. DB2_VI_DEVICE Windows NT Padrão=nulo Valores: nic0 ou VINIC Especifica o nome simbólico do dispositivo ou a instância do Provedor de Interface Virtual associado com Network Interface Card (NIC). Fornecedores de hardware independentes (Independent hardware vendors - IHVs) produzem cada um seu próprio NIC. Apenas um (1) NIC é permitido por máquina Windows NT; Nós lógicos múltiplos na mesma máquina física compartilharão do mesmo NIC. O nome do dispositivo simbólico "VINIC" deve estar em maiúscula e pode ser utilizado apenas com Synfinity Interconnect. Todas as outras implementações suportadas atualmente usam o "nic0" como nome de dispositivo simbólico. DB2_SELECTIVITY ALL Padrão=NO Valores: YES ou NO Essa variável de registro controla onde a cláusula SELECTIVITY pode ser usada. Consulte Referência a SQL, Language Elements, Search Conditions para obter detalhes completos sobre a cláusula SELECTIVITY. Se essa variável de registro for definida para YES, a cláusula SELECTIVITY poderá ser especificada quando o predicado for um predicado básico, no qual pelo menos uma expressão contém variáveis do host. DB2_UPDATE_PART_KEY ALL Padrão=YES Valores: YES ou NO No FixPak 3 e posterior, o valor padrão é YES. Essa variável de registro especifica se a atualização da chave de particionamento é permitida ou não. DB2_BLOCK_ON_LOG_DISK_FULL ALL Padrão=NO Valores: YES ou NO Essa variável de registro do DB2 pode ser definida para impedir a geração de erros "disco cheio" quando o DB2 não conseguir criar um novo arquivo de log no caminho de log ativo. Em vez disso, o DB2 tenta criar o arquivo de log a cada 5 minutos, até conseguir. Após cada tentativa, o DB2 grava uma mensagem no arquivo db2diag.log. A única forma de confirmar que o aplicativo está interrompido devido a uma condição de disco de log cheio é monitorar o arquivo db2diag.log. Até que o arquivo de log tenha sido criado com êxito, qualquer aplicativo do usuário que tente atualizar dados da tabela não poderá consolidar transações. As consultas somente leitura podem não ser diretamente afetadas. Entretanto, se um consulta precisar acessar dados bloqueados por um pedido de atualização ou por uma página de dados fixa no conjunto do buffer pelo aplicativo que está sendo atualizado, as consultas somente leitura também parecem interrompidas. DB2_INDEX_2BYTEVARLEN Todos Padrão=NO Valores: YES ou NO Essa variável de registro permite que colunas com comprimento maior que 255 bytes sejam especificadas como parte de uma chave de índice. Os índices já criados antes de tornar essa variável de registro YES continuam tendo a restrição de limite de chave 255. Os índices criados após tornar essa variável de registro YES comportam-se como um índice de dois bytes, mesmo quando a variável de registro torna-se NO novamente. Diversas instruções SQL são afetadas por alterações nessa variável de registro, inclusive CREATE TABLE, CREATE INDEX e ALTER TABLE. Para obter mais informações sobre essas instruções, consulte as alterações documentadas para a Referência SQL. DB2_FORCE_FCM_BP AIX Padrão=NO Valores: YES ou NO Especifica a partir de onde os recursos do gerenciador de comunicação rápido (FCM) são alocados. Os recursos podem ser alocados a partir do segmento de memória compartilhada do gerenciador do banco de dados ou de um separado. Com vários nós lógicos na mesma máquina, esta variável de registro deve ser utilizada. Em um sistema de banco de dados particionado com multiprocessamento simétrico (SMP) ativado, a configuração dessa variável de registro não tem efeito sobre como as comunicações ocorrem. Nesse caso, as comunicações são sempre por meio de memória compartilhada. Entretanto, o número de segmentos de memória compartilhada que o DB2 utiliza não é afetado. DB2_AWE Windows 2000 Padrão=Nulo Valores: [; ;...] onde =, , Permite que o DB2 UDB no Windows 2000 aloque conjuntos de buffer que utilizam até 64 GB de memória. O Windows 2000 deve ser configurado para suportar corretamente conjuntos de buffer Address Windowing Extensions (AWE). Isso inclui associar as "páginas de bloqueio na memória" com o usuário no Windows 2000 e definir essa variável de registro no DB2. Ao definir essa variável é necessário saber o ID do conjunto de buffer a ser utilizado para suporte a AWE. É necessário também determinar o número de páginas físicas a serem alocadas e o número de janelas de endereço. Para obter informações sobre como determinar o número de páginas físicas a serem alocadas e o número de janelas de endereço, consulte a seção "Gerenciamento do conjunto de buffer do banco de dados", no "Capítulo 8. Desempenho Operacional" anteriormente nesta seção. Nota: Se o suporte a AWE estiver ativado, o armazenamento estendido (ESTORE) não pode ser utilizado para nenhum dos conjuntos de buffer no banco de dados. Os conjuntos de buffer aos quais esta variável faz referência já devem existir em SYSIBM.SYSBUFFERPOOLS. DB2_STPROC_LOCKUP_FIRST Todos Padrão=NO Valores: YES ou NO Essa variável de registro foi renomeada de DB2_DARI_LOOKUP_ALL. DB2MEMDISCLAIM AIX Padrão=YES Valores: YES ou NO No AIX, a memória utilizada pelos processos do DB2 pode ter algum espaço de paginação associado. Esse espaço de paginação pode permanecer reservado, mesmo quando a memória associada estiver liberada. A reserva do espaço de paginação depende da política de gerenciamento de memória virtual do sistema AIX. Essa variável de registro controla se os agentes do DB2 solicitam explicitamente que o AIX desassocie o espaço de paginação reservado da memória liberada. A definição "YES" resulta em requisitos de espaço de paginação menores e possivelmente menos atividade em disco para a paginação. A definição "NO" resulta em requisitos de espaço de paginação maiores e possivelmente mais atividade em disco para a paginação. Em algumas situações, tais como espaço de paginação abundante e se a memória real for tão grande que a paginação nunca ocorre, a definição NO oferece uma pequena melhoria no desempenho. DB2MEMMAXFREE Todos Padrão=8 388 608 bytes Valores: 0 a 232-1 bytes Essa variável de registro controla a quantidade máxima de memória não utilizada, em bytes, retida pelos processos do DB2. DB2_ANTIJOIN Todos Padrão=NO em um ambiente EEE Padrão=YES em um ambiente não EEE Valores: YES ou NO Para ambientes EEE do DB2 Universal Database: quando é especificado YES, o otimizador procura oportunidades para transformar subconsultas NOT EXISTS em anti-junções que podem ser processadas com mais eficiência pelo DB2. Para ambientes não EEE: quando é especificado NO, o otimizador limita as oportunidades para transformar subconsultas NOT EXISTS em anti-junções. NEWLOGPATH2 UNIX Padrão=NO Valores: YES ou NO Esse parâmetro permite especificar se um caminho secundário deve ser utilizado para implementar log duplo. O caminho utilizado é gerado anexando o caractere '2' ao valor atual de 'LOGPATH'. | DB2DOMAINLIST Windows NT Padrão=Nulo Valores: um ou mais domínios válidos do Windows NT (separados por vírgulas) Define um ou mais domínios do Windows NT. Somente os usuários que pertencem a esses domínios têm seus pedidos de conexão atendidos. Essa variável de registro deve ser utilizada em um ambiente de domínio Windows NT simples, com servidores e clientes DB2 executando o DB2 Universal Database Versão 7.1 (ou posterior). DB2_LIKE_VARCHAR Todos Padrão=Y,N Valores: Y, N, S, ponto flutuante constante entre 0 e 6.2 Controla a coleta e utilização de estatísticas de sub-elemento. Estas são as estatísticas sobre o conteúdo de dados nas colunas, quando os dados têm uma estrutura na forma de uma série de subcampos ou subelementos entre espaços em branco. Esta variável de registro afeta o modo com que o otimizador trabalha com um predicado na forma: COLUMN LIKE '%xxxxxx%' onde xxxxxx é qualquer cadeia de caracteres. A sintaxe que mostra como essa variável de registro é utilizada é: db2set DB2_LIKE_VARCHAR=[Y|N|S|num1] [,Y|N|S|num2] em que * O termo antes da vírgula ou o único termo à direita do predicado significa o seguinte, mas somente para colunas sem estatísticas positivas de sub-elemento: o S - O otimizador estima o comprimento de cada elemento em uma série de elementos concatenados para formar uma coluna baseada no comprimento da cadeia entre os caracteres %. o Y - O padrão. Utiliza o valor padrão 1.9 para o parâmetro do algoritmo. Utiliza um algoritmo de sub-elemento de comprimento variável com o parâmetro de algoritmo. o N - Utiliza um algoritmo de sub-elemento de comprimento fixo. o num1 - utiliza o valor num1 como parâmetro de algoritmo com o algoritmo de sub-elemento de comprimento variável. * O termo após a vírgula significa o seguinte: o N - O padrão. Não coleta estatísticas de sub-elemento de uso. o Y - Coleta estatísticas de sub-elemento. Utiliza um algoritmo de sub-elemento de comprimento variável que utiliza as estatísticas coletadas junto com o valor padrão 1.9 para o parâmetro de algoritmo no caso de colunas com estatísticas de sub-elemento positivo. o num2 - Coleta estatísticas de sub-elemento. Utiliza um algoritmo de sub-elemento de comprimento variável que utiliza as estatísticas coletadas junto com o valor num2 como parâmetro de algoritmo no caso de colunas com estatísticas de sub-elemento positivo. DB2_PINNED_BP AIX, HP-UX Padrão=NO Valores: YES ou NO Essa variável é utilizada para reter a memória global do banco de dados (inclusive conjuntos de buffer) com o banco de dados na memória principal de alguns sistemas operacionais AIX. A manutenção da memória global do banco de dados na memória principal do sistema permite maior consistência no desempenho do banco de dados. Se por exemplo o conjunto do buffer foi trocado para fora da memória principal do sistema, o desempenho do banco de dados reduz muito. A redução da E/S de disco com os conjuntos de buffer na memória do sistema melhora o desempenho do banco de dados. Se você tiver outros aplicativos que exigem mais da memória principal, desejará permitir que a memória global do banco de dados, dependendo dos requisitos da memória principal do sistema, seja trocada para fora da memória principal. Ao trabalhar com HP-UX em um ambiente de 64 bits, além de modificar essa variável de registro, o grupo da instância do DB2 deve receber o privilégio MLOCK. Para isto, um usuário com direitos de acesso raiz deve fazer o seguinte: 1. Incluir o grupo da instância do DB2 no arquivo /etc/privgroup. Por exemplo, se o grupo da instância do DB2 pertencer ao grupo db2iadm1, a seguinte linha deve ser incluída no arquivo /etc/privgroup: db2iadm1 MLOCK 2. Emita o seguinte comando: setprivgrp -f /etc/privgroup DB2_RR_TO_RS Todos Padrão=NO Valores: YES ou NO Próxima trava de chave garante o nível de isolamento de Leitura Repetida (RR) travando automaticamente a próxima chave para todas as instruções INSERT e DELETE e o próximo valor chave superior acima do resultado definido para as instruções SELECT. Para as instruções UPDATE que alteram as partes da chave de um índice, a chave do índice original é excluída e o novo valor da chave é inserido. A próxima trava da chave é feita na inserção e na exclusão da chave. A próxima trava da chave é requerida para garantir o RR padrão ANSI e SQL92 e é o padrão do DB2. Se o aplicativo aparecer parado ou interrompido, você deverá examinar as informações instantâneas do aplicativo. Se o problema parecer estar com a próxima trava de chave, você poderá definir a variável de registro DB2_RR_TO_RS com base em duas condições. Você pode ativar DB2_RR_TO_RS se nenhum dos aplicativos contar com o procedimento RR (Repeatable Read) e se for aceitável para varreduras saltarem exclusões não-consolidadas. O procedimento de salto afeta os níveis de isolamento de RR, de (Read Stability) e de CS (Cursor Stability). (Não existe nenhum travamento de linha para o nível de isolamento de UR (Uncommitted Read)). Quando o DB2_RR_TO_RS está ativado, o procedimento do RR não pode ser garantido para varreduras em tabelas do usuário porque o travamento de chave não está pronto durante a inserção e a exclusão da chave do índice. As tabelas de catálogos não são afetadas por esta opção. A outra alteração no procedimento é que com o DB2_RR_TO_RS ativado, as varreduras saltarão linhas que foram excluídas mas não consolidadas, embora a linha pode ter sido qualificada para a varredura. ------------------------------------------------------------------------ 8.9 Apêndice C. Ferramentas de Explicações de SQL A seção titulada "Executando db2expln e dynexpln" deve ter o último parágrafo substituído com o seguinte: Para executar o db2expln, você deve ter o privilégio SELECT para as exibições do catálogo do sistema e também a autoridade EXECUTE para o pacote db2expln. Para executar o dynexpln, você deve possuir autoridade BINDADD para o banco de dados, o esquema que estiver utilizando para conectar-se ao banco de dados deve existir ou deve ter a autoridade EXPLICIT_SCHEMA para o banco de dados, e você deve possuir quaisquer privilégios necessários para as instruções SQL que estejam sendo explicadas. (Note que se você possui a autoridade SYSADM ou DBADM, irá possuir automaticamente todos estes níveis de autorização.) ------------------------------------------------------------------------ |Administering Satellites Guide and Reference ------------------------------------------------------------------------ |9.1 Configurando o DB2 Personal Edition e DB2 Workgroup Edition Versão 7.2 como Satélites | | | | | | |As seções que seguem descrevem como configurar os sistemas DB2 Personal |Edition e DB2 Workgroup Edition Versão 7.2 baseados no Windows, para |que eles possam ser utilizados como satélites completamente funcionais em um |ambiente de satélite. Para obter mais informações sobre os termos e os |conceitos utilizados nas informações que seguem, consulte o Administering Satellites Guide and Reference. Você pode |encontrar esse manual na seguinte URL: | http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/ | v6pubs.d2w/en_main |Para Technotes que suplementam as informações no Administering Satellites Guide and Reference, consulte a seguinte |URL: | http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/browse.d2w/ | report?type=tech5udb&tech5udb=Y |9.1.1 Pré-requisitos | | | | |Para configurar o DB2 Personal Edition ou o DB2 Workgroup Edition como |satélites, você requer o seguinte: | 1. |Um servidor de controle do DB2 |O servidor de controle do DB2 é um sistema DB2 Enterprise Edition que é |executado no Windows NT ou AIX e possui o componente Servidor de Controle |instalado. O sistema DB2 Enterprise Edition que você pode utilizar deve |estar na Versão 6 com FixPak 2 ou superior, ou Versão 7 em qualquer nível de |FixPak. | o |Se você tiver um sistema Enterprise Edition Versão 6 que deseja utilizar |como o servidor de controle do DB2, consulte 9.1.3, Instalando o FixPak 2 ou Superior em um Sistema Enterprise Edition Versão 6. o |Se você estiver utilizando a Versão 7 e não tiver o componente Servidor de |Controle instalado, instale esse componente, reinstale todos os FixPaks que |você já tiver instalado, em seguida, crie a instância do servidor de controle |do DB2 e o banco de dados de controle do satélite. Consulte o Administering Satellites Guide and Reference para obter instruções |sobre a criação desses objetos. | | | |Nota: Se você estiver instalando um sistema Enterprise Edition Versão 7.2 no |Windows NT para uso como o servidor de controle do DB2 e se desejar executar |uma instalação do arquivo de resposta, consulte o Technote intitulado |Palavras-chave do Arquivo de Resposta do Servidor de Controle do |DB2 para obter informações sobre as palavras-chave, para especificar no |arquivo de resposta. | 2. |A instância do servidor de controle do DB2 e o banco de dados de controle |do satélite |A instância do servidor de controle do DB2 é tipicamente chamada DB2CTLSV e |o banco de dados de controle do satélite é chamado SATCTLDB. A |instância do servidor de controle do DB2 e o banco de dados de controle do |satélite estão no sistema Enterprise Edition e, no Windows NT, são criados |automaticamente quando você instala o DB2 com o componente Servidor de |Controle. Se você instalar o DB2 no AIX, consulte o Administering Satellites Guide and Reference para obter informações |sobre a criação da instância do servidor de controle do DB2 e o banco de dados |de controle do satélite. 3. |O Centro de Administração do Satélite |O Centro de Administração do Satélite é o conjunto de ferramentas da GUI |que você pode utilizar para configurar e administrar o ambiente do |satélite. Você acessa esse conjunto de ferramentas do Centro de |Controle. Para obter mais informações sobre o Centro de Administração |do Satélite e o ambiente de satélite, consulte o Administering Satellites Guide and Reference e o auxílio online que |está disponível do Centro de Administração do Satélite. Se você estiver |executando um Centro de Controle Versão 6, consulte 9.1.4, Atualizando uma Versão 6 Centro de Controle e Centro de Administração do Satélite. |Se você ainda não tiver utilizado o Centro de Administração do Satélite |para configurar o ambiente de satélite e para criar o objeto que representa o |novo satélite no Centro de Administração do Satélite, deverá fazer isso antes |de instalar o satélite. Para obter mais informações,consulte a |descrição de como configurar e testar um ambiente de satélite no Administering Satellites Guide and Reference. 4. |Um sistema Personal Edition ou Workgroup Edition Versão 7.2 que |você deseja utilizar como um satélite. | |9.1.1.1 Considerações de Instalação | | |Quando você instala o DB2 Personal Edition ou o DB2 Workgroup Edition, não |é preciso selecionar nenhum componente especial para ativar o sistema a ser |sincronizado. Se você pretender executar uma instalação do arquivo de |resposta, consulte Executando uma Instalação do Arquivo de Resposta para obter as palavras-chave que precisa especificar quando |instalar o sistema Versão 7.2. Se estiver executando uma |instalação interativa de seu sistema Versão 7.2, consulte 9.1.2, Configurando o Sistema Versão 7.2 para Sincronização após terminar de instalar o DB2 para os valores que você |deve definir no sistema Versão 7.2 para ativá-lo para |sincronização. |Executando uma Instalação do Arquivo de Resposta | | | |Se você estiver executando uma instalação do arquivo de resposta do DB2 |Personal Edition ou DB2 Workgroup Edition Versão 7.2, poderá definir as |palavras-chave a seguir no arquivo de resposta. |Se você decidir não especificar uma ou mais palavras-chave durante a |instalação do arquivo de resposta, consulte 9.1.2, Configurando o Sistema Versão 7.2 para Sincronização para obter as etapas adicionais que você deve executar após |a instalação do DB2, para ativar o sistema Versão 7.2 para |sincronização. Você também poderá utilizar as instruções nesta seção, |se desejar alterar quaisquer valores que foram especificados durante a |instalação do arquivo de resposta. | |db2.db2satelliteid |Define o ID do satélite no sistema. |Nota: Se você não especificar essa palavra-chave, o ID do satélite será |automaticamente definido para oID do usuário que foi utilizado para instalar o |DB2. Se você desejar utilizar esse ID do usuário como o ID do satélite, |não precisará especificar um valor para essa palavra-chave. | |db2.db2satelliteappver |Define a versão do aplicativo no sistema. |Nota: Se você não especificar essa palavra-chave, a versão do aplicativo no |satélite será automaticamente definida como V1R0M00. Se desejar |utilizar esse valor como a versão do aplicativo, não precisará especificar um |valor para essa palavra-chave. | |db2.satctldb_username |Define o nome do usuário para o sistema, para conectar-se ao banco de |dados de controle do satélite. |db2.satctldb_password |Define a senha que o nome do usuário transite para o servidor de controle |do DB2, quando o nome do usuário conecta-se ao banco de dados de controle do |satélite. | |Após concluir a instalação do arquivo de resposta, o sistema Versão |7.2 está pronto para ser sincronizado. Você deve emitir o |comando db2sync -t no satélite, para verificar se os valores |especificados no satélite estão corretos e se o satélite pode conectar-se ao |banco de dados de controle do satélite. |Para obter informações adicionais sobre a execução de uma instalação do |arquivo de resposta, consulte o Administering Satellites Guide and Reference. |Notas: 1. |Na Versão 7, os IDs de usuários e as senha são requeridos para a criação |de todos os serviços no Windows NT e no Windows 2000. Esses IDs de |usuários e senhas são especificados no arquivo de resposta por pares de |palavras-chave. O primeiro par de palavras-chave encontrado no arquivo |de resposta torna-se o ID do usuário e a senha padrão para todos os serviços, |a não ser que você forneça uma substituição para um serviço especificando o |par de palavras-chave específico para esse serviço. |Na Versão 6, as palavras-chave admin.userid e |admin.password não puderam ser especificadas durante uma |instalação do arquivo de resposta do DB2 Satellite Edition para especificarem |o ID do usuário e a senha que seriam utilizados pelo Serviço de Comando |Remoto. Para Personal Edition e Workgroup Edition Versão 7.2, se |você especificar essas palavras-chave, elas serão utilizadas para a instância |DB2DAS00 no sistema Versão 7.2. Para um sistema DB2 Versão |7.2, o Serviço de Comando Remoto utilizará o ID do usuário e a senha |que são utilizados pela instância do DB2 no sistema. Se você não |especificar esses valores para db2.userid e |db2.password, a regra padrão descrita acima se |aplicará. 2. |Na Versão 6, você pode criar um banco de dados ao instalar o DB2 Satellite |Edition utilizando uma instalação do arquivo de resposta. Você não pode |criar um banco de dados durante uma instalação do arquivo de resposta no |sistema Personal Edition ou Workgroup Edition Versão 7.2 que pretende |utilizar como um satélite. As palavras-chave a seguir (que estão |descritas no Administering Satellites Guide and Reference), não são |suportadas: | o |db2.userdb_name o |db2.userdb_recoverable o |db2.userdb_rep_src | | |9.1.2 Configurando o Sistema Versão 7.2 para Sincronização | | |Se você instalar o sistema Versão 7.2 interativamente, vários |valores deverão ser definidos no sistema DB2 Personal Edition ou DB2 Workgroup |Edition após a instalação do DB2 antes do sistema ser sincronizado. |Nota: Você pode executar um script do sistema operacional no sistema, para definir |todos os valores no satélite exceto para o ID do usuário e a senha que o |satélite utiliza para conectar-se ao banco de dados de controle do satélite |(consulte a etapa 4). | | 1. |Defina o ID do satélite utilizando o comando db2set. |Se você instalar o DB2 Personal Edition ou DB2 Workgroup Edition |interativamente, o ID do satélite será automaticamente definido para o ID do |usuário que foi utilizado para instalar o DB2. Se desejar utilizar esse |ID do usuário como o ID do satélite, não precisará executar esta etapa. |Para obter informações sobre a definição do ID do satélite, consulte o Administering Satellites Guide and Reference. 2. |Defina a versão do aplicativo no satélite, utilizando o comando |db2sync -s. |Se você instalar o DB2 Personal Edition ou DB2 Workgroup Edition |interativamente, a versão do aplicativo no satélite será automaticamente |definida como V1R0M00. Se desejar utilizar esse valor como a versão do |aplicativo, não precisará executar esta etapa. |Você pode utilizar o comando db2sync -g no satélite, para exibir |a definição atual da versão do aplicativo. Se desejar alterar esse |valor, emita o comando db2sync -s. É solicitado que você |forneça um novo valor para a versão do aplicativo. Para obter mais |informações sobre a definição da versão do aplicativo, consulte o Administering Satellites Guide and Reference. 3. |Emita os comandos catalog node e catalog database no |satélite, para catalogar a instância do servidor de controle do DB2 e o banco |de dados de controle do satélite, SATCTLDB, no satélite. |Você também pode utilizar o comando db2sync -t no satélite, para |abrir o aplicativo DB2 Synchronizer no modo de teste. Se o banco de |dados SATCTLDB não estiver catalogado no satélite quando você emite o comando, |a janela Catalogar Banco de Dados de Controle é aberta. Você pode |utilizar o recurso de descoberta do DB2 que está disponível a partir da janela |Catalogar Banco de Dados de Controle, para catalogar o servidor de controle do |DB2 e o banco de dados SATCTLDB ou pode digitar o nome do host e o nome do |servidor nesta janela. Você também será solicitado a especificar o ID |do usuário e a senha que o satélite utilizarão para conectar-se ao banco de |dados de controle do satélite, conforme descrito na etapa 4. |Nota: Após instalar o DB2 Personal Edition ou DB2 Workgroup Edition Versão |7.2 interativamente, o DB2 Synchronizer não é iniciado automaticamente |no modo de teste (como foi o caso do DB2 Satellite Edition Versão 6). | 4. |Emita o comando db2sync -t no satélite para: | o |Especificar o ID do usuário e a senha que o satélite utiliza para |conectar-se ao banco de dados de controle do satélite |Se as credenciais de sincronização ainda não estiverem armazenadas no |satélite, a janela Conectar-se ao Banco de Dados de Controle será |aberta. Você deve utilizar essa janela para especificar o ID do usuário |e a senha que o satélite utilizará para conectar-se ao banco de dados de |controle do satélite. o |Verificar se os valores que estão definidos no satélite estão corretos o |Verificar se o satélite pode conectar-se ao banco de dados de controle do |satélite | | |Após concluir essas tarefas de configuração, o sistema Versão 7.2 |está pronto para ser sincronizado. |9.1.3 Instalando o FixPak 2 ou Superior em um Sistema Enterprise Edition Versão 6 |As seções que seguem descrevem as tarefas que você deve executar para |atualizar um sistema Enterprise Edition Versão 6 no Windows NT ou AIX para uso |como um servidor de controle do DB2. Se você estiver utilizando um |Centro de Controle Versão 6, executará também as etapas em 9.1.4, Atualizando uma Versão 6 Centro de Controle e Centro de Administração do Satélite para verificar se você possui o nível correto do Centro de |Controle e do Centro de Administração do Satélite para administrar o ambiente |do satélite. |9.1.3.1 Atualizando o DB2 Enterprise Edition Versão 6 para Uso como o Servidor de Controle do DB2 | | |Para um sistema DB2 Enterprise Edition Versão 6 a ser utilizado como o |servidor de controle do DB2, ele deve ser instalado com o componente Servidor |de Controle e o DB2 Enterprise Edition deve estar no nível de serviço FixPak |ou superior. Dependendo do componente do servidor de controle DB2 |instalado e do nível de serviço do DB2 Enterprise Edition, você terá que |executar as seguintes tarefas: | * |Instale o componente do servidor de controle do DB2 em um sistema DB2 |Enterprise Edition V6.1 existente e instale o FixPak 2 ou |superior. Em seguida, atualize o banco de dados de controle do satélite |(SATCTLDB) no sistema. * |Atualize um servidor de controle do DB2 já instalado para o nível FixPak 2 |ou superior. | |Utilize as informações que seguem para identificar quais das duas tarefas |anteriores precisam ser executadas e as etapas que se aplicam a sua |situação. A seguir encontra-se um resumo das etapas que você irá |executar. | 1. |Primeiro, avalie o estado atual de instalação do DB2 Enterprise |Edition. Você determinará se o componente Servidor de Controle está |instalado e o nível de serviço do DB2. 2. |Segundo, com base nas informações de estado obtidas, você determinará o |que é preciso ser executado. 3. |Terceiro, você irá executar as etapas necessárias para atualizar o DB2 |Enterprise Edition. | |O servidor de controle do DB2 pode executar apenas o DB2 Enterprise Edition |para Windows NT e AIX. Continue com as instruções que são apropriadas |para sua plataforma: | * |Atualizando o DB2 Enterprise Edition no Windows NT * |Atualizando o DB2 Enterprise Edition no AIX | |Atualizando o DB2 Enterprise Edition no Windows NT |Utilize as informações nas seções que seguem, para determinar o nível de |serviço atual de seu sistema DB2 Enterprise Edition Versão 6 e as etapas que |você precisa executar para atualizar o sistema para o nível de serviço do |FixPak 2 ou superior. Você precisará executar as etapas de uma ou mais |das seguintes seções: | * |Avaliando o DB2 Enterprise Edition no Windows NT * |Determinando O Que É Preciso Ser Executado * |Instalando o Componente Servidor de Controle no Windows NT * |Instalando o FixPak 2 ou Superior no Windows NT * |Atualizando o SATCTLDB no Windows NT | |Avaliando o DB2 Enterprise Edition no Windows NT |Se você tiver o DB2 Enterprise Edition instalado no Windows NT, execute as |seguintes etapas: | 1. |Verifique se o componente Servidor de Controle está instalado. |Utilize o Editor de Registro para exibir a lista de componentes |instalados: | a. |Digite regedit em um prompt de comandos. b. |Na chave de registro HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\Components, |verifique se o Servidor de Controle está listado. Se ele não estiver |listado, o servidor de controle não será instalado. | 2. |Determine o nível de serviço do DB2 Enterprise Edition. Emita o |comando db2level a partir de um prompt de comandos. Utilize |a tabela que segue, para interpretar a saída: | Valores de Campos Chaves na saída db2level Seu sistema DB2 Release Nível Símbolos Informativos encontra-se em: SQL06010 01010104 db2_v6, n990616 Versão 6.1 base SQL06010 01020104 DB2 V6.1.0.1, n990824, Versão 6.1 mais WR21136 FixPak 1 SQL06010 01030104 DB2 V6.1.0.6, s991030, Versão 6.1 mais WR21163 or DB2 FixPak 2 V6.1.0.9, s000101, WR21173 |Nota: Se o nível for maior que 01030104, seu sistema estará em um FixPak superior |do que FixPak 2. | 3. |Grave as informações que encontrar e continue em Determinando O Que É Preciso Ser Executado. | |Determinando O Que É Preciso Ser Executado |Utilizando as informações que você obteve, procure a linha na tabela a |seguir que se aplica a sua situação e siga as etapas que são requeridas para |preparar o sistema DB2 Enterprise Edition para suportar o servidor de controle |do DB2 no nível FixPak ou superior. |As seções que seguem a tabela fornecem instruções para execução das etapas |requeridas. Considere verificar cada etapa conforme a executa. |Execute apenas as etapas que se aplicam a sua situação. | Componente do Servidor Nível de Serviço do Etapas requeridas para de Controle Instalado Sistema DB2 Enterprise preparar o sistema DB2 Edition Enterprise Não Versão 6.1 base, Versão Execute as seguintes 6.1 mais FixPak 1 ou etapas: Versão 6.1 mais FixPak 2 ou superior 1. Instalando o Componente Servidor de Controle no Windows NT 2. Instalando o FixPak 2 ou Superior no Windows NT 3. Atualizando o SATCTLDB no Windows NT Sim Versão 6.1 base ou Execute as seguintes Versão 6.1 mais FixPak 1 etapas: 1. Instalando o FixPak 2 ou Superior no Windows NT 2. Atualizando o SATCTLDB no Windows NT Sim Versão 6.1 mais FixPak 2 Execute as seguintes ou superior etapas: 1. Atualizando o SATCTLDB no Windows NT |Instalando o Componente Servidor de Controle no Windows NT |Para instalar o componente Servidor de Controle no Windows NT: | 1. |Assegure-se de que toda atividade do banco de dados no sistema esteja |concluída antes continuar. 2. |Insira o CD DB2 Universal Database Enterprise Edition Versão 6.1 na |unidade de CD. |Se o programa de instalação não iniciar automaticamente, execute o comando |setup na raiz do CD para iniciar o processo de instalação. 3. |Quando solicitado, encerre todos os processos que estão utilizando o |DB2. 4. |Na janela Boas-Vindas, selecione Avançar. 5. |Na janela Selecionar Produtos, assegure-se de que o DB2 Enterprise Edition |está selecionado. 6. |No painel Selecionar Tipo de Instalação, clique em |Personalizar. 7. |No painel Selecionar Componentes, assegure-se de que o componente Servidor |de Controle esteja selecionado e clique em Avançar. |Nota: Se você selecionar outros componentes que ainda não estão instalados em seu |sistema, esses componentes também serão instalados. Você não pode |alterar a unidade ou o diretório no qual o DB2 está instalado. | 8. |No painel Configurar o DB2 Services, você pode modificar os valores de |protocolos e as opções de inicialização para a instância do Servidor de |Controle ou obter os valores padrão. Modifique os padrões e clique em |Avançar ou clique em Avançar para utilizar os |padrões. 9. |Clique em Avançar na janela Iniciar Cópia de Arquivos, para |começar o processo de instalação. 10. |Quando o processo de cópia de arquivo está concluído, você tem a opção de |reinicializar o sistema. Você deve reinicializar agora. As |alterações feitas no sistema para o Servidor de Controle, não são efetivadas |até que o sistema é reinicializado. | |Quando o processo de instalação é concluído e você reinicializou o sistema, |o banco de dados de controle do satélite (SATCTLDB) que foi criado como parte |da instalação do Servidor de Controle deverá ser catalogado na instância do |DB2, se desejar utilizar o Centro de Controle e o Centro de Administração do |Satélite localmente no sistema. Para catalogar o banco de dados |SATCTLDB: | 1. |Abra uma Janela de Comando do DB2 selecionando |Iniciar>Programas>DB2 para Windows NT>Janela de Comando 2. |Assegure-se de que você esteja na instância do db2. |Emita o comando set e verifique o valor de db2instance. |Se o valor não for db2, emita o seguinte comando: | set db2instance=db2 3. |Catalogue a instância db2ctlsv digitando o seguinte comando: | db2 catalog local node db2ctlsv instance db2ctlsv 4. |Catalogue o banco de dados SATCTLDB digitando o seguinte comando | db2 catalog database satctldb at node db2ctlsv 5. |Consolide as ações de catálogo digitando o seguinte comando: | db2 terminate 6. |Feche a Janela de Comando do DB2. | |Instalando o FixPak 2 ou Superior no Windows NT |Para atualizar um sistema DB2 Enterprise Edition Versão 6 existente no |Windows NT para FixPak 2 ou superior: | * |Faça download do último FixPak para DB2 Enterprise Edition para Windows NT |V6.1 da Web, junto com o readme de acompanhamento. Pode ser |feito download do FixPak, seguindo as instruções na URL: |http://www-4.ibm.com/software/data/db2/db2tech/version61.html |Instale o FixPak seguindo as instruções no arquivo |readme.txt. * |Utilize um DB2 Universal Database, o CD FixPak para Windows NT Versão |6.1 que está no nível FixPak 2 ou superior e siga as instruções no |arquivo readme.txt no diretório WINNT95 no CD, para concluir a |instalação. | |Atualizando o SATCTLDB no Windows NT |Para atualizar o banco de dados SATCTLDB no Windows NT | 1. |Determine o nível do banco de dados SATCTLDB: | a. |Inicie sessão com um ID do usuário que possui autoridade administrativa |local no sistema Windows NT. b. |Abra uma Janela de Comando do DB2, selecionando |Iniciar>Programas>DB2 para Windows NT>Janela de |Comando. c. |Conecte-se ao SATCTLDB, digitando o seguinte comando | db2 connect to satctldb d. |Determine se o disparo I_BATCHSTEP_TRGSCR existe no banco de |dados, emitindo a seguinte consulta: | db2 select name from sysibm.systriggers where name='I_BATCHSTEP_TRGSCR' |Grave o número de linhas que são retornadas. e. |Digite o comando a seguir para fechar a conexão ao banco de dados: | db2 connect reset |Se a etapa 1d retornou uma linha, o banco de dados estará no nível |correto. Nesta situação, pule a etapa 2 e continue na etapa 3. Se zero (0) linhas forem |retornadas, o banco de dados não estará no nível correto e deverá ser |atualizado, conforme descrito na etapa 2, antes de você executar a etapa 3. | 2. |Para atualizar o banco de dados SATCTLDB, execute as etapas a |seguir. Digite todos os comandos na Janela de Comando do DB2: | a. |Vá para o diretório \misc, onde é a unidade |e o caminho de instalação, por exemplo c:\sqllib. b. |Assegure-se de que você esteja na instância db2ctlsv. |Emita o comando set e verifique o valor de db2instance. |Se o valor não for db2ctlsv, emita o seguinte comando: | set db2instance=db2ctlsv c. |Elimine o banco de dados SATCTLDB, digitando o seguinte comando: | db2 drop database satctldb d. |Crie o novo banco de dados SATCTLDB, digitando o seguinte comando: | db2 -tf satctldb.ddl -z satctldb.log e. |Emita o seguinte comando: | db2 |terminate | 3. |Ligue o procedimento armazenado db2satcs.dll no banco |de dados SATCTLDB. Execute as seguintes etapas: | a. |Conecte-se ao banco de dados SATCTLDB, digitando o seguinte comando | db2 connect to satctldb b. |Vá para o diretório \bnd, onde é a unidade |e o caminho de instalação, por exemplo c:\sqllib. c. |Emita o comando de ligação, como segue: | db2 bind db2satcs.bnd | 4. |Digite o comando a seguir para fechar a conexão ao banco de dados: | db2 connect reset 5. |Feche a Janela de Comando do DB2. | |Atualizando o DB2 Enterprise Edition no AIX |Utilize as informações nas seções que seguem, para determinar o nível de |serviço atual de seu sistema DB2 Enterprise Edition Versão 6 e as etapas que |você precisa executar para atualizar o sistema para o nível de serviço do |FixPak 2 ou superior. Você precisará executar as etapas de uma ou mais |das seguintes seções: | * |Avaliando o DB2 Enterprise Edition no AIX * |Determinando O Que É Preciso Ser Executado * |Instalando o Componente Servidor de Controle no AIX * |Instalando o FixPak 2 ou Superior no AIX * |Atualizando o Banco de Dados SATCTLDB no AIX | |Avaliando o DB2 Enterprise Edition no AIX |Se você tiver o DB2 Enterprise Edition Versão 6 instalado no AIX, execute |as seguintes etapas: | 1. |Verifique se o componente Servidor de Controle está instalado. |Digite o seguinte comando: | lslpp -l | grep db2_06_01.ctsr |Se nenhum dado for retornado, o componente Servidor de Controle não será |instalado. 2. |Determine o nível de serviço do DB2 Enterprise Edition. Inicie |sessão como um proprietário da instância do DB2 e emita o comando |db2level. Utilize a tabela que segue, para interpretar a |saída: | Valores de Campos Chaves na saída db2level Seu sistema DB2 Release Nível Símbolos Informativos encontra-se em: SQL06010 01010104 db2_v6, n990616 Versão 6.1 base SQL06010 01020104 DB2 V6.1.0.1, n990824, Versão 6.1 mais U465423 FixPak 1 SQL06010 01030104 DB2 V6.1.0.6, s991030, Versão 6.1 mais U468276 or DB2 FixPak 2 V6.1.0.9, s000101, U469453 |Nota: Se o nível for maior que 01030104, seu sistema estará em um FixPak superior |do que FixPak 2. | 3. |Grave as informações que encontrar e continue em Determinando O Que É Preciso Ser Executado. | |Determinando O Que É Preciso Ser Executado |Utilizando as informações que você obteve, procure a linha na tabela a |seguir que se aplica a sua situação e siga as etapas que são requeridas para |preparar o sistema DB2 Enterprise Edition Versão 6 para suportar o servidor de |controle do DB2 no nível FixPak 2. |As seções que seguem a tabela fornecem instruções para execução das etapas |requeridas. Considere verificar cada etapa conforme a executa. |Execute apenas as etapas que se aplicam a sua situação. | Componente do Servidor Nível de Serviço do Etapas requeridas para de Controle Instalado Sistema DB2 Enterprise preparar o sistema DB2 Edition Enterprise Não Versão 6.1 base, Versão Execute as seguintes 6.1 mais FixPak 1 ou etapas: Versão 6.1 mais FixPak 2 ou superior 1. Instalando o Componente Servidor de Controle no AIX 2. Instalando o FixPak 2 ou Superior no AIX 3. Atualizando o Banco de Dados SATCTLDB no AIX Sim Versão 6.1 base ou Execute as seguintes Versão 6.1 mais FixPak 1 etapas: 1. Instalando o FixPak 2 ou Superior no AIX 2. Atualizando o Banco de Dados SATCTLDB no AIX Sim Versão 6.1 mais FixPak 2 Execute as seguintes ou superior etapas: 1. Atualizando o Banco de Dados SATCTLDB no AIX |Instalando o Componente Servidor de Controle no AIX |Para instalar o componente Servidor de Controle no AIX | 1. |Efetue logon como um usuário com autoridade raiz. 2. |Insira o CD DB2 Universal Database Enterprise Edition Versão 6.1 na |unidade de CD. 3. |Mude para o diretório onde o CD está montado, por exemplo, cd |/cdrom. 4. |Digite o comando a seguir para iniciar o DB2 installer: | ./db2setup 5. |Quando a janela DB2 Installer é aberta, utilize a tecla tab para |selecionar a opção Instalar e pressione Enter. 6. |Localize a linha do Enterprise Edition e utilize a tecla tab para |selecionar a opção Personalizar ao lado dela. Pressione |Enter. 7. |Selecione o componente Servidor de Controle do DB2, com a tecla tab vá até |OK e pressione Enter. 8. |Siga as instruções nas janelas restantes, para concluir a instalação do |componente Servidor de Controle do DB2. | |Quando o processo de instalação é concluído, crie a instância DB2CTLSV e o |banco de dados SATCTLDB. Para executar essas tarefas, siga as |instruções detalhadas em "Configurando o Servidor de Controle do DB2 no AIX" |no Capítulo 13 do Administering Satellites Guide and Reference. |Instalando o FixPak 2 ou Superior no AIX |Para atualizar um sistema AIX DB2 Enterprise Edition existente para FixPak |2 ou superior: | * |Faça download do último FixPak para DB2 Enterprise Edition para AIX |V6.1 da Web, junto com o Fixpak.Readme de acompanhamento. |Pode ser feito download do FixPak, seguindo as instruções na URL: |http://www-4.ibm.com/software/data/db2/db2tech/version61.html |Instale o FixPak seguindo as instruções no arquivo |Fixpak.Readme. * |Utilize um DB2 Universal Database, o CD FixPak para AIX Versão 6.1 |que está no nível FixPak 2 ou superior e siga as instruções no arquivo readme |no CD, para concluir a instalação. | |Assegure-se de ter atualizado a instância DB2CTLSV, executando o comando |db2iupdt conforme instruído no arquivo FixPak.Readme. |Atualizando o Banco de Dados SATCTLDB no AIX |Para atualizar o banco de dados SATCTLDB no AIX: | 1. |Determine o nível do banco de dados SATCTLDB: | a. |Inicie sessão como db2ctlsv. b. |Assegure-se de que o servidor do banco de dados foi iniciado. Se o |servidor não estiver iniciado, emita o comando db2start. c. |Conecte-se ao banco de dados SATCTLDB, digitando o seguinte comando: | db2 connect to satctldb d. |Determine se o disparo I_BATCHSTEP_TRGSCR existe no banco de |dados, emitindo a seguinte consulta: | db2 "select name from sysibm.systriggers where name='I_BATCHSTEP_TRGSCR'" |Grave o número de linhas que são retornadas. e. |Digite o comando a seguir para fechar a conexão ao banco de dados: | db2 connect reset |Se a etapa 1d retornou uma linha, o banco de dados estará no nível |correto. Nesta situação, pule a etapa 2 e continue na etapa 3. Se zero (0) linhas forem |retornadas, o banco de dados não estará no nível correto e deverá ser |atualizado, conforme descrito na etapa 2, antes de você executar a etapa 3. | 2. |Para atualizar o banco de dados SATCTLDB para o nível FixPak |2, execute as etapas a seguir. Digite todos os comandos na Janela de |Comando do DB2: | a. |Vá para o diretório $HOME/sqllib/misc. b. |Elimine o banco de dados SATCTLDB, digitando o seguinte comando: | db2 drop database satctldb c. |Crie o novo banco de dados SATCTLDB, digitando o seguinte comando: | db2 -tf satctldb.ddl -z $HOME/satctldb.log d. |Emita o seguinte comando: | db2 |terminate | 3. |Ligue o procedimento armazenado db2satcs.dll no banco |de dados SATCTLDB. Execute as seguintes etapas: | a. |Conecte-se ao banco de dados SATCTLDB, digitando o seguinte comando | db2 connect to satctldb b. |Vá para o diretório $HOME/sqllib/bnd. c. |Emita o comando de ligação, como segue: | db2 bind db2satcs.bnd | 4. |Digite o comando a seguir para fechar a conexão ao banco de dados: | db2 connect reset | |9.1.4 Atualizando uma Versão 6 Centro de Controle e Centro de Administração do Satélite | | | |Para utilizar uma Versão 6 Centro de Controle e Centro de Administração do |Satélite com um servidor de controle do DB2 Versão 6 e o banco de dados de |controle do satélite (SATCTLDB) que foram atualizados para FixPak 2 ou |superior, as ferramentas também devem ser atualizadas para FixPak 2 ou |superior. |Se o Centro de Controle e o Centro de Administração do Satélite estiverem |sendo executados no mesmo sistema que o servidor de controle do DB2, eles |foram atualizados quando o sistema DB2 Enterprise Edition foi atualizado para |FixPak 2. Entretanto, se você executar essas ferramentas em outro |sistema, deverá atualizar esse sistema para o nível FixPak 2 ou |superior. |Para atualizar esse sistema para FixPak 2 ou superior: | * |Faça download do último FixPak para seu produto no nível V6.1 da |Web, junto com seu readme de acompanhamento. Pode ser feito download |dos FixPaks seguindo as instruções na URL: | http://www-4.ibm.com/software/data/db2/db2tech/version61.html |Instale o FixPak seguindo as instruções no arquivo readme. * |Utilize um DB2 Universal Database, o CD FixPak Versão 6.1 para o |sistema operacional que você está executando que encontra-se no nível FixPak 2 |ou superior e siga as instruções no readme para concluir a instalação. | ------------------------------------------------------------------------ Referência e Comando ------------------------------------------------------------------------ 10.1 db2batch - Ferramenta de Benchmark A última sentença na descrição do parâmetro PERF_DETAIL deve ser lida: Um valor maior que 1 é válido apenas no DB2 Versão 2 e servidores DB2 UDB, e não é suportado atualmente em máquinas host. ------------------------------------------------------------------------ 10.2 db2cap (novo comando) db2cap - Ferramenta de Bind do Pacote Estático CLI/ODBC Efetue o bind de um arquivo de captura para gerar um ou mais pacotes estáticos. Um arquivo de captura é gerado durante uma sessão de traçado de perfil estático de um aplicativo CLI/ODBC/JDBC e contém instruções SQL que foram capturadas durante a execução do aplicativo. Este utilitário processa o arquivo de captura para que possa ser usado pelo driver CLI/ODBC/JDBC para executar o SQL estático para o aplicativo. Para obter maiores informações sobre como utilizar aplicativos SQL no CLI/ODBC/JDBC estáticas, consulte o recurso de Traçado de Perfil Estático em CLI Guide and Reference. Autorização * Privilégios de acesso para quaisquer objetos de bando de dados referenciados por instruções SQL registrados no arquivo de captura. * Autoridade suficiente para definir opções de bind tais como OWNER e QUALIFIER caso sejam diferentes da ID conectada utilizada para chamar o comando db2cap. * Autoridade BINDADD se o pacote está efetuando o bind pela primeira vez; caso contrário, a autoridade BIND é requerida. Sintaxe de Comando >>-db2cap----+----+--bind--capture-file----d--database_alias----> +--h-+ '--?-' >-----+--------------------------------+----------------------->< '--u--userid--+---------------+--' '--p--password--' Parâmetros de Comandos -h/-? Exibe o texto de ajuda para a sintaxe do comando. bind capture-file Efetue o bind das instruções do arquivo de captura e cria um ou mais pacotes. -d database_alias Especifica o alias do banco de dados para o banco de dados que conterá um ou mais pacotes. -u userid Especifica a Id do usuário a ser utilizada para conectar à fonte de dados. Nota: Se não for especificada a ID do usuário, uma ID de autorização validada é obtida do sistema. -p password Especifica a senha a ser utilizada para conectar à fonte de dados. Notas sobre Utilização O comando deve ser digitado em minúsculas nas plataformas UNIX, porém pode ser digitada em minúsculas ou maiúsculas nos sistemas operacionais Windows e OS/2. Este utilitário suporta um número de opções de bind especificadas pelo usuário que pode ser encontrado no arquivo de captura. Por razões de segurança e desempenho, o arquivo pode ser examinado e editado com um editor de texto para alterar estas opções. A SQLERROR(CONTINUE) e as opções de bind VALIDATE(RUN) podem ser usadas para criar um pacote. Quando utilizar este utilitário para criar um pacote, o perfil estático deve ser desativado. O número de pacotes criados depende dos níveis de isolamento usados para as instruções SQL registradas no arquivo de captura. O nome do pacote consiste em sete caracteres no máximo da palavra-chave do pacote do arquivo de captura e em um dos sufixos de caractere simples são os seguintes: * 0 - Leitura sem Commit (Uncommitted Read - UR) * 1 - Estabilidade do Cursor (Cursor Stability - CS) * 2 - Estabilidade da Leitura (read Stability - RS) * 3 - Leitura Repetível (Repeatable Read - RR) * 4 - Sem Commit (No Commit - NC) Para obter informações específicas sobre pacotes, o usuário pode: * Consultar as tabelas de catálogo SYSIBM adequadas através das palavras-chave COLLECTION e PACKAGE encontradas no arquivo de captura. * Exibir o arquivo de captura. ------------------------------------------------------------------------ 10.3 db2ckrst (novo comando) db2ckrst - Verificar Seqüência de Imagens da Restauração Incremental Consulta o histórico do banco de dados e gera uma lista de marcas de hora para as imagens de backup necessárias para uma restauração incremental. Também é gerada uma sintaxe simplificada da restauração para uma restauração incremental manual. Autorização Nenhum Conexão Requerida Nenhum Sintaxe de Comando >>-db2ckrst----d--database name----t--timestamp-----------------> >-----+---------------------+---+-----------------------------+-> | .-database---. | | .--------------------. | '--r--+-tablespace-+--' | V | | '--n-----tablespace name---+--' >-----+----+--------------------------------------------------->< +--h-+ +--u-+ '--?-' Parâmetros de Comandos -d nome do banco de dados nome do arquivo Especifica o nome do alias do banco de dados que será restaurado. -t marca de hora Especifica a marca de hora de uma imagem de backup que será restaurada incrementalmente. -r Especifica o tipo de restauração que será executada. O padrão é banco de dados. Nota: Se table space for escolhido e não forem fornecidos nomes de table spaces, o utilitário procurará na entrada de histórico da imagem especificada e utilizará os nomes de tablespace listados para efetuar a restauração. -n nome do tablespace Especifica o nome de um ou mais tablespaces que serão restaurados. Nota: Se for selecionado um tipo de restauração banco de dados e for especificada uma lista de nomes de tablespace, o utilitário continua como restauração de table space utilizando os nomes de tablespace fornecidos. -h/-u/-? Exibe as informações de ajuda. Quando esta opção é especificada, todas as outras opções são ignoradas e, somente as informações de ajuda são exibidas. Exemplos db2ckrst -d mr -t 20001015193455 -r database db2ckrst -d mr -t 20001015193455 -r tablespace db2ckrst -d mr -t 20001015193455 -r tablespace -n tbsp1 tbsp2 > db2 backup db mr Backup bem sucedido. A marca de hora dessa imagem de backup é: 20001016001426 > db2 backup db mr incremental Backup bem sucedido. A marca de hora dessa imagem de backup é: 20001016001445 > db2ckrst -d mr -t 20001016001445 Ordem sugerida da restauração das imagens utilizando a marca de hora 20001016001445 para o banco de dados mr. =================================================================== db2 restore db mr incremental taken at 20001016001445 db2 restore db mr incremental taken at 20001016001426 db2 restore db mr incremental taken at 20001016001445 =================================================================== > db2ckrst -d mr -t 20001016001445 -r tablespace -n userspace1 Ordem sugerida da restauração das imagens utilizando a marca de hora 20001016001445 para o banco de dados mr. =================================================================== db2 rest db mr tablespace (USERSPACE1) inc taken at 20001016001445 db2 rest db mr tablespace (USERSPACE1) inc taken at 20001016001426 db2 rest db mr tablespace (USERSPACE1) inc taken at 20001016001445 =================================================================== Notas sobre Utilização O histórico do banco de dados deve existir para que esse utilitário seja utilizado. Se o histórico do banco de dados não existir, especifique a opção HISTORY FILE no comando RESTORE antes de usar esse utilitário. Se a opção FORCE do comando PRUNE HISTORY for utilizada, será possível excluir entradas necessárias para recuperação da última imagem completa de backup do banco de dados. A operação padrão do comando PRUNE HISTORY impede que entradas necessárias sejam excluídas. Recomenda-se que a opção FORCE do comando PRUNE HISTORY não seja utilizada. |Mantenha bons registros dos seus backups e use este utilitário como |guia. ------------------------------------------------------------------------ 10.4 db2gncol (comando novo) db2gncol - Atualiza Valores de Colunas Gerados Atualiza as colunas geradas nas tabelas que estão no modo pendente de verificação e possui espaço de log limitado. Esta ferramenta é usada para preparar uma instrução SET INTEGRITY em uma tabela que tenha colunas que são geradas por expressões. Autorização Um dos seguintes * sysadm * dbadm Sintaxe de Comando >>-db2gncol----d--database----s--schema_name----t--table_name---> >-----c--commit_count----+---------------------------+----------> '--u--userid---p--password--' >-----+-----+-------------------------------------------------->< '--h--' Parâmetros de Comandos -d database Especifica um nome de alias para o banco de dados no qual a tabela está localizada. -s schema_name Especifica o nome do esquema para a tabela. O nome do esquema é sensível a maiúsculas e minúsculas. -t table_name Especifica a tabela para a qual novos valores de coluna gerados por expressões estão para ser calculados. O nome da tabela é sensível a maiúsculas e minúsculas. -c commit_count Especifica o número de linhas atualizadas entre os commits. Este parâmetro influência o tamanho do espaço de log requerido para gerar os valores de coluna. -u userid Especifica uma ID do usuário com privilégios de administrador de sistema ou administrador de banco de dados. Se esta opção for omitida, é assumido o usuário atual. -p password Especifica a senha para a ID do usuário especificada. -h Exibe as informações de ajuda. Quando esta opção é especificada, todas as outras opções são ignoradas e, somente as informações de ajuda são exibidas. Notas sobre Utilização Usar esta ferramenta ao invés da opção FORCE GENERATED na instrução SET INTEGRITY pode ser necessário se uma tabela é grande e as seguintes condições existirem: * Todos os valores de coluna devem ser registrados após a alteração da geração de expressão de uma coluna gerada. * Uma UDF externa utilizada em uma coluna gerada foi alterada, causando a alteração de muitos valores de coluna. * Uma coluna gerada foi incluída na tabela. * Um carregamento grande ou uma conexão de carregamento não fornece valores para as colunas geradas. * O espaço de log é muito pequeno devido à transações concorrentes de execução longa ou o tamanho da tabela. Esta ferramenta irá gerar todos os valores de coluna que foram criadas baseada nas expressões. Enquanto a tabela está sendo atualizada, commits intermitentes são executados para evitar a utilização total do espaço do log. Uma vez que o db2gncol tenha executado, a tabela pode ser tirada do modo pendente de verificação utilizando-se a instrução SET INTEGRITY. ------------------------------------------------------------------------ |10.5 db2inidb - Inicializar um Banco de Dados Espelhado |Em um ambiente espelhado dividido, esse comando é utilizado para |inicializar um banco de dados espelhado para objetivos diferentes. | |Autorização |Deve ser uma das seguintes: | o |sysadm o |sysctrl o |sysmaint | |Conexão Requerida |Nenhum |Sintaxe do Comando |>>-db2inidb----database_alias----AS----+-SNAPSHOT-+------------>< | +-STANDBY--+ | '-MIRROR---' | |Parâmetros do Comando | |database_alias |Especifica o alias do banco de dados a ser inicializado. |SNAPSHOT |Especifica se o banco de dados espelhado será inicializado como um clone |do banco de dados principal. Esse banco de dados é somente para |leitura. |STANDBY |Especifica se o banco de dados será colocado no estado pendente de |avanço. Os novos logs do banco de dados primário podem ser buscados e |aplicados a esse banco de dados standby. O banco de dados standby |poderá ser utilizado no lugar do banco de dados principal, se ele estiver |desativo. |MIRROR |Especifica se o banco de dados espelhado deve ser utilizado como uma |imagem de backup que pode ser utilizado para restaurar o banco de dados |principal. | | ------------------------------------------------------------------------ 10.6 db2look - DB2 Statistics Extraction Tool O diagrama de sintaxe deve aparecer assim: >>-db2look---d--DBname----+--------------+---+-----+---+-----+--> '--u--Creator--' '--s--' '--g--' >-----+-----+---+-----+---+-----+---+-----+---+-----+-----------> '--a--' '--h--' '--r--' '--c--' '--p--' >-----+------------+---+-------------------+--------------------> '--o--Fname--' '--e--+----------+--' '--t Tname-' >-----+-------------------+---+-----+---+-----+-----------------> '--m--+----------+--' '--l--' '--x--' '--t Tname-' >-----+---------------------------+---+-----+------------------>< '--i--userid---w--password--' '--f--' |O parâmetro -td x foi incluído após o parâmetro -c. Sua |definição é a seguinte: |Especifica o delimitador de instrução para instruções SQL geradas |por db2look. Se essa opção não for especificada, o padrão é ponto e |vírgula ';'. Recomenda-se que essa opção seja utilizada |se a opção -e for especificada. Nesse caso, os objetos extraídos podem |conter disparadores de rotinas SQL. |O exemplo a seguir também é incluído: |Gere as instrução DDL para objetos criados por todos os usuários no |banco de dados DEPARTMENT. A saída do db2look é enviada para o arquivo |db2look.sql: |db2look -d department -a -e -td % -o db2look.sql |db2 -td% -f db2look.sql ------------------------------------------------------------------------ |10.7 db2updv7 - Atualizar o Banco de Dados para o Nível de Correção Atual da Versão 7 |Esse comando atualiza os catálogos do sistema em um banco de dados para |suportar o FixPak atual das seguintes maneiras: | * |Permite o uso nas novas funções incorporadas (ABS, DECRYPT_BIN, |DECRYPT_CHAR, ENCRYPT, GETHINT, MULTIPLY_ALT e ROUND). * |Permite o uso dos novos procedimentos incorporados (GET_ROUTINE_SAR e |PUT_ROUTINE_SAR). * |Inclui ou aplica correções às funções WEEK_ISO e DAYOFWEEK_ISO nos bancos |de dados do Windows e do OS/2. * |Aplica uma correção aos descritores de tabela compactados para tabelas |migradas da Versão 2 para a Versão 6. * |Cria a exibição SYSCAT.SEQUENCES. | | |Autorização |sysadm |Conexão Requerida |Banco de Dados. Esse comando estabelece automaticamente uma conexão |ao banco de dados especificado. |Sintaxe do Comando |>>-db2updv7----d---database_name--------------------------------> | |>-----+---------------------------+---+-----+------------------>< | '--u--userid---p--password--' '--h--' | |Parâmetros do Comando | |-d database-name |Especifica o nome do banco de dados a ser atualizado. |-u userid |Especifica o ID do usuário. |-p password |Especifica a senha para o usuário. |-h |Exibe as informações de ajuda. Quando esta opção é especificada, |todas as outras opções são ignoradas e, somente as informações de ajuda são |exibidas. | |Exemplo |Após instalar o FixPak, atualize o catálogo do sistema no banco de dados |de amostra emitindo o seguinte comando: |db2updv7 -d sample |Notas de Uso |Essa ferramenta só pode ser utilizada em um banco de dados que executa o |DB2 Versão 7.1 ou versão 7.2 com pelo menos o FixPak 2 |instalado. Se o comando for emitido mais de uma vez, nenhum erro será |reportado e cada atualização do catálogo será aplicada somente uma vez. |Para ativar as novas funções incorporadas, todos os aplicativos devem ser |desconectadas desse banco de dados e o banco de dados deve ser desativado, |caso esteja ativado. | ------------------------------------------------------------------------ 10.8 Nova Opção do Processador de Linha de Comando (-x, Suprime a impressão dos cabeçalhos da coluna) Uma nova opção, -x, apresenta o processador de linha de comando para retornar dados sem quaisquer nomes de colunas incluídos. A definição padrão para este comando é OFF. ------------------------------------------------------------------------ 10.9 Requisito de fonte Tipo True para o DB2 CLP Para exibir corretamente os caracteres nacionais para idiomas de byte único (SBCS) a partir da janela CLP (command line processor) do DB2, altere a fonte para Tipo True. ------------------------------------------------------------------------ |10.10 ADD DATALINKS MANAGER |O nível de autorização necessário para esse comando é um dos |seguintes: | * |sysadm * |sysctrl * |sysmaint | |Inclua a seguinte nota de utilização: |Esse comando é efetivo somente quando todos os aplicativos tiverem sido |desconectados do banco de dados. O DB2 Data Links Manager que está |sendo incluído deve estar completamente configurado e executando para que esse |comando seja bem sucedido. Também é necessário registrar o banco de |dados no DB2 Data Links Manager utilizando o comando dlfm |add_db. Podem ser incluídos no máximo 16 DB2 Data Links |Managers no banco de dados. ------------------------------------------------------------------------ |10.11 ARCHIVE LOG (comando novo) |Archive Log | |Fecha e trunca o arquivo de log ativo de um banco de dados |recuperável. Se a saída do usuário estiver ativada, emite um pedido de |archive. |Autorização |Um dos seguintes: | * |sysadm * |sysctrl * |sysmaint * |dbadm | |Conexão Requerida |Esse comando estabelece automaticamente uma conexão ao banco de dados |especificado. Se já existir uma conexão, será retornado um erro. |Sintaxe de Comando |>>-ARCHIVE LOG FOR----+-DATABASE-+--database-alias--------------> | '-DB-------' | |>-----+---------------------------------------+-----------------> | '-USER--username--+------------------+--' | '-USING--password--' | |>-------| Cláusula On Node |----------------------------------->< | |Cláusula On Node | ||---ON----+-| Cláusula Node List |-------------------------+----| | '-ALL NODES--+---------------------------------+-' | '-EXCEPT--| Cláusula Node List |--' | |Cláusula Node List | ||---+-NODE--+---------------------------------------------------> | '-NODES-' | | .-,-------------------------------------. | V | |>----(-----número do nó--+-------------------+--+---)-----------| | '-TO--número do nó--' | |Parâmetros de Comandos | |DATABASE alias do banco de dados |Especifica o alias do banco de dados cujo log ativo será arquivado. |USER nome do usuário |Especifica o nome de usuário com o qual é tentada uma conexão. |USING senha |Especifica a senha que autentica o nome do usuário. |ON ALL NODES |Especifica que o comando deve ser emitido em todos os nós no arquivo |db2nodes.cfg. Este é o padrão se a cláusula node não for |especificada. |EXCEPT |Especifica que o comando deve ser emitido em todos os nós no arquivo |db2nodes.cfg, exceto o especificado na lista de nós. |ON NODE/ON NODES |Especifica que os logs devem ser arquivados para o banco de dados |especificado em um conjunto de nós. |número do nó |Especifica um número de nó na lista de nós. |TO número do nó |Utilizado ao especificar um intervalo de nós para os quais os logs devem |ser arquivados. Todos os nós do primeiro número de nó especificado até |o segundo número de nó especificado, inclusive, estão incluídos na lista de |nós. | |Notas sobre Utilização |Esse comando pode ser utilizado para coletar um conjunto completo de |arquivos de logs até um ponto conhecido. Os arquivos de log podem ser |utilizados para atualizar um banco de dados standby. |Essa função pode ser executada somente quando não houver conexão de banco |de dados com o banco de dados especificado. Isso impede que um usuário |execute o comando com transações não consolidadas. Assim o comando |ARCHIVE LOG não necessariamente consolida as transações incompletas do |usuário. Se já existir uma conexão com o banco de dados especificado e |esse comando for executado, o comando encerra e retorna um erro. Se |outro aplicativo tiver transações em andamento com o banco de dados |especificado quando esse comando for executado, ocorrerá uma pequena queda no |desempenho, já que o comando envia o buffer de log para o disco. |Qualquer outra transação que tente gravar registros do log no buffer não |precisa aguardar o fim desse envio. |Se for utilizado em um ambiente MPP, é necessário especificar um |subconjunto de nós utilizando uma cláusula node. Se a cláusula node não |for especificada, o comportamento padrão desse comando é fechar e arquivar o |log ativo em todos os nós. |O uso desse comando faz com que o banco de dados perca uma parte de seu |espaço LSN, precipitando assim a exaustão de LSNs válidos. ------------------------------------------------------------------------ 10.12 BACKUP DATABASE |10.12.1 Diagrama de sintaxe |O diagrama de sintaxe do comando BACKUP DATABASE será atualizado para |refletir o novo parâmetro INCREMENTAL e o argumento DELTA opcional. A |especificação da opção INCREMENTAL sozinha resulta na produção de uma imagem |de backup cumulativo. O argumento DELTA opcional pode ser utilizado |para especificar a produção de uma imagem de backup não cumulativo. |>>-BACKUP----+-DATABASE-+---database-alias----------------------> | '-DB-------' | |>-----+---------------------------------------+-----------------> | '-USER--username--+------------------+--' | '-USING--password--' | |>-----+--------------------------------------------+------------> | | .-,------------------. | | | V | | | '-TABLESPACE--(-----tablespace-name---+---)--' | |>-----+---------+---+--------------------------+----------------> | '-ONLINE--' '-INCREMENTAL--+--------+--' | '-DELTA--' | |>-----+-------------------------------------------------------+-> | +-USE TSM--+-------------------------------+------------+ | | '-OPEN--num-sessions--SESSIONS--' | | | .-,--------. | | | V | | | +-TO----+-dir-+--+--------------------------------------+ | | '-dev-' | | '-LOAD--library-name--+-------------------------------+-' | '-OPEN--num-sessions--SESSIONS--' | |>-----+-----------------------------+---------------------------> | '-WITH--num-buffers--BUFFERS--' | |>-----+----------------------+---+-----------------+------------> | '-BUFFER--buffer-size--' '-PARALLELISM--n--' | |>----+-------------------+------------------------------------->< | '-WITHOUT PROMPTING-' | |10.12.2 Considerações sobre o DB2 Data Links Manager |Se houver um ou mais servidores de Ligação de dados configurados para o |banco de dados, a operação de backup será bem sucedida, mesmo que o servidor |de Ligação de dados não esteja disponível. Quando o servidor de Ligação |de dados reinicia, o processo de backup é concluído no servidor de Ligação de |dados antes de tornar-se disponível para o banco de dados novamente. |Nota: Se o número de backups ainda aguardando um servidor de Ligação de dados |indisponível for o dobro dos retidos no arquivo de histórico do banco de dados |(parâmetro de configuração do banco de dados num_db_backups), a operação de |backup falha. | ------------------------------------------------------------------------ |10.13 BIND |Essa sintaxe de comando do DB2 deve ser modificada para mostrar o parâmetro |federado, conforme segue: |FEDERATED--+--NO--+-- | '-YES--' | | |FEDERATED |Especifique se uma instrução SQL estática em um pacote faz referências a |um pseudônimo ou a uma exibição federada. Se essa opção não for |especificada e uma instrução SQL estática no pacote fizer referência a um |pseudônimo ou a uma exibição federada, será retornado um aviso e o pacote será |criado. | |NO |Um pseudônimo ou uma exibição federada não é referida nas instruções SQL |estáticas do pacote. Se um pseudônimo ou uma exibição federada for |encontrada em uma instrução SQL estática durante a preparação ou a vinculação |desse pacote, será retornado um erro e o pacote não será |criado. | | |YES |Um pseudônimo ou uma exibição federada pode ser referida nas instruções |SQL estáticas do pacote. Se nenhum pseudônimo ou exibição federada for |encontrada nas instruções SQL estáticas durante a preparação ou a vinculação |do pacote, nenhum erro ou aviso será retornado e o pacote será criado. | | |Nota: No FixPak 2 da Versão 7, uma mensagem de aviso SQL1179W é gerada pelo |servidor durante a pré-compilação de um arquivo de origem ou vinculação de um |arquivo de ligação sem especificar um valor para a opção FEDERATED. A |mesma mensagem é gerada quando o arquivo de origem ou arquivo de ligação |inclui referências da SQL estática para um pseudônimo. Existem duas |exceções: | o |Para clientes com uma versão de FixPak anterior à Versão 7 do FixPak 2 ou |para clientes de nível anterior, a API sqlaprep() não relatará esse aviso |SQL1179W no arquivo de mensagem. O comando PRECOMPILE do Processador de |Linha de Comandos também não exibirá o aviso nesse caso. o |Para clientes com uma versão de FixPak anterior à Versão 7 do FixPak 2 ou |para clientes de nível anterior, a API sqlabndx não relatará esse aviso |SQL1179W no arquivo de mensagem. No entanto, o arquivo de mensagem |também inclui incorretamente uma mensagem SQL0092N que indica que nenhum |pacote foi criado. Isso não está correto, pois o pacote foi |criado. O comando BIND do Processador de Linha de Comandos retorna o |mesmo aviso incorreto. | | ------------------------------------------------------------------------ 10.14 CALL A sintaxe para o comando CALL deve parecer com o seguinte: .-,---------------. V | >>-CALL--proc-name---(-----+-----------+--+---)---------------->< '-argument--' A descrição do parâmetro argument foi alterada para: Especifica um ou mais argumentos para o procedimento armazenado. Todos os argumentos de entrada e saída devem ser especificados na ordem definida pelo procedimento. Argumentos de saída são especificados utilizando-se o caractere "?". Por exemplo, um procedimento armazenado foo com um parâmetro de entrada inteiro e u parâmetro de saída deve ser chamado como "call foo (4, ?)". Notas: 1. Ao chamar este utilitário a partir de um prompt do sistema operacional, pode ser necessário delimitar o comando como a seguir: "call DEPT_MEDIAN (51)" Uma aspa simples (') também pode ser utilizada. 2. O procedimento armazenado que foi chamado deve ser nomeado unicamente no banco de dados. 3. O procedimento armazenado deve estar catalogado. Se um procedimento armazenado é chamado, uma mensagem de erro DB21036 é retornada. 4. Uma mensagem DB21101E é retornada se insuficientes parâmetros forem especificados na linha de comando, os parâmetros da linha de comandos não estão na ordem correta (entrada, saída), de acordo com a definição do procedimento armazenado. 5. Existe um máximo de 1023 caracteres para uma coluna de resultado. 6. LOBS e dados binários (FOR BIT DATA, VARBINARY, LONGVARBINARY, GRAPHIC, VARGAPHIC ou LONGVARGRAPHIC) não são suportados. 7. CALL suporta os conjuntos de resultado. 8. Se um SP com uma variável OUTPUT de um tipo não suportado for chamada, o CALL não se completará e a mensagem DB21036 é retornada. 9. O comprimento máximo de um parâmetro INPUT para CALL é 1024. ------------------------------------------------------------------------ |10.15 DROP DATALINKS MANAGER (comando novo) |DROP DATALINKS MANAGER |Elimina um DB2 Data Links Manager da lista de DB2 Data Links Managers |registrados para um banco de dados específico. |Autorização |Um dos seguintes: | * |sysadm * |sysctrl * |sysmaint | |Sintaxe de Comando |>>-DROP DATALINKS MANAGER FOR----+-DATABASE-+--dbname---USING---> | '-DB-------' | |>----nome------------------------------------------------------>< | |Parâmetros de Comandos | |DATABASE dbname |Especifica o nome do banco de dados. |USING nome |Especifica o nome do servidor DB2 Data Links Manager, conforme mostrado no |comando LIST DATALINKS MANAGER. | |Exemplos |Exemplo 1 |Eliminar o DB2 Data Links Manager |micky.almaden.ibm.com do TESTE do banco de dados sob |validação da instância que reside no host |bramha.almaden.ibm.com quando algumas tabelas de banco de |dados têm links para micky.almaden.ibm.com. É |extremamente importante que as etapas a seguir sejam executadas ao eliminar um |DB2 Data Links Manager. | 1. |Escolha um backup de banco de dados para o TESTE. 2. |Se houver links para micky.almaden.ibm.com, |desfaça-os: | a. |Inicie a sessão com um ID do usuário pertencente ao SYSADM_GROUP e obtenha |uma conexão de modo exclusivo com o TESTE do banco de dados. | connect to test in exclusive mode Certifique-se de que esta seja a única conexão de teste utilizando esse |ID do usuário. Isto impede a criação de novos links. b. |Obtenha uma lista de todas as colunas FILE LINK CONTROL DATALINK e as |tabelas que as contêm no banco de dados. | Selecione o nome da tabela e o nome da coluna |em syscat.columns, onde substr(dl_features, 2, 1) = 'F' c. |Para cada coluna FILE LINK CONTROL DATALINK na lista, emita SQL SELECT |para determinar se os links para micky.almaden.ibm.com |existem. Por exemplo, em uma coluna c do DATALINK na tabela t, a |instrução SELECT seria: | select count(*) from t where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' d. |Para cada coluna FILE LINK CONTROL DATALINK que contenha esses links, |emita SQL UPDATE para desfazer os links para |micky.almaden.ibm.com. Por exemplo, em uma coluna |c do DATALINK na tabela t, a instrução UPDATE seria: |update t set t.c = null where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' Se t.c não puder ser anulado, utilize o seguinte: | update t set t.c = dlvalue('') onde dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' e. |Consolide o SQL UPDATE: |commit | 3. |Emita o comando DROP DATALINKS MANAGER: | drop datalinks manager for db test using node micky.almaden.ibm.com 4. |Encerre a conexão no modo exclusivo para efetivar as alterações e permitir |outras conexões com o banco de dados: | terminate 5. |Inicie o processo de desfazer os links e de coleta de lixo das informações |de backup para TESTAR o micky.almaden.ibm.com. |Como no DB2 Data Links Manager Administrator, emita o seguinte comando no |micky.almaden.ibm.com: | dlfm drop_dlm test validate bramha.almaden.ibm.com Esta ação desfaz o link de todos os arquivos ainda ligados ao TESTE do |banco de dados, apenas no caso do usuário não ter desfeito o link antes de |chamar a etapa 3. Se micky.almaden.ibm.com tiver |informações de backup (por exemplo, arquivos archive, meta-dados) para |arquivos ligados anteriormente ao TESTE do banco de dados, esse comando |iniciará a coleta de lixo das informações. A ação real de desfazer o |link e de coleta de lixo são executadas de forma assíncrona. | |Exemplo 2 |Excluir valores DATALINK que são links para arquivos em um DB2 Data Links |Manager chamado micky.almaden.ibm.com, quando o Manager |já tiver sido eliminado do TESTE do banco de dados. Isto pode ser |necessário se as etapas do Exemplo 1 não foram seguidas na eliminação de |micky.almaden.ibm.com. As instruções SQL DELETE, |SELECT e UPDATE não são bem sucedidas para esses valores DATALINK |(SQL0368). O usuário deve executar uma operação de reconciliação para |cada tabela que contenha esses valores DATALINK. Cada valor DATALINK |que era um link para micky.almaden.ibm.com será |atualizado para NULL ou um valor DATALINK de comprimento zero. Qualquer |linha que contenha esse tipo de valor é inserida na tabela de exceções (se |houver). Entretanto, o valor DATALINK não inclui o nome do |prefixo. O nome do prefixo no valor DATALINK original não pode mais ser |obtido pelo sistema, pois micky.almaden.ibm.com foi |eliminado. Por exemplo, se o valor DATALINK original era |'http://host.com/dlfs/x/y/a.b' e |'/dlfs' for o nome do prefixo, o valor DATALINK na tabela de exceção |conterá 'http://host.com/x/y/a.b'. Os |arquivos aos quais esses valores DATALINK fazem referência continuam no estado |ligado no DB2 Data Links Manager. O comando dlfm drop_dlm pode ser |emitido no micky.almaden.ibm.com para iniciar o processo |de desfazer link nesses arquivos. Se |micky.almaden.ibm.com tiver informações de backup (por |exemplo, arquivos archive, meta-dados) para arquivos ligados anteriormente ao |TESTE do banco de dados, esse comando iniciará a coleta de lixo dessas |informações. A ação real de desfazer o link e de coleta de lixo são |executadas de forma assíncrona. |Exemplo 3 |Várias encarnações de um DB2 Data Links Manager |micky.almaden.ibm.com para TESTE do banco de |dados. Essa situação demonstra que o DB2 Data Links Manager pode ser |registrado novamente após ter sido eliminado, sendo tratado como um DB2 Data |Links Manager completamente novo. As etapas a seguir são apenas |ilustrativas de uma situação possível. Se, conforme recomendado, as |etapas do Exemplo 1 forem seguidas para eliminar |micky.almaden.ibm.com, os links para a encarnação antiga |de micky.almaden.ibm.com não existirão, isto é, não será |visto o erro SQL0368 da etapa 7 abaixo. | 1. |Registre o micky.almaden.ibm.com para o TESTE do |banco de dados: | add datalinks manager for db test using node micky.almaden.ibm.com port |14578 2. |Crie links para arquivos no |micky.almaden.ibm.com: | connect to test | create table t(c1 int, c2 datalink linktype url file link control | mode db2options) | insert into t values(1, dlvalue('file://micky.almaden.ibm.com/pictures/ | yosemite.jpg')) | commit | terminate 3. |Elimine o micky.almaden.ibm.com do TESTE do banco de |dados: | drop datalinks manager for db test using micky.almaden.ibm.com 4. |Selecione valores DATALINK: | connect to test | select * from t | terminate O usuário verá: | SQL0368 The DB2 Data Links Manager "MICKY.ALMADEN.IBM.COM" | is not registered to the database. SQLSTATE=55022. 5. |Registre o micky.almaden.ibm.com para o TESTE do |banco de dados novamente: | add datalinks manager for db test using node micky.almaden.ibm.com |port 14578 6. |Insira mais valores DATALINK: | connect to test | insert into t values(2, dlvalue('file://micky.almaden.ibm.com/pictures/ | tahoe.jpg')) | commit | 7. |Selecione valores DATALINK: | select c2 from t where c1 = 2 é bem sucedido porque o valor que está sendo selecionado é um link para |a encarnação de micky.almaden.ibm.com registrada |atualmente. | select c2 from t where c1 = 1 retorna: | SQL0368 The DB2 Data Links Manager "MICKY.ALMADEN.IBM.COM" | is not registered to the database. SQLSTATE=55022. porque o valor que está sendo selecionado é um link para a encarnação |de micky.almaden.ibm.com eliminada na etapa 3 |acima. | |Notas sobre Utilização |Os efeitos do comando DROP DATALINKS MANAGER não podem ser |retrocedidos. É extremamente importante seguir as etapas descritas no |Exemplo 1 ao utilizar o comando DROP DATALINKS MANAGER. |Esse comando é efetivo somente quando todos os aplicativos tiverem sido |desconectados do banco de dados. |Após a conclusão bem sucedida do comando, o usuário é informado (DB210201I) |que não foi efetuado processamento no DB2 Data Links Manager. Antes de |eliminar um DB2 Data Links Manager, o usuário deve garantir que o banco de |dados não tenha links para arquivos nesse DB2 Data Links Manager. Se |houver links no banco de dados após a eliminação de um DB2 Data Links Manager, |o usuário deve executar o utilitário de reconciliação para livrar-se |deles. O utilitário de reconciliação define esses links como NULL (se a |coluna DATALINK puder ser nula) ou como um valor DATALINK de comprimento |zero. |Os arquivos correspondentes aos links entre um banco de dados e um DB2 Data |Links Manager eliminado permanecem no estado ligado. Isto é, ficam |inacessíveis para operações como leitura, gravação, renomeação, exclusão, |alteração de permissões ou alteração de propriedade. |As cópias arquivadas de arquivos com link desfeito no DB2 Data Links |Manager não passarão pela coleta de lixo com esse comando. Entretanto, |os usuários podem iniciar explicitamente o processo de desfazer o link e de |coleta de lixo utilizando o comando dlfm drop_dlm no DB2 Data Links |Manager. |É recomendado que seja feito um backup do banco de dados antes de eliminar |o DB2 Data Links Manager. Além disso, verifique se todas as assinaturas |de replicação replicaram todas as alterações envolvidas nesse DB2 Data Links |Manager. |Se foi feito backup antes da eliminação do DB2 Data Links Manager de um |banco de dados e essa imagem de backup for utilizada para restauração após o |DB2 Data Links Manager ter sido eliminado, o processo de restauração ou de |avanço pode colocar determinadas tabelas no estado reconciliação da ligação de |dados pendente (DRP). ------------------------------------------------------------------------ 10.16 EXPORT Na seção "Considerações do Gerenciador do DB2 Data Links", etapa 3 do procedimento para assegurar que uma cópia consistente de uma tabela e os arquivos correspondentes referenciados pelas colunas DATALINK são copiados para exportar deve ser lido: 3. Execute o utilitário dlfm_export em cada servidor do Data Links. A entrada para o utilitário dlfm_export é o nome do arquivo de controle, que é gerado pelo utilitário exportar. Isto produz um arquivo acumulativo tar (ou equivalente) dos arquivos listados dentro do controle de arquivo. Para Sistemas de Arquivos Distribuídos (DFS), o utilitário dlfm_export obterá as credenciais de raiz de rede DCE antes de fazer o arquivo acumulativo dos arquivos listados no controle de arquivo. O dlfm_export não captura as informações ACLs dos arquivos que fizeram o arquivo acumulativo. Na mesma seção, os trechos seguintes ao "Execução com sucesso dos resultados do EXPORT na geração dos seguintes arquivos" deve ser alterados como a seguir: A segunda sentença no primeiro trecho deve ser lida: Um valor de coluna DATALINK neste arquivo tem o mesmo formato que é usado pelos utilitários importar e carregar. A primeira sentença no segundo trecho deve ser lida: Nome do servidor de arquivos de controle, que são gerados para cada servidor de Data Links. (No sistema operacional Windows NT, um arquivo de controle único, ctrlfile.lst, é usado por todos os servidores de Data Links. Para DFS, há um arquivo de controle para cada célula.) A seguinte sentença deve ser incluída ao parágrafo antes da Tabela 5: Para mais informações sobre dflm_export, consulte "Manual e Referência ao Data Movement Utilities" sob "Usando Exportar para mover Dados DB2Gerenciador de Data Links". ------------------------------------------------------------------------ |10.17 OBTER CONFIGURAÇÃO DE BANCO DE DADOS |A descrição do parâmetro de configuração DL_TIME_DROP deve ser |alterado para o seguinte: | Aplica-se apenas ao Gerenciador do DB2 Data Links. Este parâmetro especifica |o o número de arquivos de dias seria retido em um servidor archive | (tal como um servidor TSM) após um comando DROP DATABASE ser emitido. |O novo parâmetro TRACKMOD é incluído no comando GET DATABASE |CONFIGURATION. A sintaxe aparece da seguinte forma: |>>-GET----+-DATABASE-+---+-CONFIGURATION-+--FOR-----------------> | '-DB-------' +-CONFIG--------+ | '-CFG-----------' | | .-NO--. |>----database-alias---TRACKMOD--+-YES-+------------------------>< | |A descrição do parâmetro é incluída da seguinte forma: | |TRACKMOD |Indica se o DB2 deve rastrear páginas modificadas no banco de dados para |permitir backups incrementais. | |OFF |Especifica que páginas alteradas não devem ser rastreadas. Este é o |padrão para bancos de dados criados antes da Versão 7.1, FixPak |3. |ON |Especifica que páginas alteradas devem ser rastreadas. Quando esse |parâmetro está definido, podem ser feitos backups incrementais do banco de |dados. Este é o padrão para bancos de dados criados com a Versão |7.1, FixPak 3 ou posterior. | | ------------------------------------------------------------------------ 10.18 GET ROUTINE (comando novo) GET ROUTINE Recupera um arquivo SQL Archive (SAR) para uma rotina SQL especificada. Autorização dbadm Conexão Requerida Banco de Dados. Se a conexão implícita estiver ativada, uma conexão ao banco de dados padrão será estabelecida. Sintaxe de Comando >>-GET ROUTINE--INTO---file_name----FROM----+-----------+-------> '-SPECIFIC--' >-------PROCEDURE----routine_name------------------------------>< Parâmetros de Comandos INTO file-name Nomeia o arquivo no qual o SAR da rotina está armazenado. . FROM Indica o início da especificação da rotina a ser recuperada. SPECIFIC O routine-name especificado é fornecido com um nome específico. PROCEDURE A rotina é um procedimento SQL. routine-name O nome do procedimento. Se SPECIFIC for especificado, então será o nome específico do procedimento. Se o nome não for qualificado com um nome de esquema, o CURRENT SCHEMA será usado como o nome do esquema da rotina. O nome-da-rotina deve ser um procedimento SQL existente, que esteja definido como procedimento SQL. Exemplos GET ROUTINE INTO procs/proc1.sar FROM PROCEDURE myappl.proc1; ------------------------------------------------------------------------ |10.19 GET SNAPSHOT |A descrição do parâmetro FCM FOR ALL NODES deve aparecer da seguinte |forma: |Fornece estatísticas do FCM (Fast Communication Manager) entre o nó contra |o qual o comando GET SNAPSHOT foi emitido e os outros nós na instância |EEE. ------------------------------------------------------------------------ 10.20 IMPORT Na seção "Considerações sobre o Gerenciador do DB2 Data Links", a seguinte sentença deve ser incluída na Etapa 3: Para Sistemas de Arquivos Distribuídos (DFS), atualize a informação do nome da célula nas URLs (das colunas DATALINK) a partir do dado exportado para a tabela SQL, se requerido. A seguinte sentença deve ser incluída na Etapa 4: Para DFS, defina as células na configuração de destino no arquivo de configuração do Gerenciador do DB2 Data Links. O parágrafo seguinte à Etapa 4 deve ser lido: Quando o utilitário importar é executado contra o banco de dados, os arquivos referenciados pelos dados da coluna DATALINK são ligados aos servidores de Data Links apropriados. ------------------------------------------------------------------------ |10.21 LIST HISTORY |O parâmetro CREATE TABLESPACE é incluído no comando LIST HISTORY. O |diagrama de sintaxe deve aparecer da seguinte forma: |>>-LIST HISTORY----+-------------------+------------------------> | +-BACKUP------------+ | +-ROLLFORWARD-------+ | +-ALTER TABLESPACE--+ | +-DROPPED TABLE-----+ | +-LOAD--------------+ | +-RENAME TABLESPACE-+ | '-CREATE TABLESPACE-' | |>-----+-ALL--------------------------------+--------------------> | +-SINCE--timestamp-------------------+ | '-CONTAINING--+-_schema.objectname-+-' | '-_objectname--------' | |>----FOR--+----------+---database-alias------------------------>< | +-DATABASE-+ | '-DB-------' | |A descrição do parâmetro é incluída da seguinte forma: | |CREATE TABLESPACE |Lista todas as operações CREATE TABLESPACE e DROP TABLESPACE. | |As Notas de utilização são atualizadas da seguinte forma: |Os seguintes símbolos serão incluídos na seção Operação do relatório: | * |A - Criar tablespace * |O - Eliminar tablespace * |U - Descarregar | |Os símbolos na seção Tipo do relatório serão reorganizados da seguinte |forma: | * |Tipos de backup | o |F - Offline o |N - Online o |I - Offline incremental o |O - Online incremental o |D - Offline delta o |E - Online delta | * |Tipos de avanço | o |E - Fim do log o |P - Ponto no tempo | * |Tipos de carregamento | o |I - Inserir o |R - Substituir | * |Alterar tipos de tablespace | o |C - Incluir contêineres o |R - Reequilibrar | * |Tipos de quiesce | o |S - Compartilhar quiesce o |U - Atualizar quiesce o |X - Quiesce exclusivo o |Z - Redefinir quiesce | | ------------------------------------------------------------------------ 10.22 LOAD Na seção "Considerações sobre o Gerenciador do DB2 Data Links", inclua a seguinte sentença à Etapa 1 do procedimento que deve ser executado antes de chamar o utilitário de carga, se o dado foi carregado em uma tabela com uma coluna DATALINK que está definida com um FILE LINK CONTROL: Para Sistemas de Arquivos Distribuídos (DFS), assegure que os Gerenciadores do DB2 Data Links dentro da célula de destino estejam registrados. A seguinte sentença deve ser incluída na Etapa 5: Para DFS, registre as células na configuração de destino referenciadas pelos dados do DATALINK (a ser carregado) no arquivo de configuração do Gerenciador do DB2 Data Links. Na seção "Representação da Informação DATALINK em um Arquivo de Entrada", a primeira nota seguinte do parâmetro de descrição para a urlname deve ser lida: Atualmente "http", "file", "unc" e "dfs" são permitidos como um nome de esquema. A primeira sentença da segunda nota deve ser lida: O prefixo (esquema, host e porta) da URL é opcional. Para DFS, o prefixo refere-se à parte do esquema cellname filespace-junction. Nos exemplos de dados DATALINK para ambos os formatos de arquivo ASCII delimitado (DEL) e ASCII não-delimitado (ASC), o terceiro exemplo deve ser removido. Os exemplos de dados DATALINK nos quais as especificações de carregamento ou importação para a coluna é assumido para ser DL_URL_DEFAULT_PREFIX deve ser removido e substituído com o seguinte: Os seguintes são exemplos de dados DATALINK nos quais a especificação de carregamento ou importação para a coluna é assumido para ser DL_URL_REPLACE_PREFIX ("http://qso"): * http://www.almaden.ibm.com/mrep/intro.mpeg Essa URL de exemplo é armazenada com as seguintes partes: o schema = http o server = qso o path = /mrep/intro.mpeg o comment = NULL string * /u/me/myfile.ps Isto está armazenado com as seguintes partes: o schema = http o server = qso o path = /u/me/myfile.ps o comment = NULL string ------------------------------------------------------------------------ 10.23 PING (comando novo) PING Testa o tempo de resposta da rede da conectividade subjacente entre um cliente e um servidor do bancos de dados onde o DB2 Connect é usado para estabelecer a conexão. Autorização Nenhum Conexão Requerida Banco de Dados Sintaxe de Comando .-time-. .-1--+------+---------------------. >>-PING---db_alias----+-+-----------------------------+-+------>< '-number_of_times--+-------+--' +-times-+ '-time--' Parâmetros de Comandos db_alias Especifica o alias do banco de dados para o banco de dados num servidor DRDA para o qual o ping é enviado. Nota: Este parâmetro, embora obrigatório, não é usado atualmente. Ele está reservado para uso futuro. Qualquer nome de alias válido de banco de dados pode ser especificado. número de vezes Especifica o número de iterações para este teste. O valor deve estar entre 1 e 32767 inclusive. O padrão é 1. Uma sincronização retornará para cada iteração. Exemplos Para testar o tempo de resposta da rede para a conexão ao servidor do bancos de dados do host, hostdb, uma vez: db2 ping hostdb 1 ou: db2 ping hostdb O comando exibirá a saída que se parece com: Tempo decorrido: 7221 microssegundos Para testar o tempo de resposta da rede para a conexão ao servidor do bancos de dados do host, hostdb, cinco vezes: db2 ping hostdb 5 ou: db2 ping hostdb 5 times O comando exibirá a saída que se parece com: Tempo decorrido: 8412 microssegundos Tempo decorrido: 11876 microssegundos Tempo decorrido: 7789 microssegundos Tempo decorrido: 10124 microssegundos Tempo decorrido: 10988 microssegundos Notas sobre Utilização Deve existir uma conexão do banco de dados antes da chamada deste comando, do contrário, ocorrerá um erro. O tempo decorrido que retorna à conexão entre o cliente e o banco de dados do servidor DRDA através do DB2 Connect. ------------------------------------------------------------------------ |10.24 PUT ROUTINE (comando novo) |PUT ROUTINE |Esse comando usa o arquivo SQL Archive (SAR) da rotina especificada para |definir uma rotina no banco de dados. |Autorização |dbadm |Conexão Requerida |Banco de Dados. Se a conexão implícita estiver ativada, uma conexão |ao banco de dados padrão será estabelecida. |Sintaxe de Comando |>>-PUT ROUTINE----FROM----file-name-----------------------------> | |>-----+---------------------------------------+---------------->< | '-OWNER--new-owner--+----------------+--' | '-USE REGISTERS--' | |Parâmetros de Comandos | |FROM nome do arquivo |Nomeia o arquivo no qual o SAR da rotina está armazenado. . |OWNER novo proprietário |Especifica um novo nome de autorização para a rotina que será usada para |verificação de autenticação da rotina. O novo proprietário deve ter os |privilégios necessários para a rotina ser definida. Se a cláusula OWNER |não for especificada, será usado o nome de autorização que definiu a rotina |originalmente. |USE REGISTERS |Indica que os registradores especiais CURRENT SCHEMA e CURRENT PATH são |usados para definir a rotina. Se essa cláusula não for especificada, as |definições para o esquema padrão e para o caminho da SQL serão as definições |usadas quando a rotina foi originalmente definida. CURRENT SCHEMA é |usado como o nome do esquema para nomes de objetos não qualificados na |definição de rotina (incluindo o nome da rotina) e CURRENT PATH é usado para |resolver rotinas e tipos de dados não qualificados na definição de |rotina. | |Exemplos | PUT ROUTINE FROM procs/proc1.sar; |Notas sobre Utilização |Somente um procedimento pode ser instalado simultaneamente sob um |determinado esquema. ------------------------------------------------------------------------ |10.25 RECONCILE |A seguinte nota de utilização deve ser incluída na descrição do |comando: |Durante a reconciliação, são feitas tentativas de criar link de arquivos |que existem de acordo com dados da tabela, mas que não existem de acordo com |os meta-dados do Data Links Manager, se não houver outros conflitos. Um |DB2 Data Links Manager obrigatório é aquele que tem um valor DATALINK |mencionado na tabela. A reconciliação tolera a indisponibilidade de um |DB2 Data Links Manager necessário, além dos que estão configurados para o |banco de dados mas que não fazem parte dos dados da tabela. |Se não for especificada uma tabela de exceções, o arquivo de relatório de |exceção (nome do arquivo.exp) terá o nome do host, nome do |arquivo, ID da coluna e código de razão para cada um dos valores da coluna |DATALINK para os quais as referências ao arquivo não puderam ser |reestabelecidas. Se a referência ao arquivo não pôde ser reestabelecida |porque o próprio DB2 Data Links Manager foi eliminado do banco de dados com o |comando DROP DATALINKS MANAGER, o nome do arquivo indicado no arquivo de |relatório de exceção não será o nome completo do arquivo, isto é, a parte do |prefixo estará ausente. Na tabela de exceções dos valores DATALINK cujo |DB2 Data Links Manager foi eliminado ou não está disponível, o nome do arquivo |no valor DATALINK não é o nome completo do arquivo. Falta a parte do |prefixo. Por exemplo, se o valor DATALINK original era |'http://host.com/dlfs/x/y/a.b', o valor relatado |na tabela de exceções será |'http://host.com/x/y/a.b'; isto é, o nome |do prefixo 'dlfs' não será incluído. O arquivo de relatório |de exceções nesse caso terá 'x/y/a.b'; isto é, o nome do |prefixo 'dlfs' não será incluído. |No fim do processo de reconciliação, a tabela é retirada do estado |reconciliação da ligação de dados pendente (DRP) somente se o processo de |reconciliação tiver sido concluído em todos os DB2 Data Links Managers |necessários. Se o processo de reconciliação estiver pendente em algum |dos DB2 Data Links Managers necessários (porque estavam indisponíveis), a |tabela permanece, ou é colocada no estado DRP. |O seguinte deve ser incluído na lista de violações possíveis: | 00010-DB2 Data Links Manager mencionado pelo valor DATALINK |foi eliminado do banco de dados utilizando o comando DROP DATALINKS |MANAGER. Neste caso, o valor DATALINK correspondente |na tabela de exceções não conterá o nome do prefixo. |Por exemplo, se o valor DATALINK original era |'http://host.com/dlfs/prfx/x/y/a.b' e '/dlfs/prfx' for |o nome do prefixo, a tabela de exceções conterá |'http://host.com/x/y/a.b'. ------------------------------------------------------------------------ |10.26 REORGANIZE TABLE |A frase a seguir será incluída nas Notas de utilização: |REORGANIZE TABLE não pode utilizar um índice baseado em uma extensão do |índice. ------------------------------------------------------------------------ 10.27 RESTORE DATABASE |10.27.1 Sintaxe |A opção a seguir será incluída na sintaxe do comando RESTORE DATABASE após |as opções TABLESPACE/TABLESPACE ONLINE/HISTORY FILE: |>>-+-------------------------+--------------------------------->< | '-INCREMENTAL--+-------+--' | '-ABORT-' | |As descrições de parâmetros são incluídas da seguinte forma: | |INCREMENTAL |Resulta em uma restauração manual cumulativa do banco de dados. O |usuário emite cada um dos comandos de restauração. | |ABORT |Este parâmetro deve ser utilizado para terminar uma restauração |incremental antes de uma conclusão bem-sucedida. | | |Os exemplos a seguir também são incluídos: |O seguinte é um exemplo de estratégia de backup incremental semanal com um |banco de dados recuperável. O backup completo é programado uma vez por |semana, um delta por dia, mais um incremental no meio da semana: | (Sun) backup db kdr use adsm | (Mon) backup db kdr online incremental delta use adsm | (Tue) backup db kdr online incremental delta use adsm | (Wed) backup db kdr online incremental use adsm | (Thu) backup db kdr online incremental delta use adsm | (Fri) backup db kdr online incremental delta use adsm | (Sat) backup db kdr online incremental use adsm |Para uma restauração manual do banco de dados das imagens criadas acima na |manhã de sexta-feira, emita os seguintes comandos: | restore db kdr incremental taken at (Thu) | restore db kdr incremental taken at (Sun) | restore db kdr incremental taken at (Wed) | restore db kdr incremental taken at (Thu) |Nota: Qualquer comando RESTORE do formato db2 restore db |executará uma restauração do banco de dados completa, independente se a imagem |que está sendo restaurada é uma imagem do banco de dados ou uma imagem do |table space. Qualquer comando RESTORE do formato db2 restore db | tablespace executará uma restauração do table space dos |table spaces encontrados na imagem. Qualquer comando RESTORE no qual |uma lista de table spaces é fornecida, executará uma restauração de quaisquer |table spaces que foram explicitamente listados. | |10.27.2 Considerações sobre o DB2 Data Links Manager |O segundo parágrafo da seção intitulada "Considerações sobre o DB2 Data |Links Manager" deve ser substituído por: | Se houver um ou mais servidores de Ligação |de dados configurados para o banco de dados, |a operação de restauração será bem sucedida, mesmo que o servidor de Ligação de |dados não esteja disponível. |Quando o servidor de Ligação de dados reinicia, o processo de restauração é |concluído |no servidor de Ligação de dados antes de tornar-se disponível para o banco |de dados novamente. |NOTA: Se uma operação de restauração do banco de dados ainda estiver |aguardando um |servidor de Ligação de dados indisponível, qualquer operação posterior de |restauração do banco de dados ou de tablespace |falhará. ------------------------------------------------------------------------ |10.28 ROLLFORWARD DATABASE |O segundo parágrafo da seção intitulada "Considerações sobre o DB2 Data |Links Manager" deve ser substituído por: | Se houver um ou mais servidores de Ligação |de dados configurados para o banco de dados, |a operação de avanço é bem sucedida, mesmo que o servidor de Ligação de |dados não esteja disponível. |Quando o servidor de Ligação de dados reinicia, o processo de avanço é concluído |no servidor de Ligação de dados antes de tornar-se disponível para o banco |de dados novamente. ------------------------------------------------------------------------ |10.29 Erro na documentação nos códigos de retorno CLP |Na seção Códigos de retorno do processador da linha de comandos no Capítulo |2, o segundo parágrafo deve mostrar o seguinte: |Por exemplo, o seguinte script Bourne shell executa o comando GET DATABASE |MANAGER CONFIGURATION e depois inspeciona o código de retorno CLP: | db2 get database manager configuration | if [ "$?" = "0" ] | then echo "OK!" | fi ------------------------------------------------------------------------ Guia e Referência dos Utilitário de Movimento dos Dados ------------------------------------------------------------------------ 11.1 Capítulo 2. Importar |11.1.1 Utilizando importação com inserções em buffer |A nota no fim desta seção deve ser: |Nota: Em todos os ambientes, exceto EEE, o recurso de inserções em buffer é |desativado durante operações de importação nas quais o parâmetro |INSERT_UPDATE é especificado. | ------------------------------------------------------------------------ 11.2 Capítulo 3. Carregar 11.2.1 Estados Pendentes Após uma Operação de Carregamento As primeiras duas sentenças no último parágrafo nesta seção foram alteradas para o seguinte: O quarto estado possível associado com o processo de carregamento (verificar o estado pendente) pertence a restrições referenciais e de verificação, restrições DATALINKS, restrições AST ou restrições de colunas geradas. Por exemplo, se uma tabela existente é uma tabela pai contendo uma chave primária referenciada por uma chave primária em uma tabela dependente, substituindo dados na tabela pai, coloca ambas tabelas (não table space) no estado pendente. 11.2.2 Restrições e Limitações de Carregamento As seguintes restrições se aplicam às colunas geradas e ao utilitário de carregamento: * Não é possível carregar uma tabela tendo uma coluna gerada em um índice único, a menos que a coluna gerada seja uma "coluna de inclusão" do índice ou o modificador de tipo de arquivo generatedoverride seja usado. Se este modificador é usado, ele é aguardado por todos os valores para a coluna que será fornecidos no arquivo de dados de entrada. * Não é possível carregar uma tabela tendo uma coluna gerada no particionamento da chave a menos que o modificador de tipo de arquivo generatedoverride seja usado. Se este modificador é usado, ele é aguardado por todos os valores para a coluna que será fornecidos no arquivo de dados de entrada. |11.2.3 Modificador de tipo do arquivo totalfreespace |O modificador de tipo do arquivo totalfreespace (LOAD) foi modificado para |aceitar um valor entre 0 e 2.147.483.647. ------------------------------------------------------------------------ 11.3 Capítulo 4. Carregador Automático |11.3.1 rexecd obrigatório para executar o autoloader quando a autenticação estiver definida como YES |Na seção Opções do autoloader, a seguinte nota será incluída na descrição |dos parâmetros AUTHENTICATION e PASSWORD: |Em um ambiente Linux, se você estiver executando o autoloader com a |definição de autenticação definida como YES, o rexecd deve ser ativado em |todas as máquinas. Se o rexecd não for ativado, será gerada a seguinte |mensagem de erro: | openbreeze.torolab.ibm.com: Conexão recusada |SQL6554N Ocorreu um erro ao tentar executar um processo remotamente. |As seguintes mensagens de erro serão geradas no arquivo |db2diag.log: | 2000-10-11-13.04.16.832852 Ocorrência:svtdbm Nó:000 | PID:19612(db2atld) Appid: | oper_system_services sqloRemoteExec Probe:31 ------------------------------------------------------------------------ Manual de Referência e Replicação ------------------------------------------------------------------------ 12.1 Replicação e Servidores Não-IBM Você deve usar o DataJoiner Versão 2 ou superior para replicar dados para ou partir de servidores não-IBM como Informix, Microsoft SQL Server, Oracle, Sybase e Sybase SQL Anywhere. Você não pode utilizar a função de conexão relacional para este tipo de replicação porque o DB2 Relational Connect Versão 7 não tem capacidade de atualização. Além disso, você deve usar o DJRA (DataJoiner Replication Administration) para administrar replicações heterogêneas em todas as plataformas (AS/400, OS/2, OS/390, UNIX, e Windows) para todas as versões existentes do DB2 e DataJoiner. ------------------------------------------------------------------------ 12.2 Replicando no Windows 2000 O DB2 DataPropagator Versão 7 é compatível com o sistema operacional Windows 2000. ------------------------------------------------------------------------ |12.3 Erro Conhecido Ao Salvar os Arquivos SQL |Se você utilizar o Control Center no DB2 Connect Personal Edition, não |poderá salvar os arquivos SQL. Se você tentar salvar os arquivos SQL, |obterá uma mensagem de erro que o Database Administration Server (DAS) não |está ativo, quando de fato o DAS não está disponível porque ele não é enviado |com o DB2 Connect PE. ------------------------------------------------------------------------ |12.4 Manutenção do DB2 |Recomenda-se instalar a última manutenção do DB2 para vários produtos do |DB2 que você utiliza em seu ambiente de replicação. ------------------------------------------------------------------------ |12.5 Utilitário de Diferença de Dados na Web |Você pode fazer download do utilitário de Diferença de Dados (DDU) da Web |no endereço |ftp://ftp.software.ibm.com/ps/products/datapropagator/fixes/. |O DDU é um utilitário de amostra que você pode utilizar para comparar duas |versões do mesmo arquivo e produzir um arquivo de saída que mostra as |diferenças. Consulte o arquivo README que acompanha o utilitário de |amostra, para obter detalhes. ------------------------------------------------------------------------ 12.6 Capítulo 3. Cenário de replicação de dados 12.6.1 Cenários de Replicação Consulte a página Biblioteca do site Web DataPropagator (http://www.ibm.com/software/data/dpropr/) para obter um novo cenário de replicação de dados heterogêneos. Siga as etapas nesse cenário para copiar as alterações de um tabela-fonte de replicação em um banco de dados Oracle no AIX para uma tabela de destino no DB2 para Windows NT. Esse cenário usa a ferramenta de Administração de Replicação do DB2 DataJoiner (DB2 DataJoiner Replication Administration - DJRA), Disparadores de captura, o programa Apply e o DB2 DataJoiner. Na página 44 do manual, as instruções na etapa 6 para criação de um arquivo de senha devem ser as seguintes: Etapa 6: Criar um arquivo de senha Como o programa Apply precisa se conectar ao servidor de origem, você deverá criar um arquivo de senha para a autenticação do usuário. Certifique-se de que a ID de usuário que executará o programa Apply possa ler o arquivo de senha. Para criar um arquivo de senha: 1. A partir de uma janela do prompt de comandos do Windows NT, siga para o diretório C:\scripts. 2. Crie um novo arquivo neste diretório chamado DEPTQUAL.PWD.Você pode criar este arquivo usando qualquer editor de texto, como o Bloco de notas. A convenção de nomenclatura do arquivo de senha é applyqual.pwd; em que applyqual é uma cadeia que considera minúsculas/maiúsculas que deve corresponder às letras e ao valor do qualificador Apply usado na criação do conjunto de assinaturas.Para este cenário, o qualificador Apply é DEPTQUAL. Nota: A convenção de nomenclatura do arquivo da Versão 5 do DB2 DataPropagator também é suportada. 3. O conteúdo do arquivo de senha possui o seguinte formato: SERVER=servidor USER=id do usuário PWD=senha Em que: servidor O nome do servidor de origem, destino ou controle, exatamente como aparece na tabela do conjunto de assinaturas. Para este cenário, estes nomes são SAMPLE e COPYDB. id_de_usuário A ID de usuário que você pretende usar para administrar esse banco de dados em particular. Este valor considera maiúsculas e minúsculas nos sistemas operacionais Windows NT e UNIX. senha A senha associada à ID de usuário. Este valor considera maiúsculas e minúsculas nos sistemas operacionais Windows NT e UNIX. Não coloque linhas em branco ou de comentário neste arquivo. Inclua somente o nome do servidor, a ID de usuário e a informação de senha. 4. O conteúdo do arquivo de senha é semelhante à: SERVER=SAMPLE USER=subina PWD=subpw SERVER=COPYDB USER=subina PWD=subpw Para obter maiores informações sobre a autenticação e a segurança do DB2, consulte o Manual de Administração do IBM DB2. ------------------------------------------------------------------------ 12.7 Capítulo 5. Planejando replicação 12.7.1 Nomes de Tabelas e Colunas A replicação não suporta espaços em branco em nomes de tabelas e colunas. 12.7.2 Replicando o DATALINK A replicação de LINK de DADOS está disponível como parte da Versão 7.1, FixPak 1. Ela requer um daemon FTP que seja executado no sistema de arquivos DATALINK de origem e destino e suporte o comando MDTM (modtime), que exibe a hora da última modificação de um determinado arquivo. Se você estiver usando a Versão 2.6 do sistema operacional Solaris ou qualquer outra versão que não inclua o suporte FTP para MDTM, será necessário outro software, como o WU-FTPD. Você não pode replicar colunas DATALINK entre banco de dados do DB2 no AS/400 e banco de dados do DB2 em outras plataformas. Na plataforma AS/400, não existe suporte para a replicação do atributo "comment" de valores DATALINK. Se você está executando o AIX 4.2, antes de executar o programa de saída padrão do usuário (ASNDLCOPY) você deve instalar a PTF da APAR IY03101 (AIX 4210-06 MANUTENÇÃO RECOMENDADA PARA AIX 4.2.1). Esta PTF contém uma correção do ano 2000 para o comando "modtime/MDTM" no daemon do FTP. Para verificar a correção, confira o último horário de modificação retornado pelo comando "modtime ", onde é um arquivo que foi modificado depois de 1º de Janeiro de 2000. Se a tabela de destino é uma tabela CCD externa, o DB2 DataPropagator chama a rotina ASNDLCOPY para replicar arquivos DATALINK. Para as últimas informações sobre como usar os programas ASNDLCOPY e ASNDLCOPYD, consulte a seção do prólogo do código de origem de cada programa. As seguintes restrições se aplicam: * Tabelas do CCD Interno podem conter indicadores DATALINK, mas não valores DATALINK. * Tabelas do CCD condensado externo podem conter valores DATALINK. * Tabelas de destino do CCD não condensado não podem conter nenhuma coluna DATALINK. * Quando os servidores de origem e destino são o mesmos, o conjunto de subscrição não deve conter nenhum membro com colunas DATALINK. 12.7.3 Restrições LOB Tabelas do CCD interno condensado não podem conter referências a colunas LOB ou indicadores LOB. 12.7.4 Planejando a Replicação Na página 65, "Connectivity" deve incluir o seguinte fato: Se o programa Apply não pode se conectar ao servidor de controle, o programa Apply termina. Ao usar bloqueio de dados para o AS/400, você deve garantir que a quantidade total de dados a ser replicada durante o intervalo não exceda "4 milhões de linhas", não "4 MB" como declarado na página 69 do manual. ------------------------------------------------------------------------ 12.8 Capítulo 6. Configurando o ambiente de replicação 12.8.1 Pré-requisito Update-anywhere Se você quer configurar a replicação update-anywhere com detecção de conflitos e com mais de 150 membros do conjunto de subscrição em um conjunto de subscrição, você deve executar a seguinte DDL para criar a tabela ASN.IBMSNAP_COMPENSATE no servidor de controle: CREATE TABLE ASN.IBMSNAP_COMPENSATE ( APPLY_QUAL char(18) NOT NULL, MEMBER SMALLINT, INTENTSEQ CHAR(10) FOR BIT DATA, OPERATION CHAR(1)); 12.8.2 Configurando Seu Ambiente de Replicação A página 95, "Personalizando tabela CD, índice e nomes de table space" informa que o arquivo DPREPL.DFT está no diretório \sqllib\bin ou no diretório \sqllib\java. Isso está incorreto,DPREPL.DFT está no diretório \sqllib\cc. |Na página 128, a descrição do limite de retenção deve declarar que o |limite de retenção é utilizado para retirar linhas apenas quando a partida |quente de Capture for iniciada ou quando você utilizar o comando de retirada |Capture. Se você iniciou o Capture com a opção de retirada automática, |ele não utilizará o limite de retenção para retirar linhas. ------------------------------------------------------------------------ 12.9 Capítulo 8. Determinação de Problemas O Analisador de Replicação executa em sistemas Windows de 32 bits e no AIX. Para executar o Analisador no AIX, garanta que o diretório sqllib/bin aparece antes de /usr/local/bin na sua variável de ambiente PATH para evitar conflitos com /usr/local/bin/analyze. O Analisador de Replicação possui duas palavras-chave opcionais adicionais: CT e AT. CT=n Mostra apenas as entradas da tabela de rastreio de Capture que são mais novas que n dias. Esta palavra-chave é opcional. Se você não especificar esta palavra-chave, o padrão é 7 dias. AT=n Mostra apenas as entradas da tabela de rastreio de Apply que são mais novas que n dias. Esta palavra-chave é opcional. Se você não especificar esta palavra-chave, o padrão é 7 dias. Exemplo: analyze mydb1 mydb2 f=meu-diretório ct=4 at=2 deepcheck q=applyqual1 Para o Analisador de Replicação, as seguintes informações sobre palavras-chave estão atualizadas: deepcheck Especifica que o Analisador realiza uma análise mais completa, incluindo as seguintes informações: informações de eliminação das tabelas CD e UOW, detalhes de compressão e particionamento de tablespace do DB2 para OS/390, análise de índices de destino com respeito às chaves de subscrição, timelines de subscrição, e erros de instruções SQL do conjunto de subscrições. A análise inclui todos os servidores. Esta palavra-chave é opcional. lightcheck Especifica que as seguintes informações estão excluídas do relatório: todos os detalhes de colunas da tabela ASN.IBMSNAP_SUBS_COLS, erros de subscrição ou anomalias ou omissões, e índices incorretos ou ineficientes. Esta redução de informações economiza recursos e produz um arquivo de saída HTML menor. Esta palavra-chave é opcional e é mutuamente exclusiva à palavra-chave deepcheck. As ferramentas do analisador estão disponíveis em PTFs de replicação em plataformas AS/300. Estas ferramentas coletam informações sobre seu ambiente de replicação e produzem um arquivo HTML que pode ser enviado para seu Representante de Serviços IBM para ajudar na determinação do problema. Para obter as ferramentas do AS/400, faça o download da PTF apropriada (por exemplo, para o produto 5769DP2, você precisa obter a PTF SF61798 ou sua substituição mais recente). Inclua o seguinte problema/solução à seção "Troubleshooting": Problema: O programa Apply faz um loop sem alterações replicantes; o rastreamento da tabela de Apply mostra STATUS=2. O conjunto de subscrição inclui múltiplas tabelas de origem. Para aprimorar a manipulação de pontos importantes de uma tabela de origem no conjunto, uma tabela de CCD interno é definida para essa tabela de origem, mas em um conjunto de subscrição diferente. As atualizações são feitas à tabela de origem mas o processo Apply que povoa a interna de CCD interno executa assincronamente (por exemplo, o programa Apply pode não ser iniciado ou um evento não disparado, e assim por diante). O programa Apply que replica atualizações da tabela de origem para a tabela de destino faz um loop porque está aguardando pela tabela de CCD interno ser atualizada. Para interromper o loop, inicie o programa Apply (ou dispare o evento que causa replicação) para a tabela de CCD interno. O programa Apply preencherá a tabela de CCD interno e permite que o programa Apply em loop processe alterações de todas as tabelas de origem. Uma situação similar poderia ocorrer em um conjunto de subscrição que contém tabelas de origem com tabelas de CCD interno que são preenchidas por múltiplos programas Apply. ------------------------------------------------------------------------ 12.10 Capítulo 9. Capture and Apply para AS/400 Na página 178, "A note on work management" deve ser lida da seguinte maneira: Você pode alterar as definições padrão ou fornecer suas próprias definições. Se você criar sua própria descrição de subsistema, você deve nomear o subsistema QZSNDPR e criá-lo em uma biblioteca diferente de QDPR. Consulte "OS/400 Work Management V4R3", SC41-5306 para mais informações sobre a alteração destas definições. Inclua o seguinte na página 178, "Verifying and customizing your installation of DB2 DataPropagator for AS/400": Se você tiver problemas com a contenção de bloqueios devido ao alto volume de transações, você pode aumentar o limite de tempo de espera padrão de 30 para 120. Você pode alterar o job toda vez que o job Capture inicia ou você pode usar o seguinte procedimento para alterar o valor do limite de tempo de espera de todos os jobs sendo executados no seu subsistema: 1. Emita o seguinte comando para criar um novo objeto de classe duplicando QGPL/QBATCH: CRTDUPOBJ OBJ(QBATCH) FROMLIB(QGPL) OBJTYPE(*CLS) TOLIB(QDPR) NEWOBJ(QZSNDPR) 2. Altere o valor do limite do tempo de espera da nova classe criada (por exemplo, para 300 segundos): CHGCLS CLS(QDPR/QZSNDPR) DFTWAIT(300) 3. Atualize a entrada de roteamento na descrição do subsistema QDPR/QZSNDPR para usar a nova classe criada: CHGRTGE SBSD(QDPR/QZSNDPR) SEQNBR(9999) CLS(QDPR/QZSNDPR) |Na página 194, "Utilizando a rotina de saída do receptor de diário |de exclusão" incluirá esta sentença: Se você remover o registro da |rotina de saída do receptor de diário de exclusão, certifique-se de que todos |os diários utilizados para as tabelas de origem tenham |DLTRCV(*NO). Na página 195, os parâmetros do comando ADDEXITPGM deveriam ser: ADDEXITPGM EXITPNT(QIBM_QJO_DLT_JRNRCV) FORMAT(DRCV0100) PGM(QDPR/QZSNDREP) PGMNBR(*LOW) CRTEXITPNT(*NO) PGMDTA(65535 10 QSYS) ------------------------------------------------------------------------ 12.11 Capítulo 10. Capture and Apply para OS/390 No Capítulo 10, os seguintes parágrafos são atualizados: |12.11.1 Pré-requisitos para DB2 DataPropagator para OS/390 |Você deve ter o DB2 para OS/390 Versão 5, o DB2 para OS/390 Versão 6 ou o |DB2 para OS/390 Versão 7 para executar o DB2 DataPropagator para OS/390 Versão |7 (V7). |12.11.2 Esquemas de Codificação do UNICODE e ASCII no OS/390 |O DB2 DataPropagator para OS/390 V7 suporta esquemas de codificação UNICODE |e ASCII. Para explorar os novos esquemas de codificação, você deve ter |o DB2 para OS/390 V7 e deve criar ou converter manualmente as tabelas de |origem, de destino e de controle do DB2 DataPropagator conforme descrito nas |seções a seguir. Entretanto, o ambiente de replicação existente |funcionará com o DB2 DataPropagator para OS/390 V7 mesmo se você não modificar |quaisquer esquemas de codificação. |12.11.2.1 Escolhendo um Esquema de Codificação |Se as tabelas de origem, de CD e de destino utilizarem o mesmo esquema de |codificação, você poderá minimizar a necessidade para conversões de dados em |seu ambiente de replicação. Quando você escolher os esquemas de |codificação para as tabelas, siga a única regra do CCSID: Os dados de |caracteres em um table space podem ser codificados em ASCII, UNICODE ou |EBCDIC. Todas as tabelas dentro de um table space devem utilizar o |mesmo esquema de codificação. O esquema de codificação de todas as |tabelas em uma instrução SQL deve ser o mesmo. Além disso, todas as |tabelas que você utiliza em exibições e junções devem utilizar o mesmo esquema |de codificação. |Se você não seguir a única regra do CCSID, o DB2 detectará a violação e |retornará o SQLCODE -873 durante a ligação ou a execução. Quaisquer |tabelas que devem ser ASCII ou UNICODE dependem da configuração do |cliente/servidor. Especificamente, siga essas regras quando você optar |por codificar os esquemas para as tabelas: | * |As tabelas de origem e de destino no DB2 para OS/390 podem ser EBCDIC, |ASCII ou UNICODE. Elas podem ser copiadas de ou para as tabelas que têm |o mesmo ou diferente esquema de codificação em qualquer DBMS suportado |(família do DB2 ou não-DB2 com DataJoiner). * |Em um servidor de origem DB2 para OS/390, todas as tabelas de controle do |CD, do UOW, de registro e de retirada no mesmo servidor devem utilizar o mesmo |esquema de codificação. Para garantir essa consistência, especifique |sempre explicitamente o esquema de codificação. * |Todas as tabelas de controle (ASN.IBMSNAP_SUBS_xxxx) no mesmo |servidor de controle devem utilizar o mesmo esquema de codificação. * |Outras tabelas de controle podem utilizar qualquer esquema de |codificação; entretanto, recomenda-se que a tabela |ASN.IBMSNAP_CRITSEC permaneça EBCDIC. | |12.11.2.2 Definindo Esquemas de Codificação |Para especificar o esquema de codificação correto para as tabelas, |modifique o SQL que é utilizado para gerar as tabelas: | * |Crie novas tabelas de origem e de destino com o esquema de codificação |correto ou altere os esquemas de codificação das tabelas de destino e de |origem existentes. Recomenda-se que você páre os programas Capture e |Apply antes de alterar o esquema de codificação de tabelas existentes e, |posteriormente, que você inicialize a frio o programa Capture e reinicie o |programa Apply. para alterar o esquema de codificação de tabelas |existentes: | 1. |Use o utilitário Reorg para copiar a tabela existente. 2. |Elimine a tabela existente. 3. |Recrie a tabela especificando o novo esquema de codificação. 4. |Use o utilitário Load para carregar os dados antigos na nova |tabela. | |Consulte o DB2 Universal Database |for OS/390 Utility Guide and Reference para obter mais informações sobre |os utilitários Load e Reorg. * |Crie novas tabelas de controle com o esquema de codificação correto ou |modifique o esquema de codificação para aqueles existentes. |DPCNTL.MVS é enviado com o DB2 para OS/390 no |sqllib\samples\repl e ele contém várias instruções CREATE TABLE que |criam as tabelas de controle. Para aquelas tabelas que precisam ser |ASCII ou UNICODE (por exemplo, ASN.IBMSNAP_REGISTER e |ASN.IBMSNAP_PRUNCNTL), inclua a palavra-chave CCSID ASCII ou CCSID |UNICODE, conforme mostrado no exemplo a seguir. |CREATE TABLE ASN.IBMSNAP_PRUNCNTL ( | TARGET_SERVER CHAR( 18) NOT NULL, | TARGET_OWNER CHAR( 18) NOT NULL, | TARGET_TABLE CHAR( 18) NOT NULL, | SYNCHTIME TIMESTAMP, | SYNCHPOINT CHAR( 10) FOR BIT DATA, | SOURCE_OWNER CHAR( 18) NOT NULL, | SOURCE_TABLE CHAR( 18) NOT NULL, | SOURCE_VIEW_QUAL SMALLINT NOT NULL, | APPLY_QUAL CHAR( 18) NOT NULL, | SET_NAME CHAR( 18) NOT NULL, | CNTL_SERVER CHAR( 18) NOT NULL, | TARGET_STRUCTURE SMALLINT NOT NULL, | CNTL_ALIAS CHAR( 8) | ) CCSID UNICODE |DATA CAPTURE CHANGES IN TSSNAP02; |Para modificar as tabelas de controle e do CD existentes, use os |utilitários Reorg e Load. * |Quando você cria novas origens de replicação ou conjuntos de assinatura, |modifique o arquivo SQL gerado pela ferramenta de administração para |especificar o esquema de codificação correto. O SQL possui várias |instruções CREATE TABLE que são utilizadas para criar as tabelas de CD e de |destino para origem de replicação e conjunto de assinatura, |respectivamente. Inclua a palavra-chave CCSID ASCII ou CCSID UNICODE |onde apropriado. Por exemplo: |CREATE TABLE user1.cdtable1 ( | employee_name varchar, | employee_age decimal | ) CCSID UNICODE; |O DB2 UDB for OS/390 SQL Reference contém mais informações |sobre o CCSID. | ------------------------------------------------------------------------ 12.12 Capítulo 11. Capture and Apply para plataformas UNIX |12.12.1 Definindo Variáveis de Ambiente para Capture and Apply no UNIX e Windows |Se você criou o banco de dados de origem com uma página de códigos |diferente do valor da página de códigos padrão, defina a variável de ambiente |DB2CODEPAGE para essa página de códigos. Consulte o DB2 |Administration Guide para obter informações sobre a derivação de valores |da página de códigos antes de definir o DB2CODEPAGE. Capture deve ser |executado na mesma página de códigos que o banco de dados para o qual ele está |capturando dados. O DB2 deriva a página de códigos Capture do ambiente |ativo, onde Capture está sendo executado. Se DB2CODEPAGE não estiver |definido, o DB2 derivará o valor da página de códigos do sistema |operacional. O valor derivado do sistema operacional estará correto |para Capture, se você utilizou a página de códigos padrão ao criar o banco de |dados. ------------------------------------------------------------------------ 12.13 Capítulo 14. Estruturas de Tabelas Na página 339, inclua a seguinte sentença à descrição da coluna STATUS para o valor "2": Se você usar tabelas de CCD interno e obtém repetidamente o valor "2" na coluna de status da tabela de rastreio de Apply, vá para "Capítulo 8: Problem Determination" e consulte "Problem: The Apply program loops without replicating changes, the Apply trail table shows STATUS=2". ------------------------------------------------------------------------ 12.14 Capítulo 15. Mensagens de Capture and Apply |A mensagem ASN0017E deve ser lida: |ASN0017E |O programa Capture encontrou um erro interno grave e não pôde emitir |a mensagem de erro correta. O nome da rotina é "rotina". O |código de retorno é "código de _retorno". A mensagem ASN1027S deve ser incluída: ASN1027S Existem muitas colunas de objetos grandes (LOB) especificadas. O código de erro é "". Explicação: Muitas colunas de objetos grande (BLOB, CLOB ou DBCLOB) são especificadas para um membro do conjunto de assinaturas. O número máximo de colunas permitido é 10. Resposta do usuário: Remova as colunas de objetos grandes em excesso do membro do conjunto de assinaturas. A mensagem ASN1048E deve ser lida da seguinte maneira: ASN1048E A execução de um ciclo Apply falhou. Consulte a tabela de trilha Apply para obter os detalhes completos: "" Explicação: Um ciclo Apply falhou. Na mensagem, "" identifica "", "" e "". Resposta do usuário: Verifique os campos APPERRM na tabela da trilha de auditoria, para determinar por que o ciclo Apply falhou. ------------------------------------------------------------------------ 12.15 Apêndice A. Iniciando os Programas Capture and Apply de um Aplicativo Na página 399 do manual, alguns erros aparecem nos comentários da rotina Sample que inicia os programas Capture and Apply; no entanto, o código da amostra está correto. A última parte da amostra pertence aos parâmetros de Apply, apesar dos comentários indicar que ela pertence aos parâmetros de Capture. Você pode obter amostras da API de Apply e Capture, e seus respectivos arquivos "make", nos seguintes diretórios: Para NT - sqllib\samples\repl Para UNIX - sqllib/samples/repl ------------------------------------------------------------------------ Manual e Referência do System Monitor ------------------------------------------------------------------------ 13.1 db2ConvMonStream Nas Notas de Uso, a estrutura do tipo de fluxo de dados da variável de captura instantânea SQLM_ELM_SUBSECTION deve ser qlm_subsection. ------------------------------------------------------------------------ Manual da Solução de Problemas ------------------------------------------------------------------------ |14.1 Iniciando o DB2 no Windows 95, Windows 98 e Windows ME quando o usuário não iniciou sessão | | |Para que um comando db2start seja bem sucedido em um ambiente Windows 95, |Windows 98, ou Windows Millennium Edition (ME), é necessário: | * |Efetuar o logon usando a janela de logon do Windows ou a janela de logon |da Rede do Windows * |Emitir o comando db2logon (consulte a nota (NOTE_1) para obter informações sobre o comando |db2logon). | |E mais, a ID do usuário que é especificada durante o logon ou para o |comando db2logon deve corresponder às exigências do DB2 (veja a |nota (NOTE2)). |Quando o comando db2start inicia, ele primeiro verifica se um |usuário que efetou o logon.Se um usuário efetuou o logon, o comando |db2start usa essa ID do usuário.Se um usuário não efetuou o |logon, o comando db2start verifica se um comando |db2logon foi executado, e, se foi, o comando db2start |usa a ID do usuário que foi especificada para o comando |db2logon.Se o comando db2start não puder |encontrar uma ID do usuário válida, o comando termina. |Durante a instalação do DB2 Universal Database Versão 7 no Windows 95, |Windows 98 e Windows ME, o software de instalação, por padrão, inclui um |atalho para a pasta Iniciar que executa o comando db2start quando o |sistema é inicializado (consulte a nota (NOTE_1) para obter maiores informações). Se o usuário do |sistema não tiver efetuado logon nem emitido o comando db2logon, o |comando db2start encerrará. |Se você ou seus usuários não efetuam logon normalmente no Windows ou em uma |rede, você pode ocultar a exigência de emitir o comando db2logon |antes de um comando db2start executando comandos em um arquivo de |lote, como a seguir: | 1. |Crie um arquivo em lote que emita o comando db2logon seguido |pela comando db2start.exe.Por exemplo: | @echo off | db2logon db2local /p:password | db2start | cls | exit 2. |Nomeie o arquivo batch db2start.bat, e armazene-o no |diretório /bin que está sob a unidade e caminho onde você instalou |o DB2.Você armazena o arquivo batch neste local para garantir que o |sistema operacional pode encontrar o caminho para o arquivo batch. |A unidade e o caminho onde o DB2 está instalado são armazenados na variável |de registro do DB2, DB2PATH. Para encontrar a unidade e o caminho onde |você instalou o DB2, emita o seguinte comando: | db2set -g db2path |Assuma que o comando db2set retorne o valor |c:\sqllib. Nesta situação, você iria armazenar o |arquivo batch da seguinte maneira: | c:\sqllib\bin\db2start.bat 3. |Para iniciar o DB2 quando o sistema é inicializado, você deveria executar |o arquivo batch a partir de um atalho na pasta Iniciar. Você tem duas |opções: | o |Modifique o atalho que é criado pelo programa de instalação do DB2 para |executar o arquivo batch ao invés de db2start.exe.No |exemplo anterior, o atalho deveria agora executar o arquivo batch |db2start.bat.O atalho que é criado pelo programa de |instalação do DB2 é chamado DB2 - DB2.lnk, e está localizado |em c:\WINDOWS\Menu Iniciar\Programas\Iniciar\DB2 - |DB2.lnk na maioria dos sistemas. o |Inclua seu próprio atalho para executar o arquivo batch e exclua o atalho |que é incluído pelo programa de instalação do DB2. Use o seguinte |comando para excluir o atalho do DB2: | del "C:\WINDOWS\Start Menu\Programs\Startup\DB2 - DB2.lnk" |Se você decidir usar seu próprio atalho, você deve definir o atributo |fechar ao sair para o atalho.Se você não definir este |atributo, o prompt de comando do DOS é deixado na barra de tarefas mesmo |depois que o comando db2start foi concluído com sucesso.Para |evitar que a janela do DOS permaneça aberta durante o processo de |db2start, você pode criar este atalho (e a janela do DOS em que ele |é executado) definido para ser executado minimizado. |Nota: Como uma alternativa para iniciar o DB2 durante a inicialização do sistema, o |DB2 pode ser iniciado antes da execução de qualquer aplicativo que utiliza o |DB2. Consulte a nota (NOTE5) para detalhes. | | | |Se você usar um arquivo batch para emitir o comando db2logon |antes do comando db2start ser executado, e seus usuários |ocasionalmente efetuam logon, o comando db2start continuará |trabalhando, a única diferença é que o DB2 usará a ID de usuário do usuário |logado.Consulte a nota (NOTE_1) para detalhes adicionais. |Notas: 1. |O comando db2logon simula um logon de |usuário.O formato do comando db2logon é: | db2logon userid /p:password |A ID do usuário especificada no comando deve satisfazer as exigências de |nomeação do DB2 (consulte a nota (NOTE2) para mais informações). Se o comando for emitido sem |uma ID do usuário e senha, uma janela é aberta para solicitar ao usuário a |fornecer a ID do usuário e senha. Se o único parâmetro fornecido for |uma ID do usuário, o usuário não será perguntado por uma senha; sob |certas condições, uma senha será exigida, como descrito abaixo. |Os valores da ID do usuário de da senha que são definidos pelo comando |db2logon só são usados se a o usuário não efetuar logon através da |janela de logon do Windows ou da janela de logon da Rede do Windows.Se |o usuário efetuou o logon, e um comando db2logon foi emitido, a ID |do usuário do comando db2logon será usada para todas as ações do |DB2, mas a senha especificada no comando db2logon será |ignorada. |Quando o usuário não tiver efetuado logon na janela de logon do Windows ou |na janela de logon da Rede do Windows, a ID do usuário e a senha fornecidas |através do comando db2logon são usadas da seguinte maneira: | o |O comando db2start usa a ID do usuário ao ser iniciado e não |requer uma senha. o |Na ausência de um qualificador de alto nível para ações como a criação de |uma tabela, a ID do usuário é usada como o qualificador de alto nível. |Por exemplo: | 1. |Se você emitir o seguinte: db2logon db2local 2. |E depois emitir o seguinte: create table tab1 |A tabela é criada com um qualificador de alto nível |db2local.tab1. | |Você deve usar uma ID do usuário que seja igual ao nome do esquema das suas |tabelas e outros objetos. o |Quando o sistema age como um cliente de um servidor, e o usuário emite uma |instrução CONNECT sem uma ID do usuário e uma senha (por exemplo, CONNECT TO |TEST) e a autenticação está definida como servidor, a ID do usuário |e a senha do comando db2logon são usadas para validar o usuário no |servidor remoto.Se o usuário se conecta com uma ID do usuário e uma |senha explícitas (por exemplo, CONNECT TO TEST USER ID do usuário |USING senha), os valores que são especificados para a instrução |CONNECT são usados. | 2. |Na Versão 7, a ID do usuário usada para efetuar o logon ou |especificada para o comando db2logon deve atender aos seguintes |requisitos do DB2: | o |Não pode ser qualquer das seguintes: USERS, ADMINS, GUESTS, PUBLIC, |LOCAL, ou qualquer palavra reservada do SQL que esteja listada na SQL Reference. o |Não pode começar com: SQL, SYS ou IBM o |Os caracteres podem incluir: | + |A a Z (Windows 95, Windows 98 e Windows ME suportam IDs do usuário com |distinção entre maiúsculas e minúsculas) + |0 a 9 + |@, #, ou $ | | 3. |Você pode prevenir a criação do atalho db2start na |pasta Iniciar durante uma instalação interativa personalizada, ou se você |estiver realizando uma instalação de arquivo de respostas e especificar a |opção DB2.AUTOSTART=NO.Se você usar estas opções, não haverá um |atalho db2start na pasta Iniciar, e você deverá incluir seu próprio atalho |para executar o arquivo db2start.bat. 4. |No Windows 98 e no Windows ME está |disponível uma opção que você pode utilizar para especificar um ID do usuário |que sempre inicia sessão quando o Windows 98 ou o Windows ME é |iniciado. Nesta situação, a janela de logon do Windows não |aparecerá. Se você usar esta opção, o usuário inicia sessão e o comando |db2start será bem-sucedido se o ID do usuário corresponder às |exigências do DB2 (consulte a nota (NOTE2) para obter detalhes). Se você não usar esta opção, o |usuário será sempre solicitado com uma janela de logon. Se o usuário |cancelar esta janela sem efetuar logon, o comando db2start irá |falhar a não ser que o comando db2logon tenha sido previamente |emitido, ou chamado pelo arquivo batch, como descrito acima. 5. |Se você não iniciar o DB2 durante uma inicialização do sistema, |o DB2 pode ser iniciado por um aplicativo. Você pode executar o arquivo |db2start.bat como parte da inicialização de aplicativos que |utilizam o DB2.Usando este método, o DB2 somente será iniciado quando o |aplicativo que irá utilizá-lo for iniciado. Quando o usuário sai do |aplicativo, um comando db2stop pode ser emitido para interromper o |DB2.Seus aplicativos de negócios podem iniciar o DB2 desta maneira, se |o DB2 não for iniciado durante a inicialização do sistema. |Para utilizar o aplicativo DB2 Synchronizer ou chamar as APIs de |sincronização a partir de seu aplicativo, o DB2 deve ser iniciado se os |scripts que são baixados para execução contêm comandos que operam contra uma |instância local ou um banco de dados local. Estes comandos podem estar |em scripts de banco de dados, scripts de instância, ou embutidos em scripts do |sistema operacional (SO). Se um script do SO não contêm comandos do |Processador da Linha de Comandos ou APIs do DB2 que usam uma instância ou um |banco de dados, ele pode ser executado sem o DB2 estar iniciado. Como |pode ser difícil dizer antecipadamente que comandos serão executados a partir |de seus scripts durante o processo de sincronização, o DB2 deve normalmente |ser iniciado antes da sincronização começar. |Se você estiver chamando o comando db2sync ou as APIs de |sincronização a partir de seus aplicativos, você deve iniciar o DB2 durante a |inicialização do seu aplicativo.Se seus usuários forem estar usando o |atalho do DB2 Synchronizer na pasta DB2 para Windows para iniciar a |sincronização, o atalho do DB2 Synchronization deve ser modificado para |executar um arquivo db2sync.bat.O arquivo batch deve |conter os seguintes comandos para garantir que o DB2 esteja sendo executado |antes da sincronização começar: | @echo off | db2start.bat | db2sync.exe | db2stop.exe | cls | exit |Neste exemplo, assume-se que o arquivo db2start.bat chama |os comandos db2logon e db2start como descrito |acima. |Se você decidir iniciar o DB2 quando o aplicativo iniciar, garanta que a |instalação do DB2 não inclua um atalho na pasta Iniciar para iniciar o |DB2. Consulte a nota (NOTE3) para detalhes. | ------------------------------------------------------------------------ |14.2 Capítulo 2. Detectando Problemas no DB2 Universal Database Server | | | |Na seção "Bloqueio de Interbloqueios", na subseção "Aplicativos |Lentos ou que Parecem Interrompidos", altere a descrição em "Esperas de |bloqueios ou interbloqueios não são causados pelo próximo bloqueio da |chave" para : |Próximo bloqueio da chave garante o nível de isolamento de |Leitura Repetida (RR) bloqueando automaticamente a próxima chave para todas as |instruções INSERT e DELETE e o próximo valor chave superior acima do resultado |definido para as instruções SELECT. Para as instruções UPDATE que |alteram as partes da chave de um índice, a chave do índice original é excluída |e o novo valor da chave é inserido. O próximo bloqueio da chave é feito |na inserção e na exclusão da chave. É requerido garantir o ANSI e o |SQL92 padrão RR e o DB2 padrão. |Examine as informações instantâneas para o aplicativo. Se parecer |que o problema é com o próximo bloqueio da chave, você poderá ativar a opção |DB2_RR_TO_RS, se nenhum de seus aplicativos contarem com a Leitura Repetida |(RR) e se for aceitável para varreduras saltarem exclusões |não-consolidadas. |Quando o DB2_RR_TO_RS está ativado, o procedimento do RR não pode ser |garantido para varreduras em tabelas do usuário porque o bloqueio da chave não |é feito durante a inserção e a exclusão da chave do índice. As tabelas |de catálogos não são afetadas por esta opção. |A outra alteração no procedimento é que com o DB2_RR_TO_RS ativado, as |varreduras saltarão linhas que foram excluídas mas não consolidadas, embora a |linha pode ter sido qualificada para a varredura. |Por exemplo, considere o cenário onde a transação A exclui a linha com |coluna1=10 e a transação B executa uma varredura onde coluna1>8 e |coluna1<12. |Com DB2_RR_TO_RS desligado, a transação B aguardará a transação A |consolidar ou retroceder. Se ela retroceder, a linha com a coluna1=10 |será incluída no conjunto de resultados da consulta da transação B. |Com DB2_RR_TO_RS ativado, a transação B não aguardará a transação A |consolidar ou retroceder. Ela receberá imediatamente resultados da |consulta que não incluem a linha excluída. |Não utilize esta opção se você requer o ANSI e SQL92 padrão RR ou se você |não quiser varreduras para saltar as exclusões não-consolidadas. ------------------------------------------------------------------------ Usando o DB2 Universal Database em Plataformas de 64 bits ------------------------------------------------------------------------ 15.1 Capítulo 5. Configuração |15.1.1 LOCKLIST |As informações a seguir devem ser incluídas na Tabela 2. |Parâmetro Limite superior anterior Limite superior atual |LOCKLIST 60000 524288 15.1.2 shmsys:shminfo_shmmax Os usuários do DB2 no sistema operacional Solaris de 64 bits devem aumentar o valor de "shmsys:shminfo_shmmax" em /etc/system, se necessário, para ser possível alocar um conjunto de memória compartilhada grande do banco de dados. O manual DB2 for UNIX Quick Beginnings recomenda a definição desse parâmetro em "90% da memória física RAM na máquina, em bytes".Esta recomendação também é válida para implementações de 64 bits. Contudo, existe um problema com a seguinte recomendação no manual DB2 for UNIX Quick Beginnings: Para sistemas de 32 bits com mais de 4 GB de RAM (até 64 GB no total é possível no sistema operacional Solaris), se um usuário definir o valor shmmax com um número maior que 4 GB e estiver usando um kernel de 32 bits, o kernel enxergará somente os 32 bits mais baixos do número, resultando, por vezes, em um valor muito pequeno para shmmax. ------------------------------------------------------------------------ 15.2 Capítulo 6. Restrições Não existe atualmente suporte de LDAP para sistemas operacionais de 64 bits. Não é possível criar bancos de dados de 32 e 64 bits no mesmo caminho. Por exemplo, se um banco de dados de 32 bits existir em , então: db2 create db em Se emitido de uma instância de 64 bits, falhará com "SQL10004C Ocorreu um erro de E/S durante o acesso ao diretório do banco de dados." ------------------------------------------------------------------------ |Administração e programação do XML Extender |As Notas do Release do IBM DB2 XML Extender podem ser encontradas no site |DB2 XML da Web: http://www-4.ibm.com/software/data/db2/extenders/xmlext/library.html ------------------------------------------------------------------------ |MQSeries |Esta seção descreve como o DB2 e o MQSeries podem ser utilizados para |construir aplicativos que combinam acesso a mensagens e ao banco de |dados. O foco nesta seção será um conjunto de funções, semelhantes às |Funções Definidas pelo Usuário (UDFs), que podem ser opcionalmente ativadas no |DB2 Universal Database, Versão 7.2. Utilizar estas funções |básicas, é possível para suportar um grande intervalo de aplicativos, da |simples notificação de eventos para armazenamento de dados. |Para obter mais informações sobre os aplicativos de armazenamento de dados, |consulte 22.15, Integração do MQSeries com o Centro de Data Warehouse ------------------------------------------------------------------------ |17.1 Instalação e Configuração para as Funções do DB2 MQSeries |Esta seção descreve como configurar um ambiente DB2 para utilizar as |Funções do DB2 MQSeries. Na conclusão bem-sucedida do procedimento a |seguir, você conseguirá utilizar as Funções do DB2 MQSeries do SQL. Uma |descrição dessas funções podem ser encontradas na seção Referência de SQL das |Notas do Release. Informações adicionais, incluindo a última |documentação, dicas e sugestões podem ser encontradas em http://www.ibm.com/software/data/integration/MQSeries. |O procedimento básico para configuração e ativação das Funções do DB2 |MQSeries é: | 1. |Instale o MQSeries. 2. |Instale o MQSeries AMI. 3. |Ative e configure as Funções do DB2 MQSeries. | |Além disso, para utilizar as capacidades publicar/associar fornecidas pelas |Funções do DB2 MQSeries, você também deve instalar o MQSeries Integrator ou o |MQSeries Publish/Subscribe Functions. As informações sobre o MQSeries |Integrator podem ser encontradas em http://www.ibm.com/software/ts/mqseries/integrator. |As informações sobre o recurso do MQSeries Publish/Subscribe podem ser |encontradas em http://www.ibm.com/software/ts/mqseries/txppacs |na categoria 3. |17.1.1 Instalar o MQSeries |A primeira etapa é assegurar-se de que o MQSeries Versão 5.2 esteja |instalado em seu servidor DB2. Se essa versão do MQSeries já estiver |instalada, passe para a próxima etapa, "Instalar o MQSeries AMI." O DB2 |Versão 7.2 inclui uma cópia do servidor MQSeries a ser utilizada com o |DB2. As instruções específicas da plataforma para instalação do |MQSeries ou para atualização de uma instalação existente do MQSeries podem ser |encontradas em um manual Quick Beginnings específico da plataforma em http://www.ibm.com/software/ts/mqseries/library/manuals. |Certifique-se de configurar um gerenciador de filas padrão à medida que você |efetua o processo de instalação. |17.1.2 Instalar o MQSeries AMI |A próxima etapa é instalar o MQSeries Application Messaging Interface |(AMI). Essa é uma extensão para as interfaces de programação do |MQSeries que fornece uma separação limpa de tarefas administrativas e de |programação. As Funções do DB2 MQSeries requerem a instalação dessa |interface. Se o MQSeries AMI já estiver instalado em seu servidor DB2, |passe para a próxima etapa, "Ativar as Funções do DB2 MQSeries." Se o |MQSeries AMI não estiver instalado, você poderá fazer isso do pacote de |instalação fornecido com o DB2 7.2 ou fazendo download de uma cópia da |AMI do site MQSeries Support Pacs da web em |http://www.ibm.com/software/ts/mqseries/txppacs. A |AMI pode ser encontrada na "Categoria 3 - Extensões do Produto." |Para conveniência, fornecemos uma cópia do MQSeries AMI com o DB2. Esse |arquivo está localizado no diretório sqllib/cfg. O nome do |arquivo é dependente do sistema operacional: | AIX Versão 4.3 e superior ma0f_ax.tar.Z HP-UX ma0f_hp.tar.Z Ambiente Operacional Solaris ma0f_sol7.tar.Z Windows de 32 bits ma0f_nt.zip |Siga o processo de instalação normal da AMI conforme destacado no arquivo |readme da AMI contida na imagem de instalação compactada. |17.1.3 Ativar as Funções do DB2 MQSeries |Durante esta etapa, você configurará e ativará um banco de dados para as |Funções do DB2 MQSeries. O enable_MQFunctions utility é um |comando flexível que primeiro verifica se o ambiente correto do MQSeries foi |configurado e instala e cria uma configuração padrão para as funções do DB2 |MQSeries, ative o banco de dados especificado com estas funções e confirme se |a configuração funciona. | 1. |Para Windows NT ou Windows 2000, vá para a etapa 5. 2. |Definindo Grupos no UNIX: Se você estiver ativando estas funções no |UNIX, deverá primeiro incluir o proprietário da instância do DB2 |(freqüentemente db2inst1) e o ID do usuário associado aos UDFs limitados |(freqüentemente db2fenc1) no grupo mqm do MQSeries. Isso é necessário |para as funções do DB2 para acessar o MQSeries. 3. |Definir as Variáveis de Ambiente do DB2 no UNIX: Inclua a variável |de ambiente AMT_DATA_PATH na lista entendida pelo DB2. Você pode editar |o arquivo $INSTHOME/sqllib/profile.env, inclua AMT_DATA_PATH |em DB2ENVLIST. O comando db2set também pode ser |utilizado. 4. |Em UNIX, reinicie a instância do banco de dados: Para as alterações |da variável de ambiente se efetivarem, a instância do banco de dados deve ser |reiniciada. 5. |Altere o diretório para $INSTHOME/sqllib/cfg para UNIX ou |%DB2PATH%/cfg no Windows. 6. |Execute o comando enable_MQFunctions para configurar e ativar |um banco de dados para as Funções do DB2 MQSeries. Consulte 17.6, enable_MQFunctions para obter uma descrição completa desse comando. |Alguns exemplos comuns são determinados abaixo. Após a conclusão |bem-sucedida, o banco de dados especificado terá que ser ativado e a |configuração testada. 7. |Para testar estas funções utilizando o Processador da Linha de Comandos, |emita os comandos a seguir após ter conectado-se ao banco de dados |ativado: |values DB2MQ.MQSEND('a test') |values DB2MQ.MQRECEIVE() A primeira instrução enviará a mensagem "a test" para a fila |DB2MQ_DEFAULT_Q e a segunda a receberá novamente. | |Nota: Como resultado da execução do enable_MQFunctions, um ambiente |MQSeries padrão será estabelecido. O gerenciador de filas do MQSeries |DB2MQ_DEFAULT_MQM e a fila padrão DB2MQ_DEFAULT_Q será criada. Os |arquivos amt.xml, amthost.xml e |amt.dtd serão criados, se ainda existirem no diretório |indicado pelo AMT_DATA_PATH. Se um arquivo |amthost.xml não existir e não contiver uma definição para |connectionDB2MQ, uma linha será incluída no arquivo com as informações |apropriadas. Uma cópia do arquivo original será salva como |DB2MQSAVE.amthost.xml. | ------------------------------------------------------------------------ |17.2 Estilos de Mensagens do MQSeries |As funções do DB2 MQSeries suportam três modelos de mensagens: |datagramas, publicar/associar (p/s) e pedido/resposta (r/r). |As mensagens enviadas como datagramas são enviadas para um único destino |sem resposta esperada. No modelo p/s, um ou mais publicadores enviam |uma mensagem para um serviço de publicação que distribui a mensagem para um ou |mais assinantes. O pedido/resposta é semelhante ao datagrama, mas o |emissor espera receber uma resposta. ------------------------------------------------------------------------ |17.3 Estrutura da Mensagem |O próprio MQSeries não administra ou suporta nenhuma estrutura específica |da mensagem que ele transporta. |Outros produtos, tal como MQSeries Integrator (MQSI) oferecem suporte para |mensagens formadas como cadeias C ou Cobol ou como XML. As mensagens |estruturadas no MQSI são definidas por um repositório de mensagens. |Tipicamente, as mensagens XML têm uma estrutura de mensagens de auto-descrição |e também podem ser gerenciadas através do repositório. As mensagens |também podem ser desestruturadas, requerendo o código do usuário para analisar |ou construir o conteúdo da mensagem. Tais mensagens, muitas vezes, são |semi-estruturadas, isto é, elas utilizam posições de byte ou delimitadores |fixos para separar os campos dentro de uma mensagem. O suporte para |tais mensagens semi-estruturadas é fornecido pelo Assistente Assist do |MQSeries. O suporte para mensagens XML é fornecido através de alguns |novos recursos para o DB2 XML Extender. ------------------------------------------------------------------------ |17.4 Visão Geral Funcional do MQSeries |Um conjunto de funções do MQSeries é fornecido com o DB2 UDB Versão |7.2, para permitir que instruções SQL inclua operações de |mensagens. Isso significa que esse suporte está disponível para |aplicativos gravados em qualquer linguagem suportada, por exemplo, C, Java, |SQL utilizando qualquer uma das interfaces do banco de dados. Todos os |exemplos mostrados abaixo são em SQL. Esse SQL pode ser utilizado de |outras linguagens de programação em todas as maneiras padrão. Todos os |estilos de mensagens do MQSeries descritos acima são suportados. Para |obter mais informações sobre as funções do MQSeries, consulte a seção |Referência de SQL das Notas do Release. |Em uma configuração básica, um servidor MQSeries é localizado na máquina |servidora do banco de dados junto com o DB2. As funções do MQSeries |estão instaladas no DB2 e fornecem acesso ao servidor MQSeries. Os |clientes do DB2 podem ser localizados em qualquer máquina acessível para o |servidor do DB2. Vários clientes podem concorrentemente acessar as |funções do MQSeries através do banco de dados. Através das funções |fornecidas, os clientes do DB2 podem executar operações de mensagens dentro de |instruções SQL. Essas operações de mensagens permitem que aplicativos |do DB2 se comuniquem entre eles ou com outros aplicativos do MQSeries. |O comando enable_MQFunctions é utilizado para ativar um banco de |dados DB2 para as funções do MQSeries. Ele estabelecerá automaticamente |uma configuração padrão simples que os aplicativos do cliente podem utilizar |sem ação administrativa adicional. Para obter uma descrição, consulte |enable_MQFunctions e disable_MQFunctions. A configuração padrão permite |aos programadores de aplicativos uma maneira rápida para introdução e uma |interface mais simples para desenvolvimento. A funcionalidade adicional |pode ser configurada incrementalmente conforme necessário. |Exemplo 1: Para enviar uma mensagem simples utilizando a configuração |padrão, a instrução SQL seria: |VALUES DB2MQ.MQSEND('mensagem simples') |Isso enviará a mensagem mensagem simples para o gerenciador de |filas e para a fila do MQSeries especificados pela configuração padrão. |A Application Messaging Interface (AMI) do MQSeries fornece uma separação |limpa entre as ações de mensagens e as definições que ditam como essas ações |devem ser transportadas. Essas definições são mantidas em um arquivo de |repositório externo e gerenciadas utilizando a ferramenta AMI |Administration. Isso torna os aplicativos da AMI simples para |desenvolver e manter. As funções do MQSeries fornecidas com o DB2 são |baseadas na interface MQSeries da AMI. A AMI suporta o uso de um |arquivo de configuração externo, chamado o Repositório da AMI, para armazenar |as informações de configuração. A configuração padrão inclui um |Repositório da AMI do MQSeries configurado para uso com o DB2. |Os dois conceitos de chave na AMI do MQSeries, os pontos e as políticas de |serviço, são transportados nas funções do DB2 MQSeries. Um ponto de |serviço é um nó de extremidade lógico a partir do qual uma mensagem é enviada |ou recebida. No repositório da AMI, cada ponto de serviço é definido |com um nome de fila e gerenciador de filas do MQSeries. As políticas |definem a qualidade de opções de serviço que deve ser utilizada para uma |determinada operação de mensagens. As qualidades da chave de serviço |incluem a prioridade e a persistência da mensagem. Os pontos de serviço |padrão e as definições de política são fornecidos e podem ser utilizados pelos |desenvolvedores, para simplificar mais tarde seus aplicativos. O |exemplo 1 pode ser regravado como segue para especificar explicitamente o |ponto de serviço e o nome de política padrão: |Exemplo 2: |VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY', 'simple message') |As filas podem ser atendidas por um ou mais aplicativos no servidor, no |qual as filas e os aplicativos residem. Em muitas configurações, várias |filas serão definidas para suportarem aplicativos e objetivos |diferentes. Por esse motivo, muitas vezes é importante definir os |pontos de serviços diferentes quando criar pedidos do MQSeries. Esse é |demonstrado no seguinte exemplo: |Exemplo 3: |VALUES DB2MQ.MQSEND('ODS_Input', 'mensagem simples') | |Nota: Nesse exemplo, a política não é especificada e, dessa maneira, a política |padrão será utilizada. | |17.4.1 Limitações |O MQSeries fornece a capacidade para operações de mensagens e de bancos de |dados serem combinadas em uma única unidade de trabalho como uma transação |atômica. Esse recurso não é inicialmente suportado pelas Funções do |MQSeries no Unix e Windows. |Ao utilizar as funções de envio ou de recebimento, o comprimento máximo de |uma mensagem é de 4000 caracteres. Esse também é o tamanho máximo da |mensagem para publicação de uma mensagem que utiliza o MQPublish. |17.4.2 Códigos de Erros |Os códigos de retorno retornados pelas Funções do MQSeries podem ser |encontrados no Apêndice B do Manual MQSeries Application Messaging |Interface. ------------------------------------------------------------------------ |17.5 Cenários de Utilização |As Funções do MQSeries podem ser utilizadas em uma grande variedade de |cenários. Essa seção reexibirá alguns dos cenários mais comuns, |incluindo as Mensagens Básicas, a Conectividade do Aplicativo e a Publicação |de Dados. |17.5.1 Mensagens Básicas |A forma mais básica de mensagens com as Funções do MQSeries DB2 ocorre |quando todos os aplicativos do banco de dados conectam-se ao mesmo servidor do |DB2. Os cientes podem ser locais para o servidor do banco de dados ou |distribuídos em um ambiente de rede. |Em um cenário simples, o Cliente A invoca a função MQSEND para enviar uma |cadeia definida pelo usuário para a localização de serviço padrão. As |funções do MQSeries são executadas dentro do DB2 no servidor do banco de |dados. Em algum momento posterior, o Cliente B invoca a função |MQRECEIVE para remover a mensagem na cabeça da fila definida pelo serviço |padrão e retorna-a para o cliente. Novamente, as funções do MQSeries |para executar esse trabalho são executadas pelo DB2. |Os clientes do banco de dados podem utilizar mensagens simples de várias |maneiras. Alguns usos comuns para as mensagens são: | * |Coleção de dados -- As informações são recebidas na forma de mensagens, |possivelmente, de uma ou mais diversas origens de informações. As |origens das informações podem ser aplicativos comerciais tais como SAP ou |aplicativos desenvolvidos na empresa. Tais dados podem ser recebidos |das filas e armazenados em tabelas do banco de dados, para processamento ou |análise posterior. * |Distribuição da carga de trabalho -- Os pedidos de trabalho são enviados |para uma fila compartilhada por várias instâncias do mesmo aplicativo. |Quando uma instância está pronta para executar algum trabalho, ela recebe uma |mensagem da parte superior da fila que contém um pedido de trabalho para ser |executado. Utilizando essa técnica, várias instâncias podem |compartilhar a carga de trabalho representada por uma única fila de pedidos |agrupados. * |Sinalização de aplicativo -- Em uma situação onde vários processos |colaboram, as mensagens são freqüentemente utilizadas para coordenarem seus |esforços. Essas mensagens podem conter comandos ou pedidos para o |trabalho ser executado. Tipicamente, esse tipo de sinalização é |unidirecional; isto é, a pessoa que inicia a mensagem não espera uma |resposta. Consulte o 17.5.4.1, Comunicações de Pedido/Resposta para obter mais informações. * |Notificação de aplicativo -- A notificação é semelhante à sinalização em |que os dados são enviados de um iniciador sem expectativa de uma |resposta. Entretanto, tipicamente, a notificação contém dados sobre os |eventos de negócios que aconteceram.17.5.4.2, Publicar/Associar é uma forma mais avançada de notificação. | |O cenário a seguir estende o cenário simples descrito acima, para |incorporar mensagens remotas. Isto é, uma mensagem é enviada entre a |Máquina A e a Máquina B. A seqüência de etapas é a seguinte: | 1. |O Cliente do DB2 executa uma chamada MQSEND, especificando um serviço de |destino que foi definido para representar uma fila remota na Máquina B. 2. |As funções do MQSeries DB2 executam o trabalho atual do MQSeries de enviar |a mensagem. O servidor do MQSeries em uma Máquina A aceita a mensagem e |garante que ela a entregará para o destino definido pela definição de ponto de |serviço e pela configuração atual do MQSeries da Máquina A. O servidor |determina que esta é uma fila na Máquina B. Ele tenta entregar a |mensagem para o servidor do MQSeries na Máquina B, transparentemente, |repetindo conforme necessário. 3. |O servidor do MQSeries na Máquina B aceita a mensagem do servidor na |Máquina A e a coloca na fila de destino da Máquina B. 4. |Um cliente do MQSeries na Máquina B solicita a mensagem na cabeça da |fila. | |17.5.2 Enviando Mensagens |Utilizando MQSEND, um usuário ou um desenvolvedor do DB2 escolhe quais |dados enviar, para onde enviá-los e quando ele será enviado. Na |indústria, este é comumentemente chamado "Enviar e Esquecer," significando que |o emissor apenas envia uma mensagem, confiando nos protocolos de entrega |garantidos do MQSeries para assegurar-se de que a mensagem atinge seu |destino. Os exemplos a seguir ilustram isso. |Exemplo 4: Para enviar uma cadeia definida pelo usuário para o ponto |de serviço myplace com a política highPriority: |VALUES DB2MQ.MQSEND('myplace','highPriority','test') |Aqui, a política highPriority refere-se a uma política definida no |Repositório da AMI que define a prioridade do MQSeries para o nível mais alto |e talvez ajusta melhor outras qualidades de serviço, tal como |persistência. |O conteúdo da mensagem pode ser composto de qualquer combinação legal de |dados do SQL e especificados pelo usuário. Isso inclui funções |aninhadas, operadores e coletas. Por exemplo, determinado uma tabela |EMPLOYEE, com VARCHAR colunas LASTNAME, FIRSTNAME e DEPARTMENT, para enviar |uma mensagem que contém essas informações para cada empregado no DEPARTMENT |5LGA você fará o seguinte: |Exemplo 5: |SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT) |FROM EMPLOYEE | WHERE DEPARTMENT = '5LGA' |Se esta tabela também tiver uma coluna AGE inteira, ela poderá ser incluída |como segue: |Exemplo 6: |SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' | ' || DEPARTMENT|| ' ' || char(AGE)) | FROM EMPLOYEE | WHERE DEPARTMENT = '5LGA' |Finalmente, o exemplo a seguir mostra como o conteúdo da mensagem pode ser |derivado utilizando qualquer expressão de SQL válida. Determinado uma |segunda tabela DEPT que contém as colunas varchar DEPT_NO e DEPT_NAME, as |mensagens podem ser enviadas que contêm o empregado LASTNAME e |DEPT_NAME: |Exemplo 7: |SELECT DB2MQ.MQSEND(e.LASTNAME || ' ' || d.DEPTNAME) FROM EMPLOYEE e, DEPT d | WHERE e.DEPARTMENT = d.DEPTNAME |17.5.3 Recuperando Mensagens |As Funções do MQSeries DB2 permitem que as mensagens sejam recebidas ou |lidas. A diferença entre a leitura e o recebimento é que a leitura |retorna a mensagem na cabeça de uma fila sem removê-la da fila, enquanto que |as operações de recebimento fazem com que a mensagem seja removida da |fila. Uma mensagem recuperada utilizando uma operação de recebimento |pode apenas ser recuperada uma vez, enquanto que uma mensagem recuperada |utilizando a operação de leitura permite que a mesma mensagem seja recuperada |muitas vezes. OS exemplos a seguir demonstram isto: |Exemplo 8: |VALUES DB2MQ.MQREAD() |Esse exemplo retorna uma cadeia VARCHAR contendo a mensagem na cabeça da |fila definida pelo serviço padrão que utiliza a qualidade de política de |serviço padrão. É importante observar que se nenhuma mensagem estiver |disponível para ser lida, um valor nulo será retornado. A fila não é |alterada por esta operação. |Exemplo 9: |VALUES DB2MQ.MQRECEIVE('Employee_Changes') |O exemplo acima mostra como uma mensagem pode ser removida da cabeça da |fila definida pelo serviço Employee_Changes que utiliza a política |padrão. |Um recurso muito poderoso do DB2 é a capacidade de gerar uma tabela de uma |função definida pelo usuário (ou fornecida pelo DB2-). Você pode |explorar esse recurso de função da tabela para permitir que o conteúdo de uma |fila seja materializado como uma tabela do DB2. O exemplo a seguir |demonstra a forma mais simples disso: |Exemplo 10: |SELECT t.* FROM tabela ( DB2MQ.MQREADALL()) t |Essa consulta retorna uma tabela que consiste em todas as mensagens na fila |definidas pelo serviço padrão e os meta-dados sobre estas mensagens. |Enquanto o destino completo da estrutura da tabela retornada é definido no |Apêndice, a primeira coluna reflete o conteúdo da mensagem e as colunas |restantes contêm os meta-dados. Para retornar apenas as mensagens, o |exemplo pode ser regravado: |Exemplo 11: |SELECT t.MSG FROM tabela (DB2MQ.MQREADALL()) t |A tabela retornada por uma função da tabela não é diferente de uma tabela |recuperada diretamente do banco de dados. Isso significa que você pode |utilizar essa tabela em uma grande variedade de maneiras. Por exemplo, |você pode unir o conteúdo da tabela com outra tabela ou contar o número de |mensagens em uma fila: |Exemplo 12: |SELECT t.MSG, e.LASTNAME | FROM tabela (DB2MQ.MQREADALL() ) t, EMPLOYEE e | WHERE t.MSG = e.LASTNAME |Exemplo 13: |SELECT COUNT(*) FROM tabela (DB2MQ.MQREADALL()) t |Você também pode ocultar o fato de que a origem da tabela é uma fila, |através da criação de uma exibição em uma função da tabela. Por |exemplo, o exemplo a seguir cria uma exibição chamada NEW_EMP na fila referida |pelo serviço nomeado NEW_EMPLOYEES: |Exemplo 14: |CREATE VIEW NEW_EMP (msg) AS | SELECT t.msg FROM tabela (DB2MQ.MQREADALL()) t |Nesse caso, a exibição é definida apenas com uma única coluna que contém |uma mensagem inteira. Se as mensagens são apenas estruturadas, para a |instância que contém dois campos de comprimento fixo, é correto utilizar as |funções incorporadas do DB2 para analisar a mensagem nas duas colunas. |Por exemplo, se você souber que as mensagens enviadas para uma fila específica |sempre contêm um sobrenome de 18 caracteres seguido de um primeiro nome de 18 |caracteres, você poderá definir uma exibição que contém cada campo como uma |coluna separada como segue: |Exemplo 15: |CREATE VIEW NEW_EMP2 AS | SELECT left(t.msg,18) AS LNAME, right(t.msg,18) AS FNAME | FROM tabela(DB2MQ.MQREADALL()) t |Um novo recurso do DB2 Stored Procedure Builder, o Assistente Assist do |MQSeries, pode ser utilizado para criar novas funções e exibições da tabela do |DB2 que irão mapear estruturas de mensagens delimitadas para as |colunas. |Finalmente, desejar-se armazenar o conteúdo de uma ou mais mensagens no |banco de dados. Isso pode ser feito utilizando a energia completa do |SQL para manipular e armazenar o conteúdo da mensagem. Talvez o exemplo |mais simples disso é: |Exemplo 16: |INSERT INTO MESSAGES | SELECT t.msg FROM tabela (DB2MQ.MQRECEIVEALL()) t |Determinado uma tabela MESSAGES, com uma única coluna VARCHAR(2000), a |instrução acima irá inserir as mensagens da fila de serviços padrão na |tabela. Essa técnica pode ser aprimorada para abranger uma grande |variedade de circunstâncias. |17.5.4 Conectividade de Aplicativo a Aplicativo |A integração de aplicativos é um elemento comum em muitas soluções. |Se integrar um aplicativo comprado em uma infra-estrutura existente ou apenas |integrar um aplicativo recentemente desenvolvido em um ambiente existente, |muitas vezes, estaremos voltados com a tarefa de unir uma coleta heterogênea |de subsistemas juntos para formar todo um trabalho. O MQSeries é |comumentemente exibido como uma ferramenta essencial de integrar |aplicativos. Acessível na maioria dos ambientes de hardware, software e |de linguagem, o MQSeries fornece o meio de interconectar uma coleção muito |heterogênea de aplicativos. |Essa seção discutirá alguns cenários de integração do aplicativo e como |eles podem ser utilizados com o DB2. Como o tópico é muito abrangente, |um tratamento compreensivo de Integração do Aplicativo vai além do escopo |desse trabalho. Entretanto, o foco está exatamente em dois tópicos |simples: comunicação de Pedido/Resposta e MQSeries Integrator e |Publish/Subscribe. |17.5.4.1 Comunicações de Pedido/Resposta |O método de comunicações de Pedido/Resposta (R/R) é uma técnica muito comum |para um ID de aplicativo solicitar os serviços de outro. Uma maneira de |fazer isso é para o solicitador enviar uma mensagem para o provedor de serviço |solicitando o mesmo trabalho a ser executado. Quando o trabalho foi |concluído, o provedor pode decidir enviar os resultados (ou apenas uma |confirmação de conclusão) de volta para o solicitador. Mas utilizar as |técnicas de mensagens básicas descritas acima, não há nada que conecta o |pedido do emissor à resposta do provedor de serviço. A menos que o |solicitador aguarde uma resposta antes de continuar, algum mecanismo deve ser |utilizado para associar cada resposta a seu pedido. Em vez de forçar o |desenvolvedor a criar tal mecanismo, o MQSeries fornece um ID de correlação |que permite a correlação de mensagens em uma troca. |Enquanto existe um número de maneiras no qual esse mecanismo pode ser |utilizado, o mais simples é para o solicitador marcar uma mensagem com um |identificador de correlação conhecido utilizando, por exemplo, o |seguinte: |Exemplo 17: |DB2MQ.MQSEND ('myRequester','myPolicy','SendStatus:cust1','Req1') |Essa instrução inclui um parâmetro final Req1 na instrução MQSEND acima, |para indicar o ID de correlação para o pedido. |Para receber uma resposta desse pedido específico, utilize a instrução |MQRECREIVE correspondente para recuperar seletivamente a primeira mensagem |definida pelo serviço indicado que corresponde a esse ID de correlação como |segue: |Exemplo 18: |DB2MQ.MQRECEIVE('myReceiver','myPolicy','Req1') |Se o aplicativo que atende o pedido estiver ocupado e o solicitador emitir |o MQRECEIVE acima antes da resposta ser enviada, nenhuma mensagem |correspondente a esse ID de correlação será encontrada. |Para receber o pedido do serviço e o ID de correlação, uma instrução como a |seguinte é utilizada: |Exemplo 19: |SELECT msg, correlid FROM tabela (DB2MQ.MQRECEIVEALL |('aServiceProvider','myPolicy',1)) t |Isso retorna a mensagem e o identificador de correlação do primeiro pedido |do aServiceProvider de serviço. |Quando o serviço foi executado, ele envia a mensagem de resposta para a |fila descrita pelo aRequester. Entretanto, o solicitador de serviço |pode ter realizado outro trabalho. De fato, não existe nenhuma garantia |que o pedido de serviço inicial será respondido dentro do tempo |definido. Os tempos limites do nível de aplicativo tais como este, |devem ser gerenciado pelo desenvolvedor; o solicitador deve ser |controlado para detectar a presença da resposta. |A vantagem de tal processamento assíncrono independente de tempo é que o |solicitador e o provedor de serviço são executados completamente independentes |um do outro. Estes podem ser utilizados para acomodar os ambientes nos |quais os aplicativos são conectados apenas intermitentemente e mais ambientes |orientados em batch nos quais vários pedidos ou respostas são agregados antes |do processamento. Esse tipo de agregação é freqüentemente utilizado em |ambientes de warehouse de dados, para atualizar periodicamente um warehouse de |dados ou armazenamento de dados operacional. |17.5.4.2 Publicar/Associar |Publicação de Dados Simples |Outro cenário comum na integração de aplicativos é para um aplicativo |notificar outros aplicativos sobre os eventos de interesse. Isso é |facilmente feito enviando uma mensagem para uma fila monitorada por outro |aplicativo. O conteúdo da mensagem pode ser uma cadeia definida pelo |usuário ou pode ser composto de colunas do banco de dados. Muitas |vezes, uma mensagem simples é tudo o que precisa para ser enviada utilizando a |função MQSEND. Quando tais mensagens precisam ser enviadas |concorrentemente para vários destinatários, o recurso da Lista de Distribuição |da MQSeries AMI pode ser utilizado. |Uma lista de distribuição é definida utilizando a ferramenta AMI |Administration. Uma lista de distribuição abrange uma lista de serviços |individuais. Uma mensagem enviada para uma lista de distribuição é |encaminhada para cada serviço definido dentro da lista. Isso é, |especialmente, útil quando sabe-se que poucos serviços sempre estarão |interessados em toda mensagem. O exemplo a seguir mostra o envio de uma |mensagem para a lista de distribuição interestedParties: |Exemplo 20: |DB2MQ.MQSEND('interestedParties','informações de interesse geral'); |Quando é requerido mais controle sobre as mensagens que os serviços |específicos devem receber, uma capacidade de Publicar/Associar é |necessária. Os sistemas de publicação/associação fornecem, tipicamente, |um ambiente escalável e seguro no qual muitos assinantes podem ser registrados |para receberem mensagens de vários publicadores. Para suportar essa |capacidade da interface MQPublish poder ser utilizada, em conjunto com o |recurso MQSeries Integrator ou MQSeries Publish/Subscribe. |O MQPublish permite que os usuários especifiquem, opcionalmente, um tópico |a ser associado a uma mensagem. Os tópicos permitem um assinante para |especificar mais claramente as mensagens a serem aceitas. A seqüência |de etapas é a seguinte: | 1. |Um administrador do MQSeries configura as capacidades do MQSeries |Integrator publish/subscribe. 2. |Os aplicativos interessados associam os pontos de assinatura definidos |pela configuração do MQSI, especificando, opcionalmente, os tópicos de |interesse deles. Cada assinante seleciona os tópicos relevantes e |também pode utilizar as técnicas de assinatura baseadas no conteúdo do |MQSeries Integrator V2. É importante observar que as filas, conforme |representadas por nomes de serviços, definem o assinante. 3. |Um aplicativo do DB2 publica uma mensagem para o ponto de serviço |Tempo. As mensagens indicam se o tempo está Nevando com um tópico de |Austin, notificando, assim, os assinantes interessados que o tempo em Austin |está Nevando. 4. |Os mecanismos de publicação da mensagem atual são manipulados pelas |funções do MQSeries fornecidas pelo DB2. A mensagem é enviada para o |MQSeries Integrator utilizando o serviço nomeado Tempo. 5. |O MQSI aceita a mensagem do serviço de Tempo, executa qualquer |processamento definido pela configuração do MQSI e determina quais assinaturas |ele satisfaz. Em seguida, ele envia a mensagem para as filas do |assinante cujos critérios atende. 6. |Os aplicativos que são associados ao serviço e Tempo e que registraram um |interesse em Austin, receberão a mensagem Nevando em seu serviço de |recebimento. | |Para publicar esses dados utilizando todos os padrões e um tópico nulo, |você utilizará a seguinte instrução: |Exemplo 21: |SELECT DB2MQ.MQPUBLISH(LASTNAME || ' ' || FIRSTNAME || ' | ' || DEPARTMENT|| ' ' ||char(AGE)) | FROM EMPLOYEE | WHERE DEPARTMENT = '5LGA' |Especificar completamente todos os parâmetros e simplificar a mensagem para |conter apenas o LASTNAME, a instrução se parecerá: |Exemplo 22: |SELECT DB2MQ.MQPUBLISH('HR_INFO_PUB', 'SPECIAL_POLICY', LASTNAME, | 'ALL_EMP:5LGA', 'MANAGER') | FROM EMPLOYEE | WHERE DEPARTMENT = '5LGA' |Essa instrução publica mensagens para o serviço de publicação HR_INFO_PUB, |utilizando o serviço SPECIAL_POLICY. As mensagens indicam que o emissor |é o tópico MANAGER. A cadeia de tópicos demonstra que vários tópicos, |concatenados utilizando um ':' podem ser especificados. |Nesse exemplo, o uso de dois tópicos permite que os assinantes sejam |registrados para ALL_EMP ou apenas 5LGA para receber essas mensagens. |Para receber mensagens publicadas, primeiro você deve registrar seu |interesse em mensagens que contêm um determinado tópico e indicar o nome do |serviço do assinante para o qual as mensagens devem ser enviadas. É |importante observar que um serviço do assinantes da AMI define um serviço |intermediário e um serviço do receptor. O serviço intermediário é como |o assinante que se comunica com o intermediário de publicar/associar e o |serviço do receptor está onde as mensagens que correspondem ao pedido de |assinatura serão enviadas. A instrução a seguir registra um interesse |no tópico ALL_EMP. |Exemplo 23: |DB2MQ.MQSUBSCRIBE('aSubscriber', 'ALL_EMP') |Quando um aplicativo é associado, as mensagens publicadas com o tópico |ALL_EMP serão enviadas para o serviço do receptor definido pelo serviço do |assinante. Um aplicativo pode ter várias assinaturas |concorrentes. Para obter as mensagens que atendem sua assinatura, |qualquer uma das funções de recuperação de mensagem padrão podem ser |utilizadas. Por exemplo, se o aSubscriber de serviço do assinante |definir o serviço do receptor para ser aSubscriberReceiver, a instrução a |seguir lerá não-destrutivamente a primeira mensagem: |Exemplo 24: |DB2MQ.MQREAD('aSubscriberReceiver') |Para determinar as mensagens e os tópicos em que eles foram publicados, |você utilizará uma das funções da tabela. A instrução a seguir receberá |as cinco primeiras mensagens do aSubscriberReceiver e exibirá a mensagem e o |tópico: |Exemplo 25: |SELECT t.msg, t.topic FROM tabela (DB2MQ.MQRECEIVEALL('aSubscriberReceiver',5)) t |Para ler todas as mensagens com o tópico ALL_EMP, você pode atuar sobre a |energia do SQL para emitir: |Exemplo 26: |SELECT t.msg FROM tabela (DB2MQ.MQREADALL('aSubscriberReceiver')) t | WHERE t.topic = 'ALL_EMP' |Nota: É importante perceber que se o MQRECEIVEALL é utilizado com uma limitação |toda a fila será consumida, não apenas essas mensagens publicadas com o tópico |ALL_EMP. Isso acontece porque a função da tabela é executada antes da |limitação ser aplicada. | |Quando você não estiver mais interessado em associar um tópico específico, |é necessário desassociar explicitamente utilizando uma instrução tal |como: |Exemplo 27: |DB2MQ.MQUNSUBSCRIBE('aSubscriber', 'ALL_EMP') |Quando essa instrução é emitida o intermediário de publicação/associação |não entregará mais as mensagens correspondentes a essa assinatura. |Publicação Automática |Outra técnica importante no sistema de mensagens do banco de dados é a |publicação automatizada. Utilizando o recurso de disparo dentro do DB2, |você pode, opcionalmente, publicar mensagens como parte de uma invocação de |disparo. Enquanto existem outras técnicas para publicação de dados |automatizada, a abordagem baseada em disparo permite aos administradores ou |aos desenvolvedores grande liberdade na construção do conteúdo e da |flexibilidade da mensagem na definição das ações de disparo. Como com |qualquer uso de disparos, deve ser prestar atenção na freqüência e no custo da |execução. Os exemplos a seguir demonstram como os disparos podem ser |utilizados com as Funções do MQSeries DB2. |O exemplo abaixo mostra como é fácil publicar uma mensagem todas vez que um |novo empregado é contratado. Todos os usuários e aplicativos associados |ao serviço HR_INFO_PUB comum interesse registrado em NEW_EMP, receberão uma |mensagem contendo a data, o nome e o departamento de cada novo |empregado. |Exemplo 28: |CREATE TRIGGER new_employee AFTER INSERT ON employee REFERENCING NEW AS n | FOR EACH ROW MODE DB2SQL | VALUES DB2MQ.MQPUBLISH('HR_INFO_PUB&', 'NEW_EMP', | current date || ' ' || LASTNAME || ' ' || DEPARTMENT) ------------------------------------------------------------------------ |17.6 enable_MQFunctions |enable_MQFunctions | | |Ativa as funções do DB2 MQSeries para o banco de dados especificado e |confirma se as funções do DB2 podem ser executadas corretamente. O |comando falhará, se o MQSeries e o MQSeries AMI não tiver sido instalado e |configurado. |Autorização |Um dos seguintes: | * |sysadm * |dbadm * |IMPLICIT_SCHEMA no banco de dados, se o nome do esquema implícito ou |explícito da função não existir. * |Privilégio CREATEIN no esquema, se o nome do esquema, DB2MQ, existir | |Sintaxe de Comando |>>-enable_MQFunctions----n--banco de dados----u--userid---------> | |>-----p--password----+--------+---+-------------+-------------->< | '-force--' '-noValidate--' | |Parâmetros de Comandos | |-n database |Especifica o nome do banco de dados a ser ativado. |-u userid |Especifica o ID do usuário para conectar-se ao banco de dados. |-p password |Especifica a senha para o ID do usuário. |-force |Especifica que os avisos encontrados durante a reinstalação devem ser |ignorados. |-noValidate |Especifica que a validação das funções do DB2 MQSeries não serão |executadas. | |Exemplos |No exemplo a seguir, as funções do DB2MQ estão sendo criadas. O |usuário conecta-se ao banco de dados SAMPLE. O esquema padrão DB2MQ |está sendo utilizado. | enable_MQFunctions -n sample -u user1 -p password1 |Notas sobre Utilização |As funções do DB2 MQ executadas no esquema DB2MQ que são automaticamente |criadas por esse comando. |Antes de executar esse comando: | * |Assegure-se de que o MQ e a AMI estejam instalados e que a versão do |MQSeries é 5.2 ou superior. * |Assegure-se de que a variável de ambiente $AMT_DATA_PATH esteja |definida. * |Mude o diretório para o subdiretório cfg do DB2PATH | |No UNIX: | * |Utilize db2set para incluir AMT_DATA_PATH no DB2ENVLIST. * |Assegure-se de que a conta do usuário associada à execução do UDF seja um |membro do grupo mqm. * |Assegure-se de que o usuário que estará chamando esse comando seja um |membro, se for o grupo mqm. | |Nota: O AIX 4.2 não é suportado pelo MQSeries 5.2. | ------------------------------------------------------------------------ |17.7 disable_MQFunctions |disable_MQFunctions | | |Desativa o uso de funções do DB2 MQSeries para o banco de dados |especificado. |Autorização |Um dos seguintes: | * |sysadm * |dbadm * |IMPLICIT_SCHEMA no banco de dados, se o nome do esquema implícito ou |explícito da função não existir. * |Privilégio CREATEIN no esquema, se o nome do esquema, DB2MQ, existir | |Sintaxe de Comando |>>-disable_MQFunctions----n--banco de dados----u--userid--------> | |>-----p--password---------------------------------------------->< | |Parâmetros de Comandos | |-n database |Especifica o nome do banco de dados. |-u userid |Especifica o ID do usuário utilizado para conectar-se ao banco de |dados. |-p password |Especifica a senha para o ID do usuário. | |Exemplos |No exemplo a seguir, as funções do DB2MQ estão desativadas para o banco de |dados SAMPLE. | disable_MQFunctions -n sample -u user1 -p password1 ------------------------------------------------------------------------ Ferramentas administrativas Índice Parcial * Centro de Controle o 18.1 Capacidade de Administrar o Servidor do DB2 para Servidores VSE e VM o 18.2 Suporte a Java 1.2 para o Centro de Controle o 18.3 Erro "Atalho inválido" ao Usar a Ajuda Online no Sistema Operacional Windows o 18.4 Centro de Controle Java no OS/2 o 18.5 Erro "Acesso negado ao arquivo" ao Tentar Exibir um Job Concluído no Diário no Sistema Operacional Windows o 18.6 Teste de Conexão de Atualização Multisites o 18.7 DB2 Control Center para OS/390 o 18.8 Correção Exigida do Centro de Controle para OS/390 o 18.9 Alteração no Diálogo Criar Camada Espacial o 18.10 Informações de Detecção de Problemas para o DB2 Control Center o 18.11 Resolvendo Problemas do Centro de Controle em Sistemas Baseados em UNIX o 18.12 Possíveis Problemas Com Infopops no OS/2 o 18.13 Ajuda do Parâmetro de Configuração jdk11_path o 18.14 Erro do Sistema Solaris (SQL10012N) na Utilização do Centro de Scripts ou do Diário o 18.15 Ajuda ao Arquivo DPREPL.DFT o 18.16 Lançando Mais de Um Applet do Centro de Controle o 18.17 Ajuda Online do Centro de Controle em Execução como um Applet o 18.18 Executando o Centro de Controle no Modo Applet (Windows 95) o |18.19 Trabalhando com Resultados de Consulta Grandes * Centro de Informações o 19.1 Erro "Atalho Inválido" no Sistema Operacional Windows o 19.2 Abrindo links da Web externos no Netscape Navigator quando o Netscape já está aberto (Sistemas baseados em UNIX) o 19.3 Problemas ao Iniciar o Centro de Informações * Assistentes o 20.1 Definindo o Tamanho Estendido no Assistente Criar Banco de Dados o |20.2 Assistente MQSeries Assist o |20.3 Assistente OLE DB Assist ------------------------------------------------------------------------ Centro de Controle ------------------------------------------------------------------------ 18.1 Capacidade de Administrar o Servidor do DB2 para Servidores VSE e VM O Centro de Controle do DB2 Universal Database Versão 7 melhorou seu suporte do DB2 Server para bancos de dados VSE e VM. Todos os objetos de banco de dados do Servidor do DB2 para VSE e VM podem ser exibidos com o Centro de Controle. Existe também suporte para as instruções CREATE INDEX, REORGANIZE INDEX, e UPDATE STATISTICS, e para o comando REBIND. REORGANIZE INDEX e REBIND exigem um procedimento armazenado em execução no Servidor do DB2 para hosts VSE e VM. Este procedimento armazenado é fornecido pelo recurso do Centro de Controle para VSE e VM do Servidor do DB2 para VSE e VM. O Centro de Controle totalmente integrado permite ao usuário gerenciar o DB2, independentemente da plataforma na qual o Servidor do DB2 for executado. Os objetos do Servidor do DB2 para VSE e VM são exibidos na janela principal do Centro de Controle, junto aos objetos do DB2 Universal Database. As ações correspondentes e utilitários para gerenciar estes objetos são chamados selecionando o objeto. Por exemplo, um usuário pode listar os índices de um banco de dados em particular, selecionar um dos índices, e reorganizá-lo. O usuário pode também listar as tabelas de um banco de dados e rodar atualizações de estatísticas, ou definir uma tabela como uma fonte de replicação. Para informações sobre a configuração do Centro de Controle para realizar tarefas administrativas em objetos do Servidor do DB2 para VSE e VM, consulte o DB2 Connect User's Guide, ou o Suplemento de Instalação e Configuração. ------------------------------------------------------------------------ 18.2 Suporte a Java 1.2 para o Centro de Controle O Centro de Controle suporta idiomas bidirecionais, como o Árabe e o Hebreu, usando o suporte bidirecional do Java 1.2. Este suporte é fornecido apenas para a plataforma Windows NT. O Java 1.2 deve estar instalado para que o Centro de Controle o reconheça e o use: 1. O JDK 1.2.2 está disponível no CD do DB2 UDB sob o diretório DB2\bidi\NT. ibm-inst-n122p-win32-x86.exe é o programa instalador, e ibm-jdk-n122p-win32-x86.exe é a distribuição do JDK. Copie ambos os arquivos para um diretório temporário em seu disco rígido, e execute o programa instalador a partir daí. 2. Instale-o sob \java\Java12, onde é o caminho de instalação do DB2. 3. Não selecione JDK/JRE como MV do Sistema quando solicitado pela instalação do JDK/JRE. Depois que o Java 1.2 estiver instalado, iniciar o Centro de Controle da maneira normal usará o Java 1.2. Para parar o uso do Java 1.2, você pode desinstalar o JDK/JRE de \java\Java12 ou simplesmente renomear o subdiretório \java\Java12 para algo diferente. Nota: Não confunda \java\Java12 com \Java12.\Java12 é parte da instalação do DB2, e inclui o suporte a JDBC para Java 1.2. ------------------------------------------------------------------------ 18.3 Erro "Atalho inválido" ao Usar a Ajuda Online no Sistema Operacional Windows Ao usar a ajuda online do Centro de Controle, você pode encontrar um erro como: "Atalho inválido". Se você instalou recentemente um novo navegador Web ou uma nova versão de um navegador Web, garanta que os documentos HTML e HTM estão associados ao navegador correto. Consulte o tópico da ajuda do Windows "Para alterar qual programa é iniciado quando você abre um arquivo". ------------------------------------------------------------------------ 18.4 Centro de Controle Java no OS/2 O Centro de Controle deve ser instalado em uma unidade no formato HPFS. ------------------------------------------------------------------------ 18.5 Erro "Acesso negado ao arquivo" ao Tentar Exibir um Job Concluído no Diário no Sistema Operacional Windows No DB2 Universal Database para Windows NT, um erro "Acesso negado ao arquivo" ocorre ao tentar abrir o Diário para exibir os detalhes de um job criado no Centro de Script. O status do job indica concluído. Este comportamento ocorre quando um job criado no Centro de Script contém o comando START. Para evitar este comportamento, use START/WAIT ao invés de START em ambos o arquivo batch e o próprio job. ------------------------------------------------------------------------ 18.6 Teste de Conexão de Atualização Multisites A funcionalidade do Teste de Conexão de Atualização Multisite no Centro de Controle da Versão 7 é limitado pela versão da instância de destino. A instância de destino deve ser, no mínimo, Versão 7 para que a funcionalidade de teste de conexão "remota" seja executada. Para executar a funcionalidade de Teste de Conexão de Atualização Multisite na Versão 6, você deve abrir o Centro de Controle localmente na instância de destino e executá-lo lá. ------------------------------------------------------------------------ 18.7 DB2 Control Center para OS/390 O DB2 UDB Control Center para OS/390 permite que você gerencie o uso de seus utilitários licenciados do IBM DB2. As funções do utilitário que são elementos de recursos adquiríveis separadamente do DB2 UDB para OS/390 devem estar licenciados e instalados no seu ambiente antes de serem gerenciados pelo DB2 Control Center. O banco de dados "CC390", definido com o Centro de Controle quando você configura um subsistema do DB2 para OS/390, é usado para o suporte interno do Centro de Controle. Não modifique este banco de dados. Embora o DB2 para OS/390 Versão 7.1 não seja mencionado especificamente no índice do Centro de Controle, ou nas Informações de Tarefas do Centro de Informações, a documentação suporta as funções do DB2 para OS/390 Versão 7.1. Várias das funções específicas do DB2 para OS/390 Versão 6 também se referem ao DB2 para OS/390 Versão 7.1 e algumas funções específicas do DB2 para OS/390 Versão 7.1 no índice não possuem designação de versão. Se você configurou um subsistema do DB2 para OS/390 Versão 7.1 em seu Centro de Controle, você tem acesso a toda a documentação dessa versão. Para acessar e usar a função Gerar DDL a partir do DB2 Control Center para OS/390, você deve possuir a função Gerar DDL instalada: * Na Versão 5, instale DB2Admin 2.0 com o DB2 para OS/390 Versão 5. * Na Versão 6, instale a pequena melhora de programação que estará disponível como uma PTF para o recurso DB2 Admin do DB2 para OS/390 Versão 6. * Na Versão 7.1, a função Gerar DDL é parte do recurso DB2 Admin para OS/390 Versão 7.1 com preço diferenciado. Você pode acessar o Construtor de Procedimento Armazenado a partir do Centro de Controle, mas você já deve tê-lo instalado no momento que você iniciar o DB2 Control Center UDB. Ele é parte do Cliente de Desenvolvimento de Aplicativos do DB2. Para catalogar um subsistema do DB2 para OS/390 diretamente na estação de trabalho, selecione para usar a ferramenta Assistente de Configuração do Cliente. 1. Na página Origem, especifique o botão de opção Configurar uma conexão a um banco de dados manualmente. 2. Na página Protocolo, informe as informações apropriadas de comunicação. 3. Na página Banco de Dados, especifique o nome do subsistema no campo Nome do banco de dados. 4. Na página Opções do Nó, marque a caixa de seleção Configurar opções do nó (Opcional). 5. Selecione MVS/ESA, OS/390 na lista no campo Sistema operacional. 6. Clique em Concluir para completar a configuração. Para catalogar um subsistema do DB2 para OS/390 através de uma máquina de gateway, siga as etapas 1-6 anteriores na máquina de gateway e: 1. Na máquina cliente, inicie o Centro de Controle. 2. Clique com o botão direito do mouse na pasta Sistemas e selecione Incluir. 3. No diálogo Incluir Sistema, digite o nome da máquina de gateway no campo Nome do sistema. 4. Digite DB2DAS00 no campo Instância remota. 5. Para o protocolo TCP/IP, nos parâmetros do Protocolo, especifique o nome do host da máquina de gateway no campo Nome do host. 6. Digite 523 no campo Nome do serviço. 7. Clique em OK para incluir o sistema. A máquina de gateway deverá aparecer incluída sob a pasta Sistemas. 8. Expanda o nome da máquina gateway. 9. Clique com o botão direito do mouse na pasta Instâncias e selecione Incluir. 10. No diálogo Incluir Instância, clique no botão Atualizar para listar as instâncias disponíveis na máquina de gateway. Se a máquina gateway é um sistema Windows NT, o subsistema DB2 para OS/390 foi catalogado provavelmente sob a instância DB2. 11. Selecione a instância. Os parâmetros do protocolo são preenchidos automaticamente para esta instância. 12. Clique em OK para incluir a instância. 13. Abra a pasta Instâncias para ver a instância que você acabou de incluir. 14. Expanda a instância. 15. Clique com o botão direito do mouse na pasta Bancos de Dados e selecione Incluir. 16. Clique no botão Atualizar para exibir os bancos de dados locais na máquina de gateway. Se você estiver incluindo um subsistema do DB2 no diálogo Incluir Banco de Dados, digite o nome do subsistema no campo Nome do banco de dados. Opção: Digite um nome de alias local para o subsistema (ou o banco de dados). 17. Clique em OK. Agora você incluiu com sucesso o subsistema no Centro de Controle. Quando você abrir o banco de dados, você deverá ver o subsistema DB2 para OS/390 exibido. O primeiro parágrafo na seção "Centro de Controle 390" estabelece o seguinte: O DB2 Control Center UDB para OS/390 permite que você gerencie o uso de seus utilitários licenciados do IBM DB2. As funções do utilitário que são elementos de recursos adquiríveis separadamente do DB2 UDB para OS/390 devem estar licenciados e instalados no ambiente antes de serem gerenciados pelo DB2 Control Center. Essa seção agora informa: O DB2 Control Center para OS/390 permite que você gerencie o uso de seus utilitários licenciados do IBM DB2. As funções do utilitário que são elementos de recursos adquiríveis separadamente devem estar licenciados e instalados no ambiente para que sejam gerenciados pelo DB2 Control Center. ------------------------------------------------------------------------ 18.8 Correção Exigida do Centro de Controle para OS/390 Você deve aplicar APAR PQ36382 no recurso de Habilitação 390 do DB2 para OS/390 Versão 5 e DB2 para OS/390 Versão 6 para gerenciar estes subsistemas utilizando o Centro de Controle do DB2 UDB para Versão 7. Sem esta correção, você não pode utilizar o DB2 UDB Control Center para Versão 7 para executar utilitários para esses subsistemas. O APAR deve ser aplicado aos seguintes FMIDs: Habilitação 390 do DB2 para OS/390 Versão 5: FMID JDB551D Habilitação 390 do DB2 para OS/390 Versão 6: FMID JDB661D ------------------------------------------------------------------------ 18.9 Alteração no Diálogo Criar Camada Espacial Os botões "<<" e ">>" foram removidos do diálogo Criar Camada Espacial. ------------------------------------------------------------------------ 18.10 Informações de Detecção de Problemas para o DB2 Control Center No capítulo "Configuração e Instalação do Centro de Controle" do manual Iniciação Rápida, a seção intitulada "Informações de Detecção de Problemas" informa para não configurar seu CLASSPATH do navegador do cliente a partir da janela de comando se você tiver problemas de execução do Centro de controle como um applet. Esta seção também solicita que o navegador seja iniciado pela mesma janela de comandos. No entanto, o comando para iniciar o navegador não é fornecido. Para lançar o Internet Explorer, digite start iexplore e pressione Enter. Para lançar o Netscape, digite o start netscape e pressione Enter. Esses comandos pressupõe que o navegador esteja no PATH. Se não estiver, coloque-o ou mude para o diretório de instalação do navegador e dê novamente o comando start. ------------------------------------------------------------------------ 18.11 Resolvendo Problemas do Centro de Controle em Sistemas Baseados em UNIX Se você não está habilitado para iniciar o Centro de Controle em um sistema baseado em UNIX, defina a variável de ambiente JAVA_HOME para indicar a distribuição do Java: * Se o java foi instalado sob /usr/jdk118, defina JAVA_HOME como /usr/jdk118. * Para os shells sh, ksh ou bash: export JAVA_HOME=/usr/jdk118. * Para os shells csh ou tcsh: setenv JAVA_HOME /usr/jdk118 ------------------------------------------------------------------------ 18.12 Possíveis Problemas Com Infopops no OS/2 Se você está executando o Centro de Controle no OS/2, usando uma resolução de tela de 1024x768 com 256 cores, com Workplace Shell Palette Awareness habilitado, os infopops que se estendem além da borda da janela atual podem ser exibidos em texto preto sobre um background preto. Para corrigir este problema, altere as definições da tela para mais de 256 cores ou desabilite o Workplace Shell Palette Awareness. ------------------------------------------------------------------------ 18.13 Ajuda do Parâmetro de Configuração jdk11_path Na ajuda do Centro de Controle, a descrição do parâmetro de configuração do Caminho de Instalação do Java Development Kit 1.1 (jdk11_path) está faltando uma linha sob o sub-cabeçalho Aplica-se A. A lista completa sob Aplica-se A é: * Servidor de bancos de dados com clientes remotos e locais * Cliente * Servidor de Banco de Dados com clientes locais * Servidor de banco de dados particionado com clientes locais e remotos * Servidor de banco de dados satélite com clientes locais ------------------------------------------------------------------------ 18.14 Erro do Sistema Solaris (SQL10012N) na Utilização do Centro de Scripts ou do Diário Quando o sistema Solaris for selecionado no Centro de Scripts ou no Diário, poderá ser encontrado o seguinte erro: SQL10012N - Foi recebido um erro inesperado no sistema operacional durante o carregamento da biblioteca especificada "/udbprod/db2as/sqllib/function/unfenced/ db2scdar!ScheduleInfoOpenScan". SQLSTATE=42724. Ele foi causado por um erro de programação no vinculador de tempo de execução do Solaris. Para corrigir esse problema, aplique a seguinte correção: 105490-06 (o 107733 torna o 105490 obsoleto) para o Solaris 2.6 ------------------------------------------------------------------------ 18.15 Ajuda ao Arquivo DPREPL.DFT No Centro de Controle, na ajuda da página Replicação do bloco de notas Definições da Ferramenta, a etapa 5d afirma: Salve o arquivo no diretório de trabalho do Centro de Controle (por exemplo: SQLLIB\BIN) para que o sistema possa usá-lo como o arquivo padrão. Mas, a etapa 5d deve afirmar o seguinte: Salve o arquivo no diretório de trabalho do Centro de Controle (SQLLIB\CC) para que o sistema possa usá-lo como o arquivo padrão. ------------------------------------------------------------------------ 18.16 Lançando Mais de Um Applet do Centro de Controle Você não pode lançar mais de um applet do Centro de Controle simultaneamente na mesma máquina. Esta restrição se aplica aos applets do Centro de Controle em execução em todos os navegadores suportados. ------------------------------------------------------------------------ 18.17 Ajuda Online do Centro de Controle em Execução como um Applet Quando o Centro de Controle estiver sendo executado como um applet, a tecla F1 só funcionará em janelas e blocos de notas que têm infopops. Você pode pressionar a tecla F1 para tornar os infopops visíveis nos seguintes componentes: * DB2 Universal Database para OS/390 * Os assistentes No restante dos componentes do Centro de Controle, a tecla F1 não torna nenhuma ajuda visível. Para exibir a ajuda dos outros componentes, use o botão de comando Ajuda ou o menu de opções Ajuda. ------------------------------------------------------------------------ 18.18 Executando o Centro de Controle no Modo Applet (Windows 95) A tentativa de abrir o Centro de Scripts poderá falhar se forem especificadas uma ID de usuário e uma senha inválida. Confira se foram digitadas uma ID de usuário e uma senha válidas quando for efetuado o início de sessão no Centro de Controle. ------------------------------------------------------------------------ |18.19 Trabalhando com Resultados de Consulta Grandes | | |É fácil para um usuário produzir uma consulta que retorna um grande número |de linhas. Não é tão fácil para um usuário, prognosticar quantas linhas |podem atualmente ser retornadas. Com uma consulta que pode retornar |potencialmente milhares (ou milhões) de linhas, existem dois problemas: | 1. |Ela pode demorar para recuperar o resultado. 2. |Uma grande quantidade de memória do cliente pode ser requerida para manter |o resultado. | |Para facilitar esse processo, o DB2 fragmenta os conjuntos de resultados |grandes em partes. Ele recuperará e exibirá os resultados de uma |consulta, uma parte de cada vez. |Como resultado: | 1. |O tempo de exibição será reduzido como a primeira parte de uma consulta |disponível para exibição, enquanto as partes restantes estão sendo |recuperadas. 2. |Os requisitos de memória no cliente será reduzido apenas como uma parte de |uma consulta, o resultado será armazenado no cliente em um determinado |período. | |Para controlar o número de linhas de resultados de consultas na |memória: | 1. |Abra a página Geral do bloco de notas Definições da Ferramenta. 2. |Na seção Tamanho máximo, selecione: | o |Conteúdo da Amostra para limitar o número de linhas de |resultado exibido na janela Conteúdo da Amostra. Especifique o tamanho |da parte do conjunto de resultados (número de linhas) no campo de |entrada. o |Centro de Comando para limitar o número de linhas de resultado |exibido na página Resultados da Consulta do Centro de Comando. |Especifique o tamanho da parte do conjunto de resultados (número de linhas) no |campo de entrada. | | |Ao trabalhar com os resultados de uma consulta na janela Conteúdo da |Amostra ou an página Resultados da Consulta do Centro de Comando, o campo |Linhas na memória indica o número de linhas sendo retido na memória |para a consulta. Esse número nunca será maior que o conjunto de |Tamanho máximo. Clique em Avançar para recuperar |a próxima parte do conjunto de resultados. Quando Avançar |estiver inativo, você atingiu o final do conjunto de resultados. ------------------------------------------------------------------------ Centro de Informações ------------------------------------------------------------------------ 19.1 Erro "Atalho Inválido" no Sistema Operacional Windows Ao usar o Centro de Informações, você poderá encontrar erros como: "Atalho Inválido". Se você instalou recentemente um novo navegador Web ou uma nova versão de um navegador Web, garanta que os documentos HTML e HTM estão associados ao navegador correto. Consulte o tópico da ajuda do Windows "Para alterar qual programa é iniciado quando você abre um arquivo". ------------------------------------------------------------------------ 19.2 Abrindo links da Web externos no Netscape Navigator quando o Netscape já está aberto (Sistemas baseados em UNIX) Se o Netscape Navigator já estiver aberto e exibindo um documento DB2 HTML local ou um site web externo, a tentativa de abrir um site Web externo a partir do Centro de Informações resultará em um erro do Netscape. O erro informará que "O Netscape não consegue localizar o arquivo ou o diretório chamado ." Para solucionar esse problema, feche o navegador Netscape aberto antes de abrir o site Web externo. O Netscape reiniciará e trará o site Web externo. Observe que esse erro não ocorre na tentativa de abrir um documento HTML do DB2 local com o Netscape já aberto. ------------------------------------------------------------------------ 19.3 Problemas ao Iniciar o Centro de Informações Em alguns sistemas, o Centro de Informações pode ficar lento ao iniciar se você o solicitar usando o Menu Iniciar, Primeiros Passos ou o comando db2ic. Se esse problema ocorrer, inicie o Centro de Controle e selecione Ajuda --> Centro de Informações. ------------------------------------------------------------------------ Assistentes ------------------------------------------------------------------------ 20.1 Definindo o Tamanho Estendido no Assistente Criar Banco de Dados Usando o Assistente Criar Banco de Dados, é possível definir os parâmetros Extent Size e Prefetch Size do User Table Space (mas não aqueles do Catalog ou Temporary Tables) do novo banco de dados. Esse recurso será ativado somente se pelo menos um container foi especificado para o User Table Space da página "User Tables" do Assistente. ------------------------------------------------------------------------ |20.2 Assistente MQSeries Assist | | |O DB2 Versão 7.2 fornece um novo assistente MQSeries Assist. |Esse assistente cria uma função de tabela que lê a partir de uma fila do |MQSeries que utiliza as Funções do DB2 MQSeries, que também são novas na |Versão 7.2. O assistente pode tratar cada mensagem do MQSeries |como uma cadeia delimitada ou uma cadeia de coluna de comprimento fixo |dependendo de sua especificação. A função da tabela criada analisa a |cadeia de acordo com suas especificações e retorna cada mensagem do MQSeries |como uma linha da função da tabela. O assistente também permite que |você crie uma exibição na parte superior da função da tabela e pré-visualize |uma mensagem do MQSeries e o resultado da função da tabela. Esse |assistente pode ser lançado do Stored Procedure Builder ou do Centro de Data |Warehouse. |Os requisitos para esse assistente são: | * |MQSeries versão 5.2 * |MQSeries Application Messaging Interface (AMI) * |Funções do DB2 MQSeries | |Para obter detalhes sobre esses requisitos, consulte MQSeries. |Para amostras e tutoriais do assistente MQSeries Assist, vá para a seção de |tutoriais em http://www.ibm.com/software/data/db2/udb/ide ------------------------------------------------------------------------ |20.3 Assistente OLE DB Assist | | |Esse assistente o ajuda a criar uma função da tabela que lê dados de outro |provedor do banco de dados que suporta o Microsoft OLE DB padrão. |Opcionalmente, você pode criar uma tabela do DB2 com os dados que são lidos |pela função da tabela do OLE DB e pode criar uma exibição para a função da |tabela do OLE DB. Esse assistente pode ser lançado do Stored Procedure |Builder ou do Centro de Data Warehouse. |Os requisitos para esse assistente são: | * |Um provedor OLE DB (tal como Oracle, Microsoft SQL Server) * |Funções de suporte OLE DB | |Para amostras e tutoriais do assistente OLE DB Assist, vá para a seção de |tutoriais em http://www.ibm.com/software/data/db2/udb/ide ------------------------------------------------------------------------ Inteligência de negócios Índice Parcial * Tutorial Business Intelligence o |21.1 Tutorial Revisado do Business Intelligence * Data Warehouse Center Manual de Administração o 22.1 Detectando problemas o |22.2 Configurando o Excel como origem do Warehouse o 22.3 Definindo e executando processos o 22.4 Diálogo Exportar Meta-dados o 22.5 Definindo valores para um programa Submit OS/390 JCL Jobstream (VWPMVS) o 22.6 Alteração no apêndice da amostra do Data Warehouse o 22.7 Mensagens do Centro de Data Warehouse o 22.8 Criando um contorno e carregando dados no servidor de integração OLAP do DB2 o 22.9 Utilizando a conexão clássica com o Centro de Data Warehouse o 22.10 Estrutura do ambiente do Centro de Data Warehouse o 22.11 Utilizando o Invert Transformer o 22.12 Acessando Dados do DB2 Versão 5 com o Agente de Warehouse do DB2 Versão 7 + 22.12.1 Migrando os servidores do DB2 Versão 5 + 22.12.2 Alterando a configuração do agente + 22.12.2.1 Agentes de Warehouse UNIX + 22.12.2.2 Agentes de warehouse do Microsoft Windows NT, Windows 2000 e OS/2 o |22.13 Programa de extração de meta-dados do IBM ERwin + |22.13.1 Conteúdo + |22.13.2 Requisitos de software + |22.13.3 Arquivos de programas + |22.13.4 Criando os arquivos de linguagem de código + |22.13.5 Importando um arquivo de linguagem de código no Centro de Data Warehouse + |22.13.6 Importando um arquivo de linguagem de código no Information Catalog Manager + |22.13.7 Detectando problemas + |22.13.8 ERwin para mapeamento do Centro de Data Warehouse do DB2 + |22.13.8.1 ERwin para Mapeamento do Information Catalog Manager o |22.14 Limpeza de nome e de endereço no Centro de Data Warehouse + |22.14.1 + |22.14.1.1 Requisitos + |22.14.1.2 Componentes do Sistema de Software Trillium + |22.14.1.3 Utilizando o Sistema em Batch do Trillium com o Centro de Data Warehouse + |22.14.1.4 Importando os meta-dados do Trillium + |22.14.1.5 Mapeando os meta-dados + |22.14.1.6 Restrições + |22.14.2 Gravando o arquivo JCL do Sistema em Batch do Trillium + |22.14.3 Gravando o arquivo de script do Sistema em Batch do Trillium no UNIX e no Windows + |22.14.4 Definindo uma etapa do Sistema em Batch do Trillium + |22.14.5 Utilizando um programa definido pelo usuário do Sistema em Batch do Trillium + |22.14.6 Tratamento de erros + |22.14.6.1 Código de retorno de erro + |22.14.6.2 Arquivo de log o |22.15 Integração do MQSeries com o Centro de Data Warehouse + |22.15.1 Criando exibições para mensagens do MQSeries + |22.15.1.1 Requisitos + |22.15.1.2 Restrições + |22.15.1.3 Criando uma exibição para mensagens do MQSeries + |22.15.2 Importando as mensagens do MQSeries e os meta-dados XML + |22.15.2.1 Requisitos + |22.15.2.2 Restrições + |22.15.2.3 Importando as mensagens do MQSeries e os meta-dados XML + |22.15.2.4 Utilizando o programa definido pelo usuário do MQSeries + |22.15.2.5 Código de retorno de erro + |22.15.2.6 Arquivo de Log de Erro o |22.16 Suporte ao Microsoft OLE DB e Data Transaction Services + |22.16.1 Criando exibições para funções da tabela do OLE DB + |22.16.2 Criando exibições para pacotes DTS o |22.17 Utilizando a consolidação incremental com substituição o |22.18 Nomes de arquivos de dados de rastreio do componente o |22.19 Open Client necessário para origens do Sybase no Ambiente Operacional AIX e Solaris o |22.20 Entradas de amostras corrigidas o 22.21 Capítulo 3. Definindo origens do warehouse + |22.21.1 Mapeando o campo Memo no Microsoft Access para uma origem do warehouse o 22.22 Capítulo 10. Fazendo manutenção do banco de dados do Warehouse + |22.22.1 Fazendo link de tabelas a um subtipo de etapa para o programa RUNSTATS UDB do DB2 o 22.23 O banco de dados padrão de controle do Warehouse o 22.24 A janela Gerenciamento do banco de dados de controle do Warehouse o 22.25 Alterando o banco de dados de controle do warehouse o 22.26 Criando e inicializando um banco de dados de controle do Warehouse o 22.27 Criando etapas SQL adicionais o 22.28 Alterando origens e destinos na janela Modelo do processo o 22.29 Incluindo descrições nos objetos do Centro de Data Warehouse o 22.30 Executando conteúdo da amostra o 22.31 Editando uma instrução SQL Criar DLL o 22.32 Migrando business views do Visual Warehouse o 22.33 Gerando tabelas de destino e chaves primárias o 22.34 Utilizando drivers Merant ODBC o |22.35 Novo driver ODBC o 22.36 Definindo uma origem ou destino do warehouse no banco de dados do OS/2 o 22.37 Monitorando o estado do banco de dados de controle do warehouse o 22.38 Utilizando o Assistente SQL com a amostra de banco de dados TBC_MD o 22.39 Utilizando a função FormatDate o 22.40 Alterando a definição de idioma o 22.41 Utilizando o transformador Gerar tabela chave o 22.42 Fazendo manutenção de conexões para bancos de dados o 22.43 Configurando um cliente remoto do Centro de Data Warehouse o 22.44 Definindo um DB2 para a fonte do warehouse VM o 22.45 Definindo um DB2 para VM ou DB2 para a tabela de destino VSE o 22.46 Ativando suporte ao identificador delimitado o |22.47 O erro na junção de dados indica um problema na ligação o 22.48 Configurando e executando replicação com o Centro de Data Warehouse o 22.49 Dicas para detecção de problemas o 22.50 Acessando origens e destinos o 22.51 Acréscimos às origens do banco de dados não-IBM suportadas o |22.52 Criando uma Fonte de Dados Manualmente no Centro de Data Warehouse o |22.53 Importando e Exportando Meta-dados Usando o Common Warehouse Metadata Interchange (CWMI) + |22.53.1 Introdução + |22.53.2 Importando Meta-dados + |22.53.3 Atualizando os Meta-dados Após Executar o Utilitário de Importação + |22.53.4 Exportando Meta-dados o |22.54 Etapa do utilitário Runstats do OS/390 o |22.55 Etapa do utilitário Load do OS/390 o |22.56 Suporte XML do Common Warehouse Metamodel (CWM) o |22.57 Modelador de processos o |22.58 Modelador de esquema o |22.59 Campos obrigatórios o |22.60 Melhorias da barra de lançamento do Centro de Data Warehouse o |22.61 Imprimindo informações da etapa para um arquivo * Manual do Centro de Data Warehouse Application Integration o |23.1 Modelos de meta-dados adicionais + |23.1.1 Commit.tag + |23.1.1.1 Símbolos + |23.1.1.2 Exemplos de valores + |23.1.2 ForeignKey.tag + |23.1.2.1 Símbolos + |23.1.2.2 Exemplos de valores + |23.1.3 ForeignKeyAdditional.tag + |23.1.3.1 Símbolos + |23.1.3.2 Exemplos de valores + |23.1.4 PrimaryKey.tag + |23.1.4.1 Símbolos + |23.1.4.2 Exemplos de valores + |23.1.5 PrimaryKeyAdditional.tag + |23.1.5.1 Símbolos + |23.1.5.2 Exemplos de valores * Ajuda Online do Centro de Data Warehouse o 24.1 Definindo tabelas ou exibições para replicação o 24.2 Executando VWPs Essbase com o agente do AS/400 o 24.3 Utilizando a janela Publicar meta-dados do Centro de Data Warehouse e propriedades associadas o 24.4 Chaves externas o 24.5 Blocos de notas de replicação o 24.6 Importando uma linguagem de tag o 24.7 Links para incluir dados o 24.8 Importando tabelas o 24.9 Correção à Ajuda Online de RUNSTATS e REORGANIZE TABLE o 24.10 Página de Notificação (Bloco de Notas Propriedades do Warehouse e Bloco de Notas Programação) o 24.11 Campo Módulo do Agente no Bloco de Notas Sites do Agente * DB2 OLAP Starter Kit o |25.1 Site Web do OLAP Server o |25.2 Níveis de Serviços do Sistema Operacional Suportados o 25.3 Concluindo a Configuração do DB2 OLAP Starter Kit no UNIX o |25.4 Configurando o ODBC para o OLAP Starter Kit + |25.4.1 Configurando as Origens de Dados em sistemas UNIX + |25.4.1.1 Configurando as Variáveis de Ambiente ODBC + |25.4.1.2 Editando o Arquivo odbc.ini + |25.4.1.3 Incluindo uma origem de dados em um arquivo odbc.ini + |25.4.1.4 Exemplo de Definições ODBC para DB2 + |25.4.1.5 Exemplo de Definições ODBC para Oracle + |25.4.2 Configurando o OLAP Metadata Catalog em Sistemas UNIX + |25.4.3 Configurando as Origens de Dados em Sistemas Windows + |25.4.4 Configurando o OLAP Metadata Catalog em Sistemas Windows + |25.4.5 Após Você Configurar uma Origem de Dados o 25.5 Iniciando sessão do OLAP Starter Kit Desktop + 25.5.1 Starter Kit Login Example o 25.6 Criando e configurando manualmente os bancos de dados de amostra para OLAP Starter Kit o |25.7 Migrando Aplicativos para OLAP Starter Kit Versão 7.2 o |25.8 Problemas e Limitações Conhecidas o 25.9 Arquivos EQD do Complemento da Planilha OLAP Faltando * Manual de Administração do Information Catalog Manager o 26.1 Utilitário de Inicialização do Gerenciador do Catálogo de Informações + |26.1.1 + 26.1.2 Questões de licenciamento + 26.1.3 Questões de instalação o 26.2 Acessando os Catálogos de Informações do DB2 Versão 5 com o Gerenciador do Catálogo de Informações do DB2 Versão 7 o 26.3 Configurando um catálogo de informações o 26.4 Trocando meta-dados com outros produtos o 26.5 Trocando meta-dados utilizando o comando flgnxoln o 26.6 Trocando meta-dados utilizando o comando MDISDGC o 26.7 Invocando programas * Manual de Referência do Information Catalog Manager Programming o 27.1 Códigos de Razão do Gerenciador do Catálogo de Informações * Manual do Usuário do Information Catalog Manager * Information Catalog Manager: Mensagens Online o 29.1 Mensagem FLG0260E o 29.2 Mensagem FLG0051E o 29.3 Mensagem FLG0003E o 29.4 Mensagem FLG0372E o 29.5 Mensagem FLG0615E * Information Catalog Manager: Ajuda Online o 30.1 Gerenciador do Catálogo de Informações para a Web * DB2 Warehouse Manager Installation Guide o |31.1 Requisitos de software para transformadores do warehouse o |31.2 Conector para SAP R/3 + |31.2.1 Pré-requisitos de Instalação o |31.3 Conector para a Web + |31.3.1 Pré-requisitos de Instalação * Manual de Administração do Query Patroller o 32.1 O Cliente do DB2 Query Patroller é um Componente Separado o |32.2 Migrando da Versão 6 do DB2 Query Patroller Usando dqpmigrate o 32.3 Ativando o Query Management o |32.4 Localização do Table Space para Tabelas de Controle o |32.5 Novos Parâmetros para o Comando dqpstart o |32.6 Novo Parâmetro para o Comando iwm_cmd o |32.7 Nova Variável de Registro: DQP_RECOVERY_INTERVAL o 32.8 Iniciando o Query Administrator o 32.9 Administração do Usuário o 32.10 Criando uma Fila de Jobs o 32.11 Usando a Interface da Linha de Comandos o 32.12 Notas do Query Enabler o |32.13 O rastreador do DB2 Query Patroller pode retornar uma página de coluna em branco o |32.14 Query Patroller e Ferramentas de Replicação o |32.15 Apêndice B. Detectando problemas em clientes do DB2 Query Patroller ------------------------------------------------------------------------ Tutorial Business Intelligence ------------------------------------------------------------------------ |21.1 Tutorial Revisado do Business Intelligence |O FixPak 2 inclui um Tutorial do Business Intelligence e um banco de dados |de amostra do Centro de Data Warehouse revisados que corrigem vários problemas |existentes na Versão 7.1. Para aplicar o banco de dados de |amostra revisado do Centro de Data Warehouse, faça o seguinte: |Se você ainda não tiver instalado os bancos de dados de amostra, crie um |novo banco de dados de amostra usando a barra de lançamento Primeiros |Passos. Clique em Iniciar e selecione Programas |--> IBM DB2 --> Primeiros Passos. |Se tiver instalado bancos de dados de amostra anteriormente, elimine os |bancos de dados de amostra DWCTBC, TBC_MD e TBC. Se tiver incluído |quaisquer dados que deseja manter no bancos de dados de amostra, faça backup |deles antes de eliminá-los. Para eliminar os três bancos de dados de |amostra: | 1. |Para abrir a Janela de Comando do DB2, clique em Iniciar e |selecione Programas --> IBM DB2 --> Janela de |Comando. 2. |Na Janela de Comando do DB2, digite cada um dos três comandos a seguir, |pressionando Enter após digitar cada um: |db2 drop database dwctbc |db2 drop database tbc_md |db2 drop database tbc 3. |Feche a Janela de Comando do DB2. 4. |Crie um novo banco de dados de amostra usando a barra de lançamento |Primeiros Passos. Clique em Iniciar e selecione |Programas --> IBM DB2 --> Primeiros Passos. | ------------------------------------------------------------------------ Data Warehouse Center Manual de Administração ------------------------------------------------------------------------ 22.1 Detectando problemas As informações de resolução de problemas do Centro de Data Warehouse foram movidas para o DB2 Troubleshooting Guide. ------------------------------------------------------------------------ |22.2 Configurando o Excel como origem do Warehouse |No "Capítulo 3. Definindo origens do warehouse", seção "Definindo |origens do warehouse no banco de dados não-DB2 no Windows NT", falta uma etapa |na seção a respeito do Microsoft Excel. A nova etapa é mostrada abaixo |como Etapa 3. |Se você estiver executando o Driver ODBC do Microsoft Excel 95/97 para |acessar planilhas do Excel, deve criar uma tabela nomeada para cada uma das |pastas de trabalho dentro da planilha. Para criar uma tabela nomeada |para cada pasta de trabalho: | 1. |Selecione as colunas e linhas desejadas. 2. |Clique em Excel ---> Inserir ---> Nome ---> |Definir. 3. |Verifique se o campo "Faz referência a" da janela Definir nome contém as |células selecionadas na Etapa 1. Caso contrário, clique no ícone na |extremidade direita do campo "Faz referência a" a fim de incluir todas as |células selecionadas. 4. |Digite um nome (ou utilize o padrão) para os dados marcados. 5. |Dê um clique em OK. | ------------------------------------------------------------------------ 22.3 Definindo e executando processos No "Capítulo 5. Definindo e executando os processos", a seção "Iniciando uma etapa a partir da parte externa do Centro de Data Warehouse ", deve ser observado que o JDK 1.1.8 ou superior é requerido na estação de trabalho do servidor do warehouse e o site do agente se você iniciar uma etapa que possua um nome de duplo byte. ------------------------------------------------------------------------ 22.4 Diálogo Exportar Meta-dados No Capítulo 12, na seção intitulada "Exportando e Importando Meta-dados do Centro de Data Warehouse," na subseção intitulada "Exportando os meta-dados para um arquivo de linguagem de código," Etapa 5 deve ser como segue: Se você não desejar exportar as informações de programação relacionadas aos processos que está exportando desmarque a caixa de seleção Incluir programações. ------------------------------------------------------------------------ 22.5 Definindo valores para um programa Submit OS/390 JCL Jobstream (VWPMVS) Na página 180, seção "Definindo os valores para um programa (VWPMVS) fluxo do job JCL Submeter OS/390," a etapa 8 declara que você deve definir um arquivo .netrc no mesmo diretório do arquivo JES. No entanto, o programa cria o arquivo .netrc. Se o arquivo não existir, o programa cria o arquivo no diretório inicial. Se já existir um arquivo .netrc no diretório inicial, o programa renomeia o arquivo existente e cria um novo arquivo. Quando o programa termina o processamento, ele exclui o novo arquivo .netrc que ele criou e renomeio o arquivo original para .netrc. ------------------------------------------------------------------------ 22.6 Alteração no apêndice da amostra do Data Warehouse * No apêndice da amostra de Data warehouse, seção "Exibindo e modificando meta-dados da amostra", a tabela GEOGRAPHIES deve ser incluída na lista de tabelas de origem. * No apêndice da amostra de Data warehouse, seção "Promovendo as etapas", no procedimento para promover etapas para modo de produção, a seguinte declaração está incorreta porque a tabela de destino foi criada quando você promoveu a etapa para modo de teste: O Centro de Data Warehouse começa a criar a tabela de destino, e exibe uma janela de andamento. ------------------------------------------------------------------------ 22.7 Mensagens do Centro de Data Warehouse No Microsoft Windows NT e Windows 2000, o Centro de Data Warehouse registra eventos no registro de eventos do sistema. A ID do Evento corresponde ao número da mensagem do Centro de Data Warehouse . Para obter informações sobre as mensagens do Centro de Data Warehouse , consulte o Referência de Mensagens. ------------------------------------------------------------------------ 22.8 Criando um contorno e carregando dados no servidor de integração OLAP do DB2 O exemplo da figura 20 da página 315 tem um erro. Os comandos a seguir estão corretos: "C:\IS\bin\olapicmd" < "C:\IS\Batch\my_script.script" > "C:\IS\Batch\my_script.log" As aspas duplas em torno de "C:\IS\bin\olapicmd" serão necessárias se o nome de um diretório do caminho contiver um espaço em branco, como em Arquivos de Programa. ------------------------------------------------------------------------ 22.9 Utilizando a conexão clássica com o Centro de Data Warehouse * No "Apêndice F. Usando o Classic Connect com o Centro de Data Warehouse", a seção "Instalando o driver ODBC CROSS ACCESS" na página 388 foi substituída pela seguinte informação: Instale o driver ODBC CROSS ACCESS executando uma instalação personalizada do DB2 Warehouse Manager Versão 7 e selecionando o componente Drivers do Classic Connect. O driver não é instalado como parte de uma instalação típica do DB2 Warehouse Manager. O driver ODBC CROSS ACCESS será instalado no subdiretório ODBC32 do diretório SQLLIB. Após a conclusão da instalação, você deve incluir manualmente o caminho para o driver (por exemplo, C:\Arquivos de Programas\SQLLIB\ODBC32) para a variável de ambiente PATH do sistema. Se você possuir outra versão do driver ODBC CROSS ACCESS já instalada, coloque o caminho ...\SQLLIB\ODBC32\ antes do caminho da outra versão. O sistema operacional utilizará o primeiro diretório no caminho que contém o driver ODBC CROSS ACCESS. * O procedimento seguinte deve ser incluído no "Apêndice F. Usando o Classic Connect com o Centro de Data Warehouse ": Instalando o Driver ODBC do Classic Connect: 1. Insira o CD-ROM do Gerenciador do Warehouse na unidade de CD-ROM. A barra de lançamento é aberta. 2. Clique em Instalar na barra de lançamento. 3. Na janela Selecionar Produtos, verifique se a caixa de seleção DB2 Warehouse Manager está selecionada, em seguida, clique em Avançar. 4. Na janela Selecionar Tipo de Instalação, selecione Personalizada, em seguida, clique em Avançar. 5. Na janela Selecionar Componentes, selecionar Drivers do Classic Connect e Agente do Warehouse, limpe todas as outras caixas de seleção e clique em Avançar. 6. Na janela Copia de Arquivos, reveja as seleções. Para alterar alguma delas, clique em Voltar para retornar à janela que aceita a alteração de seleção.Clique em Avançar para iniciar a instalação. ------------------------------------------------------------------------ 22.10 Estrutura do ambiente do Centro de Data Warehouse No "Apêndice G. Estrutura do ambiente do Centro de Data Warehouse " na página 401, existe uma entrada incorreta na tabela. C:\Arquivos de Programas\SQLLIB\ODBC32 não está incluído na variável de ambiente PATH. A única atualização feita na variável de ambiente PATH é C:\Arquivos de Programas\SQLLIB\BIN. ------------------------------------------------------------------------ 22.11 Utilizando o Invert Transformer O manual indica que Inverter Transformador pode criar uma tabela de destino com base nos parâmetros, mas deixa de informar que a tabela de destino gerada não terá as colunas de saída desejadas, que deverão ser criadas explicitamente na tabela de destino. ------------------------------------------------------------------------ 22.12 Acessando Dados do DB2 Versão 5 com o Agente de Warehouse do DB2 Versão 7 Os agentes do warehouse do DB2 Versão 7, conforme configurados pelo processo de instalação do DB2 Versão 7, suportarão o acesso aos dados do DB2 Versão 6 e do DB2 Versão 7. Se você precisar acessar os dados do DB2 Versão 5, deverá levar em conta uma destas duas abordagens: * Migrar os servidores do DB2 Versão 5 para o DB2 Versão 6 ou DB2 Versão 7. * Modificar a configuração do agente, no sistema operacional apropriado, para permitir o acesso aos dados do DB2 Versão 5. Os agentes do warehouse do DB2 Versão 7 não suportam o acesso aos dados a partir do DB2 Versão 2 ou qualquer outra versão anterior. 22.12.1 Migrando os servidores do DB2 Versão 5 Para obter informações sobre a migração dos servidores do DB2 Versão 5, consulte o DB2 Universal Database Iniciação Rápida do seu sistema operacional. 22.12.2 Alterando a configuração do agente As informações a seguir descrevem como alterar a configuração do agente em cada um dos sistemas operacionais. Quando você fizer a migração dos servidores do DB2 para o DB2 Versão 6 ou posterior, remova as alterações feitas à configuração. 22.12.2.1 Agentes de Warehouse UNIX Para configurar um agente de warehouse do UNIX para que ele acesse os dados a partir do DB2 Versão 5 com o acesso ODBC ou CLI: 1. Instale o cliente tempo de execução do DB2 Versão 6. Você pode obter o cliente tempo de execução com a seleção do download do cliente no seguinte endereço: http://www.ibm.com/software/data/db2/udb/support 2. Atualize o arquivo de configuração do agente do warehouse para que a variável de ambiente DB2INSTANCE indique para uma instância do DB2 Versão 6. 3. Catalogue todos os bancos de dados desta instância do DB2 Versão 6 aos quais o agente do warehouse deverá ter acesso. 4. Pare o processo do daemon do agente, emitindo o comando kill (eliminar) com a ID do processo de daemon do agente. O daemon do agente será reinicializado automaticamente. Você precisará de uma autoridade raiz para eliminar o processo. 22.12.2.2 Agentes de warehouse do Microsoft Windows NT, Windows 2000 e OS/2 Para configurar um agente de warehouse para o Microsoft NT, Windows 2000 ou OS/2 para que ele acesse os dados a partir do DB2 Versão 5: 1. Instale o DB2 Connect Enterprise Edition Versão 6 em uma estação de trabalho diferente daquela em que o agente de warehouse do DB2 Versão 7 foi instalado. O DB2 Connect Enterprise Edition faz parte do DB2 Universal Database Enterprise Edition e do DB2 Universal Database Enterprise - Extended Edition. Se a versão 6 de um destes produtos DB2 estiver instalada, você não precisará instalar o DB2 Connect separadamente. Restrição: Você não pode instalar várias versões do DB2 na mesma estação de trabalho do Windows NT ou OS/2. Pode instalar o DB2 Connect em uma outra estação de trabalho do Windows NT ou em uma estação de trabalho do OS/2 ou do UNIX. 2. Configure o agente do warehouse e o DB2 Connect Versão 6 para o acesso aos dados do DB2 Versão 5. Para obter maiores informações, consulte o Manual do Usuário do DB2 Connect. Estas etapas constituem uma visão geral das etapas necessárias: a. No sistema do DB2 Versão 5, use o Processador da Linha de Comandos do DB2 para catalogar o banco de dados da Versão 5 a que o agente do warehouse deverá ter acesso. b. No sistema do DB2 Connect, use o Processador da Linha de Comandos do DB2 para catalogar: + O nó TCP/IP do sistema do DB2 Versão 5. + O banco de dados do sistema do DB2 Versão 5. + A entrada DCS do sistema do DB2 Versão 5. c. Na estação de trabalho do agente do warehouse, use o Processador da Linha de Comandos do DB2 para catalogar: + O nó TCP/IP do sistema do DB2 Connect. + O banco de dados do sistema do DB2 Connect. Para obter informações sobre a catalogação dos bancos de dados, consulte o DB2 Universal Database Suplemento de Configuração e Instalação. 3. Na estação de trabalho do agente do warehouse, faça o bind do pacote DB2 CLI a cada banco de dados que deverá ser acessado através do DB2 Connect. Os comandos do DB2 a seguir fornece um exemplo do bind com o v5database, um banco de dados hipotético do DB2 versão 5. Use o Processador da Linha de Comandos do DB2 para emitir os seguintes comandos. O db2cli.lst e o db2ajgrt estão localizados no diretório \sqllib\bnd. db2 connect to v5database user userid using password db2 bind db2ajgrt.bnd db2 bind @db2cli.lst blocking all grant public no qual userid é a ID do usuário para o banco de dados v5 e password é a senha para a ID do usuário. Ocorre um erro quando o db2cli.list efetuou um bind no banco de dados do DB2 Versão 5. Esse erro ocorre porque os LOBs (large objects - objetos grandes) não são suportados nesta configuração. Ele não afetará o acesso do agente de warehouse ao banco de dados do DB2 Versão 5. O FixPak 14 do DB2 Universal Database Versão 5, que estará disponível em junho de 2000, é obrigatório para o acesso aos dados do DB2 Versão 5 através do DB2 Connect. Consulte o APAR número JR14507 desse FixPak. ------------------------------------------------------------------------ |22.13 Programa de extração de meta-dados do IBM ERwin |22.13.1 Conteúdo | |Requisitos de software |Arquivos de programas |Criando arquivos de linguagem de código |Importando um arquivo de linguagem de código no Centro de Data Warehouse |Importando um arquivo de linguagem de código no Information Catalog Manager |Detectando problemas |ERwin para mapeamento do Centro de Data Warehouse |ERwin para mapeamento do Information Catalog Manager |Esta seção descreve como utilizar o IBM ERwin Metadata Extract Program para |extrair meta-dados de um arquivo ER1 e criar um arquivo de linguagem de código |do Centro de Data Warehouse do DB2 ou do Information Catalog Manager |(DataGuide). |O programa de extração de meta-dados extrai todos os objetos físicos tais |como bancos de dados, tabelas e colunas que estão armazenados no arquivo ER1 |de entrada e grava o modelo de meta-dados em um arquivo de linguagem de código |do Centro de Data Warehouse ou do Information Catalog Manager. O modelo |lógico para o Information Catalog Manager, consistindo em entidades e |atributos, também é extraído e criado, criando todas as marcações de relações |relevantes entre os objetos, tais como bancos de dados e tabelas e tabelas e |entidades. Para tabelas sem um banco de dados, um banco de dados padrão |nomeado DATABASE é criado. Para tabelas sem um esquema, um esquema |padrão de USERID é utilizado. Para um nome de modelo, o arquivo ER1 é |utilizado. Para obter mais informações sobre o mapeamento de atributos |ER1 para marcações do Centro de Data Warehouse ou do Information Catalog |Manager, consulte o "ERwin para mapeamento do Centro de Data Warehouse do DB2" |e "ERwin para mapeamento do Information Catalog Manager." |O programa de extração de meta-dados suporta todos os modelos de ER1 com os |bancos de dados relacionais, incluindo fontes de dados DB2, Informix, Oracle, |Sybase, ODBC e o Microsoft SQL Server. |22.13.2 Requisitos de software | |Os requisitos de software a seguir devem ser atendidos para executarem o |programa de extração de meta-dados: | * |Windows NT 4.0 ou posterior * |ERwin 3.5.2 com Service Pack 3 Build 466 | |Os requisitos de software a seguir devem ser atendidos para importarem o |arquivo de linguagem de código ERwin: | |Para Centro de Data Warehouse: |IBM DB2 Universal Database Versão 7.2 | | |Para Information Catalog Manager: |IBM DB2 Warehouse Manager 7.2 | |Os arquivos de linguagem de código de modelo (.tag) devem estar no |diretório que é indicado pela variável de ambiente VWS_TEMPLATES. |Os arquivos de linguagem de código de tipo (.typ) devem estar no |diretório que é indicado pela variável de ambiente DGWPATH. |22.13.3 Arquivos de programas | |O programa de extração de meta-dados está instalado no subdiretório |sqllib\bin do diretório IBM DB2. O programa instala os seguintes |arquivos em seu diretório: | |flgerwin.exe |Programa de migração principal | | |erwext.dll |DLL do gerador do arquivo de linguagem de código | | |cdmerwsn.dll |DLL da classe de wrappers da API do ERwin | |Para iniciar o programa de extração, emita o comando flgerwin a partir de |um prompt de comandos. |22.13.4 Criando os arquivos de linguagem de código | |Para criar um arquivo de linguagem de código do Centro de Data Warehouse ou |do Information Catalog Manager, execute o programa flgerwin.exe e |forneça dois parâmetros principais. O primeiro parâmetro é o arquivo |ER1 a partir do qual extrair os meta-dados. O segundo parâmetro é o |nome do arquivo de linguagem de código de saída. Por padrão, o programa |de extração inclui o parâmetro MERGE no arquivo de linguagem de código do |Centro de Data Warehouse. |A sintaxe de comando é: | flgerwin inputFile.er1 outputFile.tag [-dwc] [-icm] [ -m] [-u] [-a] [-d] |A sintaxe para o comando se desejar um esquema em estrela é: | flgerwin inputFile.er1 outputFile.tag [-dwc] [-starschema] | |-dwc |Cria um arquivo de linguagem de código do Centro de Data Warehouse. |Os parâmetros opcionais disponíveis para -dwc são -m e -starschema. | | |-icm |Cria um arquivo de linguagem de código do Information Catalog |Manager. Os parâmetros opcionais disponíveis para -icm são -m, -u, -a e |-d. | | |-starschema |Cria um arquivo de linguagem de código de esquema em estrela do modelo |ERwin. | | |-m |Especifica a ação no objeto como MERGE. | | |-u |Especifica a ação no objeto como UPDATE. | | |-a |Especifica a ação no objeto como ADD. | | |-d |Especifica a ação no objeto como DELETE. | |O programa de extração de meta-dados funciona com meta-dados, não com |dados. Após você concluir a importação do arquivo de linguagem de |código ERwin e antes de utilizar a tabela de destino, você precisa |corresponder as senhas e os IDs de usuários. Para combinar os |meta-dados com os dados do banco de dados existente: |Altere o ID do usuário e a senha do Centro de Data Warehouse em |Propriedades --> Banco de Dados --> ID do usuário para |corresponderem ao ID do usuário e a senha do banco de dados combinado. |Com o programa de extração de meta-dados, você pode importar um arquivo de |linguagem de código como um destino. No meta-dados recentemente |importado, as tabelas ainda não estão ocupadas. Você pode exibir estas |tabelas como representações lógicas ou físicas e criar uma etapa do warehouse |para ocupar as definições de tabelas importadas do ERwin. |O arquivo ER1 de entrada deve estar em um estado gravável. Após o |programa de extração de meta-dados ser executado, o arquivo ER1 torna-se |somente leitura. Para alterar o arquivo para o modo de |leitura/gravação, utilize um comando como o seguinte exemplo: |attrib -r erwinsimplemode.er1 |onde erwinsimplemode.er1 é o nome do arquivo simples ERwin. |O programa de extração de meta-dados salvará o arquivo ER1 em um estado |somente leitura, se o arquivo estiver sendo utilizado em uma sessão atual do |ERwin ou se alguma condição de erro foi detectada. Você poderá receber |uma mensagem de erro de término anormal do programa, se o arquivo ER1 estiver |em um estado somente leitura. O programa de extração de meta-dados |exibe o nome da tabela que está atualmente sendo processado. Você |receberá uma mensagem informativa, quando o programa de extração de meta-dados |terminar o processamento. |Quando você estiver criando esquemas em estrela unindo automaticamente as |tabelas de dimensão às tabelas de ocorrência, o processamento poderá demorar |dependendo de quantas tabelas você utilizar. Durante o processamento, |as linhas de junção automática são verdes. Quando salvas, as linhas se |alteram para pretas. |Utilize o nome de limitação gerado automaticamente, para garantir que o |nome da limitação é exclusivo. |Durante o processamento, você pode receber a mensagem, "Duplicar coluna |encontrada. A coluna não será extraída." Essa é uma mensagem |informativa e não afeta a conclusão bem-sucedida do programa de |extração. Essa mensagem é exibida quando o nome físico de uma chave |remota é o mesmo que o nome físico de uma coluna na tabela atualmente sendo |processada. |22.13.5 Importando um arquivo de linguagem de código no Centro de Data Warehouse | |Você pode importar um arquivo de linguagem de código no Centro de Data |Warehouse de duas maneiras. Você pode utilizar o Centro de Data |Warehouse ou a linha de comandos. |Para utilizar o Centro de Data Warehouse para importar um arquivo de |linguagem de código: | 1. |Clique em Iniciar --> Programas --> IBM DB2 --> |Control Center. O DB2 Control Center está aberto. 2. |Abra o Centro de Data Warehouse e inicie sessão. 3. |Clique com o botão direito do mouse em Warehouse. A |janela Importar é aberta. 4. |Clique em Importar Metadata -> ERwin. A janela |Importar Meta-dados é aberta. 5. |No campo Arquivo de entrada, digite o nome do arquivo de |linguagem de código de entrada e clique em OK. 6. |Selecione a caixa de opções Extrair esquema em estrela, para |definir um modelo de meta-dados de esquema em estrela do ERwin como um esquema |de warehouse. | |Após a importação ser concluída, você pode clicar em Exibir --> |Atualizar para exibir a nova etapa. |Para importar um arquivo de linguagem de código utilizando a linha de |comandos, digite o seguinte comando: | iwh2imp2 tag-filename log-pathname |target-control-db userid password | |tag-filename |O caminho e nome de arquivo completos do arquivo de linguagem de |código. | | |log-pathname |O nome do caminho completo do arquivo de log. | | |target-control-db |O nome do banco de dados de destino para a importação. | | |userid |O ID do usuário utilizado para acessar o banco de dados de |controle. | | |password |A senha utilizada para acessar o banco de dados de controle. | |Para alterar uma definição do banco de dados DB2 para que ele seja a origem |do Centro de Data Warehouse, você pode alterar o arquivo de linguagem de |código: | * |Altere a marcação ISWH de ISWH(Y) para ISWH(N) para cada banco de dados |que você deseja como uma origem. * |Altere a marcação de relação de :RELTYPE.TYPE(LINK) |SOURCETYPE(SCGTARIR) TARGETYPE(DATABASE) para |:RELTYPE.TYPE(LINK) SOURCETYPE(SCGSRCIR) |TARGETYPE(DATABASE) para cada banco de dados que você deseja como uma |origem. | |Quando o arquivo de linguagem de código é importado, você pode receber a |seguinte mensagem: | |Mensagem: DWC13238E O objeto de tipo "COLUMN" identificado por "DBNAME(___) | OWNER(___) TABLE(___) COLUMNS(___)" é definido duas vezes no arquivo de linguagem de código. | |Esta é uma mensagem informativa e sua importação foi concluída com |êxito. Você poderá receber essa mensagem, se tiver uma entidade que |possui chaves remotas com o mesmo nome ou uma entidade com colunas nomeadas |semelhantemente que foram afetadas pelo truncamento ou outras circunstâncias |semelhantes. Verifique seu modelo para nomes de colunas duplicados e |faça ajustes conforme apropriado. |22.13.6 Importando um arquivo de linguagem de código no Information Catalog Manager | |Existem duas maneiras de importar um arquivo de linguagem de código no |Information Catalog Manager. Você pode utilizar o Information Catalog |Administrator ou utilizar a linha de comandos. |Para utilizar o Information Catalog Administrator para importar um arquivo |de linguagem de código: | 1. |Clique em Iniciar --> Programas --> DB2 --> |Information Catalog Manager. 2. |Clique em Catálogo --> Importar. A janela Importar |é aberta. 3. |Clique em Procurar para procurar o arquivo de linguagem de |código, em seguida, clique em Importar. | |Após a importação ser concluída, você pode dar um clique duplo no ícone |Assuntosmq ue abre uma janela que mostra todos os modelos e bancos |de dados importados. |Para importar um arquivo de linguagem de código utilizando a interface de |comando, digite o seguinte comando: |DGUIDE /USERID userid /PASSWORD password | /DGNAME dgname /IMPORT filename /LOGFILE |filename /ADMIN /RESTART (B|C) | |/USERID |O ID do usuário utilizado para acessar o banco de dados de |controle. | | |/PASSWORD |A senha para esse ID do usuário. | | |/DGNAME |O nome do Information Catalog Manager. | | |/IMPORT |O caminho e nome de arquivo completos do arquivo de linguagem de |código. | | |/LOGFILE |O nome do caminho completo do arquivo de log. | | |/ADMIN |Indica que você está iniciando sessão como um administrador. | | |/RESTART |Indica que a importação iniciará no começo do arquivo de linguagem de |código (opção B) ou iniciará do último ponto consolidado (opção C, o |padrão). | |22.13.7 Detectando problemas |Se você receber uma mensagem de erro, procure a mensagem aqui com a ação |que você poderá tomar para resolver o erro. |Arquivo de entrada ou arquivo de saída da marcação ER1 |faltando. |O programa de extração de meta-dados requer dois parâmetros em um pedido |específico. O primeiro parâmetro é o nome do arquivo ER1 e o segundo é |o nome do arquivo de saída de marcação. Se você especificar o nome de |um arquivo de linguagem de código existente, o arquivo será sobreposto. |Término anormal do programa do sistema Windows. |Provavelmente, o arquivo ER1 de entrada está em um estado somente |leitura. Isso poderá acontecer se ocorreu um problema quando você |salvou o arquivo ER1 e o programa de extração de meta-dados colocou o arquivo |no modo somente leitura. Emita o comando |attrib -r inputFile.er1 |em uma shell de comando, para alterar o estado do arquivo ER1 para |leitura/gravação. |O arquivo de linguagem de código ... não pôde ser |aberto. |Verifique se existe algum problema que pode prevenir que um arquivo esteja |sendo criado ou aberto na unidade atual. |Caminho para arquivos de modelos não encontrado. |A variável de ambiente VWS_TEMPLATES não está definida. Verifique se |o Centro de Data Warehouse está instalado. |Caminho para arquivos de tipos não encontrado. |A variável de ambiente DGWPATH não está definida. Verifique se o |Centro de Data Warehouse está instalado. |Versão do servidor não-suportada: ... |O arquivo ER1 de entrada do qual você está tentando extrair está armazenado |em um servidor de destino que não é suportado pelo programa. Inicie o |ERwin, abra o arquivo ER1, em seguida, clique em Servidor --> |Servidor de Destino e na versão apropriada [consulte Requisitos de |Software]. Salve o arquivo ER1. |Erro de ERwAPI desconhecido. |Ocorreu um erro de API do ERwin e o programa não conseguiu obter mais |informações sobre o erro. Certifique-se de que o ERwin |3.5.2 esteja instalado. Você deve registrar a API do |ERwin. |Para registrar a API do ERwin, execute o comando a seguir do diretório onde |os arquivos de programas do ERwin estão instalados: regsvr32 |er2api32.dll. Você verá uma mensagem, "DllRegisterServer |no er2api32.dll bem-sucedido." Você pode iniciar o programa de |extração do Centro de Data Warehouse ou emitir o comando flgerwin de uma shell |do comando. |Extrair o erro do programa: ... |Verifique a mensagem de erro e comece a agir conforme apropriado. |Mais provavelmente, este é um erro de programa de extração interno e o |problema precisa ser relatado para um representante IBM. |Erro de programa de extração desconhecido. |Ocorre um erro desconhecido. Mais provavelmente, este é um erro |interno e o problema precisa ser relatado para um representante IBM. |Programa de extração terminado devido a erro(s). |Ocorreu um erro que previne a conclusão do programa de extração. |Consulte as mensagens de erro adicionais para resolver o problema ou entre em |contato com um representante IBM. |22.13.8 ERwin para mapeamento do Centro de Data Warehouse do DB2 |Esta seção deve mostrar os atributos de objetos principais do ERwin |correspondentes às marcações do Centro de Data Warehouse: |Database - WarehouseDatabase.tag ou |SourceDatabase.tag | ERwin Marcação da linha de Centro de Data Warehouse comandos Nome do Diagrama NAME Nome do Destino ou da Origem do Warehouse Autor do Diagrama RESPNSBL Contato Nome do Banco de DBNAME Nome do banco de dados Dados Versão do Banco de DBTYPE Tipo de banco de dados Dados Descrição do SHRTDESC Descrição Diagrama |Tabela - Table.tag | ERwin Marcação da linha de Centro de Data Warehouse comandos Nome da Tabela NAME Nome da tabela Nome da Tabela TABLES Nome da tabela Nome do Banco de DBNAME n/a Dados Proprietário da OWNER Esquema da tabela Tabela Comentário da Tabela SHRTDESC Descrição |Coluna - Column.tag | ERwin Marcação da linha de Centro de Data Warehouse comandos Nome da coluna NAME Nome da coluna Tipo de dados NATIVEDT Tipo de dados Comprimento LENGTH Comprimento Escala SCALE Escala Opção Nula NULLABLE Nulos Permitidos (caixa de opções) Posição POSNO n/a Chave Principal KEYPOSNO n/a Nome do Banco de DBNAME n/a Dados Proprietário da OWNER n/a Tabela Nome da Tabela TABLES n/a Comentário da Coluna SHRTDESC Descrição |22.13.8.1 ERwin para Mapeamento do Information Catalog Manager |Esta seção mostra como os atributos de objetos principais do ERwin |correspondem às marcações do Information Catalog Manager: |Banco de Dados - Database.tag | ERwin Marcação da linha de Interface do Information comandos Catalog Manager Nome do Diagrama NAME Nome do banco de dados Autor do Diagrama RESPNSBL Proprietário do banco de dados Nome do Banco de DBNAME Nome do banco de dados Dados Versão do Banco DBTYPE Tipo de banco de dados de Dados Descrição do SHRTDESC Descrição Breve Diagrama |Tabela - TableOrView.tag | ERwin Marcação da linha de Interface do Information comandos Catalog Manager Nome da Tabela NAME Nome da tabela Nome da Tabela TABLES Nome da tabela Nome do Banco de DBNAME Nome do banco de dados Dados Proprietário da OWNER Proprietário da tabela Tabela Comentário da SHRTDESC Descrição Breve Tabela API ERwin TABLVIEW Definição representa uma exibição |Coluna - ColumnOrField.tag | ERwin Marcação da linha de Interface do Information comandos Catalog Manager Nome da coluna NAME Nome da coluna Tipo de dados DATATYPE Tipo de dados da coluna Comprimento LENGTH Comprimento da coluna Escala SCALE Escala da coluna Opção Nula NULLS A coluna pode ser nula (?) Posição POSNO Posição da coluna Chave Principal KEYPOSNO Posição da coluna na chave principal API ERwin ISKEY A coluna é parte da chave (?) API ERwin UNIQKEY A coluna é uma chave exclusiva (?) Nome do Banco de DBNAME Nome do banco de dados Dados Proprietário da OWNER Proprietário da tabela Tabela Nome da Tabela TABLES Nome da tabela Comentário da SHRTDESC Descrição Breve Coluna ERwin ISTEXT É o texto de dados (?) API ERwin IDSRES Resolução de dados |Modelo - Model.tag | ERwin Marcação da linha de Interface do Information comandos Catalog Manager Nome do arquivo NAME Nome do modelo ER1 Autor do Diagrama RESPNSBL Para obter informações adicionais... Descrição do SHRTDESC Descrição Breve Diagrama |Entidade - Entity.tag | ERwin Marcação da linha de Interface do Information Catalog comandos Manager Nome da Entidade NAME Nome da entidade Notas SHRTDESC Descrição Breve Definição LONGDESC Descrição longa Proprietário da RESPNSBL Para obter informações Entidade adicionais... |Atributo - Attribute.tag | ERwin Marcação da linha de Interface do Information comandos Catalog Manager Nome do Atributo NAME Nome do atributo Notas SHRTDESC Descrição Breve Definição LONGDESC Descrição longa Tipo de dados DATATYPE Tipo de dados do membro Comprimento LENGTH Comprimento do membro ------------------------------------------------------------------------ |22.14 Limpeza de nome e de endereço no Centro de Data Warehouse |22.14.1 | | |Utilize o Centro de Data Warehouse e o Sistema de Software Trillium para |limpar dados do nome e do endereço. O Sistema de Software Trillium é um |produto de limpeza de nome e de endereço que reformata, padroniza e verifica |dados do nome e do endereço. Você pode utilizar o Sistema de Software |Trillium no Centro de Data Warehouse, iniciando os programas do Sistema em |Batch do Trillium de um programa definido pelo usuário. O programa |definido pelo usuário é incluído na árvore do Warehouse quando você importa os |meta-dados do script do Sistema em Batch do Trillium ou do JCL. |O Centro de Data Warehouse já fornece integração com as ferramentas do |Vality and Evolutionary Technologies, Inc. |22.14.1.1 Requisitos | * |Você deve instalar o Sistema de Software Trillium no site do agente |warehouse ou em um host remoto. * |Em plataformas UNIX e Windows, o caminho para o diretório do |compartimento do Sistema deve ser incluído na variável de ambiente do sistema |PATH, para ativar o processo do agente para executar os programas do Sistema |em Batch do Trillium. No UNIX, isso deve ser feito incluindo a variável |PATH no arquivo IWH.environment antes de iniciar o processo |vwdaemon. * |Os usuários devem ter um conhecimento de trabalho do software |Trillium. | |A tabela a seguir mostra os requisitos de software. | Sistema operacional Software requerido UNIX Sistema de Software Trillium Versão 4.0 Agente do warehouse do Data Warehouse Manager Versão 7.2 Windows NT e Windows 2000 Sistema de Software Trillium Versão 4.0 Agente do warehouse do Data Warehouse Manager Versão 7.2 Para obter acesso remoto, o host deve ter os daemons ftpd e rexecd instalados. OS/390 Sistema de Software Trillium Versão 4.0 instalado no host OS/390 remoto Agente do warehouse do Data Warehouse Manager Versão 7.2 instalado no UNIX, Windows NT O TCP/IP 3.2 ou superior deve ser instalado O sistema operacional OS/390 é suportado apenas como o host remoto |22.14.1.2 Componentes do Sistema de Software Trillium |O Sistema de Software Trillium consiste em quatro componentes |principais: conversor, analisador, geocodificador e |correspondedor. Utilize os componentes como um conjunto de funções para |executar as operações de limpeza de nome e de endereço. Você pode |executar os componentes do Sistema em Batch do Trillium, que é um programa |definido pelo usuário. | |Conversor |Utilize o conversor para padronizar e converter os dados de origem no |formato de saída especificado. |Analisador |Utilize o analisador para interpretar os dados de origem de nome e de |endereço e crie os meta-dados sobre os dados de origem. |Geocodificador |Utilize o geocodificador para comparar os dados de origem com os dados do |serviço postal, para fornecer quaisquer informações que estão faltando, tais |como códigos de courier ou ZIP+4. O geocodificador também executa |operações correspondentes com os dados do Censo dos Estados Unidos. |Correspondendor |Utilize o correspondedor para comparar nomes e endereços semelhantes para |identificar registros duplicados. Você pode executar a referência |correspondente, utilizando o correspondendor para comparar um registro a um |grupo de registros. | |22.14.1.3 Utilizando o Sistema em Batch do Trillium com o Centro de Data Warehouse |No Centro de Data Warehouse, você pode importar os meta-dados do Sistema em |Batch do Trillium e criar uma etapa do programa definido pelo usuário. |Esta etapa chama um script do Sistema em Batch Trillium no site do agente do |warehouse local ou em um site do agente do warehouse remoto. No Centro |de Data Warehouse, o script do Sistema em Batch do Trillium é uma etapa com um |arquivo fonte e um de destino. O arquivo fonte é o arquivo de dados de |entrada utilizado para o primeiro comando do Sistema em Batch do |Trillium. O arquivo de destino é o arquivo de dados de saída pelo |último comando do Trillium no script. A etapa pode ser copiada para |outro processo para ser utilizada com outras etapas. |As figuras a seguir mostram a relação entre os arquivos de dados de entrada |e de saída do Sistema em Batch do Trillium e os arquivos de destino no Centro |de Data Warehouse. |Figura 1. Arquivo de script do Trillium de amostra REM Executando o conversor pfcondrv -parmfile c:\tril40\us_proj\parms\pfcondrv.par REM Executando o analisador pfprsdrv -parmfile c:\tril40\us_proj\parms\pfprsdrv.par REM Executando o Correspondedor cfmatdrv -parmfile c:\tril40\us_proj\parms\pfmatdrv.par |Figura 2. Conteúdo do arquivo pfcondrv.par INP_FNAME01 c:\tril40\us_proj\data\convinp INP_DDL01 c:\tril40\us_proj\dict\input.ddl |Figura 3. Conteúdo do arquivo pfmatdrv.par OUT_DDNAME c:\tril40\us_proj\data\maout DDL_OUT_FNAME c:\tril40\us_proj\dict\parseout.ddl |Figura 4. A definição da etapa do Sistema em Batch do Trillium c:\Tril40\us_proj\data\convinp (arquivo fonte) --> Etapa do Sistema em Batch do Trillium --> c:\tril40\us_proj\data\maout (arquivo de destino) |22.14.1.4 Importando os meta-dados do Trillium |Para importar os meta-dados do Trillium no Centro de Data Warehouse: | 1. |Crie um script ou JCL do Sistema em Batch do Trillium. Você pode |utilizar qualquer script ou ferramenta de gravação do JCL para criar o script |ou o arquivo JCL. 2. |Clique com o botão direito do mouse em Warehouse e clique em |Importar Meta-dados --> Trillium para abrir a janela |Sistema em Batch do Trillium. 3. |No campo Script ou JCL, digite o nome do script ou arquivo JCL |do Sistema em Batch do Trillium que você deseja executar. 4. |No campo Arquivo de entrada, digite o nome do arquivo de dados |de entrada para o programa do Sistema em Batch do Trillium que é executado |primeiro no script ou arquivo JCL especificado. 5. |No campo DDL de Entrada, digite o nome do arquivo DLL de |entrada que descreve o arquivo de dados de entrada. Esse arquivo deve |ser especificado no site do agente do warehouse. 6. |No campo Arquivo de saída, digite o nome do arquivo de dados de |saída para o programa do Sistema em Batch do Trillium no script ou arquivo |JCL. 7. |No campo DDL de Saída, digite o nome do arquivo DLL de entrada |que descreve o arquivo de dados de saída. Esse arquivo deve ser |especificado no site do agente do warehouse. 8. |Opcional: No campo Arquivo de erro de saída, digite o |nome do arquivo de erro de saída que deseja utilizar. Esse arquivo de |erro captura os erros de tempo de execução do programa do Sistema em Batch do |Trillium. Esses erros são registrados no log stderr. Para hosts |locais, um arquivo de erro de saída padrão será criado, se você não |especificar um nome aqui. Para obter mais informações sobre o arquivo |de erro de saída, consulte o tópico, "Tratamento de erro." 9. |Clique na guia Connection. 10. |Se os meta-dados do Trillium que você está importando estiverem no site do |agente do warehouse, clique em Host local. |Se os meta-dados do Trillium que você está importando não estiverem no site |do agente do warehouse, clique em Host remoto e especifique o host |remoto. Consulte o tópico, "Especificando o host remoto," mais tarde |nesta seção. 11. |Clique em OK para importar os meta-dados do Trillium e feche o |bloco de notas. 12. |Se o script ou o JCL não forem executados do site do agente padrão, |especifique o site do agente do warehouse que você está utilizando no bloco de |notas Propriedades para a etapa Sistema em Batch do Trillium. | |Os objetos do warehouse a seguir são incluídos na árvore do Warehouse |quando a operação de importação estiver concluída. | * |Sistema em Batch do Trillium.Modelo scriptName, onde |scriptName é o nome do script ou do arquivo JCL. * |Processo do Sistema em Batch do Trillium. * |A etapa do Sistema em Batch do Trillium que executa o programa definido |pelo usuário. * |A origem e o destino do arquivo do warehouse especificados quando você |importou os meta-dados. A origem e o destino do arquivo são arquivos |fixos. * |Grupo de programas do Sistema em Batch do Trillium. | |Especificando o host remoto |Para especificar um host remoto: | 1. |Clique em Host remoto e digite o nome do host do TCP/IP do |sistema remoto que contém os meta-dados que você está importando. Se |você selecionar o host Remoto, o arquivo de destino será criado como um |arquivo local, porque os arquivos de destino remotos não serão suportados Você |pode incluir uma etapa do FTP, para obter o arquivo remoto para o arquivo de |destino local especificado. 2. |Na lista Sistema operacional remoto, clique no sistema |operacional o host remoto que você está acessando. 3. |No campo ID do usuário remoto, digite o ID do usuário para o |host remoto que você está acessando. 4. |Na lista Opção de senha, selecione a opção de senha que deseja |utilizar para o host remoto que você está acessando: | |Senha não requerida |Especifica que nenhuma senha é requerida para acessar os meta-dados no |host remoto. |Recuperar senha |Especifica que a senha será recuperada de um programa definido pelo |usuário. |No campo Programa de senha, digite o nome do programa de senha |que recuperará a senha. O programa deve residir no site do agente do |warehouse e gravar a senha em um arquivo de saída na primeira linha. |No campo Parâmetros do programa, digite os parâmetros para o |programa da senha. O primeiro parâmetro deve ser o arquivo de saída no |qual a senha é gravada. |Digitar a senha mais tarde |Especifica que a senha será digitada posteriormente. |Digite a senha no bloco de notas Propriedades para a etapa que executa o |programa do Sistema em Batch do Trillium. | | |22.14.1.5 Mapeando os meta-dados |Para criar os meta-dados para os arquivos fontes e de destino, o Trillium |lê os arquivos de DDL do Trillium. O arquivo DDL é convertido para os |seguintes tipos de dados do Centro de Data Warehouse: | Tipos de dados de DDL para UNIX, Windows NT e sistemas operacionais Tipo de dados do Warehouse ASCII CHARACTER CHARACTER(n) ASCII NUMERIC EBCDIC CHARACTER EBCIDIC NUMERIC Outros tipos NUMERIC Nota: Os tipos de dados EBCDIC CHARACTER e EBCIDIC NUMERIC serão suportados apenas se o Sistema de Software Trillium for executado no sistema operacional OS/390. |A variável n é o número de caracteres na cadeia. |22.14.1.6 Restrições |Você pode especificar os campos de sobreposição nos arquivos de DDL de |entrada e de saída com a DDL do Trillium e a operação de meta-dados de |importação no Centro de Data Warehouse. Entretanto, os arquivos fontes |e de destino do warehouse correspondente não podem ser utilizados no Centro de |Data Warehouse com a etapa SQL ou o conteúdo da Amostra. Como a |operação do meta-dados de importação ignora os campos de sobreposição que |abrangem todo o registro, você ainda pode especificar esses campos, mas eles |não serão utilizados como colunas nos arquivos fontes e de destino |resultantes. |Se um arquivo de erro for especificado, o nome do script não poderá conter |nenhum espaço vazio. |22.14.2 Gravando o arquivo JCL do Sistema em Batch do Trillium |Os requisitos a seguir deverão ser atendidos, se você estiver gravando um |arquivo JCL do Sistema em Batch do Trillium. | * |O nome do job deve ser o ID do usuário mais um caractere. * |O job deve ser direcionado para a classe de saída retida. * |Cada etapa do job que executa o programa do Sistema em Batch do |Trillium deve incluir uma instrução SYSTERM DD que define um conjunto de dados |permanente. O conjunto de dados contém os erros dos programas do |Sistema em Batch do Trillium. Esse conjunto de dados será |automaticamente excluído antes do JCL ser submetido. Para obter mais |informações sobre o tratamento e o relatório de erro, consulte o tópico, |"tratamento de erro." | |O arquivo de erro de saída deve ser especificado quando o script ou |o JCL for executado em um host remoto; do contrário, as mensagens de erro |não serão capturadas e retornadas ao Centro de Data Warehouse. No UNIX |ou Windows, a maneira mais simples para capturar as mensagens de erro é gravar |outro script que chama o script do Sistema em Batch do Trillium e direciona o |erro padrão para um arquivo de saída. |Figura 5. Exemplo de uma etapa do job que inclui uma instrução SYSTERM DD //SYSTERM DD UNIT=&UNIT, // DISP=(MOD,CATLG,KEEP), // SPACE=(400,(20,20),,,ROUND), // DSN=&PROJPREF.&TRILVER.&PROJECT.STDERR; 22.14.3 Gravando o arquivo de script do Sistema em Batch do Trillium no UNIX e no Windows Se os arquivos de script ou de parâmetro do Sistema em Batch do Trillium contiverem caminhos relativos de arquivos de entrada, o usuário deverá colocar uma instrução cd no início do arquivo de script para o diretório do arquivo de script. |22.14.4 Definindo uma etapa do Sistema em Batch do Trillium |Você deve importar o meta-dados do Trillium que deseja utilizar no |processo, antes de definir uma etapa do Sistema em Batch do Trillium. |Para incluir uma etapa do Sistema em Batch do Trillium em um processo: | 1. |Abra o processo no modelador do processo. 2. |Clique no ícone Sistema em Batch do Trillium na paleta. 3. |Clique em Programa do Sistema em Batch do Trillium --> |programName, onde programName é o nome do programa |do Sistema em Batch do Trillium que deseja utilizar. 4. |Clique no lugar da tela onde você deseja que a etapa apareça. 5. |Conclua as etapas no tópico, "Definindo uma etapa que executa um programa |definido pelo usuário," no auxílio DB2 Universal Database. | |22.14.5 Utilizando um programa definido pelo usuário do Sistema em Batch do Trillium |O programa definido pelo usuário do Sistema em Batch do Trillium é incluído |com o DB2 Centro de Data Warehouse Versão 7.2 para Windows NT e |UNIX. A etapa Sistema em Batch do Trillium que é criada quando você |importa os meta-dados do Trillium executará o programa definido pelo usuário |do Sistema em Batch do Trillium. O programa definido pelo usuário |chamará o script ou o JCL do Sistema em Batch do Trillium. A tabela a |seguir contém os parâmetros para o script ou o JCL do Sistema em Batch do |Trillium: | Parâmetro Valores Host remoto * host local é o valor padrão. Utilize esse valor se o Sistema em Batch do Trillium estiver instalado no site do agente do warehouse. * O nome do host remoto se o Sistema em Batch do Trillium estiver instalado em um sistema operacional remoto. Script ou JCL O nome do script ou JCL Sistema operacional remoto O nome do sistema operacional no host remoto. Esse parâmetro será ignorado, se o valor do parâmetro do host Remoto for o host local. Os valores válidos são: * MVS para o sistema operacional OS/390 * UNIX para os sistemas operacionais AIX, SUN Solaris, HP-UX e NUMA/Q * WIN para o sistema operacional Windows NT ou 2000 ID do usuário remoto O ID do usuário com autoridade para executar o comando remoto. Esse parâmetro será ignorado, se o valor de RemotehostName for host local. Opção de senha O método para obter a senha. Os valores válidos são: ENTERPASSWORD Utilize esse valor se a senha for transmitida no próximo parâmetro. PASSWORDNOTREQUIRED Utilize esse valor se nenhuma senha for necessária. GETPASSWORD Utilize esse valor se um nome de programa for transmitido para o próximo parâmetro. Restrições: * O programa deve residir no site do agente, gravar a senha em um arquivo de saída na primeira linha e retornar 0 se for executado com êxito. * O valor do parâmetro da Senha deve ser o nome do programa da senha. * O valor do parâmetros de parâmetros do Programa deve ser uma cadeia colocada entre aspas duplas. * O primeiro parâmetro na cadeia deve ser o nome do arquivo de saída onde a senha será gravada. Senha O valor válido é a senha ou nome do programa da senha. O programa da senha deve ser local para o site do agente do warehouse. Parâmetros do programa Os parâmetros para o programa de senha. Arquivo de Erro de Saída O nome do arquivo do arquivo de erro de saída. Nota: O tipo de dados para todos os parâmetros nesta tabela é CHARACTER. |22.14.6 Tratamento de erros |Os programas do Sistema em Batch do Trillium gravam mensagens de erros para |o arquivo de erros padrão (stderr) nos sistemas operacionais Windows NT e UNIX |e para o conjunto de dados SYSTERM no sistema operacional OS/390. |Para capturar os erros dos programas do Sistema em Batch do em sistemas |operacionais Windows NT ou UNIX, o erro padrão deve ser redirecionado para um |arquivo de erro de saída. |Para capturar os erros dos programas do Sistema em Batch do Trillium no |sistema operacional OS/390, o JCL deve incluir uma instrução SYSTERM |DD. |Se você especificar o nome do arquivo de erro de saída na janela Importar |Meta-dados, você deverá redirecionar ou armazenar a saída de erro padrão para |o arquivo de erro. O Centro de Data Warehouse lerá o arquivo e relatar |todas as linhas que contêm a cadeia ERROR como mensagens de erros. |Todas as mensagens de erro do programa do Sistema em Batch do Trillium contêm |a cadeia ERROR. |Se o arquivo de erro de saída não for especificado em um script ou na |execução do JCL no site do agente do warehouse, o Centro de Data Warehouse |criará automaticamente um nome de arquivo e redirecionará a saída de erro |padrão para esse arquivo. Se o erro for encontrado, o arquivo de erro |não será excluído. O arquivo de erro está armazenado no diretório |especificado pela variável de ambiente VWS_LOGGING. O nome do arquivo é |tbsudp-date- time.err, onde date é a |data do sistema quando o arquivo é criado e time é a hora do |sistema quando o arquivo é criado. O nome do arquivo a seguir mostra o |formato do nome do arquivo de erro de saída: | tbsudp-021501-155606.err |22.14.6.1 Código de retorno de erro | Número do erro Descrição 0 Sucesso 4 Advertência. O arquivo de senha não pôde ser apagado ou ocorreu um erro interno enquanto o programa definido pelo usuário do Sistema em Batch do Trillium estava acessando um arquivo temporário. Verifique o status do arquivo de senha ou todos os arquivos temporários criados no diretório que é especificado pela variável de ambiente VWS_LOGGING. 8 O número ou os valores dos parâmetros não estão corretos. Leia o arquivo de log ou a documentação para obter a sintaxe correta. 12 Ocorreu um problema enquanto o programa definido pelo usuário do Sistema em Batch do Trillium estava conectando-se ao host remoto através do FTP. Verifique a conexão ao FTP ou o nome do host, o ID do usuário e a senha. 16 O programa definido pelo usuário do Sistema em Batch do Trillium não pode criar o log ou um arquivo interno. Verifique se o usuário possui a autorização correta e verifique se o disco está cheio. 20 O JCL do OS/390 não pode ser executado ou ocorreu um erro enquanto o programa definido pelo usuário do Sistema em Batch do Trillium estava excluindo ou obtendo um arquivo do OS/390 através do FTP. Verifique o JESLogFile para identificar o motivo. 48 A variável de ambiente VWS_LOGGING não pode ser encontrada ou o arquivo de log não pode ser criado. Verifique o arquivo de log para obter mais informações. 56 O script Windows NT ou UNIX não pode ser executado ou ocorreu um erro enquanto o programa definido pelo usuário do Sistema em Batch do Trillium estava conectando-se ao host remoto. Verifique a conexão ou o nome do host, o ID do usuário e a senha. 500 O arquivo de script ou JCL retorna um erro ou ele não retorna um erro mas o arquivo de erro contém dados. Verifique o arquivo de log para obter mais informações. No OS/390, verifique também o JESLogFile. |22.14.6.2 Arquivo de log |O Centro de Data Warehouse armazena todas as informações de diagnóstico em |um arquivo de log quando o programa definido pelo usuário do Sistema em Batch |do Trillium é executado. O nome do arquivo de log é |tbsudp-date-time.log, onde date é a |data do sistema quando o arquivo é criado e time é a hora do |sistema quando o arquivo é criado. O arquivo de log é criado no |diretório especificado pela variável de ambiente VWS_LOGGING no site do |agente. O arquivo de log será excluído, se o programa definido pelo |usuário do Sistema em Batch do Trillium é executado com êxito. ------------------------------------------------------------------------ |22.15 Integração do MQSeries com o Centro de Data Warehouse |O Centro de Data Warehouse permite que você acesse os dados de uma fila de |mensagens do MQSeries como uma exibição do banco de dados DB2. É |fornecido um assistente para criar uma função da tabela do DB2 e a exibição do |DB2 através da qual você pode acessar os dados. Cada mensagem do |MQSeries é tratada como um sistema delimitado, que é analisada de acordo com |sua especificação e retornada como uma linha de resultado. Além disso, |as mensagens do MQSeries que são documentos XML podem ser acessadas como uma |origem do warehouse. Ao utilizar o Centro de Data Warehouse, você pode |importar os meta-dados de uma fila de mensagens do MQSeries e um arquivo |Document Access Definition (DAD) do DB2 XML Extender. |22.15.1 Criando exibições para mensagens do MQSeries | |22.15.1.1 Requisitos |DB2 Universal Database Versão 7.2. |DB2 Warehouse Manager Versão 7.2 |Suporte ao MQSeries. Consulte o MQSeries para obter mais informações sobre os requisitos do |MQSeries. Consulte a seção de configuração para funções definidas pelo |usuário, para obter informações sobre a configuração da origem do |warehouse. |22.15.1.2 Restrições | * |Quando catalogar um banco de dados de origem do warehouse, o alias do banco |de dados é catalogado na máquina do agente. Entretanto, quando criar |exibições MQSeries e XML, o Centro de Data Warehouse supõe que o alias do |banco de dados também é definido na máquina cliente e tentará conectar-se a |ela utilizando o ID do usuário e a senha do banco de dados de origem do |warehouse. Se bem-sucedido, o assistente será invocado e você poderá |criar a exibição. Se malsucedido, uma mensagem de aviso será exibida e |você deverá catalogar ou escolher um alias do banco de dados diferente no |assistente. * |Consulte a seção Referência do SQL das Notas do Release, para obter o |comprimento máximo das mensagens do MQ. | |22.15.1.3 Criando uma exibição para mensagens do MQSeries |Para criar uma exibição para mensagens do MQSeries: | 1. |Da janela Centro de Data Warehouse, expanda a árvore Origens do |Warehouse. 2. |Expanda a origem do warehouse que deve conter a exibição. 3. |Clique com o botão direito do mouse na pasta Exibições e clique |em Criar para mensagens do MQSeries.... |O assistente do MQSeries é aberto. Quando tiver concluído o |assistente, uma nova exibição será criada no Centro de Data Warehouse. |Quando a exibição é selecionada, a fila do MQSeries é acessada e cada mensagem |é analisada como uma cadeia delimitada de acordo com suas especificações no |assistente. | |22.15.2 Importando as mensagens do MQSeries e os meta-dados XML | |22.15.2.1 Requisitos |DB2 Universal Database Versão 7.2. |DB2 XML Extender Versão 7.2. |Suporte ao MQSeries. Consulte o MQSeries para obter mais informações sobre os requisitos do |MQSeries. Consulte a seção de configuração para funções definidas pelo |usuário, para obter informações sobre a configuração da origem do |warehouse. |22.15.2.2 Restrições |A importação falhará, se as tabelas de destino existirem com as chaves |principais ou remotas. Você deve excluir manualmente as definições |dessas chaves no Data Warehouse antes de importar. |22.15.2.3 Importando as mensagens do MQSeries e os meta-dados XML |Para importar os meta-dados do MQSeries no Centro de Data Warehouse: | 1. |Prepare o banco de dados de destino do warehouse: | o |Você deve definir o destino do warehouse bem como registrar e ativar os |transformadores. o |Você deve ativar o destino do warehouse para o DB2 XML Extender. |Consulte as Notas do Release do DB2 XML Extender Versão 7.2 para obter |mais informações. o |Crie um arquivo Data Access Definition (DAD) do DB2 XML Extender para |informar o Centro de Data Warehouse como mapear o conteúdo do documento XML |para as tabelas do warehouse. Ative uma coleção XML, utilizando o |arquivo DAD para o banco de dados. Consulte as Notas do Release do DB2 |XML Extender Versão 7.2 para obter mais informações. | 2. |Clique com o botão direito do mouse em Warehouse e clique em |Importar Meta-dados --> MQSeries para abrir a janela |Importar Meta-dados. 3. |No campo Serviço de AMI, digite o ponto de serviço para e do |qual uma mensagem é enviada e recebida. 4. |No campo Política de AMI, digite a política que o sistema de |mensagens utilizará para executar a operação. 5. |No campo do arquivo DAD, digite o nome do arquivo DAD do DB2 |XML Extender ou pesquise um arquivo para seleção, clicando na reticências |(...). Esse arquivo deve ser local. 6. |No campo Destino do Warehouse, selecione o nome do destino do |warehouse onde a etapa será executada a partir da lista da caixa de |combinação. O destino do warehouse já deve estar definido. 7. |No campo Esquema, digite o nome de um esquema para qualificar |os nomes de tabelas no arquivo DAD que não possui um qualificador. O |esquema padrão é obtido como o ID do usuário de início de sessão do destino do |warehouse selecionado anteriormente. 8. |Escolha uma Opção de Destino: |Se você quiser que a etapa substitua o conteúdo da tabela de destino no |tempo de execução, clique no botão de rádio Substituir conteúdo da |tabela. |Se você quiser que a etapa anexe a tabela de destino no tempo de execução, |clique no botão de rádio Anexar conteúdo da tabela. 9. |Dê um clique em OK. |A janela Importar Meta-dados é fechada. | |Os objetos do warehouse a seguir são incluídos na árvore do Warehouse |quando a operação de importação estiver concluída. | * |Uma área de assunto nomeada MQSeries e XML. * |Um processo nomeado MQSeries e XML. * |Um grupo de programas definidos pelo usuário nomeado MQSeries e |XML. * |Definições de todas as tabelas de destino do warehouse no arquivo |DAD. * |.. etapa. * |. modelo do |programa. | |Se o tamanho do agente de destino do Warehouse for diferente da máquina |local, será necessário alterar o parâmetro da etapa: | 1. |Clique com o botão direito do mouse na etapa e selecione |Propriedades. Clique na guia Parâmetros no bloco |de notas de propriedades. 2. |Altere o nome do parâmetro do arquivo DAD para o nome do mesmo arquivo DAD |no tamanho do agente de destino do warehouse remoto. 3. |Certifique-se de que o Site do Agente na guia Opções de |Processamento contenha o site do agente desejado. | |22.15.2.4 Utilizando o programa definido pelo usuário do MQSeries |O procedimento armazenado do MQSeries e XML é chamado MQXMLXF e |é incluído com o Centro de Data Warehouse do DB2 Versão 7.2 para |Windows NT e UNIX. A etapa que é criada quando você importa os |meta-dados do MQSeries e XML, executará o procedimento armazenado. Os |parâmetros estão descritos na seguinte tabela: | Parâmetro Valores MQSeries ServiceName O nome do ponto de serviço para e do qual uma mensagem é enviada ou recebida. MQSeries PolicyName O nome da política que o sistema de mensagens utilizará para executar a operação. Nome do arquivo DAD O nome do arquivo DAD do DB2 XML Extender TargetTableList Lista de tabelas de destino da etapa separada por vírgulas Opção SUBSTITUIR ou ANEXAR ID DE EXECUÇÃO Número de edição da etapa (para objetivos de log) Nota: O tipo de dados para todos os parâmetros nesta tabela é CHARACTER. |O procedimento armazenado excluirá todas as linhas das tabelas de destino, |se Opção tiver um valor de SUBSTITUIÇÃO. O procedimento |armazenado também chama o procedimento armazenado do DB2 XML Extender para |ocupar as tabelas de destino de todas as mensagens do MQSeries |existentes. |22.15.2.5 Código de retorno de erro |Quando executar a etapa, o procedimento armazenado pode retornar um código |de erro SQLCODE -443 e SQLSTATE 38600. Para diagnosticar o erro, |consulte a tabela a seguir de possíveis textos de diagnósticos. | Número do erro Descrição AMIRC=xxxxx; xxxxx é o código de retorno da camada AMI. Consulte a documentação do MQSeries para obter mais detalhes. indica a localização do arquivo de log. XMLRC=xxxxx; xxxxx é o código de retorno do DB2 XML Extender. Consulte a documentação do DB2 XML Extender para obter as descrições dos códigos de retorno. indica a localização do arquivo de log. SQLCODE=xxxxx; retornado quando um pedido SQL é executado. indica a localização do arquivo de log. |Para obter todos os erros, consulte o arquivo de log para obter mais |informações. |22.15.2.6 Arquivo de Log de Erro |O Centro de Data Warehouse armazena todas as informações de diagnóstico em |um arquivo de log, quando o MQXMLXF é executado. O nome do arquivo de |log é mqxf.log, onde é |o RunID que foi transmitido para o procedimento armazenado. O Centro de |Data Warehouse criará o arquivo no diretório indicado pela variável de |ambiente VWS_LOGGING. Se esse ambiente não for definido, o arquivo de |log será criado no diretório temporário. |Para tornar a variável de ambiente VWS_LOGGING visível para o procedimento |armazenado em uma plataforma Unix, você deve incluir VWS_LOGGING na variável |de ambiente DB2ENVLIST, utilizando o comando db2set antes do |comando db2start. A figura abaixo é um comando do ambiente |de exemplo. |Figura 6. Exemplo do comando da variável de ambiente db2set DB2ENVLIST="AMT_DATA_PATH VWS_LOGGING" |O arquivo de log será excluído, se a etapa for executada com |êxito. ------------------------------------------------------------------------ |22.16 Suporte ao Microsoft OLE DB e Data Transaction Services | | | |O Centro de Data Warehouse permite que você acesse dados de um provedor OLE |DB como uma exibição do banco de dados DB2. Você pode utilizar o |assistente OLE DB Assist fornecido com o Centro de Data Warehouse para criar |uma função da tabela DB2 OLE DB e da exibição do DB2 através da qual você pode |acessar os dados. |O Microsoft Data Transformation Services (DTS) permite que você importe, |exporte e transforme dados entre as origens e os destinos do OLE DB, para |criar warehouses e datamarts de dados. O DTS é instalado com o |Microsoft SQL Server. Todas as tarefas do DTS são armazenadas em |pacotes do DTS que você pode executar e acessar, utilizando o Microsoft OLE DB |Provider para Pacotes DTS. Como você pode acessar os pacotes do DTS |como origens do OLE DB, é possível também criar exibições com o assistente OLE |DB Assist para pacotes DTS, da mesma maneira que para origens de dados do OLE |DB. Quando você acessa a exibição no tempo de execução, o pacote do DTS |executa e a tabela de destino da tarefa no pacote do DTS torna-se a exibição |criada. |Após criar uma exibição no Centro de Data Warehouse, você pode utilizá-la |como faria com qualquer outra exibição. Por exemplo, você pode unir uma |tabela do DB2 com uma origem do OLE DB em uma etapa SQL. Quando você |utiliza a exibição criada em uma etapa do SQL, o provedor DTS é chamado e o |pacote do DTS é executado. |Requisitos de Software: | * |DB2 Universal Database para Windows NT Versão 7.2 como o banco de |dados de destino do warehouse * |DB2 Warehouse Manager Versão 7.2 * |Se o banco de dados de destino do warehouse foi criado antes da Versão |7.2, será necessário executar o comando db2updv7 após |instalar o DB2 UDB para Windows NT Versão 7.2 * |Quando você cataloga um banco de dados de origem do warehouse, o alias do |banco de dados é catalogado no site do agente do warehouse. Entretanto, |quando criar o assistente, o Centro de Data Warehouse supõe que o alias do |banco de dados também é definido na estação de trabalho cliente e tentará |conectar-se a ela utilizando o ID do usuário e a senha do banco de dados de |origem do warehouse. Se a conexão for bem-sucedida, o assistente será |iniciado e você poderá criar a exibição. Se a conexão for malsucedida, |uma mensagem de aviso será exibida e você deverá catalogar ou escolher um |alias do banco de dados diferente no assistente. * |Para identificar uma tabela específica de um pacote DTS, você deve |selecionar a caixa de opções Provedor do conjunto de linhas do DSO |na guia Opções da janela Propriedades de Workflow do DataPumpTask que cria a |tabela de destino. Se você ligar vários atributos do provedor do |conjunto de linhas do DSO, apenas o resultado da primeira etapa selecionada |será utilizado. Quando uma exibição é selecionada, o conjunto de linhas |de sua tabela de destino é retornado e todos os outros conjuntos de linhas que |você cria nas etapas subseqüentes são ignorados. * |Quando você digita o nome da tabela do assistente, utilize o nome da |etapa, que é mostrado na página Opções do bloco de notas Propriedades de |Workflow para a tarefa. * |A cadeia de conexão do pacote DTS possui a mesma sintaxe que o comando |dtsrun. | |22.16.1 Criando exibições para funções da tabela do OLE DB |Para criar uma exibição para uma função da tabela do OLE DB: | 1. |Da janela Centro de Data Warehouse, expanda a árvore Origens do |Warehouse. 2. |Expanda a origem do warehouse que deve conter a exibição. 3. |Clique com o botão direito do mouse na pasta Exibições e clique |em Criar para função da tabela do OLE DB. |O assistente OLE DB Assist é aberto. O assistente o conduz através |da tarefa de criação de uma nova exibição no banco de dados de origem do |warehouse. | |22.16.2 Criando exibições para pacotes DTS |Para criar uma exibição para um pacote do DTS: | 1. |Da janela Centro de Data Warehouse, expanda a árvore Origens do |Warehouse. 2. |Expanda a origem do warehouse que deve conter a exibição. 3. |Clique com o botão direito do mouse na pasta Exibições e clique |em Microsoft OLE DB Provider para Pacotes do DTS. |O assistente OLE DB Assist é aberto. O assistente o conduz através |da tarefa de criação de uma nova exibição no banco de dados de origem do |warehouse. | |Para obter mais informações sobre o DTS, consulte a documentação do |Microsoft Platform SDK 2000, que inclui uma explicação detalhada de como criar |a cadeia de provedores que o assistente precisa para conectar-se ao provedor |DTS. ------------------------------------------------------------------------ |22.17 Utilizando a consolidação incremental com substituição | |Em uma etapa onde o tipo de preenchimento é Substituir, uma consolidação |incremental é utilizada apenas quando os novos dados são inseridos. Os |dados antigos são excluídos dentro de um único escopo de consolidação. |Se você precisar excluir os dados sem produzir registros de logs, execute uma |etapa que carregará um arquivo vazio antes de executar a etapa SQL com o tipo |de preenchimento anexado. ------------------------------------------------------------------------ |22.18 Nomes de arquivos de dados de rastreio do componente | |O Centro de Data Warehouse grava estes arquivos no Windows NT: |AGNTnnnn.Log contém informações de |rastreio. nnnn é o ID de processo numérico do agente do |warehouse, que pode ter 4 ou 5 dígitos dependendo do sistema |operacional. |AGNTnnnn.Set contém as definições de ambiente |para o agente. nnnn é o ID de processo numérico do agente do |warehouse, que pode ter 4 ou 5 dígitos dependendo do sistema |operacional. |O diretório padrão é x:\program files\sqllib\logging, onde |x é a unidade onde o DB2 está instalado. ------------------------------------------------------------------------ |22.19 Open Client necessário para origens do Sybase no Ambiente Operacional AIX e Solaris | | | |No Capítulo 3. Configurando as origens do warehouse, AIX, Tabela |3. Requisitos de conectividade para origens de dados suportados no AIX |e para o Ambiente Operacional Solaris, Tabela 4. Requisitos de |conectividade para origens de dados suportados no Ambiente Operacional |Solaris, a entrada para Sybase deve conter uma etapa adicional na coluna "Como |conectar:". A etapa adicional é mostrada abaixo como etapa |3. |3. Instalar o Open Client |Observe que o Open Client é requerido para conectar-se às origens do Sybase |nas plataformas Windows NT ou Windows 2000. ------------------------------------------------------------------------ |22.20 Entradas de amostras corrigidas | |As figuras 6, 8, 10 e 11 no "Capítulo 3. Configurando as origens do |warehouse" no Manual de Administração do Centro de Data |Warehouse, contêm um caminho incorreto para o atributo Driver. Os |caminhos a seguir estão corretos. |Figura 6 |Driver=/home/db2_07_01/3.6/odbc/lib/ivinf12.so | |Figura 8 | Driver=/home/db2_07_01/3.6/odbc/lib/ivsyb1112.so Figura 10 |Driver=/home/db2_07_01/3.6/lib/ivor814.so Figura 11 | Driver=/home/db2_07_01/3.6/odbc/lib/ivmsss14.so ------------------------------------------------------------------------ 22.21 Capítulo 3. Definindo origens do warehouse |22.21.1 Mapeando o campo Memo no Microsoft Access para uma origem do warehouse |O campo Memo de um banco de dados do Microsoft Access é representado em uma |origem do Centro de Data Warehouse como um tipo de dados LONG VARCHAR com |tamanho de coluna maior que 1 GB. Para suportar as configurações |práticas do sistema, o Centro de Data Warehouse trunca os valores que excedem |128 KB. Para evitar o truncamento de valores do campo Memo na origem do |warehouse, altere o tipo de dados da coluna que está recebendo os dados do |campo Memo de LONG VARCHAR para CLOB, antes de utilizar a tabela em uma |etapa. Se você não alterar o tipo de dados da coluna, os valores |maiores que 128 KB serão truncados. |O suporte a DRDA para o tipo de dados CLOB é obrigatório para o OS/390 e o |OS/400. O tipo de dados CLOB é suportado para OS/390 a partir do DB2 |Versão 6. O tipo de dados CLOB é suportado pelo OS/400 a partir da |Versão 4, Release 4 com DB FixPak 4 ou posterior (PTF SF99104). No |OS/400, o disco de instalação Versão 4, Release 4 de Fevereiro de 1999 também |contém suporte ao tipo de dados CLOB. ------------------------------------------------------------------------ 22.22 Capítulo 10. Fazendo manutenção do banco de dados do Warehouse |22.22.1 Fazendo link de tabelas a um subtipo de etapa para o programa RUNSTATS UDB do DB2 |O subtipo de etapa para um programa RUNSTATS lê e grava em um destino do |warehouse. Faça o link de um destino ao subtipo da etapa na janela |Modelo de processo antes de definir os valores da etapa. ------------------------------------------------------------------------ 22.23 O banco de dados padrão de controle do Warehouse Durante uma instalação típica do DB2 no Windows NT ou 2000, o DB2 cria e inicializa um banco de dados padrão de controle do warehouse para o Centro de Data Warehouse , se não houver nenhum banco de dados ativo de controle do warehouse identificado no registro do Windows NT. A Inicialização é o processo no qual o Centro de Data Warehouse cria as tabelas de controle que são necessárias para armazenar meta-dados do Centro de Data Warehouse . O banco de dados padrão de controle do warehouse é chamado DWCTRLDB. Quando você efetua o logon, o Centro de Data Warehouse especifica DWCTRLDB como banco de dados de controle do warehouse por padrão. Para ver o nome do banco de dados de controle do warehouse que será usado, clique no botão Avançado na janela Logon do Centro de Data Warehouse . ------------------------------------------------------------------------ 22.24 A janela Gerenciamento do banco de dados de controle do Warehouse A janela Gerenciamento do Banco de Dados de Controle do Warehouse é instalada durante uma instalação típica do DB2 no Windows NT ou 2000. Você pode usar esta janela para alterar o banco de dados ativo de controle do warehouse, criar e inicializar novos bancos de dados de controle do warehouse e migrar bancos de dados de controle do warehouse que foram usados com o IBM Visual Warehouse. As seguintes seções discutem cada uma destas atividades. Interrompa o servidor de warehouse antes de usar a janela Gerenciamento do Banco de Dados de Controle do Warehouse. ------------------------------------------------------------------------ 22.25 Alterando o banco de dados de controle do warehouse Se você quer usar um banco de dados de controle do warehouse diferente do banco de dados ativo de controle do warehouse, use a janela Gerenciamento do Banco de Dados de Controle do Warehouse para registrar o banco de dados como banco de dados de controle ativo. Se você especificar um nome diferente do banco de dados ativo de controle do warehouse quando efetuar o logon no Centro de Data Warehouse , você receberá um erro declarando que o banco de dados especificado não corresponde ao banco de dados definido pelo servidor de warehouse. Para registrar o banco de dados: 1. Clique em Iniciar --> Programas --> IBM DB2 --> Gerenciamento do Banco de Dados de Controle do Warehouse. 2. No campo Novo banco de dados de controle, digite o nome do banco de dados de controle que você quer usar. 3. No campo Esquema, digite o nome do esquema a ser usado para o banco de dados. 4. No campo ID do Usuário, digite o nome da ID do usuário exibida para acessar o banco de dados. 5. No campo Senha, digite a senha para a ID do usuário. 6. No campo Verificar senha, digite a senha novamente. 7. Clique em OK. A janela continua aberta. O campo Mensagens mostra mensagens que indicam o status do processo de registro. 8. Depois que o processo estiver concluído, feche a janela. ------------------------------------------------------------------------ 22.26 Criando e inicializando um banco de dados de controle do Warehouse Se você quer criar um banco de dados de controle do warehouse diferente do padrão, você pode criá-lo durante o processo de instalação ou depois da instalação usando a janela Gerenciamento do Banco de Dados de Controle do Warehouse. Você pode usar o processo de instalação para criar um banco de dados na mesma estação de trabalho do servidor de warehouse ou em uma estação de trabalho diferente. Para alterar o nome do banco de dados de controle do warehouse que é criado durante a instalação, você precisa fazer uma instalação personalizada e alterar o nome na janela Definir um Banco de Dados Local de Controle do Warehouse. O processo de instalação irá criar o banco de dados com o nome que você especificar, inicializar o banco de dados para uso com o Centro de Data Warehouse e registrar o banco de dados como o banco de dados ativo de controle do warehouse. Para criar um banco de dados de controle do warehouse durante a instalação em uma estação de trabalho diferente da que o servidor de warehouse está instalado, selecione Banco de Dados Local de Controle do Warehouse durante uma instalação personalizada. O processo de instalação irá criar o banco de dados. Depois da instalação, você deve então usar a janela Gerenciamento do Banco de Dados de Controle do Warehouse na estação de trabalho do servidor de warehouse seguindo as etapas em 22.25, Alterando o banco de dados de controle do warehouse. Especifique o nome do banco de dados que você especificou durante a instalação. O banco de dados será inicializado para uso com o Centro de Data Warehouse e registrado como o banco de dados ativo de controle do warehouse. Para criar e inicializar um banco de dados de controle do warehouse depois do processo de instalação, use a janela Gerenciamento do Banco de Dados de Controle do Warehouse na estação de trabalho do servidor de warehouse. Se o novo banco de dados de controle do warehouse não está na estação de trabalho do servidor de warehouse, você deve criar o banco de dados primeiro e catalogá-lo na estação de trabalho do servidor de warehouse. Siga, então, as etapas em 22.25, Alterando o banco de dados de controle do warehouse. Especifique o nome do banco de dados que você especificou durante a instalação. Quando você efetuar o logon no Centro de Data Warehouse , clique no botão Avançado e digite o nome do banco de dados ativo de controle do warehouse. ------------------------------------------------------------------------ 22.27 Criando etapas SQL adicionais Ao criar etapas SQL com edições, baseado na utilização, você pode considerar a criação de um índice não exclusivo na coluna de edição para acelerar o desempenho da exclusão de edições. Considere isto somente para tabelas de grandes warehouses, pois o desempenho de inserções pode sofrer um impacto ao inserir um pequeno número de linhas. ------------------------------------------------------------------------ 22.28 Alterando origens e destinos na janela Modelo do processo Na janela Modelo do Processo, se você alterar uma origem ou um destino, a alteração é salva imediatamente, de maneira automática. Se você fizer qualquer outra alteração, como incluir uma etapa, você precisa salvar as alterações explicitamente para tornar as alterações permanentes. Para salvar a alteração, clique em Processo --> Salvar. ------------------------------------------------------------------------ 22.29 Incluindo descrições nos objetos do Centro de Data Warehouse Você pode especificar até 254 caracteres no campo Descrição de blocos de notas no Centro de Data Warehouse . Este máximo substitui os comprimentos máximos especificados na ajuda online. ------------------------------------------------------------------------ 22.30 Executando conteúdo da amostra * Você não pode executar com sucesso uma solicitação Conteúdo da Amostra que usa o agente do AS/400 em uma origem de arquivo simples. Embora você possa criar uma origem de arquivo simples e tentar usar um agente do AS/400 para emitir uma solicitação sampleContent, a solicitação falhará. * Você pode receber um erro ao executar Conteúdo da Amostra em um destino do warehouse no modelador de processo. Este erro está relacionado à disponibilidade de um site comum de agente para a origem do warehouse, o destino do warehouse e uma etapa em um processo. A lista de sites de agente disponíveis para uma etapa é obtida pela interseção dos sites de agentes da origem do warehouse, os sites de agentes do destino do warehouse, e os sites de agentes disponíveis para esta etapa particular (as etapas são selecionadas na última página do bloco de notas de propriedades dos sites de agente). Por exemplo, você quer exibir o Conteúdo da Amostra de um processo que executa o programa FTP Put (VWPRCPY). A etapa usada no processo deve estar selecionada para o site de agente na definição do site de agente. Quando você executa Conteúdo da Amostra contra o arquivo de Destino, o primeiro site de agente na lista selecionada é normalmente usado. No entanto, operações de manutenção de banco de dados podem afetar a ordem dos sites de agente listados. O conteúdo da amostra irá falhar se o site de agente selecionado não residir no mesmo sistema que o arquivo fonte ou de destino. ------------------------------------------------------------------------ 22.31 Editando uma instrução SQL Criar DLL Quando você tentar editar a instrução SQL Criar DDL de uma tabela de destino de uma etapa que esteja no modo de desenvolvimento, verá uma mensagem que poderá levar a conclusões erradas: "Qualquer alteração feita na instrução SQL Criar DDL não terá reflexos na definição da tabela ou na tabela física atual. Você quer continuar?" A alteração será refletida na tabela física atual. Ignore a mensagem e continue alterando a instrução Criar DDL. A versão corrigida desta mensagem para etapas em modo de desenvolvimento deveria ser a seguinte: "Qualquer alteração na instrução SQL Criar DDL não será refletida na definição da tabela. Você quer continuar?" Para etapas em modo de teste ou produção, a mensagem está correta. O Centro de Data Warehouse não alterará a tabela física de destino que foi criada quando você promoveu a etapa para modo de teste. ------------------------------------------------------------------------ 22.32 Migrando business views do Visual Warehouse Se você quiser fazer a migração dos business view de sincronização dos meta-dados do Warehouse para o Centro de Data Warehouse, promova os business view ao status de produção antes de fazer a migração do banco de dados de controle do warehouse. Se os business view estiverem no status de produção, as suas programações serão migradas para o Centro de Data Warehouse. Se as business view não estiverem no status de produção, elas serão migradas no status de teste sem suas programações. Você não pode promover as etapas migradas ao status de produção. Você deve criar as etapas de sincronização novamente no Centro de Data Warehouse e excluir as etapas migradas. ------------------------------------------------------------------------ 22.33 Gerando tabelas de destino e chaves primárias Quando o Centro de Data Warehouse gera a tabela de destino de uma etapa, ele não gera a chave primária da tabela de destino. Alguns dos transformadores, como o Moving Average, usam a tabela gerada como a tabela fonte e também requerem que a tabela fonte tenha uma chave primária. Antes de usar a tabela gerada com o transformador, defina a chave primária da tabela com um clique do botão direito na tabela do DB2 Control Center e com um clique em Alterar. ------------------------------------------------------------------------ 22.34 Utilizando drivers Merant ODBC Para acessar o Microsoft SQL Server no Windows NT usando os drivers Merant ODBC, verifique se o caminho do sistema contém o diretório sqllib\odbc32. ------------------------------------------------------------------------ |22.35 Novo driver ODBC |Se você for utilizar o Centro de Data Warehouse do AIX ou o agente Sun que |foi ligado para acessar fontes Merant ODBC e for acessar bancos de dados DB2 |também, altere o valor do atributo "Driver=" na seção de origem do DB2 no |arquivo .odbc.ini da seguinte forma: |AIX: O nome do driver é /usr/lpp/db2_07_01/lib/db2_36.o |Amostra de entrada de origem ODBC para AIX: |[SAMPLE] Driver=/usr/lpp/db2_07_01/lib/db2_36.o |Descrição=Banco de Dados ODBC do DB2 |Banco de Dados=SAMPLE |Sun: O nome do driver é |/opt/IBMdb2/V7.1/lib/libdb2_36.so |Amostra de entrada de origem ODBC para Sun: |[SAMPLE] Driver=/opt/IBMdb2/V7.1/lib/libdb2_36.so |Descrição=Banco de Dados ODBC do DB2 |Banco de Dados=SAMPLE ------------------------------------------------------------------------ 22.36 Definindo uma origem ou destino do warehouse no banco de dados do OS/2 Quando você definir uma fonte do warehouse ou um destino do warehouse de um banco de dados OS/2, digite o nome do banco de dados em letras maiúsculas. ------------------------------------------------------------------------ 22.37 Monitorando o estado do banco de dados de controle do warehouse O DB2 Control Center ou o Processador da Linha de Comando poderá indicar que o banco de dados de controle do warehouse se encontra em um estado incompatível. Esse estado era esperado porque ele indica que o servidor do warehouse não realizou o commit de sua mensagem de inicialização no criador de logs do warehouse. ------------------------------------------------------------------------ 22.38 Utilizando o Assistente SQL com a amostra de banco de dados TBC_MD Na amostra do warehouse de dados contida no banco de dados TBC_MD, você não pode usar o Assistente SQL para modificar o SQL na etapa Selecionar SQL do Cenário, porque o SQL foi editado depois de ser gerado pelo Assistente SQL. ------------------------------------------------------------------------ 22.39 Utilizando a função FormatDate Para utilizar a função FormatDate, clique em Construir SQL na página Instrução SQL do bloco de notas Propriedades de uma etapa SQL. A saída da função FormatDate tem dados do tipo varchar(255). Você não pode alterar o tipo dos dados com a seleção de Data, Hora ou Data/Hora na lista Categoria da página Parâmetros da Função - FormatDate. ------------------------------------------------------------------------ 22.40 Alterando a definição de idioma No AIX e no Ambiente Operacional Solaris, o processo de instalação define a linguagem de publicação para o catálogo de informações e a exportação para o OLAP Integration Server. Se você quiser usar essas funções em uma linguagem diferente da definida durante a instalação, crie este link flexível com a digitação do seguinte comando em uma linha: No AIX /usr/bin/ln -sf /usr/lpp/db2_07_01/msg/locale/flgnxolv.str /usr/lpp/db2_07_01/bin/flgnxolv.str locale O nome do locale da linguagem no formato xx_yy. No Ambiente Operacional Solaris /usr/bin/ln -sf /opt/IBMdb2/V7.1/msg/locale/flgnxolv.str /opt/IBMdb2/V7.1/bin/flgnxolv.str locale O nome do locale da linguagem no formato xx_yy. ------------------------------------------------------------------------ 22.41 Utilizando o transformador Gerar tabela chave Quando você usar a opção Atualizar o valor na coluna chave do transformador Gerar Tabela Chave, o transformador atualizará somente as linhas da tabela que não têm valores-chave. (Os valores que são nulos). Quando outras linhas forem inseridas na tabela, os valores chave ficarão nulos até você executar o transformador novamente. Para evitar esse problema, use a seguinte abordagem: * Após a execução inicial do transformador, utilize a opção Substituir todos os valores para criar as chaves de todas as linhas novamente. ------------------------------------------------------------------------ 22.42 Fazendo manutenção de conexões para bancos de dados O servidor do warehouse não manterá as conexões com os bancos de dados locais ou remotos quando o servidor do DB2 que gerencia os bancos de dados for interrompido e reiniciado. Se você interromper e reiniciar o DB2, interrompa e reinicie os serviços do warehouse também. ------------------------------------------------------------------------ 22.43 Configurando um cliente remoto do Centro de Data Warehouse Quando você instalar o Cliente de Administração do DB2 e as Ferramentas de Data Warehouse para configurar um cliente administrativo do Centro de Data Warehouse em uma estação de trabalho diferente daquela que contém o servidor do warehouse, deverá incluir o número da porta TCP/IP na qual a estação de trabalho do servidor do warehouse está atendendo aos arquivos de serviços da estação de trabalho cliente. Inclua uma entrada no arquivos de serviços desta forma: vwkernel 11000/tcp ------------------------------------------------------------------------ 22.44 Definindo um DB2 para a fonte do warehouse VM Quando você definir uma fonte do warehouse para um banco de dados DB2 para VM, que é acessado através de um gateway DRDA, haverá restrições no uso dos tipos de dados CLOB e BLOB: * Você não poderá usar a função Conteúdo da Amostra para exibir os dados dos tipos CLOB e BLOB. * Você não poderá usar colunas com tipos de dados CLOB e BLOB com uma etapa SQL. Essa restrição é uma restrição conhecida do servidor do DB2 para VM Versão 5.2 no qual objetos LOB não podem ser transmitidos com o uso da DRDA para um cliente do DB2 Versão 7. ------------------------------------------------------------------------ 22.45 Definindo um DB2 para VM ou DB2 para a tabela de destino VSE Quando definir uma tabela de destino do DB2 para VM ou DB2 para VSE no Centro de Data Warehouse, não selecione a caixa de seleção Conceder a público. A sintaxe de comando GRANT que o Centro de Data Warehouse gera não é suportada no DB2 para VM e DB2 para VSE. ------------------------------------------------------------------------ 22.46 Ativando suporte ao identificador delimitado Para ativar o suporte ao identificador delimitado do Sybase e do Microsoft SQL Server no Windows NT: selecione a caixa de seleção Ativar Identificadores Delimitados na página Avançado do bloco de notas Configuração do Driver ODBC. Para ativar o suporte ao identificador delimitado do Sybase no UNIX, edite a fonte de dados do Sybase no arquivo .odbc.ini para incluir o atributo de conexão EQI=1. ------------------------------------------------------------------------ |22.47 O erro na junção de dados indica um problema na ligação |Os clientes que utilizam o DataJoiner com o DB2 Versão 7.1 + FixPak |2 ou posterior podem obter um erro indicando um problema na ligação. |Por exemplo, ao utilizar uma origem de DataJoiner com um agente do Centro |de Data Warehouse V7, você pode obter um erro como: |DWC07356E An agent's processing of a command of type "importTableNames" |failed for edition "0" of step "?". |SQL0001N Binding or precompilation did not complete successfully. |SQL0001N Package "NULLID.SQLL6D05" was not found. SQLSTATE=51002 |RC = 7356 RC2 = 8600 |Para corrigir o problema, inclua as seguintes linhas no arquivo |db2cli.ini: |[COMMON] |DYNAMIC=1 |Em sistemas UNIX, o arquivo db2cli.ini está localizado no diretório |.../sqllib/cfg. No Windows NT, o arquivo |db2cli.ini está localizado no diretório |.../sqllib. ------------------------------------------------------------------------ 22.48 Configurando e executando replicação com o Centro de Data Warehouse 1. Para configurar e executar a replicação com o Centro de Data Warehouse , é preciso que as tabelas do Controle de Replicação estejam tanto no banco de dados de Controle do Warehouse, quanto nos bancos de dados de Destino do Warehouse. A replicação exige que as tabelas do Controle de Replicação existam nos bancos de dados de Controle e de Destino. As tabelas do Controle de Replicação podem ser encontradas no esquema ASN e todas elas começam com IBMSNAP. As tabelas do Controle de Replicação serão criadas automaticamente em um banco de dados quando você definir uma Fonte de Replicação através do Centro de Controle, se as tabelas de Controle ainda não existirem. Observe que as tabelas de Controle também devem existir no BD de Destino. Para obter o conjunto das tabelas de Controle criadas no BD de destino, você pode criar uma Fonte de Replicação usando o Centro de Controle, depois remover a Fonte de Replicação, deixando apenas as tabelas de Controle no lugar; ou pode usar o produto DJRA, Data Joiner Replication Administration, para definir somente as tabelas de controle. 2. Instalando e Usando o DJRA Se você quiser ou precisar usar o DJRA para definir as tabelas de controle, ele deverá ser instalado primeiro. O DJRA faz parte do DB2. Para instalar o DJRA, vá para o diretório d:\sqllib\djra (em que o DB2 foi instalado) e clique no pacote djra.exe. Assim, o DJRA será instalado no seu sistema. Para acessar o DJRA depois disso, no Windows NT, pelo menu iniciar, clique na opção DB2 para Windows NT, selecione Replicação, depois Ferramentas de Administração da Replicação. A interface do DJRA é um pouco diferente dos aplicativos NT usuais. Para cada função que realiza, ele cria um conjunto de SQLs a serem executadas, mas não as executa. O usuário deve salvar manualmente a SQL gerada e selecionar a função Executar SQL. 3. Configuração para Executar o Capture e Apply Para o sistema que você está testando, consulte o Manual de Replicação e o Manual de Referência para obter as instruções sobre a configuração do sistema a fim de executar os programas Capture e Apply. Você deverá fazer o bind dos programas Capture e Apply em cada banco de dados em que eles serão usados. Observe que você NÃO precisa criar um arquivo de senhas. O Centro do Data Warehouse criará automaticamente um arquivo de senhas para as subscrições de replicação. 4. Definir uma Fonte de Replicação no Centro de Controle Utilize o Centro de Controle para definir uma Fonte de Replicação. O Centro do Data Warehouse suporta cinco tipos de replicação: cópia de usuário, ponto no tempo, agregação base, agregação de alteração e tabelas de transferência (tabelas CCD). Os tipos Cópia de Usuário, Ponto no Tempo e Tabela Condensada de Transferência exigem que a tabela da fonte de replicação possua uma chave primária. Os outros tipos de replicação não possuem essa chave. Tenha isso sempre em mente ao escolher uma tabela de entrada a ser definida como uma Fonte de Replicação. A Fonte de Replicação é, na realidade, a definição da tabela fonte original e uma tabela CD (Change Data - Alterar Dados) criada, que contém as alterações dos dados antes de elas serem transferidas para a tabela de destino. Quando você definir uma Fonte de Replicação no Centro de Controle, um registro será gravado no ASN.IBMSNAP_REGISTER para definir a fonte e a sua tabela CD. A tabela CD será criada no mesmo momento, mas inicialmente não conterá nenhum dado. Quando definir uma Fonte de Replicação, você poderá optar por incluir somente as colunas da imagem posterior ou as colunas da imagem posterior e as da imagem anterior. Estas opções são feitas através de caixas de seleção na interface da Fonte de Replicação do Centro de Controle. A sua seleção das colunas de imagem posterior e anterior será depois convertida em colunas criadas na nova tabela CD. Na tabela CD, as colunas de imagem posterior têm o mesmo nome das colunas da sua tabela fonte original. As colunas de imagem posterior terão um 'X' como o primeiro caractere colocado no nome da coluna. 5. Importar a Fonte de Replicação para o Centro do Data Warehouse Tendo criado a Fonte de Replicação no Centro de Controle, você poderá importá-la para o Centro do Data Warehouse. Ao importar a fonte, certifique-se de dar um clique na caixa de seleção "Tabelas que podem ser replicadas". Ela faz o Centro do Data Warehouse procurar nos registros da tabela ASN.IBMSNAP_REGISTER para ver quais tabelas foram definidas como Fontes de Replicação. 6. Definir uma Etapa de Replicação no Centro do Data Warehouse No modelador de processos, selecione um dos cinco tipos de replicação: agregação base, agregação de alteração, ponto no tempo, tabela de transferência ou cópia de usuário. Se você quiser definir o tipo de replicação agregação base ou agregação de alteração, consulte a seção abaixo que descreve Como configurar uma replicação Agregação Base ou Agregação de Alteração no Centro do Data Warehouse. Selecione uma Fonte de Replicação apropriada para o tipo de replicação. Como foi mencionado acima, os tipos de replicação cópia de usuário, ponto no tempo e tabelas condensadas de transferência exigem que a fonte de entrada tenha uma chave primária. Conecte a Fonte de Replicação com a Etapa de Replicação. Abra as propriedades da Etapa de Replicação. Vá para a guia Parâmetros. Selecione as colunas desejadas. Selecione a caixa de seleção para que seja criada uma tabela fonte. Selecione o destino de um warehouse. Vá para as Opções de Processamento e preencha os parâmetros. Pressione OK. 7. Iniciar o Programa Capture Em uma janela do DOS, digite: ASNCCP source-database COLD PRUNE O parâmetro COLD indica uma inicialização a frio, ele excluirá todos os dados existentes nas tabelas CD. O parâmetro PRUNE pedirá que o programa capture mantenha a tabela IBMSNAP_PRUNCNTL. Deixe o programa Capture ser executado. Quando chegar o momento de parar, você poderá interrompê-lo com um Ctrl-Break na janela do DOS. Esteja ciente de que precisará iniciar o programa Capture antes de iniciar o programa Apply. 8. Etapa de Replicação Promover para o Teste De volta ao Centro do Data Warehouse, para a Etapa de Replicação definida, promova a etapa ao modo de teste. Isso resultará em informações de Subscrição da Replicação a serem gravadas nas tabelas de Controle da Replicação. Você verá registros incluídos no IBMSNAP_SUBS_SET, IBMSNAP_SUBS_MEMBR, IBMSNAP_SUBS_COLS e IBMSNAP_SUBS_EVENT para suportar a subscrição. A tabela de destino também será criada no banco de dados de destino. Se o tipo de replicação for cópia de usuário, ponto no tempo ou tabela condensada de transferência, será necessária uma chave primária na tabela de destino. Vá para o Centro de Controle para criar a Chave Primária. Observe que algumas tabelas de destino da replicação também necessitam de índices exclusivos em várias colunas. Os códigos existem no Centro do Data Warehouse para a criação desses índices exclusivos quando a tabela for criada, para que você NÃO tenha de criá-los por conta própria. Observe, todavia, que se você definir uma chave primária no Centro de Controle e já existir um índice exclusivo para essa coluna, você receberá uma mensagem de AVISO quando criar a chave primária. Ignore essa mensagem de aviso. 9. Etapa de Replicação Promover a Produção Não será feita nenhuma mudança na subscrição da replicação durante a operação de Promover a Produção. Essa é uma operação estritamente do Centro de Data Warehouse como qualquer outra etapa. 10. Executar uma Etapa de Replicação Depois que uma Etapa de Replicação foi promovida ao modo de teste, ela poderá ser executada. Faça uma execução inicial antes de fazer qualquer alteração na tabela fonte. Vá para a seção Trabalho em Andamento (Work-in-Progress - WIP) e selecione a Etapa de Replicação. Execute-a. Quando a etapa for executada, o registro do evento localizado na tabela IBMSNAP_SUBS_EVENT será atualizado e o registro da subscrição localizado em IBMSNAP_SUBS_SET será anunciado como ativo. A subscrição deverá ser executada imediatamente. Quando ela for executada, o programa Apply será chamado pelo Agente para processar as subscrições ativas. Se você atualizar a tabela fonte original depois desse ponto, os dados alterados serão passados para a tabela CD. Se você executar a etapa de replicação que vem a seguir, de tal modo que o programa Apply seja executado novamente, os dados alterados serão transferidos da tabela CD para a tabela de destino. 11. Etapa de Replicação Rebaixar para o Teste Não será feita nenhuma mudança na subscrição da replicação durante a operação de Rebaixar para o Teste. Essa é uma operação estritamente do Centro de Data Warehouse como qualquer outra etapa. 12. Etapa de Replicação Rebaixar para o Desenvolvimento Quando você rebaixa uma Etapa de Replicação ao modo de desenvolvimento, as informações de subscrição são removidas das tabelas de Controle da Replicação. Nenhum registro permanecerá nas tabelas de Controle da Replicação dessa subscrição em particular depois que a operação Rebaixar para o Desenvolvimento terminar. A tabela de destino também será eliminada neste ponto. A tabela CD permanece no lugar já que ela pertence à definição da Fonte de Replicação. 13. Como configurar uma Replicação Agregação Base ou Agregação de Alteração no Centro do Data Warehouse. o Tabela de entrada. Escolha uma tabela de entrada que possa ser usada com uma instrução GROUP BY. No nosso exemplo, usaremos uma Tabela de entrada que tem três colunas: SALES (VENDAS), REGION (REGIÃO), DISTRICT (BAIRRO). o Etapa de replicação. Escolha Agregação Base ou de Alteração. Abra as propriedades Etapa. + Quando o programa Apply for executado, ele precisará de uma instrução SELECT que seja igual: SELECT SUM(SALES), REGION, DISTRICT GROUP BY REGION, DISTRICT. Assim sendo, as colunas de saída selecionadas que você precisará escolher REGION, DISTRICT e uma coluna de cálculo de SUM(SALES). Use o botão Incluir Coluna Calculada. No nosso exemplo, digite: SUM(SALES) no campo Expressão. Salve-o. + Cláusula where. Há a exigência de replicação de que quando você configurar uma etapa de replicação que só precise de uma cláusula GROUP BY você também precisa fornecer uma cláusula where DUMMY, tal como 1=1. NÃO inclua a palavra "WHERE" na cláusula WHERE. Por isso, na GUI do Centro do Data Warehouse da Agregação Base, há somente um campo de entrada da cláusula WHERE. Nesse campo, no nosso exemplo, digite: 1=1 GROUP BY REGION, DISTRICT. Na Agregação de Alteração, há uma cláusula WHERE e um campo de entrada GROUP BY: No campo da cláusula WHERE, digite: 1=1 e no campo GROUP BY: GROUP BY REGION, DISTRICT. + Configure o restante das propriedades da etapa como faria em qualquer outro tipo de replicação. Pressione OK para salvar a etapa e criar o objeto da tabela de destino. o Abra o objeto da tabela de destino. Você precisa agora renomear a coluna de saída da expressão da coluna calculada com um nome válido e precisa especificar um tipo de dados válido para a coluna. Salve o objeto da tabela de destino. o Execute Promover para o Teste na etapa de replicação. A tabela de destino será criada. Ela NÃO precisa de uma chave primária. o Execute a etapa como qualquer outra etapa de replicação. ------------------------------------------------------------------------ 22.49 Dicas para detecção de problemas * Para ativar o rastreamento do Programa Apply, defina o valor do Rastreio do Agente = 4 no painel Propriedades do Warehouse. O Agente ativa o rastreamento completo do Apply quando o Rastreio do Agente for = 4. Caso não veja nenhum dado na tabela CD, provavelmente o programa Capture não foi iniciado ou você não atualizou a tabela fonte original para criar alguns dados alterados. * Está faltando o campo servidor de correspondências da página Notificação do bloco de notas Programar da ajuda online. * O servidor de correspondências precisa suportar o ESMTP da notificação do Centro do Data Warehouse para funcionar. Na ajuda da janela Abrir o Trabalho em Andamento, clique em Warehouse --> Trabalho em Andamento e não em Warehouse Center --> Trabalho em Andamento. ------------------------------------------------------------------------ 22.50 Acessando origens e destinos As tabelas a seguir mostram os níveis de versão e release das fontes e dos destinos que o Centro de Data Warehouse suporta. Tabela 7. Níveis de versão e release das fontes do warehouse IBM suportadas Fonte Versão/Release IMS 5.1 DB2 Universal Database para Windows 5.2 - 7.1 NT DB2 Universal Database 5.2 - 7.1 Enterprise-Extended Edition DB2 Universal Database para OS/2 5.2 - 7.1 DB2 Universal Database para AS/400 3.7 - 4.5 DB2 Universal Database para AIX 5.2 - 7.1 DB2 Universal Database para o 5.2 - 7.1 Ambiente Operacional Solaris DB2 Universal Database para OS/390 4.1 - 7.1 DB2 DataJoiner 2.1.1 DB2 para VM 5.3.4 ou posterior DB2 para VSE 7.1 Fonte Windows NT AIX Informix 7.2.2 - 8.2.1 7.2.4 - 9.2.0 Oracle 7.3.2 - 8.1.5 8.1.5 Microsoft SQL Server 7.0 Microsoft Excel 97 Microsoft Access 97 Sybase 11.5 11.9.2 Tabela 8. Níveis de versão e release dos destinos do warehouse IBM suportados Destino Versão/Release DB2 Universal Database para Windows 6 - 7 NT DB2 Universal Database 6 - 7 Enterprise-Extended Edition DB2 Universal Database para OS/2 6 - 7 DB2 Universal Database para AS/400 3.1-4.5 DB2 Universal Database para AIX 6 -7 DB2 Universal Database para o 6 -7 Ambiente Operacional Solaris DB2 Universal Database para OS/390 4.1 - 7 DB2 DataJoiner 2.1.1 DB2 DataJoiner/Oracle 8 DB2 para VM 3.4 - 5.3.4 DB2 para VSE 3.2, 7.1 CA/400 3.1.2 ------------------------------------------------------------------------ 22.51 Acréscimos às origens do banco de dados não-IBM suportadas A tabela a seguir contém acréscimos às fontes do banco de dados não pertencente à IBM suportadas: Exigências do cliente do Banco de Dados Sistema Operacional banco de dados Informix AIX Informix-Connect e ESQL/C versão 9.1.4 ou superior Informix Ambiente Operacional Informix-Connect e Solaris ESQL/C versão 9.1.3 ou superior Informix Windows NT Informix-Connect para Plataformas Windows 2.x ou Informix-Client Software Developer's Kit para Plataformas Windows 2.x Oracle 7 AIX A biblioteca compartilhada de Oracle7 SQL*Net e Oracle7 SQL*Net (criada pelo script genclntsh) Oracle 7 Ambiente Operacional A biblioteca Solaris compartilhada de Oracle7 SQL*Net e Oracle7 SQL*Net (criada pelo script genclntsh) Oracle 7 Windows NT As DLLs apropriadas à versão atual do SQL*Net, mais o OCIW32.DLL. Por exemplo, o SQL*Net 2.3 requer ORA73.DLL, CORE35.DLL, NLSRTL32.DLL, CORE350.DLL e OCIW32.DLL. Oracle 8 AIX A biblioteca compartilhada do Oracle8 Net8 e do Oracle8 SQL*Net (criada pelo script genclntsh8) Oracle 8 Ambiente Operacional A biblioteca Solaris compartilhada do Oracle8 Net8 e do Oracle8 SQL*Net (criada pelo script genclntsh8) Oracle 8 Windows NT Para acessar os servidores do banco de dados remotos Oracle8 em um nível de versão 8.0.3 ou superior, instale o Oracle Net8 Client versão 7.3.4.x, 8.0.4 ou superior. Em sistemas Intel, instale as DLLs apropriadas ao Oracle Net8 Client (tais como Ora804.DLL, PLS804.DLL e OCI.DLL) em seu caminho. Sybase AIX Em um ambiente não-DCE (driver ODBC ibsyb15): biblioteca libct Em um ambiente DCE (driver ODBC ibsyb1115): Biblioteca de cliente Sybase 11.1 libct_r Sybase Ambiente Operacional Em um ambiente não-DCE Solaris (driver ODBC ibsyb15): biblioteca libct Em um ambiente DCE (driver ODBC ibsyb1115): Biblioteca de cliente Sybase 11.1 libct_r Sybase Windows NT Sybase Open Client-Library 10.0.4 ou superior e a Sybase Net-Library apropriada. ------------------------------------------------------------------------ |22.52 Criando uma Fonte de Dados Manualmente no Centro de Data Warehouse |Quando uma fonte de dados é criada através do Relational Connect e da |instrução "Criar Pseudônimo", a fonte de dados não estará disponível nas |funções relacionadas à importação de tabelas no Centro de Data |Warehouse. Para usar a fonte de dados como uma tabela de origem ou de |destino, execute as seguintes etapas: | 1. |Defina a origem/destino sem importar qualquer tabela. 2. |Expanda a árvore Origens/Destinos do Warehouse a partir da janela |principal do Centro de Data Warehouse e dê um clique com o botão direito do |mouse em "Tabelas" para a origem/destino desejado. 3. |Clique em Definir. 4. |Defina a fonte de dados usando o bloco de notas que é aberto e assegure-se |de que as colunas estejam definidas para cada fonte de dados. | |Para obter maiores informações, consulte "Definindo uma Tabela de Origem |do Warehouse" ou "Definindo uma Tabela de Destino do Warehouse " no |Centro de Informações. ------------------------------------------------------------------------ |22.53 Importando e Exportando Meta-dados Usando o Common Warehouse Metadata Interchange (CWMI) |22.53.1 Introdução |Além do suporte existente para arquivos de linguagem de tag, o Centro de |Data Warehouse pode agora importar e exportar meta-dados para e de arquivos |XML que estão em conformidade com o padrão Common Warehouse Metamodel |(CWM). A importação e a exportação desses arquivos XML em conformidade |com o CWM é referida como Common Warehouse Metadata Interchange |(CWMI). |Você pode importar e exportar meta-dados a partir dos seguintes objetos do |Centro de Data Warehouse: | * |Origens do Warehouse * |Destinos do Warehouse * |Áreas de assunto, incluindo processos, origens, destinos e etapas * |Programas definidos pelo usuário | |O utilitário de importação e exportação CWMI não suporta atualmente certos |tipos de meta-dados, incluindo: planejamentos, esquemas de warehouse, |etapas de atalho, relacionamentos em cascata, usuários e grupos. |O Centro de Data Warehouse cria um arquivo de log que contém os resultados |dos processos de importação e exportação. Tipicamente, o arquivo de log |é criado no diretório x:\arquivos de programas\sqllib\logging |(em que x: é a unidade onde o DB2 foi instalado) ou o |diretório que você especificou como a variável de ambiente VWS_LOGGING. |O arquivo de log é texto simples, você pode exibi-lo com qualquer editor de |textos. |22.53.2 Importando Meta-dados |Você pode importar meta-dados a partir do Centro de Data Warehouse ou da |linha de comandos. |Os novos objetos que são criados através do processo de importação são |atribuídos ao grupo de segurança padrão do Centro de Data Warehouse. |Para obter maiores informações, consulte "Atualizando a segurança após a |importação" nesta Notas de Release. |Se estiver importando meta-dados sobre uma etapa, vários arquivos poderão |estar associados à etapa. Os meta-dados sobre a etapa são armazenados |em um arquivo XML, mas às vezes uma etapa tem dados associados armazenados |como BLOBs. Os meta-dados BLOB têm o mesmo nome de arquivo do arquivo |XML, mas fica em arquivos separados que têm extensões numeradas. Todos |os arquivos de etapas relacionadas devem ficar no mesmo diretório na |importação. |Atualizando etapas quando estão no modo de teste ou de produção |Um etapa deve estar no modo de desenvolvimento antes do Centro de Data |Warehouse poder atualizar seus meta-dados. Se ela estiver no modo de |teste ou de produção, rebaixe a etapa para o modo de desenvolvimento antes de |importar os meta-dados: | 1. |Efetue logon para o Centro de Data Warehouse. 2. |Dê um clique com o botão direito do mouse na etapa que deseja rebaixar e |clique em Modo. 3. |Clique em Desenvolvimento. | |Agora a etapa está no modo de desenvolvimento. Altere a etapa de |volta para o modo de teste ou de produção após importar os meta-dados. |Importando dados a partir do Data Warehouse Center |Você pode importar meta-dados a partir do Centro de Data Warehouse: | 1. |Efetue logon para o Centro de Data Warehouse. 2. |No painel esquerdo, clique em Warehouse. 3. |Clique em Selecionado --> Importar Meta-dados |--> Arquivo de Intercâmbio... 4. |Na janela Importar Meta-dados, especifique o nome do arquivo que contém os |meta-dados que deseja importar. Você pode digitar o nome do arquivo ou |procurar o arquivo. | o |Se souber a localização, digite o caminho e o nome do arquivo completos |que deseja importar. Certifique-se de incluir a extensão de |arquivo.xml para especificar que deseja importar meta-dados |no formato XML. o |Para procurar os arquivos: | a. |Clique no botão de comando reticências (...). b. |Na janela Arquivo, altere Arquivos do tipo para XML. c. |Vá para o diretório correto e selecione o arquivo que deseja |importar. |Nota: O arquivo deve ter uma extensão .xml. | d. |Clique em OK. | | 5. |Na janela Importar Meta-dados, clique em OK para |finalizar. A janela Progresso é exibida enquanto o Centro de |Data Warehouse importar o arquivo. | |Usando a linha de comandos para importar meta-dados |Você também pode usar a linha de comandos para importar meta-dados. |A seguir está a sintaxe do comando de importação: |CWMImport XML_file dwcControlDB |dwcUserId dwcPW [PREFIX = DWCtbschema] | XML_file O caminho e o nome do arquivo completos (incluindo a unidade e o diretório) do arquivo XML que deseja importar. Esse parâmetro é obrigatório. dwcControlDB O nome do warehouse control database para o qual deseja importar os meta-dados. Esse parâmetro é obrigatório. dwcUserId A ID do usuário usada para efetuar logon para o warehouse control database. Esse parâmetro é obrigatório. dwcPW A senha do usuário usada para efetuar logon para o warehouse control database. Esse parâmetro é obrigatório. [PREFIX=DWCtbschema] O nome do esquema do banco de dados para as tabelas de sistema do Centro de Data Warehouse, às vezes referido como prefixo da tabela. Se nenhum valor for especificado para PREFIX=, o nome do esquema padrão será IWH. Esse parâmetro é opcional. |22.53.3 Atualizando os Meta-dados Após Executar o Utilitário de Importação |Atualizando a segurança após a importação |Como uma medida de segurança, o Centro de Data Warehouse não importa ou |exporta senhas. Você precisa atualizar as senhas nos novos objetos, |conforme necessário. Para obter maiores detalhes sobre considerações de |importação, consulte o Centro de Data Warehouse Administration |Guide, Capítulo 12, "Exportando e importando meta-dados do Centro de |Data Warehouse." |Ao importar meta-dados, todos os objetos serão atribuídos ao grupo de |segurança padrão. Você pode alterar os grupos que têm acesso ao |objeto: | 1. |Efetue logon para o Centro de Data Warehouse. 2. |Dê um clique com o botão direito do mouse na pasta que contém o objeto que |deseja alterar. 3. |Clique em Propriedades e, em seguida, na guia |Segurança. 4. |Remova grupos da lista Grupos de warehouse selecionados ou |inclua grupos da lista Grupos de warehouse disponíveis. 5. |Clique em OK. | |22.53.4 Exportando Meta-dados |Você pode exportar meta-dados a partir do Centro de Data Warehouse ou da |linha de comandos. |Algumas etapas têm meta-dados que estão armazenados como BLOB. Um |meta-dados BLOB é exportado para um arquivo separados que tem o mesmo nome de |arquivo do arquivo XML da etapa, mas com uma extensão numerada |(.1, .2 e assim por diante). |Exportando dados a partir do Centro de Data Warehouse |Você pode exportar meta-dados a partir do Centro de Data Warehouse: | 1. |Efetue logon para o Centro de Data Warehouse. 2. |No painel esquerdo, clique em Warehouse. 3. |Clique em Selecionado --> Exportar |Meta-dados--> Arquivo de intercâmbio. 4. |Na janela Exportar Meta-dados, especifique o nome do arquivo que conterá |os meta-dados exportados. Você pode digitar o nome do arquivo ou |procurar o arquivo: | o |Se souber o caminho e o nome do arquivo completos que deseja usar, |digite-o no campo de entrada Nome do arquivo. Certifique-se |de incluir a extensão de arquivo .xml para especificar que |deseja exportar meta-dados no formato XML. o |Para procurar os arquivos: | a. |Clique no botão de comando reticências (...). b. |Na janela Arquivo, altere Arquivos do tipo para |XML. c. |Vá para o diretório correto e selecione o arquivo que deseja que contenha |os meta-dados exportados. |Nota: Qualquer arquivo existente selecionado será sobreposto pelo meta-dados |exportado. | d. |Clique em OK. | | 5. |Quando a janela Exportar Meta-dados exibir o nome do arquivo correto, |clique no objeto na lista Objetos disponíveis cujos meta-dados |deseja exportar. 6. |Clique no sinal > para mover o objeto selecionado da lista |Objetos disponíveis para a lista Objetos |selecionados. Repita esse processo até todos os objetos que |deseja exportar constarem na lista Objetos selecionados. 7. |Clique em OK. | |O Centro de Data Warehouse cria um arquivo de entrada, que |contém informações sobre os objetos do Centro de Data Warehouse selecionados |para exportação e, então, exporta os meta-dados sobre esses objetos. A |janela Progresso é exibida enquanto o Centro de Data Warehouse está exportando |os meta-dados. |Quando o processo de exportação estiver concluído, você receberá uma |mensagem informativa sobre o processo de exportação. Um código de |retorno 0 indica que a exportação ocorreu com sucesso. Você |também pode exibir o arquivo de log para obter informações mais |detalhadas. |Usando a linha de comandos para exportar meta-dados |Antes de exportar meta-dados a partir da linha de comandos, crie primeiro |um arquivo de entrada. O arquivo de entrada é um arquivo de |texto com uma extensão .INP e lista todos os objetos pelo |tipo de objeto que deseja exportar. Quando você exporta a partir do |Centro de Data Warehouse, o arquivo de entrada é criado automaticamente, mas |para exportar a partir da linha de comandos é necessário primeiro criar o |arquivo de entrada. Você pode criar o arquivo de entrada com qualquer |editor de texto. Digite todos os nomes de objetos conforme aparecem no |Centro de Data Warehouse. Verifique se criou o arquivo em um diretório |de leitura/gravação. Quando você executar o utilitário de exportação, o |Centro de Data Warehouse gravará os arquivos XML no mesmo diretório onde está |localizado o arquivo de entrada. |A seguir há um arquivo de entrada de amostra: | |Tutorial Fact Table Process | |Tutorial file source |Tutorial target | |New Program group |Na seção (processos), liste todos os processos que |deseja exportar. Na seção (recursos de informação), |liste todas as origens e destinos do warehouse que deseja exportar. O |Centro de Data Warehouse inclui automaticamente as tabelas e colunas que estão |associadas a essas origens e destinos. Na seção |(programas definidos pelo usuário), liste todos os grupos de programas que |deseja exportar. |Para exportar meta-dados, digite o seguinte comando em um prompt de |comandos do DOS: |CWMExport INPcontrol_file dwcControlDB |dwcUserID dwcPW [PREFIX=DWCtbschema] | INPcontrol_file O caminho e o nome do arquivo completos (incluindo a unidade e o diretório) do arquivo .INP que contém os objetos que deseja exportar. Esse parâmetro é obrigatório. dwcControlDB O nome do warehouse control database a partir do qual deseja exportar. Esse parâmetro é obrigatório. dwcUserID A ID do usuário usada para efetuar logon para o warehouse control database. Esse parâmetro é obrigatório. dwcPW A senha usada para efetuar logon para o warehouse control database. Esse parâmetro é obrigatório. [PREFIX=DWCtbschema] O nome do esquema do banco de dados para as tabelas de sistema do Centro de Data Warehouse, às vezes referido como prefixo da tabela. Se nenhum valor for especificado para PREFIX=, o valor padrão será IWH. Esse parâmetro é opcional. ------------------------------------------------------------------------ |22.54 Etapa do utilitário Runstats do OS/390 |Ao definir uma etapa do utilitário Runstats do OS/390 no DWC, o usuário |deve estar ciente do seguinte na guia Parâmetros do diálogo Propriedades da |etapa. No campo tablespace, o usuário deve digitar o nome em |maiúsculas. Se o tablespace não estiver no banco de dados |DSNDB04, seu nome deve ser qualificado pelo banco de dados que a |contém. Por exemplo, digite SAMPLE.EMPLOYEE. |Atualmente, a ajuda não menciona esse campo. ------------------------------------------------------------------------ |22.55 Etapa do utilitário Load do OS/390 |Ao definir uma etapa do utilitário Load do OS/390 no DWC, o usuário deve |estar ciente do seguinte na guia Parâmetros do diálogo Propriedades da |etapa. Para que o carregamento funcione, o usuário deve sempre |selecionar o botão Avançado. Caso contrário, a cláusula INTO da |instrução load não é gerada e a execução do carregamento falha. |Além disso, o FixPak 3 inclui uma correção para remover aspas duplas em |torno do nome do dataset de carregamento. Sem essa correção, o |carregamento não funciona. ------------------------------------------------------------------------ |22.56 Suporte XML do Common Warehouse Metamodel (CWM) | | | | |O conjunto de ferramentas do CWM Versão 7.2 funciona no Java |Development Kit (JDK) 1.2.2 ou 1.3. |Você pode importar e exportar os seguintes objetos XML do CWM: |Etapas do atalho de outros processos |Quando você exporta um processo que contém uma etapa que possui uma relação |com uma etapa em outro processo (um atalho), ambos os processos são exportados |e a relação é mantida. |Relações condicionalmente em cascata |Você pode importar e exportar diferentes relações em cascata entre etapas, |incluindo CHILD, SUCCESS, FAILURE e UNCONDITIONAL. |Origens do warehouse como objetos de exibições |Quando você exporta, é possível definir uma origem do warehouse como um |objeto de exibição. Os objetos de exibição são processados iguais aos |objetos de tabelas. |SQLDataType para colunas e campos |Você pode utilizar o SQLDataType para colunas e campos. |Vários nomes de correlação para a mesma tabela |Durante a importação e exportação, você pode ter vários nomes de |correlação, cada um com seu próprio mapeamento de coluna para a mesma |tabela. |Novo suporte de origem ao SAP e ao WebSphere Site Analyzer (WSA) |Além das novas marcações de suporte de origem, você pode exportar |informações do SAP e WSA que são salvas em seu warehouse. ------------------------------------------------------------------------ |22.57 Modelador de processos | |Você pode redimensionar a paleta do modelador de processos, para ajustar |sua tela. Os ícones na paleta serão reposicionados automaticamente para |uma paleta de várias colunas. |Quando você clica em um ícone da paleta, verá um título nos objetos da |paleta. |Você pode ver os objetos da tabela e do arquivo através de seus nomes de |negócios, selecionado a opção Mostrar Nomes de Negócios no menu |Exibir. Você também pode ajustar as definições de |porcentagem e tornar suas exibições do processo menores ou maiores, |selecionando a opção Zoom Para. |Se os objetos forem sobrepostos dentro da paleta, você poderá clicar neles |para trazê-los para a parte superior da tela. Além disso, os nomes de |objetos sobrepõem em várias linhas para salvar o espaço da paleta. |Você pode utilizar a tecla Excluir para remover os objetos. As |alterações da tabela são salvas quando você salva um processo. O |procedimento de seleção não é automático. Se você desejar remover uma |tabela, um arquivo ou uma exibição de uma origem ou destino e processo do |warehouse, será possível clicar com o botão direito do mouse e selecionar a |ação Remover da Origem se o objeto estiver em uma origem do |warehouse ou a ação Remover do Destino se o objeto estiver em um |destino do warehouse. |O cursor mostra o estado de seleção da paleta. Adicionalmente, a |linha de status mostra o nome do objeto que o cursor está ativo. ------------------------------------------------------------------------ |22.58 Modelador de esquema | |Você pode minimizar e maximizar as tabelas dentro do modelador de |esquema. Quando você minimiza uma tabela, ela é alterada em um |ícone. Para obter melhor precisão visual, você pode criar um layout de |esquema em estrela. ------------------------------------------------------------------------ |22.59 Campos obrigatórios |O Centro de Data Warehouse exibe molduras vermelhas nos campos |requeridos. As molduras vermelhas o alertam para informações |obrigatórias tais como nomes do banco de dados, IDs de usuários ou senhas que |são necessários para definir os objetos do Centro de Data Warehouse. |Quando você digita as informações requeridas, as molduras |desaparecem. ------------------------------------------------------------------------ |22.60 Melhorias da barra de lançamento do Centro de Data Warehouse |Quando você cria um objeto do Centro de Data Warehouse da barra de |lançamento, a árvore de navegação é expandida para mostrar a localização do |novo objeto. ------------------------------------------------------------------------ |22.61 Imprimindo informações da etapa para um arquivo |Você pode imprimir informações sobre uma etapa (tal como área do assunto, |nomes de tabelas de origem e nomes de tabelas de destino) para um arquivo de |texto. Para imprimir as informações da etapa para um arquivo, clique |com o botão direito do mouse no ícone da etapa no modelador de processo, |clique em Imprimir --> Imprimir para Arquivo e especifique |o nome do arquivo para o qual deseja imprimir as informações. ------------------------------------------------------------------------ Manual do Centro de Data Warehouse Application Integration |No Capítulo 5. Modelos de meta-dados, a Tabela 16 descreve |sinais de marcação de Coluna. AS informações no manual devem indicar |que "*ColumnPositionNumber" deve iniciar com "1". O manual fornece |incorretamente "0" como caractere inicial. |Posteriormente no Capítulo 5, na Tabela 42, o símbolo |TableTypeIfFile será requerido, se o tipo especificado para o símbolo |DatabaseType no SourceDataBase.tag correspondente for |ISV_IR_FFLan. Se ele não for especificado, será detectado um |erro. No capítulo 6. Data Warehouse Center metadata, a descrição da propriedade do objeto da coluna POSNO deve ser alterada para: Um índice, iniciando-se em 1, da coluna ou campo na linha da tabela ou arquivo. No Capítulo 8, Tipos de Objeto do Gerenciador do Catálogo de Informações, o diretório onde você pode encontrar os arquivos .TYP, que incluem a linguagem de tag para definição de um tipo de objeto, foi alterado para \SQLLIB\DGWIN\TYPES. ------------------------------------------------------------------------ |23.1 Modelos de meta-dados adicionais |No Capítulo 5, Modelos de Meta-dados, os modelos de meta-dados a seguir |devem ser incluídos. | |Tabela 9. Novos modelos de meta-dados fornecidos com o Centro de Data Warehouse Modelo Descrição Consulte: commit.tag 23.1.1, "Commit.tag" Foreignkey.tag 23.1.2, ForeignKey.tag Foreignkeyadditional.tag 23.1.3, ForeignKeyAdditional.tag Primarykey.tag 23.1.4, PrimaryKey.tag Primarykeyadditional.tag 23.1.5, PrimaryKeyAdditional.tag |23.1.1 Commit.tag |Utilize este modelo para melhorar o desempenho, quando estiver utilizando o |arquivo de linguagem de código grande. Um modelo de consolidação pode |ser inserido entre qualquer um dos grupos de modelos descritos aqui. Um |modelo de consolidação não pode ser inserido entre os modelos dentro de um |grupo. Por exemplo, ele é válido para inserir um modelo de consolidação |entre AgentSite.tag e VWPGroup.tag, mas inválido para inserir |uma marcação de consolidação entre VWPProgramTemplate.tag e |VWPProgramTemplateParameter.tag. Se os modelos de consolidação |forem utilizados incorretamente, a importação poderá relatar um erro. | * |AgentSite.tag * |VWPGroup.tag * |VWPProgramTemplate.tag, VWPProgramTemplateParameter.tag * |SourceDatabase.tag * |WarehouseDatabase.tag * |Table.tag, Column.tag * |SubjectArea.tag * |Process.tag * |Step.tag, StepInputTable.tag, StepOutputTable.tag, |StepVWPOutputTable.tag, StepVWPProgramInstance.tag, |VWPProgramInstanceParameter.tag * |StepCascade.tag * |StarSchema.tag, StarSchemaInputTable.tag * |PrimaryKey.tag, PrimaryKeyAdditional.tag * |ForeignKey.tag, ForeignKeyAdditional.tag | |O uso do modelo de consolidação é opcional. |23.1.1.1 Símbolos | | |Tabela 10 fornece informações sobre cada símbolo no modelo. | |Tabela 10. Símbolos Commit.tag Token Descrição Valores permitidos Parâmetros de relação *CurrentCheckPointID++Um índice, começando Um valor numérico. com 0, que aumenta toda vez que é substituído em um símbolo. Esse símbolo é requerido. |23.1.1.2 Exemplos de valores | | |Tabela 11 fornece o exemplo de valores para cada símbolo, para |ilustrar o tipo de meta-dados que você pode fornecer para cada símbolo. | |Tabela 11. Exemplo de valores para símbolos Commit.tag Token Exemplo de valor *CurrentCheckPointID++ 1 |23.1.2 ForeignKey.tag |Utilize este modelo para definir as limitações da chave remota em |tabelas. O modelo ForeignKey.tag define as relações para a |tabela e a coluna nas quais a limitação está sendo definida. Este |modelo também define as relações para a tabela e a coluna da chave principal a |qual está sendo referida. Antes de utilizar o modelo |ForeignKey.tag, você deve definir a limitação de chave principal |(utilizando o modelo PrimaryKey.tag) e as tabelas e as colunas |(utilizando os modelos Table.tag e Column.tag) nas quais definir |a limitação de chave remota. |23.1.2.1 Símbolos | | |Tabela 12 fornece informações sobre cada símbolo no modelo. | |Tabela 12. Símbolos ForeignKey.tag Token Descrição Valores permitidos Parâmetros de entidades *ConstraintName O nome da limitação. Uma cadeia de texto, até 80 bytes de comprimento. O nome deve ser exclusivo dentro de uma tabela ou campo. Esse símbolo é requerido. *ForeignColumnKeyName Nome da coluna na Uma cadeia de texto, até qual a limitação da 254 bytes de comprimento. chave remota está sendo definida. *ForeignKeyID A chave que Um valor numérico. identifica exclusivamente a chave remota. A chave deve ser exclusiva de todas as outras no arquivo de linguagem de código. Dica: Termine o processamento do modelo ForeignKey.tag antes de aumentar o valor da chave. Esse símbolo é requerido. *MapID Um número arbitrário Um valor numérico. que é exclusivo de todas as outras chaves no arquivo de intercâmbio. Dica: Termine o processamento do modelo ForeignKey.tag antes de aumentar o valor desse símbolo. Esse símbolo é requerido. *PrimaryColumnKeyName O nome da coluna da Uma cadeia de texto, até coluna referenciada. 80 bytes de comprimento. *ReferencedPrimaryKeyID A chave que Um valor numérico. identifica exclusivamente a chave principal. A chave deve ser exclusiva de todas as outras no arquivo de linguagem de código. Dica: Termine o processamento do modelo ForeignKey.tag antes de aumentar o valor da chave. Esse símbolo é requerido. Parâmetros de relação *DatabaseName O nome de negócios Uma cadeia de texto, até da origem ou do 40 bytes de comprimento. destino do warehouse. Esse símbolo é requerido. *ForeignTablePhysicalNameO nome definido pelo Uma cadeia de texto, até banco de dados da 254 bytes de comprimento. tabela física contendo as chaves remotas que fazem referência às chaves em outras tabelas. *PrimaryTablePhysicalNameO nome definido pelo Uma cadeia de texto, até banco de dados da 80 bytes de comprimento. tabela física contendo as chaves que são referenciadas pelas chaves remotas. *PrimaryTableOwner O proprietário, o Uma cadeia de texto, até qualificador de alto 128 bytes de comprimento. nível, a coleção ou o esquema da tabela que contém a coluna da chave principal que está sendo referenciada. Esse símbolo é requerido. *ForeignTableOwner O proprietário, o Uma cadeia de texto, até qualificador de alto 128 bytes de comprimento. nível, a coleção ou o esquema da tabela que contém a coluna de limitação da chave remota. Esse símbolo é requerido. |23.1.2.2 Exemplos de valores | | |Tabela 13 fornece o exemplo de valores para cada símbolo, para |ilustrar o tipo de meta-dados que você pode fornecer para cada símbolo. | |Tabela 13. Exemplo de valores para símbolos ForeignKey.tag Token Exemplo de valor *ConstraintName Departamento *DatabaseName Warehouse Financeiro *ForeignColumnKeyName Código do país *ForeignKeyID 07011 *ForeignTablePhysicalName Geografia *MapID 02568 *PrimaryColumnKeyName Código do estado *Referenced PrimaryKeyID Nome *PrimaryTablePhysicalName Cidade *PrimaryTableOwner DB2ADMIN *ForeignTableOwner IWH |23.1.3 ForeignKeyAdditional.tag |Utilize este modelo para definir uma chave remota composta. Antes de |utilizar o modelo ForeignKeyAdditional.tag, você deve definir uma |limitação (utilizando o modelo ForeignKey.tag) na primeira |coluna. Você pode incluir colunas utilizando esse modelo para cada |coluna que deseja incluir. |23.1.3.1 Símbolos | | |Tabela 14 fornece informações sobre cada símbolo no modelo. | |Tabela 14. símbolos ForeignKeyAdditional.tag Token Descrição Valores permitidos Parâmetros de entidades *ForeignColumnKeyName O nome da coluna no qual Uma cadeia de texto, a limitação de chave até 80 bytes de remota está sendo comprimento. definida. *ForeignKeyID A chave que identifica Um valor numérico. exclusivamente a chave remota. A chave deve ser exclusiva de todas as outras no arquivo de linguagem de código. Dica: Termine o processamento do modelo ForeignKey.tag antes de aumentar o valor da chave. Esse símbolo é requerido. *MapID Um número arbitrário que Um valor numérico. é exclusivo de todas as outras chaves no arquivo de intercâmbio. Dica: Termine o processamento do modelo ForeignKeyAdditional.tag antes de aumentar o valor desse símbolo. Esse símbolo é requerido. *MapSeqNo Um número significando Exclusivo, aumentando, cada coluna adicional número consecutivo que incluída como parte de começa com 2. uma chave composta para a limitação de chave remota. *PrimaryColumnKeyName O nome da coluna da Uma cadeia de texto, coluna referenciada. até 80 bytes de comprimento. Parâmetros de relação *DatabaseName O nome de negócios da Uma cadeia de texto, origem ou do destino do até 40 bytes de warehouse. comprimento. Esse símbolo é requerido. *ForeignTablePhysicalNameO nome definido pelo Uma cadeia de texto, banco de dados da tabela até 80 bytes de física contendo as chaves comprimento. remotas que fazem referência às chaves em outras tabelas. *PrimaryTablePhysicalNameO nome definido pelo Uma cadeia de texto, banco de dados da tabela até 80 bytes de física contendo as chaves comprimento. que são referenciadas pelas chaves remotas. *PrimaryTableOwner O proprietário, o Uma cadeia de texto, qualificador de alto até 128 bytes de nível, a coleção ou o comprimento. esquema da tabela que contém a coluna da chave principal que está sendo referenciada. Esse símbolo é requerido. *ForeignTableOwner O proprietário, o Uma cadeia de texto, qualificador de alto até 128 bytes de nível, a coleção ou o comprimento. esquema da tabela que contém a coluna de limitação da chave remota. Esse símbolo é requerido. |23.1.3.2 Exemplos de valores | | |Tabela 15 fornece os exemplos de valores para cada símbolo, para |ilustrar o tipo de meta-dados que você pode fornecer para cada símbolo. | |Tabela 15. Exemplos de valores para símbolos ForeignKeyAdditional.tag Token Exemplo de valor *DatabaseName Warehouse Financeiro *ForeignColumnKeyName Código do país *ForeignKeyID 07011 *ForeignTablePhysicalName Geografia *MapID 22578 *MapSeqNo 2 *PrimaryColumnKeyName Código do estado *PrimaryTablePhysicalName Cidade *PrimaryTableOwner DB2ADMIN *ForeignTableOwner IWH |23.1.4 PrimaryKey.tag |Utilize este modelo para definir as limitações da chave principal em |tabelas. O modelo também define as relações para a tabela e a coluna |nas quais a limitação está sendo definida. Antes de utilizar o modelo |PrimaryKey.tag, você deve definir as tabelas e as colunas (utilizando |os modelos Table.tag e Column.tag) nas quais deseja definir a |limitação da chave principal. |23.1.4.1 Símbolos | | |Tabela 16 fornece informações sobre cada símbolo no modelo. | |Tabela 16. símbolos PrimaryKey.tag Token Descrição Valores permitidos Parâmetros de entidades *ColumnName O nome da coluna ou Uma cadeia de texto, até 80 do campo. bytes de comprimento. O nome deve ser exclusivo dentro de uma tabela ou campo. Esse símbolo é requerido. *MapID Um número arbitrário Um valor numérico. que é exclusivo de todas as outras chaves no arquivo de intercâmbio. Dica: Termine o processamento do modelo PrimaryKey.tag antes de aumentar o valor desse símbolo. Esse símbolo é requerido. *PrimaryKeyID A chave que Um valor numérico. identifica exclusivamente a chave principal. A chave deve ser exclusiva de todas as outras no arquivo de linguagem de código. Dica: Termine o processamento do modelo ForeignKey.tag antes de aumentar o valor da chave. Esse símbolo é requerido. Parâmetros de relação *DatabaseName O nome de negócios Uma cadeia de texto, até 40 da origem ou do bytes de comprimento. destino do warehouse. Esse símbolo é requerido. *TableOwner O proprietário, o Uma cadeia de texto, até 128 qualificador de alto bytes de comprimento. nível, a coleção ou o esquema da tabela que contém a coluna. Esse símbolo é requerido. *TablePhysicalName O nome físico da Uma cadeia de texto, até 80 tabela ou do arquivo bytes de comprimento. que contém a coluna conforme definido para o gerenciador do banco de dados ou sistema de arquivos. Esse símbolo é requerido. |23.1.4.2 Exemplos de valores | | |Tabela 17 fornece o exemplo de valores para cada símbolo, para |ilustrar o tipo de meta-dados que você pode fornecer para cada símbolo. | |Tabela 17. Exemplo de valores para símbolos PrimaryKey.tag Token Exemplo de valor *ColumnName Código do país *DatabaseName Warehouse Financeiro *MapID 54627 *PrimaryKeyID 74622 *TableOwner DB2ADMIN *TablePhysicalName GEOGRAPHY |23.1.5 PrimaryKeyAdditional.tag |Utilize este modelo para definir uma chave principal composta. Antes |de utilizar o modelo PrimaryKeyAdditional.tag, você deve definir uma |limitação na primeira coluna, utilizando o modelo |PrimaryKey.tag. Quaisquer colunas adicionais podem ser incluídas |utilizando esse modelo. O modelo também relaciona as chaves principais |adicionais para a primeira chave principal que é definida utilizando o |PrimaryKey.tag. |23.1.5.1 Símbolos | | |Tabela 18 fornece informações sobre cada símbolo no modelo. | |Tabela 18. símbolos PrimaryKeyAdditional.tag Token Descrição Valores permitidos Parâmetros de entidades *ColumnName O nome da coluna ou do Uma cadeia de texto, até campo. 80 bytes de comprimento. O nome deve ser exclusivo dentro de uma tabela ou campo. Esse símbolo é requerido. *FirstPrimaryKeyID A chave que identifica Um valor numérico. exclusivamente a chave principal. A chave deve ser exclusiva de todas as outras no arquivo de linguagem de código. Dica: Termine o processamento do modelo ForeignKey.tag antes de aumentar o valor da chave. Esse símbolo é requerido. *MapID Um número arbitrário que Um valor numérico. é exclusivo de todas as outras chaves no arquivo de intercâmbio. Dica: Termine o processamento do modelo PrimaryKeyAdditional.tag antes de aumentar o valor desse símbolo. Esse símbolo é requerido. *MapSeqNo Um número significando Exclusivo, aumentando, cada coluna adicional número consecutivo que incluída como parte de começa com 2. uma chave composta para a limitação de chave principal. Parâmetros de relação *DatabaseName O nome de negócios da Uma cadeia de texto, até origem ou do destino do 40 bytes de comprimento. warehouse. Esse símbolo é requerido. *TableOwner O proprietário, o Uma cadeia de texto, até qualificador de alto 15 bytes de comprimento. nível, a coleção ou o esquema da tabela que contém a coluna. Esse símbolo é requerido. *TablePhysicalName O nome físico da tabela Uma cadeia de texto, até ou do arquivo que contém 80 bytes de comprimento. a coluna conforme definido para o gerenciador do banco de dados ou sistema de arquivos. Esse símbolo é requerido. |23.1.5.2 Exemplos de valores | | |Tabela 19 fornece o exemplo de valores para cada símbolo, para |ilustrar o tipo de meta-dados que você pode fornecer para cada símbolo. | |Tabela 19. Exemplo de valores para símbolos PrimaryKeyAdditional.tag Token Exemplo de valor *ColumnName Código do país *DatabaseName Warehouse Financeiro *MapID 99542 *MapSeqNo 2 *FirstPrimaryKeyID 07801 *TableOwner DB2ADMIN *TablePhysicalName GEOGRAPHY ------------------------------------------------------------------------ Ajuda Online do Centro de Data Warehouse ------------------------------------------------------------------------ 24.1 Definindo tabelas ou exibições para replicação Uma tabela ou exibição deve ser definida para replicação com o DB2 Control Center antes dela poder ser usada como uma fonte de replicação no Centro de Data Warehouse . ------------------------------------------------------------------------ 24.2 Executando VWPs Essbase com o agente do AS/400 Antes de executar VWPs do Essbase com o agente do AS/400, ARBORLIB e ARBORPATH devem ser definidos como variáveis de ambiente *sys. Para defini-las, a ID do usuário deve possuir autoridade *jobctl. Estas variáveis de ambiente devem indicar à biblioteca onde o Essbase está instalado. ------------------------------------------------------------------------ 24.3 Utilizando a janela Publicar meta-dados do Centro de Data Warehouse e propriedades associadas Na etapa 10 da ajuda da tarefa, há um exemplo declarando que se você especificar um valor de limite 1 (limitar os níveis de objetos na árvore) e publicar um processo, somente 1 etapa daquele processo será publicada e exibida. Este exemplo não está correto em todas as situações. Na etapa 8, no segundo item, a primeira declaração está incorreta. Ela deveria ser "Clique no nível da coluna para gerar um objeto de transformação entre uma coluna de origem do catálogo de informações e uma coluna de destino." ------------------------------------------------------------------------ 24.4 Chaves externas Qualquer referência na ajuda online a "chaves externas" deveria ser "chaves externas do warehouse." ------------------------------------------------------------------------ 24.5 Blocos de notas de replicação qualquer referência na ajuda online ao "bloco de notas Definir Replicação" deveria ser "bloco de notas etapa de replicação." ------------------------------------------------------------------------ 24.6 Importando uma linguagem de tag Importando a ajuda online de uma linguagem de tag: Na lista de itens que mostra os erros de importação mais comuns, há o item "Importando um arquivo da linguagem de tag que não foi exportado adequadamente". Este item não é aplicável à lista de erros comuns de entrada. ------------------------------------------------------------------------ 24.7 Links para incluir dados No tópico "Incluir dados" da ajuda online, os links com os tópicos "Incluindo tabelas fonte em um processo" e "Incluindo tabelas de destino em um processo" estão interrompidos. Você pode encontrar esses tópicos no índice da ajuda. ------------------------------------------------------------------------ 24.8 Importando tabelas Os tópicos da ajuda "Importando tabelas fonte e exibições para uma fonte do warehouse" e "Importando tabelas fonte para um destino do warehouse" contêm informações incorretas referentes ao caractere curinga. A sentença: Por exemplo, XYZ* retornaria tabelas e exibições com esquemas que se iniciam com estes caracteres. deveria ser: Por exemplo, XYZ% retornaria tabelas e exibições com esquemas que se iniciam com estes caracteres. ------------------------------------------------------------------------ 24.9 Correção à Ajuda Online de RUNSTATS e REORGANIZE TABLE A ajuda online desses utilitários declara que a tabela na qual você deseja executar as estatísticas, ou que deverá ser reorganizada, deverá ser ligada como a fonte e como o destino. Porém, em razão da etapa fazer a gravação na fonte, você só precisará fazer um link da fonte à etapa. ------------------------------------------------------------------------ 24.10 Página de Notificação (Bloco de Notas Propriedades do Warehouse e Bloco de Notas Programação) Na página Notificação do bloco de notas Propriedades do Warehouse, a afirmação: O campo de entrada Emissor é inicializado pela cadeia . deve ser modificada para: O campo de entrada Emissor é inicializado com a cadeia . Na página Notificação do bloco de notas Programação, o emissor será inicializado no que tiver sido definido no bloco de notas Propriedades do Warehouse. Se nada tiver sido definido, ele será inicializado no e-mail do usuário do logon atual. Caso não haja nenhum e-mail associado ao usuário do logon, o emissor será definido para a ID de usuário do logon. ------------------------------------------------------------------------ 24.11 Campo Módulo do Agente no Bloco de Notas Sites do Agente O campo Módulo do Agente do bloco de notas Sites do Agente fornece o nome do programa executado quando o daemon do agente do warehouse lança o agente do warehouse. Não altere o nome do campo a menos que a IBM o oriente a esse respeito. ------------------------------------------------------------------------ DB2 OLAP Starter Kit |O IBM DB2 OLAP Starter Kit 7.2 inclui suporte aos sistemas de |gerenciamento do banco de dados relacionais (RDBMSs) Oracle, MS-SQL, Sybase e |Informix en determinadas plataformas do sistema operacional. A Versão |7.2 contém scripts e ferramentas para todos os RDBMSs suportados, |incluindo DB2. Existem algumas restrições; consulte 25.8, Problemas e Limitações Conhecidas para obter mais informações. |O nível de serviço do DB2 OLAP Starter Kit para DB2 Universal |Database Versão 7.2 é o equivalente de correção 2 para Hyperion Essbase |6.1, além da correção 2 para Hyperion Integration Server |2.0. ------------------------------------------------------------------------ |25.1 Site Web do OLAP Server |Para obter as dicas mais recentes sobre instalação e uso do DB2 OLAP |Starter Kit, verifique a página Library do site Web do DB2 OLAP Server: |http://www.ibm.com/software/data/db2/db2olap/library.html ------------------------------------------------------------------------ |25.2 Níveis de Serviços do Sistema Operacional Suportados |Os componentes do servidor do OLAP Starter Kit para Versão 7.2 |suportam os seguintes sistemas operacionais e níveis de serviço: | * |Servidores Windows NT 4.0 com SP 5 e Windows 2000 * |AIX versão 4.3.3 ou superior * |Versão 2.6, 7 e 8 do Sistema Operacional Solaris (Sun OS |5.6, 5.7 ou 5.8) | |Os componentes do cliente são executados no Windows 95, Windows 98, Windows |NT 4.0 SP5 e Windows 2000. ------------------------------------------------------------------------ 25.3 Concluindo a Configuração do DB2 OLAP Starter Kit no UNIX A instalação do DB2 OLAP Starter Kit segue os procedimentos básicos da instalação do DB2 Universal Database para UNIX. Os arquivos de produtos são colocados pelo programa de instalação em um diretório do sistema: (para AIX: /usr/lpp/db2_07_01; para Solaris: /opt/IBMdb2/V7.1). Durante a fase de criação da instância, dois diretórios DB2 OLAP são criados (essbase e is) dentro do diretório pessoal do usuário da instância em sqllib. Somente uma instância do OLAP Server pode ser executada por vez em uma máquina. Para completar a configuração, o usuário deve definir manualmente o diretório is/bin para que ele não seja um link para o diretório is/bin no sistema. Ele deverá fazer um link com um diretório que pode ser gravado dentro do diretório pessoal da instância. Para completar a configuração do Solaris, efetue um logon usando a ID da instância, mude para o diretório sqllib/is e digite: rm bin mkdir bin cd bin ln -s /opt/IBMdb2/V7.1/is/bin/ismesg.mdb ismesg.mdb ln -s /opt/IBMdb2/V7.1/is/bin/olapicmd olapicmd ln -s /opt/IBMdb2/V7.1/is/bin/olapisvr olapisvr ln -s /opt/IBMdb2/V7.1/is/bin/essbase.mdb essbase.mdb ln -s /opt/IBMdb2/V7.1/is/bin/libolapams.so libolapams.so ------------------------------------------------------------------------ |25.4 Configurando o ODBC para o OLAP Starter Kit |O IBM DB2 OLAP Starer Kit 7.2 requer um arquivo ODBC.ini para |operação de conexões ao Open Database Connectivity (ODBC) do OLAP Integration |Server para a origem de dados relacionais e para o OLAP Metadata |Catalog. | * |Em sistemas Windows, este arquivo encontra-se no Registro em |HKEY_LOCAL_MACHINE/SOFTWARE/ODBC. Utilize o ODBC Data Source |Administrator para armazenar informações sobre como conectar-se a uma origem |de dados relacional. * |Em sistemas UNIX, o programa de instalação cria um arquivo |odbc.ini de modelo. Para armazenar informações sobre |como conectar-se a uma origem de dados relacional, edite o arquivo utilizando |seu editor preferido. | |O aquivo ODBC.ini está disponível em pacotes de software ODBC e está |incluído com o software Microsoft Office. Para obter mais informações |sobre os aplicativos que instalam os drivers ODBC ou o ODBC Administrator, |visite o seguinte web site: |http://support.microsoft.com/support/kb/articles/Q113/1/08.asp. |Para usuários Oracle em máquinas AIX: Para configurar o ODBC para |Oracle, você deve atualizar o arquivo ODBC.ini para indicar |os drivers MERANT 3.6. |Na Versão 7.2, o OLAP Starter Kit gerencia conexões ODBC à origem de |dados relacional e ao OLAP Metadata Catalog. Para acomodar essas |conexões ODBC, o OLAP Starter Kit utiliza os drivers ODBC no Windows NT |4.0, Windows 2000, AIX e Solaris. | * |Cliente do Banco de Dados DB2 Universal Database Versão 6: Drivers |ODBC do DB2 Versão 6 no Sistema Operacional Windows NT 4.0 SP5 ou |Windows 2000, AIX 4.3.3 e Solaris 2.6, 7 ou 8 (Sun OS |5.6, 5.7 ou 5.8). * |Cliente do Banco de Dados DB2 Universal Database 7.1: Drivers |ODBC do DB2 Versão 7 no Sistema Operacional Windows NT 4.0 SP5 ou |Windows 2000, AIX 4.3.3 e Solaris 2.6, 7 ou 8 (Sun OS |5.6, 5.7 ou 5.8). * |Cliente do Banco de Dados Oracle 8.04 e 8i SQL*Net |8.0: Drivers ODBC MERANT 3.6 no Sistema Operacional |Windows NT 4.0 SP5 ou Windows 2000, AIX 4.3.3, Solaris |2.6, 7 ou 8 (Sun OS 5.6, 5.7 ou 5.8). * |MS SQL Server 6.5.201 (nenhum Cliente do Banco de Dados |requerido): Drivers ODBC MS SQL Server 6.5 no Windows NT |4.0 SP5 ou Windows 2000. * |MS SQL Server 7.0 (nenhum Cliente do Banco de Dados |requerido): Drivers ODBC MS SQL Server 7.0 no Windows NT |4.0 SP5 ou Windows 2000. | |25.4.1 Configurando as Origens de Dados em sistemas UNIX |No AIX e Solaris, você deve definir manualmente as variáveis de ambiente |para ODBC e editar o arquivo odbc.ini para configurar a |origem de dados relacional e o OLAP Metadata Catalog. Certifique-se de |editar o arquivo odbc.ini, se você incluir um novo driver ou |origem de dados ou se você alterar o driver ou a origem de dados. |25.4.1.1 Configurando as Variáveis de Ambiente ODBC |Em sistemas UNIX, você deve definir as variáveis de ambiente para ativar o |acesso aos componentes de núcleo do ODBC. Os scripts de shell |is.sh e is.csh que definem as variáveis |requeridas são fornecidos no diretório pessoal do Starter Kit. Você |deve executar um desses scripts antes de utilizar o ODBC para conectar-se às |origens de dados. Você deve incluir esses scripts no script de início |de sessão para o nome do usuário utilizado para executar o OLAP Starter |Kit. |25.4.1.2 Editando o Arquivo odbc.ini |Para configurar uma origem de dados em um arquivo odbc.ini, você |deve incluir um nome e uma descrição para a origem de dados ODBC e fornecer o |caminho do driver ODBC, o nome do arquivo e outras definições do driver em uma |seção separada que você cria para o nome da origem de dados. O programa |de instalação instala um arquivo odbc.ini de amostra no |diretório ISHOME. O arquivo contém conexões ODBC genéricas e |informações de configuração para drivers ODBCs suportados. Utilize o |arquivo como um ponto de partida para mapear os drivers ODBCs que você utiliza |para a origem de dados relacional e OLAP Metadata Catalog. |Se você utilizar um arquivo diferente do arquivo |odbc.ini, certifique-se de definir a variável de ambiente |ODBCINI para o nome do arquivo utilizado. |25.4.1.3 Incluindo uma origem de dados em um arquivo odbc.ini | 1. |No sistema que está executando os servidores OLAP Starter Kit, abra o |arquivo odbc.ini utilizando um editor de texto tal como |vi. 2. |Procure a seção que começa com [ODBC Data Sources] e inclua uma nova linha |com o nome e a descrição da origem de dados, tal como: mydata=data |source for analysis. Para minimizar a confusão, o nome da origem |de dados deve corresponder ao nome do banco de dados no RDBMS. 3. |Inclua uma nova seção no arquivo, criando uma nova linha com o nome da |nova origem de dados colocada entre colchetes, tal como: |[mydata]. 4. |Nas linhas que seguem o nome da origem de dados, inclua o nome do caminho |e do arquivo completo para o driver ODBC requerido para essa origem de dados e |quaisquer outras informações do driver ODBC requeridas. Utilize os |exemplos mostrados nas seções a seguir como uma instrução para mapear a origem |de dados em seu RDBMS. Certifique-se de que o arquivo de driver ODBC |exista atualmente na localização especificada para a definição |Driver=. 5. |Quando tiver terminado de editar o odbc.ini, salve o |arquivo e saia do editor de texto. | |25.4.1.4 Exemplo de Definições ODBC para DB2 |O exemplo a seguir mostra como você pode editar o |odbc.ini para conectar-se a uma origem de dados relacional, |db2data, no DB2 Universal Database Versão 6.1 no AIX, |utilizando um driver ODBC IBM DB2 nativo. No editor vi, |utilize o comando $ODBCINI para editar o odbc.ini |e insira as seguintes instruções: | [ODBC Data Sources] | db2data=DB2 Source Data no AIX | ... | [db2data] | Driver=/home/db2inst1/sqllib/lib/db2.o | Description=DB2 Data Source - AIX, native |25.4.1.5 Exemplo de Definições ODBC para Oracle |Aqui encontra-se um exemplo de como você pode editar o |odbc.ini para conectar-se a uma origem de dados relacional, |oradata, no Oracle Versão 8 (no Solaris), utilizando um driver ODBC |MERANT Versão 3.6. Nesse exemplo, o ID de Início de |Sessão e a Senha são substituídos por valores atuais |utilizados no nome do usuário e na senha do OLAP Starter Kit. | [ODBC Data Sources] | oradata=Oracle8 Source Data no Solaris | ... | [myoracle] Driver= | /export/home/users/dkendric/is200/odbclib/ARor815.so | Description=my oracle source |25.4.2 Configurando o OLAP Metadata Catalog em Sistemas UNIX |Configurar um OLAP Metadata Catalog no AIX e Solaris é semelhante a |configurar uma origem de dados. Para o banco de dados OLAP Metadata |Catalog, inclua um nome de origem de dados e uma seção no arquivo |odbc.ini, conforme descrito em 25.4.1.2, Editando o Arquivo odbc.ini. Nenhuma outra alteração é |requerida. |Você deve criar um banco de dados OLAP Metadata Catalog em um RDBMS |suportado, antes de configurá-lo como uma origem de dados ODBC. |Aqui encontra-se um exemplo de como você pode editar o |odbc.ini para conectar-se ao OLAP Metadata Catalog, TBC_MD, |no DB2 Versão 6.1 (no Solaris), utilizando um driver ODBC nativo: | [ODBC Data Sources] | ocd6a5a=db2 v6 | ... | [ocd6a5a] | Driver=/home/db2instl/sqllib/lib/db2.0 | Description=db2 |25.4.3 Configurando as Origens de Dados em Sistemas Windows |Para configurar uma origem de dados relacional em sistemas Windows NT ou |Windows 2000, você deve iniciar o ODBC Administrator e criar uma conexão com a |origem de dados que você utilizará para criar modelos e metacontornos do |OLAP. Execute o utilitário ODBC Administrator do Painel de Controle do |Windows. O exemplo a seguir cria uma origem de dados DB2; as |caixas de diálogo para outros RDBMSs irão diferir. |Para configurar uma origem de dados relacional com o ODBC Administrator, |complete as seguintes etapas: | 1. |No desktop do Windows, abra a janela Painel de Controle. 2. |Na janela Painel de Controle, execute uma das seguintes etapas: | a. |No Windows NT, dê um clique duplo no ícone ODBC para abrir a |caixa de diálogo ODBC Data Source Administrator. b. |No Windows 2000, dê um clique duplo no ícone Ferramentas |Administrativas e dê um clique duplo no ícone Origens de Dados |(ODBC) para abrir a caixa de diálogo ODBC Data Source |Administrator. | 3. |Na caixa de diálogo ODBC Data Source Administrator, clique na guia |DSN do Sistema. 4. |Clique em Incluir para abrir a caixa de diálogo Criar Nova |Origem de Dados. 5. |No quadro de listagem do driver da caixa de diálogo Criar Nova Origem de |Dados do ODBC Administrator, selecione um driver apropriado, tal como IBM |DB2 ODBC Driver e clique em Concluir para abrir a caixa de |diálogo Driver ODBC IBMDB2 - Incluir. 6. |Na caixa de diálogo Driver ODBC IBM DB2 - Incluir, na lista drop down |Alias do banco de dados, selecione o nome do banco de dados para |seus dados de origem relacionais (por exemplo, TBC no aplicativo de |amostra). 7. |Na caixa de texto Descrição, digite uma descrição opcional que |indica como utilizar esse driver e clique em Incluir. Por |exemplo, digite as palavras a seguir para descrever o banco de dados Meus |Negócios: |Clientes, produtos, mercados |Você pode digitar as palavras a seguir para descrever o banco de dados do |aplicativo de amostra: |Origem de dados relacional de amostra |As descrições ajudam identificar as origens de dados disponíveis para sua |seleção, quando você conectar-se do OLAP Starter Kit Desktop. 8. |Clique em OK para retornar à caixa de diálogo ODBC Data Source |Administrator. O nome da origem de dados digitado e o driver mapeado |para ele, são exibidos no quadro de listagem Origens de Dados do |Sistema na guia DSN do Sistema. | |Para editar as informações de configuração para uma origem de dados: | 1. |Selecione o nome da origem de dados e clique em Configurar para |abrir a caixa de diálogo ODBC IBM DB2 - Incluir. 2. |Corrija quaisquer informações que deseja alterar. 3. |Clique em OK duas vezes para sair. | |25.4.4 Configurando o OLAP Metadata Catalog em Sistemas Windows |Para configurar um OLAP Metadata Catalog no Windows NT ou Windows 2000, |inicie o ODBC Administrator e crie uma conexão com a origem de dados que |contém o banco de dados OLAP Metadata Catalog. |O exemplo a seguir cria uma origem de dados DB2; as caixas de diálogo |para outros RDBMSs irão diferir. Para criar uma origem de dados para o |OLAP Metadata Catalog, complete as seguintes etapas: | 1. |No desktop, abra a janela Painel de Controle. 2. |Na janela Painel de Controle, execute uma das seguintes etapas: | a. |No Windows NT, dê um clique duplo no ícone ODBC para abrir a |caixa de diálogo ODBC Data Source Administrator. b. |No Windows 2000, dê um clique duplo no ícone Ferramentas |Administrativas e dê um clique duplo no ícone Origens de Dados |(ODBC) para abrir a caixa de diálogo ODBC Data Source |Administrator. | 3. |Na caixa de diálogo ODBC Data Source Administrator, clique na guia |DSN do Sistema. 4. |Clique em Incluir para abrir a caixa de diálogo Criar Nova |Origem de Dados. 5. |No quadro de listagem do driver da caixa de diálogo Criar Nova Origem de |Dados do ODBC Administrator, selecione um driver apropriado, tal como IBM |DB2 ODBC Driver e clique em Concluir para abrir a caixa de |diálogo Driver ODBC IBMDB2 - Incluir. 6. |Na caixa de diálogo Driver ODBC IBM DB2 - Incluir, na lista drop down |Alias do banco de dados, selecione o nome do banco de dados para |seu OLAP Metadata Catalog (por exemplo, TBC_MD no aplicativo de |amostra). O nome do banco de dados selecionado é automaticamente |exibido na caixa de texto Nome de Origem de Dados. 7. |Se desejar alterar o nome da origem de dados, selecione o nome exibido na |caixa de texto Nome da Origem de Dados, digite um novo nome para |indicar como utilizar esse driver e clique em Incluir. Por |exemplo, você pode digitar o nome a seguir para indicar que está utilizando o |driver para conectar-se ao primeiro OLAP Metadata Catalog: |Primeiro OLAP Catalog |Você digitará o nome a seguir para indicar que está conectando-se ao banco |de dados OLAP Metadata Catalog do aplicativo de amostra: | TBC_MD 8. |Na caixa de texto Descrição, digite uma descrição que indica |como utilizar esse driver. Por exemplo, você pode digitar as palavras a |seguir para descrever o OLAP Metadata Catalog: |Meus primeiros modelos e metacontornos |Você pode digitar as palavras a seguir para descrever o banco de dados |OLAP Metadata Catalog do aplicativo de amostra: |Modelos e metacontornos de amostra |O auxílio de descrições o ajudam a identificar o catálogo que deseja |selecionar quando conectar-se ao OLAP Metadata Catalog do OLAP Starter Kit |Desktop. 9. |Clique em OK para retornar à caixa de diálogo ODBC Data Source |Administrator. O nome da origem de dados digitado e o driver mapeado |para ele, são exibidos no quadro de listagem Origens de Dados do |Sistema na guia DSN do Sistema. | |Para editar as informações de configuração para uma origem de dados: | 1. |Selecione o nome da origem de dados e clique em Configurar para |abrir a caixa de diálogo ODBC IBM DB2 - Incluir. 2. |Corrija quaisquer informações que deseja alterar. 3. |Clique em OK duas vezes para sair. | |25.4.5 Após Você Configurar uma Origem de Dados |Após você configurar a origem de dados relacional e o OLAP Metadata |Catalog, poderá conectar-se a eles do OLAP Starter Kit. Você pode |criar, modificar e salvar modelos e metacontornos OLAP. |O driver ODBC do SQL Server pode esgotar o tempo limite durante uma chamada |para um banco de dados SQL Server. Tente novamente quando o banco de |dados não estiver ocupado. Aumentar o período do tempo limite do driver |pode evitar esse problema. Para obter mais informações, consulte a |documentação ODBC para obter o driver que está utilizando. |Para obter mais informações sobre os problemas e as soluções da conexão |ODBC, consulte o OLAP Integration Server System Administrator's |Guide. ------------------------------------------------------------------------ 25.5 Iniciando sessão do OLAP Starter Kit Desktop Para utilizar o OLAP Starter Kit Desktop para criar os modelos e metacontornos OLAP, você deve conectar-se ao software do cliente para os dois componentes do servidor: DB2 OLAP Integration Server e DB2 OLAP Server. O diálogo de login solicita as informações necessárias do Desktop para a conexão com esses dois servidores. No lado esquerdo do diálogo, digite as informações sobre o DB2 OLAP Integration Server. No lado direito, digite as informações sobre o DB2 OLAP Server. Para se conectar com o DB2 OLAP Integration Server: * Servidor: Digite o nome do host ou o endereço IP do Integration Server. Se tiver instalado o Integration Server na mesma estação de trabalho do desktop, os valores típicos serão "localhost" ou "127.0.0.1". * Catálogo de Meta-dados OLAP: Quando se conectar com o OLAP Integration Server, você também deverá especificar um Catálogo de Meta-dados. O OLAP Integration Server armazena informações sobre os modelos e metaoutlines OLAP que você criou em um banco de dados relacional conhecido como Catálogo de Meta-dados. Esse banco de dados relacional deverá ser registrado pelo ODBC. O banco de dados do catálogo contém um conjunto especial de tabelas relacionais que o OLAP Integration Server reconhece. No diálogo de login, você pode especificar um Integration Server e depois expandir o menu sobreposto do campo OLAP Metadata Catalog para ver uma lista dos nomes das fontes de dados ODBC conhecidos do OLAP Integration Server. Escolha um banco de dados ODBC que contém as tabelas de catálogo dos meta-dados. * Nome de Usuário e Senha: O OLAP Integration Server será conectado com o Catálogo de Meta-dados usando o Nome de usuário e senha que você especificou neste painel. Essa é uma conta de login que existe no servidor (não no cliente, a menos que o servidor e o cliente estejam sendo executados na mesma máquina). O nome do usuário deverá ser o do usuário que criou o Catálogo de Meta-dados OLAP. Caso contrário, o OLAP Integration Server não encontrará as tabelas relacionais no banco de dados do catálogo porque os nomes dos esquemas das tabelas são diferentes. As informações do DB2 OLAP Server são opcionais, portanto os campos de entrada do lado direito do diálogo Login poderão ser deixados em branco. Contudo, algumas operações feitas no Desktop e no Administration Manager exigem que você se conecte com um DB2 OLAP Server. Se você deixar esses campos em branco, o Desktop exibirá o diálogo Login novamente se o Integration Server precisar se conectar com o DB2 OLAP Server a fim de completar uma operação que você solicitou. Recomenda-se que você sempre preencha os campos do DB2 OLAP Server no diálogo Login. Para se conectar com o DB2 OLAP Server: * Servidor: Digite o nome do host ou o endereço IP do DB2 OLAP Server. Se estiver executando o OLAP Starter Kit, o OLAP Server e o Integration Server serão os mesmos. Se o Integration Server e o OLAP Server forem instalados em hosts diferentes, digite o nome do host ou um endereço de IP definido no OLAP Integration Server. * Nome de Usuário e Senha: O OLAP Integration Server será conectado com o DB2 OLAP Server usando o nome de usuário e a senha que você especificou neste painel. Esse nome de usuário e essa senha devem já ter sido definidos no DB2 OLAP Server. O OLAP Server gerencia seus próprios nomes de usuários e senhas separadamente a partir do sistema operacional do host. 25.5.1 Starter Kit Login Example O exemplo a seguir supõe que você criou o OLAP Sample e selecionou db2admin como seu ID de usuário do administrador e password como a senha do administrador durante a instalação do OLAP Starter Kit. * Para o OLAP Integration Server: o Server será localhost, o OLAP Metadata Catalog será TBC_MD, o User Name será db2admin e a Password será password * Para o DB2 OLAP Server: o Server será localhost e o User Name será db2admin ------------------------------------------------------------------------ 25.6 Criando e configurando manualmente os bancos de dados de amostra para OLAP Starter Kit Os bancos de dados de amostra são criados automaticamente quando você instala o OLAP Starter Kit. As instruções a seguir explicam como configurar os bancos de dados Catalog e Sample manualmente, se necessário. 1. No Windows, abra a janela Centro de Comando com um clique em Iniciar -->Programas-->DB2 para Windows NT--> Janela de Comandos. 2. Crie o banco de dados do catálogo de produção: a. Digite db2 create db OLAP_CAT b. Digite db2 connect to OLAP_CAT 3. Crie as tabelas no banco de dados: a. Navegue para \SQLLIB\IS\ocscript\ocdb2.sql b. Digite db2 -tf ocdb2.sql 4. Crie o banco de dados de origem de amostra: a. Digite db2 connect reset b. Digite db2 create db TBC c. Digite db2 connect to TBC 5. Crie as tabelas no banco de dados: a. Navegue para \SQLLIB\IS\samples\ b. Copie tbcdb2.sql para \SQLLIB\samples\db2sampl\tbc c. Copie lddb2.sql para \SQLLIB\samples\db2sampl\tbc d. Navegue para \SQLLIB\samples\db2sampl\tbc e. Digite db2 -tf tbcdb2.sql f. Digite db2 - vf lddb2.sql para carregar os dados de origem de amostra nas tabelas. 6. Crie o banco de dados do catálogo de amostra: a. Digite db2 connect reset b. Digite db2 create db TBC_MD c. Digite db2 connect to TBC_MD 7. Crie as tabelas no banco de dados: a. Navegue para \SQLLIB\IS\samples\tbc_md b. Copie ocdb2.sql para \SQLLIB\samples\db2sampl\tbcmd c. Copie lcdb2.sql para \SQLLIB\samples\db2sampl\tbcmd d. Navegue para \SQLLIB\samples\db2sampl\tbcmd e. Digite db2 -tf ocdb2.sql f. Digite db2 -vf lcdb2.sql para carregar os meta-dados de amostra nas tabelas. 8. Configure ODBC para TBC_MD, TBC, AND OLAP_CAT: a. Abra o painel de controle do NT com um clique em Iniciar-->Configurações-->Painel de Controle b. Selecione ODBC (ou fontes de dados ODBC) a partir da lista. c. Selecione a guia System DSM. d. Dê um clique em Incluir. A janela Criar Nova Fonte de Dados é aberta. e. Selecione IBM DB2 ODBC DRIVER na lista. f. Dê um clique em Encerrar. A janela Driver ODBC IBM D2 - Incluir é aberta. g. Digite o nome da fonte de dados (OLAP_CAT) no campo Nome da fonte de dados. h. Digite o nome do alias no campo Alias do banco de dados ou dê um clique na seta voltada para baixo e selecione OLAP_CAT. i. Dê um clique em OK. j. Repita essas etapas para os bancos de dados TBC_MD e TBC. ------------------------------------------------------------------------ |25.7 Migrando Aplicativos para OLAP Starter Kit Versão 7.2 |O programa de instalação não reinstala os aplicativos de amostra, os bancos |de dados e os arquivos de dados do OLAP Starter Kit. Os aplicativos e |bancos de dados existentes não são afetados de nenhuma maneira. |Entretanto, é sempre uma boa idéia fazer backup de seus aplicativos e bancos |de dados antes de uma instalação. |Seus aplicativos são automaticamente migrados para a Versão 7.2 |quando você os abre. ------------------------------------------------------------------------ |25.8 Problemas e Limitações Conhecidas |Esta seção lista as limitações conhecidas para o DB2 OLAP Starter |Kit. | |Compatibilidade do Informix RDBMS com Drivers Merant para Plataformas |Windows |Para que os drivers Merant para plataformas Windows funcionem com o |Informix RDBMS, as duas entradas a seguir devem ser incluídas na instrução |PATH: | o |C:\Informix o |C:\Informix\bin | |Ambas as entradas devem estar no início do PATH. |Possível Inconsistência Entre Dimensões em Modelos OLAP e Metacontornos |Associados |Em determinadas condições, você pode criar uma dimensão em um metacontorno |que não possui nenhuma dimensão correspondente no modelo do OLAP. Isso |pode ocorrer no seguinte cenário: | 1. |Crie um novo modelo do OLAP e salve-o. 2. |Crie um metacontorno baseado no modelo, mas não salve o |metacontorno. 3. |Retorne para o modelo do OLAP e exclua uma dimensão na qual uma das |dimensões de metacontorno é baseada. 4. |Retorne para o metacontorno, salve-o, feche-o e reabra-o. O |metacontorno conterá uma dimensão que não possui uma dimensão correspondente |no modelo do OLAP. | |O OLAP Starter Kit não pode distinguir entre uma dimensão inconsistente |criada dessa meaneira e uma dimensão definida pelo usuário em um |metacontorno. Conseqüentemente, a dimensão inconsistente será exibida |no metacontorno, mas o metacontorno a considera como uma dimensão definida |pelo usuário, visto que nenhuma dimensão correspondente existe no modelo do |OLAP. |Em Plataformas Windows 2000, a Definição da Variável de Ambiente para o |TMP Faz Com Que o Membro e as Cargas de Dados Falhem |Devido a uma diferença nas definições do sistema padrão e da variável de |ambiente para o TMP entre o Windows 2000 e o Windows NT, o membro e as cargas |de dados falham quando o OLAP Starter Kit está sendo executado em sistemas |Windows 2000. A mensagem de erro resultante informa os usuários que o |arquivo temporário não pôde ser criado. Você pode solucionar essa |limitação no Windows 2000, considerando as seguintes etapas: | 1. |Crie um diretório nomeado C:\TEMP 2. |Defina o TMP da variável de ambiente para o sistema e o usuário como |TMP=C:\TEMP | |Instalação do ODBC Não Substitui Driver Merant Existente |Os drivers ODBC Merant 3.6 existentes não serão atualizados com |esta instalação. Se você estiver atualizando o OLAP Starter Kit Versão |7.1, fixpack 2 ou anterior, deverá continuar utilizando os drivers ODBC |instalados anteriormente |Utilizando Drivers ODBC Merant Informix em Plataformas UNIX |Para utilizar os drivers ODBC Merant em plataformas UNIX, você deve |executar um dos seguintes itens: | o |Antes de iniciar o Starter Kit, defina a variável de ambiente LANG como |"en_US". Por exemplo, para a shell korn, digite: |export LANG='en_US' |Defina essa variável toda vez que iniciar o OLAP Starter Kit. o |Se sua variável de ambiente LANG já estiver definida como um valor |diferente, efetue o seguinte link simbólico após a instalação: |ln -s $ISHOME/locale/en_US $ISHOME/locale/$LANG | |Misturando níveis de serviços de clientes e servidores OLAP |A IBM recomenda que você mantenha os componentes do cliente e do servidor |do DB2 OLAP Starter Kit na mesma versão e nível de fixpack. Mas em |algumas situações, você pode conseguir misturar níveis de serviços diferentes |de componentes de clientes e servidores: | |Utilizando clientes e servidores em níveis de serviços diferentes dentro |de uma versão |A IBM não suporta o uso de clientes mais recentes com servidores mais |antigos, e recomenda o contrário. Entretanto, você pode conseguir |utilizar os clientes mais antigos com os servidores mais recentes, embora a |IBM não suporte isso. Você pode ter alguns problemas. Por |exemplo: | + |As mensagens do servidor podem estar incorretas. Você pode |solucionar esse problema, atualizando o arquivo message.MDB no cliente |para corresponder ao nível no servidor. + |Os novos recursos do servidor não funcionam. O cliente, o servidor |ou ambos podem falhar quando você tentar utilizar um novo recurso. + |O cliente não pode conectar-se corretamente ao servidor. | |Utilizando vários servidores com um único cliente dentro de uma versão |Se você precisar conectar um cliente a vários servidores OLAP em |diferentes máquinas ou sistemas operacionais, a IBM recomendará que você os |deixe todos na mesma versão e nível de serviço. Seu cliente deve, no |mínimo, ser estar no mesmo que o servidor de nível inferior. Se você |tiver problemas, poderá precisar utilizar máquinas clientes diferentes para |corresponderem ao host apropriado ou atualizar todos os clientes e servidores |para o mesmo nível de serviço. |Misturando clientes e servidores de diferentes versões |A IBM não suporta utilizar clientes e servidores OLAP Starter Kit da |Versão 7.1 com clientes e servidores da Versão 7.2. |Quando os produtos IBM OLAP são atualizados para um novo nível de versão, |muitas vezes, existem atualizações de redes e alterações de formato de dados |que requerem que o cliente e o servidor estejam no mesmo nível versão. |Misturando produtos IBM (DB2 OLAP Starter Kit) com produtos Hyperion |(Hyperion Essbase e Hyperion Integration Server) |A IBM não suporta a mistura de clientes e servidores OLAP da IBM com |clientes e servidores OLAP da Hyperion Solutions. Existem algumas |diferenças no recurso que podem causar problemas, embora a mistura desses |componentes pode funcionar em algumas situações. | | ------------------------------------------------------------------------ 25.9 Arquivos EQD do Complemento da Planilha OLAP Faltando No DB2 OLAP Starter Kit, o complemento da planilha tem um componente chamado Query Designer (EQD). O menu da ajuda online do EQD contém um botão chamado Tutorial que não exibe nada.O material que deveria ser exibido nos tutoriais do EQD são um subconjunto do capítulo dois do Manual do Usuário OLAP Spreadsheet Add-in para Excel e do Manual do Usuário OLAP Spreadsheet Add-in para 1-2-3.Todas as informações do tutorial EQD estão disponíveis em versões HTML desses manuais no Centro de Informações e nas versões PDF. ------------------------------------------------------------------------ Manual de Administração do Information Catalog Manager ------------------------------------------------------------------------ 26.1 Utilitário de Inicialização do Gerenciador do Catálogo de Informações |26.1.1 | |Com o utilitário Initialize Information Catalog Manager (ICM), você pode |anexar uma instrução SQL ao fim da instrução CREATE TABLE utilizando o |seguinte comando: |CREATEIC \DBTYPE dbtype \DGNAME dgname \USERID userid \PASSWORD password |\KA1 userid \TABOPT "directory:\tabopt.file" |Você pode especificar a palavra-chave TABOPT no utilitário CREATEIC a |partir do diretório no qual o DB2 está instalado. O valor após a |palavra-chave TABOPT é o nome do arquivo tabopt.arquivo com o caminho |completo. Se o nome do diretório tiver espaços em branco, coloque o |nome entre aspas. O conteúdo do arquivo |tabopt.arquivo deve conter informações a serem anexadas à |instrução CREATE TABLE Você pode utilizar qualquer uma das instruções SQL |abaixo para gravar neste arquivo tabopt.file. O |utilitário ICM lê esse arquivo e depois o anexa na instrução CREATE |TABLE. | |Tabela 20. instruções SQL IN MYTABLESPACE Cria uma tabela com seus dados em MYTABLESPACE DATA CAPTURE CHANGES Cria uma tabela e registra alterações no SQL no formato estendido IN ACCOUNTING INDEX IN Cria uma tabela com seus dados em ACCOUNTING ACCOUNT_IDX e seu índice em ACCOUNT_IDX |O tamanho máximo do arquivo de conteúdo é 1000 caracteres de byte |simples. |Esse novo recurso está disponível somente em sistemas Windows e |UNIX. 26.1.2 Questões de licenciamento Se você receber a seguinte mensagem: FLG0083E: Você não possui uma licença válida para o utilitário de Inicialização do Gerenciador do Catálogo de Informações IBM. Por favor, entre em contato com o revendedor de software local ou com o representante de vendas da IBM. Você deverá adquirir o DB2 Warehouse Manager ou o IBM DB2 OLAP Server e instalar o componente Gerenciador do Catálogo de Informações, que inclui o utilitário Inicialização do Catálogo de Informações. 26.1.3 Questões de instalação Se tiver instalado o Gerenciador de Warehouse do DB2 ou o IBM DB2 OLAP Server e depois instalar um outro componente do Administrador do Gerenciador do Catálogo de Informações (usando o CD-ROM do DB2 Universal Database) na mesma estação de trabalho, você poderá ter substituído o utilitário de Inicialização do Catálogo de Informações. Nesse caso, do diretório \sqllib\bin, localize os arquivos createic.bak e flgnmwcr.bak e renomeie-os como createic.exe e flgnmwcr.exe, respectivamente. Se você instalar outros componentes do Gerenciador do Catálogo de Informações a partir do DB2 Universal Database, os componentes deverão ficar em uma estação de trabalho separada daquela em que você instalou o Gerenciador de Data Warehouse. Para obter mais informações, consulte o Capítulo 3, Instalando os componentes do Gerenciador do Catálogo de Informação, do Manual de Instalação do Gerenciador de Warehouse do DB2. ------------------------------------------------------------------------ 26.2 Acessando os Catálogos de Informações do DB2 Versão 5 com o Gerenciador do Catálogo de Informações do DB2 Versão 7 Os subcomponentes do Gerenciador do Catálogo de Informações do DB2 Versão 7, conforme configurado pelo processo de instalação do DB2 Versão 7, suporta o acesso aos catálogos de informações aramzenados nos bancos de dados do DB2 Versão 6 e DB2 Versão 7. Você pode modificar a configuração dos subcomponentes para ter acesso aos catálogos de informações que foram armazenados nos bancos de dados do DB2 Versão 5. Os subcomponentes do Gerenciador do Catálogo de Informações do DB2 Versão 7 não suportam o acesso aos dados do DB2 Versão 2 ou quaisquer outras versões anteriores. Para configurar o Administrador do Catálogo de Informações, o Usuário do Catálogo de Informações, e o Utilitário de Inicialização do Catálogo de Informações para que tenham acesso aos catálogos de informações armazenados nos bancos de dados do DB2 Versão 5: 1. Instale o DB2 Connect Enterprise Edition Versão 6 em uma estação de trabalho diferente daquela em que o Gerenciador do Catálogo de Informações do DB2 Versão 7 foi instalado. O DB2 Connect Enterprise Edition faz parte do DB2 Universal Database Enterprise Edition e do DB2 Universal Database Enterprise - Extended Edition. Se a versão 6 de um destes produtos DB2 estiver instalada, você não precisará instalar o DB2 Connect separadamente. Restrição: Você não pode instalar várias versões do DB2 na mesma estação de trabalho do Windows NT ou OS/2. Pode instalar o DB2 Connect em uma outra estação de trabalho do Windows NT ou em uma estação de trabalho do OS/2 ou do UNIX. 2. Configure o Gerenciador do Catálogo de Informações e o DB2 Connect Versão 6 para o acesso aos dados do DB2 Versão 5. Para obter maiores informações, consulte o Manual do Usuário do DB2 Connect. Estas etapas constituem uma visão geral das etapas necessárias: a. No sistema do DB2 Versão 5, use o Processador da Linha de Comandos do DB2 para catalogar o banco de dados da Versão 5 a que o Gerenciador do Catálogo de Informações deverá ter acesso. b. No sistema do DB2 Connect, use o Processador da Linha de Comandos do DB2 para catalogar: + O nó TCP/IP do sistema do DB2 Versão 5. + O banco de dados do sistema do DB2 Versão 5. + A entrada DCS do sistema do DB2 Versão 5. c. Na estação de trabalho com o Gerenciador do Catálogo de Informações, use o Processador da Linha de Comandos do DB2 para catalogar: + O nó TCP/IP do sistema do DB2 Connect. + O banco de dados do sistema do DB2 Connect. Para obter informações sobre a catalogação dos bancos de dados, consulte o DB2 Universal Database Suplemento de Configuração e Instalação. 3. No warehouse com o Gerenciador do Catálogo de Informações, efetue o bind do pacote DB2 CLI a cada banco de dados que deverá ser acessado através do DB2 Connect. Os comandos do DB2 a seguir fornece um exemplo do bind com o v5database, um banco de dados hipotético do DB2 versão 5. Use o Processador da Linha de Comandos do DB2 para emitir os seguintes comandos. O db2cli.lst e o db2ajgrt estão localizados no diretório \sqllib\bnd. db2 connect to v5database user userid using password db2 bind db2ajgrt.bnd db2 bind @db2cli.lst blocking all grant public no qual userid é a ID do usuário do v5database, e password é a senha da ID do usuário. Ocorre um erro quando o db2cli.list efetuou um bind no banco de dados do DB2 Versão 5. Esse erro ocorre porque os LOBs (large objects - objetos grandes) não são suportados nesta configuração. Ele não afetará o acesso do agente de warehouse ao banco de dados do DB2 Versão 5. O FixPak 14 do DB2 Universal Database Versão 5, que estará disponível em junho de 2000, é obrigatório para o acesso aos dados do DB2 Versão 5 através do DB2 Connect. Consulte o APAR número JR14507 desse FixPak. ------------------------------------------------------------------------ 26.3 Configurando um catálogo de informações A etapa 2 na primeira seção do Capítulo 1, "Setting up an information catalog", informa: Quando você instalar o DB2 Warehouse Manager ou o DB2 OLAP Server, será criado um catálogo de informações padrão no DB2 Universal Database para Windows NT. A afirmação está incorreta. É preciso definir um novo catálogo de informações. Consulte a seção "Creating the Information Catalog" para obter mais informações. ------------------------------------------------------------------------ 26.4 Trocando meta-dados com outros produtos No capítulo 6, "Exchanging metadata with other products", na seção "Identifying OLAP objects to publish", existe uma instrução no segundo parágrafo afirmando que: Quando se publicam os meta-dados do DB2 OLAP Integration Server, cria-se um relacionamento com links entre as "dimensões dentro do objeto de uma tabela e multidimensional" do catálogo de informações e o objeto de uma tabela do OLAP Integration Server. A declaração deveria ser: Quando se publicam os meta-dados do DB2 OLAP Integration Server, cria-se um relacionamento com links entre as "dimensões dentro do objeto de uma tabela e o objeto de um banco de dados multidimensional". Esta instrução também aparece no Apêndice C, "Metadata mappings", na seção "Metadata mappings between the Information Catalog Manager and OLAP Server". ------------------------------------------------------------------------ 26.5 Trocando meta-dados utilizando o comando flgnxoln No capítulo 6, "Exchanging Metadata", existe uma seção chamada "Identifying OLAP objects to publish". No final desta seção há um exemplo de como usar o comando flgnxoln para publicar o meta-dados do OLAP server num catálogo de informações. O exemplo mostra incorretamente o diretório dos arquivos db2olap.ctl e db2olap.ff como x:\Arquivos de Programas\sqllib\logging. O nome do diretório deveria ser x:\Arquivos de Programas\sqllib\exchange conforme descrição feita na página 87. ------------------------------------------------------------------------ 26.6 Trocando meta-dados utilizando o comando MDISDGC Capítulo 6. Exchanging metadata with other products: "Converting MDIS-conforming metadata into a tag language file", página 97. Você não pode emitir o comando MDISDGC a partir do prompt de comandos do MS-DOS. Ele deve ser emitido a partir de uma janela de comandos do DB2. A primeira sentença da seção "Convertendo um arquivo de linguagem de tags em meta-dados compatíveis com MDIS" também afirma que você deve emitir o comando DGMDISC a partir do prompt de comandos do MS-DOS. Você deve emitir o comando DGMDISC a partir de uma janela de comandos do DB2. ------------------------------------------------------------------------ 26.7 Invocando programas Alguns exemplos no Information Catalog Administration Guide mostram os comandos que contêm o nome do diretório Arquivos de Programa. Ao chamar um programa que contém Arquivos de Programa como parte de seu nome de caminho, você deve colocar a chamada do programa entre aspas duplas. Por exemplo, o Apêndice B, "Predefined Information Catalog Manafer object types", contém um exemplo na seção chamada "Initializing your information catalog with the predefined object types". Se você usar este exemplo nesta seção, receberá um erro erro ao executá-lo a partir do prompt do DOS. O exemplo seguinte está correto: "X:Arquivos de Programas\SQLLIB\SAMPLES\SAMPDATA\DGWDEMO" /T userid password dgname ------------------------------------------------------------------------ Manual de Referência do Information Catalog Manager Programming ------------------------------------------------------------------------ 27.1 Códigos de Razão do Gerenciador do Catálogo de Informações No Apêndice D: Códigos de Razão do Information Catalog Manager, uma parte do texto poderá ter sido truncada na coluna mais à direita dos seguintes códigos de motivos: 31014, 32727, 32728, 32729, 32730, 32735, 32736, 32737, 33000, 37507, 37511 e 39206. Se o texto estiver truncado, consulte a versão HTML do manual para exibir a coluna completa. ------------------------------------------------------------------------ Manual do Usuário do Information Catalog Manager No capítulo 2, há uma seção chamada "Registrando um nó de servidor e o catálogo de informações remota." A seção relaciona as etapas que podem ser concluídas a partir do DB2 Control Center antes que um catálogo de informações remoto seja registrado, através do Gerenciador do Catálogo de Informações. O último parágrafo da seção descreve que após concluir um conjunto de etapas do DB2 Control Center (incluir um sistema, uma instância e um banco de dados), você deve encerrá-lo antes de abrir O Gerenciador do Catálogo de Informações. Essa informações está incorreta. Não é necessário encerrar o Centro de Controle antes de se abrir o Gerenciador do Catálogo de Informações. A mesma correção se aplica também à tarefa da ajuda online "Registrando um nó de servidor e o catálogo de informações remoto" e da ajuda online da janela Registrar Nó do Servidor e Catálogo de Informações. ------------------------------------------------------------------------ Information Catalog Manager: Mensagens Online ------------------------------------------------------------------------ 29.1 Mensagem FLG0260E A segunda sentença da explicação da mensagem deveria ser: O erro causou um rollback do catálogo de informações, o qual falhou. O catálogo de informações não está em uma condição estável, mas não foram feitas alterações. ------------------------------------------------------------------------ 29.2 Mensagem FLG0051E O segundo item da explicação da mensagem deveria ser: O catálogo de informações contém muitos objetos ou tipos de objetos. A resposta do administrador deveria ser: Exclua alguns objetos ou tipos de objetos do catálogo de informações atual usando a função de importação. ------------------------------------------------------------------------ 29.3 Mensagem FLG0003E A explicação da mensagem deveria ser: O catálogo de informações deve ser registrado antes que seja usado. O catálogo de informações pode não ter sido registrado corretamente. ------------------------------------------------------------------------ 29.4 Mensagem FLG0372E A primeira sentença da explicação da mensagem deveria ser: O valor de ATTACHMENT-IND foi ignorado por um objeto porque esse objeto é um objeto Attachment. ------------------------------------------------------------------------ 29.5 Mensagem FLG0615E A segunda sentença da mensagem deveria ser: O Gerenciador do Catálogo de Informações encontrou um erro inesperado do banco de dados ou não consegue conectar o arquivo ao diretório ou caminho atual. ------------------------------------------------------------------------ Information Catalog Manager: Ajuda Online Janela do Catálogo de Informações: A ajuda online do item Abrir do menu Selecionado afirma incorretamente "Abre o objeto selecionado". Ele deveria afirmar "Abre a janela Definir Pesquisa". ------------------------------------------------------------------------ 30.1 Gerenciador do Catálogo de Informações para a Web Quando for usado um catálogo de informações localizado em um sistema DB2 UDB para OS/390, a pesquisa que não considera letras maiúsculas e minúsculas não estará disponível. Isso acontece em uma pesquisa simples e em uma pesquisa avançada. A ajuda online não explica que todas as pesquisas em um catálogo de informações do DB2 UDB para OS/390 consideram letras maiúsculas e minúsculas em uma pesquisa simples. Além do mais, todos os objetos de categorias de agrupamento são explicáveis, mesmo quando não há objetos subjacentes. ------------------------------------------------------------------------ DB2 Warehouse Manager Installation Guide ------------------------------------------------------------------------ |31.1 Requisitos de software para transformadores do warehouse |O Java Developer's Kit (JDK) Versão 1.1.8 ou posterior |deve ser instalado no banco de dados onde você planeja utilizar os |transformadores do warehouse. ------------------------------------------------------------------------ |31.2 Conector para SAP R/3 |Quando mapear colunas de campos de um objeto de negócios do SAP R/3 para |tabelas do DB2, alguns nomes de colunas gerados podem ter mais de 30 |caracteres. Neste caso, o nome da coluna gerado refletirá apenas os |primeiros 30 caracteres do nome do campo SAP. Se o nome gerado não for |o desejado, você poderá alterá-lo utilizando o bloco de notas Propriedades |para a tabela. |31.2.1 Pré-requisitos de Instalação |Defina a variável de ambiente RFC_INI. Por exemplo, Set |RFC_INI=c:\rfcapl.ini. Após definir essa variável, |você deve reinicializar a máquina. ------------------------------------------------------------------------ |31.3 Conector para a Web |Se você tiver problemas ao executar o Conector para a Web, o IBM Service |poderá solicitar que você envie um rastreio para o Conector. |Para ativar o rastreio para o Conector para a Web, defina o rastreio do |agente do Warehouse Center para um nível maior que 0. O arquivo de |rastreio é nomeado WSApid.log, onde pid é o ID do processo do Windows |para o agente. O arquivo de rastreio é criado no diretório |\sqllib\logging. |31.3.1 Pré-requisitos de Instalação |Instale o ambiente de tempo de execução Java (JRE) ou a máquina virtual |Java (JVM), versão 1.2.2 ou posterior e torne-o padrão. |Para criar uma versão do JRE seu padrão, inclua o caminho para o JRE |1.2.2 em sua variável PATH do sistema (por exemplo, |C:\JDKs\IBM\java12\bin;). Após alterar seu JRE |padrão, você deve reinicializar a máquina. Se o Java não estiver |instalado, poderá instalá-lo a partir do CD de instalação Data Warehouse |Connectors. ------------------------------------------------------------------------ Manual de Administração do Query Patroller ------------------------------------------------------------------------ 32.1 O Cliente do DB2 Query Patroller é um Componente Separado O cliente do DB2 Query Patroller é um componente separado que não faz parte do cliente do DB2 Administration. Isso significa que ele não foi instalado durante a instalação do Cliente do DB2 Administration, conforme indicação do Query Patroller Installation Guide. Ao invés disso, o cliente Query Patroller deve ser instalado separadamente. |A versão e o nível do cliente Query Patroller e do servidor Query |Patroller devem ser os mesmos. ------------------------------------------------------------------------ |32.2 Migrando da Versão 6 do DB2 Query Patroller Usando dqpmigrate |O comando dqpmigrate deverá ser usado se a Versão 7 do Query Patroller |Server foi instalada sobre a Versão 6. Para o FixPak 2 ou posterior, |você não precisa executar o comando dqpmigrate manualmente, porque a |instalação do FixPak executa esse comando. Sem usar esse comando, os |usuários definidos existentes na v6 não terão nenhum privilégio EXECUTE nos |vários procedimentos armazenados novos incluídos na Versão 7. |Nota: O dqpmigrate.bnd é encontrado no diretório |sqllib/bnd e o dqpmigrate.exe no diretório |sqllib/bin. | |Para usar o dqpmigrate manualmente a fim de conceder os |privilégios EXECUTE, execute o seguinte após instalar o FixPak: | 1. |Vincule o arquivo de pacote /sqllib/bnd/dqpmigrate.bnd |ao banco de dados onde o Query Patroller server foi instalado, digitando o |seguinte comando: |db2 bind dqpmigrate.bnd 2. |Execute o dqpmigrate digitando o seguinte: |dqpmigrate dbalias userid passwd | ------------------------------------------------------------------------ 32.3 Ativando o Query Management No capítulo "Getting Started" do "Ativando o Query Management", o texto deverá ser: Você deve ser o proprietário da base de dados, ou deve ter a autoridade SYSADM, SYSCTRL ou SYSMAINT para definir os parâmetros de configuração do banco de dados. ------------------------------------------------------------------------ |32.4 Localização do Table Space para Tabelas de Controle |No Capítulo 1, Visão Geral do Sistema, em Tabelas de Controle do DB2 Query |Patroller, o texto a seguir deve ser incluído no final do primeiro parágrafo |da seção: |O table space para as tabelas de controle do DB2 Query Patroller deve |residir em um grupo de nós de único nó ou o DB2 Query Patroller não funcionará |corretamente. ------------------------------------------------------------------------ |32.5 Novos Parâmetros para o Comando dqpstart |No Capítulo 2, Introdução, em Iniciando e Encerrando o DB2 Query Patroller, |o texto a seguir deve ser incluído seguindo o último parágrafo: |Novos Parâmetros para o comando dqpstart: | |Parâmetro RESTART: |Permite que o usuário substitua o nome do host e/ou o tipo de nó do nó |especificado no arquivo dqpnodes.cfg. O DB2 Query |Patroller será iniciado neste nó. |Nota: Antes de executar o comando DQPSTART com o parâmetro RESTART, assegure-se de |que: | 1. |O DB2 Query Patroller já esteja encerrado no host que vai ser |substituído. 2. |O DB2 Query Patroller ainda não esteja sendo executado no novo |host. | | A sintaxe é a seguinte: |dqpstart nodenum node_num restart hostname server | agent | none |Parâmetro ADDNODE: |Permite que o usuário inclua um novo nó no arquivo |dqpnodes.cfg. O DB2 Query Patroller será iniciado |nesse nó após a nova entrada de nó ser incluída no arquivo |dqpnodes.cfg. A sintaxe é a seguinte: |dqpstart nodenum node_num addnode hostname server | agent | none |Parâmetro DROPNODE: |Permite que o usuário elimine um nó do arquivo |dqnodes.cfg. O DB2 Query Patroller será encerrado |nesse n[o antes da entrada do nó ser eliminada do arquivo |dqpnodes.cfg. A sintaxe é a seguinte: |dqpstop nodenum node_num dropnode | ------------------------------------------------------------------------ |32.6 Novo Parâmetro para o Comando iwm_cmd |Um novo parâmetro -v foi incluído no comando iwm_cmd |para permitir que o usuário recupere o status dos jobs que estão sendo |executados no nó especificado. Apenas os jobs em um nó interativo são |permitidos serem recuperados. Esse comando deve ser emitido quando |existe uma falha do nó e existem alguns jobs sendo executados nesse nó ou |sendo cancelado no momento. Os jobs que estavam no estado "Em |Execução", serão resubmetidos e definidos novamente para o estado |"Enfileirado". Os jobs que estavam no estado "Cancelando" serão |definidos para o estado "Cancelado". |A sintaxe parcial é a seguinte: |>>-iwm_cmd----+---------------------------------+---------------> | '--u--user_id--+---------------+--' | '--p--password--' | |>-----v--node_id_to_recover------------------------------------>< | | |node_id_to_recover |Especifica o nó no qual os jobs devem ser recuperados. | ------------------------------------------------------------------------ |32.7 Nova Variável de Registro: DQP_RECOVERY_INTERVAL |Existe uma nova variável de registro chamada DQP_RECOVERY_INTERVAL que é |utilizada para definir o intervalo de tempo em minutos que o iwm_scheduler |procura para arquivos de recuperação. O padrão é 60 |minutos. ------------------------------------------------------------------------ 32.8 Iniciando o Query Administrator No capítulo "Using QueryAdministrator to Administer DB2 Query Patroller", são fornecidas as instruções para a iniciação do QueryAdministrator a partir do menu Iniciar do Windows. A primeira etapa fornece o seguinte texto: Se você estiver usando o Windows, poderá selecionar o DB2 Query Patroller --> QueryAdministrator a partir do grupo de programas IBM DB2. O texto deveria ser: DB2 Query Patroller --> QueryAdmin. ------------------------------------------------------------------------ 32.9 Administração do Usuário Na seção "Administração do Usuário" do capítulo "Using QueryAdministrator to Administer DB2 Query Patroller", a definição do parâmetro Maximum Elapsed Time indica que se o valor for definido como 0 ou -1, a consulta será sempre executada até sua conclusão. Esse parâmetro não pode ser definido como um valor negativo. O texto deverá indicar que se o valor for definido como 0, a consulta será sempre executada até sua conclusão. O parâmetro Max Queries especifica o número máximo de jobs que o DB2 Query Patroller executará simultaneamente. O parâmetro Max Queries deve ser um número inteiro entre 0 e 32767. ------------------------------------------------------------------------ 32.10 Criando uma Fila de Jobs Na seção "Administração de Fila de Jobs" do capítulo "Using QueryAdministrator to Administer DB2 Query Patroller", a captura de tela nas etapas de "Criando uma Fila de Jobs" deverá ser exibida depois da segunda etapa. A janela Information about new Job Queue é aberta quando você clica em New na página Administração de Fila de Jobs da ferramenta QueryAdministrator. As referências à página Fila de Jobss ou à guia Fila de Jobss deverão ficar como a página Administração de Fila de Jobs e a guia Fila de Jobs Administration, respectivamente. ------------------------------------------------------------------------ 32.11 Usando a Interface da Linha de Comandos Para que um usuário com autoridade de Usuário no sistema DB2 Query Patroller submeta uma consulta e crie uma tabela de resultados, o usuário pode requerer a autoridade CREATETAB no banco de dados. O usuário não requer a autoridade CREATETAB no banco de dados se a variável do perfil DQP_RES_TBLSPC for deixada sem definição, ou se a variável do perfil DQP_RES_TBLSPC for definida com o nome de table space padrão. A criação das tabelas de resultados terão sucesso neste caso porque os usuários têm a autoridade de criar tabelas no table space padrão. ------------------------------------------------------------------------ 32.12 Notas do Query Enabler * Quando forem usadas ferramentas de consulta de terceiros que utilizem o cursor de um conjunto de teclas, as consultas não serão interceptadas. Para que o Query Enabler intercepte essas consultas, você precisa modificar o arquivo db2cli.ini para que ele inclua: [common] DisableKeySetCursor=1 * Para clientes AIX, confira se a variável de ambiente LIBPATH não foi definida. A biblioteca libXext.a, enviada com o JDK, não é compatível com a biblioteca do subdiretório /usr/lib/X11. Esse fato causará problemas com a GUI do Query Enabler. ------------------------------------------------------------------------ |32.13 O rastreador do DB2 Query Patroller pode retornar uma página de coluna em branco |O FixPak 3 inclui uma correção para o rastreador do DB2 Query |Patroller. Agora o rastreador relata corretamente as consultas que não |atingem colunas. Um exemplo dessa consulta é "SELECT COUNT(*) FROM |...". Como esse tipo de consulta não atinge |colunas da tabela, o Rastreador apresenta uma página em branco como página da |coluna. Essa página de coluna em branco não é um defeito. ------------------------------------------------------------------------ |32.14 Query Patroller e Ferramentas de Replicação |O Query Patroller Versão 7 interceptará as consultas das ferramentas de |replicação (asnapply, asnccp, djra e analyze) e causará malfuncionamento a |essas ferramentas. Uma alternativa é desativar o gerenciamento de |consulta dinâmica, quando executar essas ferramentas. ------------------------------------------------------------------------ |32.15 Apêndice B. Detectando problemas em clientes do DB2 Query Patroller |No Apêndice B, Detectando problemas em clientes do DB2 Query Patroller, |seção: Problemas comuns no Query Enabler, problema 2, o texto do |primeiro marcador é substituído por: | Verifique se a definição do caminho |inclui jre. ------------------------------------------------------------------------ Desenvolvimento de aplicativos Índice Parcial * Administrative API Reference o |33.1 db2ArchiveLog (nova API) + |db2ArchiveLog o 33.2 db2ConvMonStream o 33.3 db2DatabasePing (nova API) + db2DatabasePing - Banco de Dados para Execução de Ping o |33.4 db2HistData o |33.5 db2HistoryOpenScan o 33.6 db2XaGetInfo (nova API) + db2XaGetInfo - Obter Informações para o Gerenciador de Recursos o 33.7 db2XaListIndTrans (nova API que sobrepõe sqlxphqr) + db2XaListIndTrans - Lista Transações Duvidosas o |33.8 db2GetSnapshot - Obter instantâneo o |33.9 Registro de Log Esquecido o 33.10 sqlaintp - Obter mensagem de erro o |33.11 sqlbctcq - Fechar consulta do contêiner de tablespace o |33.12 sqlubkp - Backup do banco de dados o |33.13 sqlureot - Reorganizar tabela o |33.14 sqlurestore - Restaurar banco de dados o 33.15 Erro na Documentação com Relação ao Suporte de Memória Compartilhada Estendida (EXTSHM) do AIX o 33.16 SQLFUPD + |33.16.1 locklist o |33.17 SQLEDBDESC o |33.18 Erro na Documentação do SQLFUPD * Manual de Cosntrução de Aplicativo o 34.1 Capítulo 1. Introdução + 34.1.1 Software Suportado + 34.1.2 Programas de Amostra o 34.2 Capítulo 3. Informações Gerais para a Construção de Aplicativos do DB2 + 34.2.1 Construir Arquivos, Makefiles e Utilitários de Verificação de Erro o 34.3 Capítulo 4. Construindo Applets e Aplicativos Java + 34.3.1 Definindo o Ambiente + 34.3.1.1 Nível JDK no OS/2 + |34.3.1.2 Java2 no HP-UX o 34.4 Capítulo 5. Construindo procedimentos SQL + 34.4.1 Definindo o Ambiente de Procedimentos SQL + 34.4.2 Definindo as Variáveis de Ambiente do Compilador + 34.4.3 Personalizando o Comando de Compilação + 34.4.4 Retendo Arquivos Intermediários + 34.4.5 Backup e Restauração + 34.4.6 Criando Procedimentos SQL + 34.4.7 Chamando Procedimentos Armazenados + |34.4.8 Distribuindo Procedimentos SQL Compilados o 34.5 Capítulo 7. Construindo Aplicativos HP-UX. + 34.5.1 HP-UX C + 34.5.2 HP-UX C++ o 34.6 Capítulo 9. Construindo Aplicativos do OS/2 + 34.6.1 VisualAge C++ para OS/2 Versão 4.0 o 34.7 Capítulo 10. Construindo Aplicativos PTX + 34.7.1 ptx/C++ o 34.8 Capítulo 12. Construindo Aplicativos Solaris + 34.8.1 SPARCompiler C++ o 34.9 Capítulo 13. Construindo Aplicativos para os Sistemas Operacionais de 32 bits do Windows + 34.9.1 VisualAge C++ Versão 4.0 * Manual de Desenvolvimento de Aplicativo o 35.1 Capítulo 2. Codificando um Aplicativo do DB2 + 35.1.1 Ativando o IBM DB2 Universal Database Project e Complementos de Ferramentas para Microsoft Visual C++ o 35.2 Capítulo 6. Técnicas comuns do aplicativo DB2 + |35.2.1 Gerando valores seqüenciais + |35.2.1.1 Controlando o comportamento da seqüência + |35.2.1.2 Melhorando o desempenho com objetos de seqüência + |35.2.1.3 Comparando objetos de seqüência com colunas de identidade o 35.3 Capítulo 7. Procedimentos Armazenados + |35.3.1 Falhas do Tipo DECIMAL em Rotinas Java do Linux + |35.3.2 Usando Cursores nos Procedimentos Armazenados Recursivos + 35.3.3 Gravando os Procedimentos Armazenados de Automatização OLE o 35.4 Capítulo 12. Trabalhando com Objetos Complexos: Tipos Estruturados Definidos pelo Usuário + 35.4.1 Inserindo Atributos de Tipos Estruturados em Colunas o 35.5 Capítulo 13. Utilizando Objetos Grandes (LOBs) + |35.5.1 Suporte ao objeto grande (LOBs) em sistemas do banco de dados federados + |35.5.1.1 Como o DB2 recupera os LOBs + |35.5.1.2 Como os aplicativos podem utilizar localizadores do LOB + |35.5.1.3 Restrições nos LOBs + |35.5.1.4 Mapeamentos entre os tipos de dados LOBs e não-LOBs + 35.5.2 Ajuste do sistema o 35.6 Parte 5. Considerações de Programação do DB2 + 35.6.1 IBM DB2 OLE DB Provider o 35.7 Capítulo 20. Programando em C e C++ + 35.7.1 Tipos C/C++ para Procedimentos Armazenados, Funções e Métodos o 35.8 Capítulo 21. Programando em Java + 35.8.1 Assinatura do Método Java nos Procedimentos e Funções PARAMETER STYLE JAVA + |35.8.2 Conectando-se ao Servidor de Applet do JDBC o 35.9 Apêndice B. Programas de Amostra * Manual de Referência ao CLI o 36.1 Fazendo o Bind dos Utilitários de Banco de Dados Utilizando o Cliente de Tempo de execução o 36.2 Utilizando SQL Estático em Aplicativos CLI o 36.3 Limitações do Traçado de Perfil Estático JDBC/ODBC/CLI o 36.4 Transformações ADT o |36.5 Capítulo 3. Usando Recursos Avançados + |36.5.1 Gravando Aplicativos de Multi-Threaded + |36.5.2 Scrollable Cursors + |36.5.2.1 Suporte ao cursor deslocável no lado do servidor para OS/390 + |36.5.3 Utilizando o SQL Composto + |36.5.4 Utilizando os Procedimentos Armazenados + |36.5.4.1 Gravando um Procedimento Armazenado em CLI + |36.5.4.2 Procedimentos Armazenados e Bind Automático da CLI o |36.6 Capítulo 4. Configurando CLI/ODBC e executando amostras de aplicativos + |36.6.1 Palavras-chave de configuração o 36.7 Capítulo 5. Funções da CLI do DB2 + 36.7.1 SQLBindFileToParam - Ligar Referência do Arquivo do LOB ao Parâmetro do LOB + |36.7.2 SQLNextResult - Associar o Próximo Conjunto de Resultados a Outra Manipulação de Instrução + |36.7.2.1 Objetivo + |36.7.2.2 Sintaxe + |36.7.2.3 Argumentos de Função + |36.7.2.4 Uso + |36.7.2.5 Códigos de Retorno + |36.7.2.6 Diagnósticos + |36.7.2.7 Restrições + |36.7.2.8 Referências o 36.8 Apêndice D. Funções Escalares Estendidas + 36.8.1 Funções de Data e Hora o 36.9 Apêndice K. Usando a Funcionalidade de Rastreamento do DB2 CLI/ODBC/JDBC * Referência da Mensagem o |37.1 Obtendo Mensagem e Auxílio SQLSTATE o |37.2 Alteração de Remapeamento do SQLCODE no DB2 Connect o 37.3 Mensagens Novas e Alteradas + 37.3.1 Mensagens da Call Level Interface (CLI) + 37.3.2 Mensagens do DB2 + 37.3.3 Mensagens do DBI + 37.3.4 Mensagens do Centro de Data Warehouse (DWC) + 37.3.5 Mensagens SQL o 37.4 SQLSTATES Corrigido * Referência a SQL o 38.1 A Referência SQL é Fornecida em Um Arquivo PDF o |38.2 Capítulo 3. Elementos de linguagem + |38.2.1 Convenções de Nomenclatura e Qualificações de Nomes de Objetos Implícitos + |38.2.2 Atribuições DATALINK + |38.2.3 Expressões + |38.2.3.1 Diagrama de sintaxe + |38.2.3.2 Funções OLAP + |38.2.3.3 referência de seqüência o 38.3 Capítulo 4. Funções + |38.3.1 Ativando as Novas Funções e Procedimentos + 38.3.2 Funções Escalares + |38.3.2.1 ABS ou ABSVAL + |38.3.2.2 DECRYPT_BIN e DECRYPT_CHAR + |38.3.2.3 ENCRYPT + |38.3.2.4 GETHINT + |38.3.2.5 IDENTITY_VAL_LOCAL + 38.3.2.6 LCASE e UCASE (Unicode) + |38.3.2.7 MQPUBLISH + |38.3.2.8 MQREAD + |38.3.2.9 MQRECEIVE + |38.3.2.10 MQSEND + |38.3.2.11 MQSUBSCRIBE + |38.3.2.12 MQUNSUBSCRIBE + |38.3.2.13 MULTIPLY_ALT + |38.3.2.14 REC2XML + |38.3.2.15 ROUND + 38.3.2.16 WEEK_ISO + 38.3.3 Funções da Tabela + |38.3.3.1 MQREADALL + |38.3.3.2 MQRECEIVEALL + |38.3.4 Procedimentos + |38.3.4.1 GET_ROUTINE_SAR + |38.3.4.2 PUT_ROUTINE_SAR o 38.4 Capítulo 5. Consultas + |38.4.1 select-statement/diagrama de sintaxe + 38.4.2 select-statement/fetch-first-clause o |38.5 Capítulo 6. Instruções SQL + |38.5.1 Atualização da Chave de Particionamento Agora Suportada + |38.5.1.1 Instrução: ALTER TABLE + |38.5.1.2 Instrução: CREATE TABLE + |38.5.1.3 Instrução: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (column-name,...) + |38.5.1.4 Instrução: UPDATE + |38.5.2 Chaves de índice maiores para bancos de dados Unicode + |38.5.2.1 ALTER TABLE + |38.5.2.2 CREATE INDEX + |38.5.2.3 CREATE TABLE + |38.5.3 ALTER SEQUENCE + |ALTER SEQUENCE + |38.5.4 ALTER TABLE + |38.5.5 SQL Composto (Incorporado) + |38.5.6 Instrução composta (dinâmica) + |Instrução composta (dinâmica) + |38.5.7 CREATE FUNCTION (Origem ou Modelo) + |38.5.8 CREATE FUNCTION (SQL Escalar, Tabela ou Linha) + |38.5.9 CREATE METHOD + |CREATE METHOD + |38.5.10 CREATE SEQUENCE + |CREATE SEQUENCE + |38.5.11 CREATE TRIGGER + |CREATE TRIGGER + |38.5.12 CREATE WRAPPER + |38.5.13 DECLARE CURSOR + |38.5.14 DELETE + |38.5.15 DROP + |38.5.16 GRANT (Privilégios da Seqüência) + |GRANT (privilégios de seqüência) + |38.5.17 INSERT + |38.5.18 SELECT INTO + |38.5.19 SET ENCRYPTION PASSWORD + |SET ENCRYPTION PASSWORD + |38.5.20 Variável de transição SET + |variável SET + |38.5.21 UPDATE o |38.6 Capítulo 7. Procedimentos SQL, agora chamado de Capítulo 7. Instruções de controle SQL + |38.6.1 Instrução de procedimento SQL + |Instrução do procedimento SQL + |38.6.2 FOR + |FOR + |38.6.3 Alterações de instrução composta para instrução composta (procedimento) + |38.6.4 RETURN + |RETURN + |38.6.5 SIGNAL + |SIGNAL o |38.7 Apêndice A. Limites de SQL o |38.8 Apêndice D. Exibições do Catálogo + |38.8.1 SYSCAT.SEQUENCES * DB2 Stored Procedure Builder o 39.1 suporte ao Java 1.2 o DB2 Stored Procedure Builder o 39.2 Fazendo Depuração Remota dos DB2 Stored Procedures o 39.3 Construindo Procedimentos SQL na Plataforma Windows, OS/2 ou UNIX o 39.4 Utilizando o DB2 Stored Procedure Builder na Plataforma Solaris o 39.5 Problemas e Limitações Conhecidas o 39.6 Utilizando o DB2 Stored Procedure Builder com Locale do Chinês Tradicional o 39.7 Instalações UNIX (AIX, Sun Solaris, Linux) e o Stored Procedure Builder o |39.8 Construindo Procedimentos Armazenados SQL no OS/390 o |39.9 Depurando procedimentos armazenados SQL o |39.10 Exportando procedimentos armazenados Java o |39.11 Inserindo procedimentos armazenados no OS/390 o |39.12 Definindo opções de construção para procedimentos armazenados SQL em um servidor de estação de trabalho o |39.13 Atualizando automaticamente o espaço de endereçamento WLM para procedimentos armazenados construídos no OS/390 o |39.14 Desenvolvendo procedimentos armazenados Java em OS/390 o |39.15 Criando uma função definida pelo usuário (UDF) do DB2 para MQ Series e OLE DB * |Atualizações do Unicode o |40.1 Introdução + |40.1.1 Bancos de Dados e Aplicativos do DB2 Unicode + |40.1.2 Atualizações de Documentação o |40.2 Referência a SQL + |40.2.1 Capítulo 3 Elementos de Linguagem + |40.2.1.1 Promoção de Tipos de Dados + |40.2.1.2 Conversão entre Tipos de Dados + |40.2.1.3 Atribuições e Comparações + |40.2.1.4 Regras para Tipos de Dados de Resultado + |40.2.1.5 Regras para Conversões de Cadeias + |40.2.1.6 Expressões + |40.2.1.7 Predicados + |40.2.2 Capítulo 4 Funções + |40.2.2.1 Funções Escalares o |40.3 Manual de Referência do CLI + |40.3.1 Capítulo 3. Usando Recursos Avançados + |40.3.1.1 Escrevendo um Aplicativo Unicode do DB2 CLI + |40.3.2 Apêndice C. DB2 CLI e ODBC + |40.3.2.1 Aplicativos Unicode do ODBC o |40.4 Manual e Referência dos Utilitário de Movimento dos Dados + |40.4.1 Apêndice C. Formatos de Arquivo do Utilitário de Exportação/Importação/Carregamento ------------------------------------------------------------------------ Administrative API Reference ------------------------------------------------------------------------ |33.1 db2ArchiveLog (nova API) |db2ArchiveLog | |Fecha e trunca o arquivo de log ativo de um banco de dados |recuperável. Se a saída do usuário estiver ativada, emite um pedido de |archive. |Autorização |Um dos seguintes: | * |sysadm * |sysctrl * |sysmaint * |dbadm | |Conexão Requerida |Essa API estabelece automaticamente uma conexão com o banco de dados |especificado. Se já existir uma conexão com o banco de dados |especificado, a API retorna um erro. |Versão |db2ApiDf.h |Sintaxe da API C | /* Arquivo: db2ApiDf.h */ /* API: Archive Active Log */ SQL_API_RC SQL_API_FN db2ArchiveLog ( db2Uint32 version, void *pDB2ArchiveLogStruct, struct sqlca * pSqlca); typedef struct { char *piDatabaseAlias; char *piUserName; char *piPassword; db2Uint16 iAllNodeFlag; db2Uint16 iNumNodes; SQL_PDB_NODE_TYPE *piNodeList; db2Uint32 iOptions; } |Sintaxe da API Genérica | /* Arquivo: db2ApiDf.h */ /* API: Archive Active Log */ SQL_API_RC SQL_API_FN db2gArchiveLog ( db2Uint32 version, void *pDB2ArchiveLogStruct, struct sqlca * pSqlca); typedef struct { db2Uint32 iAliasLen; db2Uint32 iUserNameLen; db2Uint32 iPasswordLen; char *piDatabaseAlias; char *piUserName; char *piPassword; db2Uint16 iAllNodeFlag; db2Uint16 iNumNodes; SQL_PDB_NODE_TYPE *piNodeList; db2Uint32 iOptions; } |Parâmetros da API | |versão |Entrada. Especifica a versão e o nível do release da variável |transmitida como segundo parâmetro, pDB2ArchiveLogStruct. |pDB2ArchiveLogStruct |Entrada. Um indicador para a estrutura |db2ArchiveLogStruct. |pSqlca |Saída. Um indicador para a estrutura sqlca. |iAliasLen |Entrada. Um número inteiro de 4 bytes não sinalizado, representando |o comprimento em bytes do alias do banco de dados. |iUserNameLen |Um número inteiro de 4 bytes não sinalizado, representando o comprimento |em bytes do nome do usuário. Definido como zero se não for utilizado um |nome do usuário. |iPasswordLen |Entrada. Um número inteiro de 4 bytes não sinalizado, representando |o comprimento em bytes da senha. Definido como zero se não for |utilizada senha. |piDatabaseAlias |Entrada. Uma cadeia contendo o alias do banco de dados (conforme |catalogado no diretório do banco de dados do sistema) para o qual o log ativo |deve ser arquivado. |piUserName |Entrada. Uma cadeia contendo o nome do usuário a ser utilizado ao |tentar uma conexão. |piPassword |Entrada. Uma cadeia contendo a senha a ser utilizada ao tentar uma |conexão. | |iAllNodeFlag |Somente MPP. Entrada. Sinalizador indicando se a operação |deve se aplicar a todos os nós listados no arquivo |db2nodes.cfg. Os valores válidos são: | |DB2ARCHIVELOG_NODE_LIST |Aplica-se aos nós em uma lista de nós que é transmitida em |piNodeList. |DB2ARCHIVELOG_ALL_NODES |Aplicado em todos os nós. piNodeList deve ser NULO. |Esse é o valor padrão. |DB2ARCHIVELOG_ALL_EXCEPT |Aplica-se a todos os nós, exceto na lista de nós passada em |piNodeList. | |iNumNodes |Somente MPP. Entrada. Especifica o número de nós na matriz |piNodeList. |piNodeList |Somente MPP. Entrada. Um ponteiro para uma matriz de números |de nós contra o qual aplica-se a operação de log do archive. |iOptions |Entrada. Reservado para uso futuro. | ------------------------------------------------------------------------ 33.2 db2ConvMonStream Nas Notas de Uso, a estrutura do tipo de fluxo de dados da variável de captura instantânea SQLM_ELM_SUBSECTION deve ser qlm_subsection. ------------------------------------------------------------------------ 33.3 db2DatabasePing (nova API) db2DatabasePing - Banco de Dados para Execução de Ping Testa o tempo de resposta da rede de conectividade subjacente entre um cliente e um servidor do bancos de dados. Esta API pode ser utilizada por um aplicativo quando um servidor do bancos de dados do host é acessado através do DB2 Connect, diretamente ou através de um gateway. Autorização Nenhum Conexão Requerida Banco de Dados Versão db2ApiDf.h Sintaxe da API C /* Arquivo: db2ApiDf.h */ /* API: Ping Database */ /* ... */ SQL_API_RC SQL_API_FN db2DatabasePing ( db2Uint32 versionNumber, void *pParmStruct, struct sqlca * pSqlca); /* ... */ typedef SQL_STRUCTURE db2DatabasePingStruct { char iDbAlias[SQL_ALIAS_SZ + 1]; db2Uint16 iNumIterations; db2Uint32 *poElapsedTime; } Sintaxe da API Genérica /* Arquivo: db2ApiDf.h */ /* API: Ping Database */ /* ... */ SQL_API_RC SQL_API_FN db2gDatabasePing ( db2Uint32 versionNumber, void *pParmStruct, struct sqlca * pSqlca); /* ... */ typedef SQL_STRUCTURE db2gDatabasePingStruct { db2Uint16 iDbAliasLength; char iDbAlias[SQL_ALIAS_SZ]; db2Uint16 iNumIterations; db2Uint32 *poElapsedTime; } Parâmetros da API versionNumber Entrada. Versão e release do produto DB2 Universal Database ou DB2 Connect que o aplicativo está utilizando. Nota: A constante db2Version710 ou superior deve ser usada para o DB2 Versão 7.1 ou superior. iDbAliasLength Entrada. Comprimento do nome de alias do banco de dados. Nota: Este parâmetro não é usado atualmente. Ele está reservado para uso futuro. iDbAlias Entrada. Nome de alias do banco de dados. Nota: Este parâmetro não é usado atualmente. Ele está reservado para uso futuro. iNumIterations Entrada. Número de iterações de solicitação de teste. O valor deve estar entre 1 e 32767, inclusive. poElapsedTime Saída. Um indicador para uma matriz de inteiros de 32 bits em que o número de elementos seja igual a iNumIterations. Cada elemento na matriz conterá o tempo decorrido em microssegundos para uma iteração de solicitação de teste. Nota: O aplicativo é responsável pela alocação da memória para esta matriz antes de chamar esta API. pSqlca Saída. Um indicador para a estrutura sqlca. Para obter maiores informações sobre esta estrutura, consulte Administrative API Reference. Notas sobre Utilização Deve existir uma conexão do banco de dados antes da chamada desta API, do contrário, ocorrerá um erro. Esta função também pode ser chamada através do comando PING. Para obter uma descrição deste comando, consulte Command Reference. ------------------------------------------------------------------------ |33.4 db2HistData |As entradas a seguir devem ser incluídas na Tabela 11. Campos na |Estrutura db2HistData: | Nome do campo Tipo de Dados Descrição oOperation char Consulte a tabela 12. oOptype char Consulte a tabela 13. |A tabela a seguir será incluída após a Tabela 11. |Tabela 12. Valores de eventos válidos para oOperation na Estrutura |db2HistData | ValorDescrição Definição C Definição COBOL/FORTRAN A incluir DB2HISTORY_OP_ADD_TABLESPACE DB2HIST_OP_ADD_TABLESPACE tablespace B backup DB2HISTORY_OP_BACKUP DB2HIST_OP_BACKUP C cópia de DB2HISTORY_OP_LOAD_COPY DB2HIST_OP_LOAD_COPY carregamento D tabela DB2HISTORY_OP_DROPPED_TABLE DB2HIST_OP_DROPPED_TABLE eliminada F avançar DB2HISTORY_OP_ROLLFWD DB2HIST_OP_ROLLFWD G reorganizar DB2HISTORY_OP_REORG DB2HIST_OP_REORG tabela L carregar DB2HISTORY_OP_LOAD DB2HIST_OP_LOAD N renomear DB2HISTORY_OP_REN_TABLESPACE DB2HIST_OP_REN_TABLESPACE tablespace O eliminar DB2HISTORY_OP_DROP_TABLESPACE DB2HIST_OP_DROP_TABLESPACE tablespace Q quiesce DB2HISTORY_OP_QUIESCE DB2HIST_OP_QUIESCE R restaurar DB2HISTORY_OP_RESTORE DB2HIST_OP_RESTORE S executar DB2HISTORY_OP_RUNSTATS DB2HIST_OP_RUNSTATS estatística T alterar DB2HISTORY_OP_ALT_TABLESPACE DB2HIST_OP_ALT_TBS tablespace U descarregar DB2HISTORY_OP_UNLOAD DB2HIST_OP_UNLOAD |A tabela a seguir também será incluída. |Tabela 13. Valores de oOptype válidos na Estrutura db2HistData | oOperationoOptype Descrição C/COBOL/FORTRAN Definition B F Offline DB2HISTORY_OPTYPE_OFFLINE N Online DB2HISTORY_OPTYPE_ONLINE I Offline incremental DB2HISTORY_OPTYPE_INCR_OFFLINE O Online incremental DB2HISTORY_OPTYPE_INCR_ONLINE D Offline delta DB2HISTORY_OPTYPE_DELTA_OFFLINE E Online delta DB2HISTORY_OPTYPE_DELTA_ONLIN F E Fim do log DB2HISTORY_OPTYPE_EOL P Ponto no tempo DB2HISTORY_OPTYPE_PIT L I Inserir DB2HISTORY_OPTYPE_INSERT R Substituir DB2HISTORY_OPTYPE_REPLACE Q S Compartilhar quiesce DB2HISTORY_OPTYPE_SHARE U Atualizar quiesce DB2HISTORY_OPTYPE_UPDATE X Quiesce exclusivo DB2HISTORY_OPTYPE_EXCL Z Redefinir quiesce DB2HISTORY_OPTYPE_RESET R F Offline DB2HISTORY_OPTYPE_OFFLINE N Online DB2HISTORY_OPTYPE_ONLINE I Offline incremental DB2HISTORY_OPTYPE_INCR_OFFLINE O Online incremental DB2HISTORY_OPTYPE_INCR_ONLINE T C Incluir contêineres DB2HISTORY_OPTYPE_ADD_CONT R Reequilibrar DB2HISTORY_OPTYPE_REB ------------------------------------------------------------------------ |33.5 db2HistoryOpenScan |O valor a seguir será incluído no parâmetro |iCallerAction. | |DB2HISTORY_LIST_CRT_TABLESPACE |Selecione somente os registros CREATE TABLESPACE e DROP TABLESPACE que |passarem nos outros filtros. | ------------------------------------------------------------------------ 33.6 db2XaGetInfo (nova API) db2XaGetInfo - Obter Informações para o Gerenciador de Recursos Extrai informações para um gerenciador de recurso particular uma vez feito um xa_open. Autorização Nenhum Conexão Requerida Banco de Dados Versão sqlxa.h Sintaxe da API C /* Arquivo: sqlxa.h */ /* API: Obter Informações para o Gerenciador de Recursos */ /* ... */ SQL_API_RC SQL_API_FN db2XaGetInfo ( db2Uint32 versionNumber, void * pParmStruct, struct sqlca * pSqlca); typedef SQL_STRUCTURE db2XaGetInfoStruct { db2int32 iRmid; struct sqlca oLastSqlca; } db2XaGetInfoStruct; Parâmetros da API versionNumber Entrada. Especifica a versão e o nível da estrutura passada como o segundo parâmetro, pParmStruct. pParmStruct Entrada. Um indicador para a estrutura db2XaGetInfoStruct. pSqlca Saída. Um indicador para a estrutura sqlca. Para obter maiores informações sobre esta estrutura, consulte Administrative API Reference. iRmid Entrada. Especifica o gerenciador de recursos para o qual a informação é requerida. oLastSqlca Saída. Contém a sqlca para a última chamada XA API. Nota: Apenas a sqlca resultante da última falha XA API pode ser recuperada. ------------------------------------------------------------------------ 33.7 db2XaListIndTrans (nova API que sobrepõe sqlxphqr) db2XaListIndTrans - Lista Transações Duvidosas Fornece uma lista de todas as transações duvidosas para os bancos de dados atualmente conectados. Escopo Esta API afeta apenas o nó no qual ela é emitida. Autorização Um dos seguintes: * sysadm * dbadm Conexão Requerida Banco de Dados Versão db2ApiDf.h Sintaxe da API C /* Arquivo: db2ApiDf.h */ /* API: Listar Transações Duvidosas */ /* ... */ SQL_API_RC SQL_API_FN db2XaListIndTrans ( db2Uint32 versionNumber, void * pParmStruct, struct sqlca * pSqlca); typedef SQL_STRUCTURE db2XaListIndTransStruct { db2XaRecoverStruct * piIndoubtData; db2Uint32 iIndoubtDataLen; db2Uint32 oNumIndoubtsReturned; db2Uint32 oNumIndoubtsTotal; db2Uint32 oReqBufferLen; } db2XaListIndTransStruct; typedef SQL_STRUCTURE db2XaRecoverStruct { sqluint32 timestamp; SQLXA_XID xid; char dbalias[SQLXA_DBNAME_SZ]; char applid[SQLXA_APPLID_SZ]; char sequence_no[SQLXA_SEQ_SZ]; char auth_id[SQL_USERID_SZ]; char log_full; char connected; char indoubt_status; char originator; char reserved[8]; } db2XaRecoverStruct; Parâmetros da API versionNumber Entrada. Especifica a versão e o nível da estrutura passada como o segundo parâmetro, pParmStruct. pParmStruct Entrada. Um indicador para a estrutura db2XaListIndTransStruct. pSqlca Saída. Um indicador para a estrutura sqlca. Para obter maiores informações sobre esta estrutura, consulte Administrative API Reference. piIndoubtData Entrada. Um indicador para o buffer fornecido no aplicativo de onde o dado duvidoso será retornado. O dado duvidoso está no formato db2XaRecoverStruct. O aplicativo pode atravessar a lista de transações duvidosas utilizando o tamanho da estrutura db2XaRecoverStruct, iniciando no endereço fornecido por este parâmetro. Se o valor for NULL, o DB2 irá calcular o tamanho do buffer requerido e retornar esse valor no oReqBufferLen. oNumIndoubtsTotal conterá o número total de transações duvidosas. O aplicativo pode alocar o tamanho de buffer requerido e emitir a API novamente. oNumIndoubtsReturned Saída. O número de registros de transações duvidosas retornado no buffer especificado pelo pIndoubtData. oNumIndoubtsTotal Saída. O número Total de registros de transações duvidosas disponível na hora da chamada da API. Se o buffer piIndoubtData for muito pequeno para conter todos os registros, o oNumIndoubtsTotal será maior que o total para o oNumIndoubtsReturned. O aplicativo deve emitir novamente a API para obter todos os registros. Nota: Este número deve alterar o meio das chamadas de API como um resultado da nova sincronização de transação duvidosa automática ou heurística, ou como um resultado de outras transações entrando no estado duvidoso. oReqBufferLen Saída. Tamanho de buffer requerido para manter todas os registros de transações duvidosas na hora da chamada da API. O aplicativo pode utilizar este valor para determinar o tamanho de buffer requerido chamando a API com pIndoubtData definido como NULL. Este valor pode então ser usado para alocar o buffer requerido e a API pode ser emitida com pIndoubtData definida para o endereço do buffer alocado. Nota: O tamanho de buffer requerido pode se alterar entre as chamadas de API como um resultado da nova sincronização de transação duvidosa automática ou heurística, ou como um resultado de outras transações entrando no estado duvidoso. Por isso, o aplicativo pode alocar um buffer maior para contabilizar. timestamp Saída. Especifica o tempo quando a transação entrou no estado incerto. xid Saída. Especifica o identificador XA assinalado pelo gerenciador de transação para identificar unicamente uma transação global. dbalias Saída. Especifica o alias do banco de dados onde a transação incerta se encontra. applid Saída. Especifica o identificador de aplicativos assinalado pelo gerenciador de banco de dados para esta transação. sequence_no Saída. Especifica o número de seqüência designado pelo gerenciador de banco de dados como uma extensão para a applid. auth_id Saída. Especifica a ID de autorização do usuário que executou a transação. log_full Saída. Indica se esta transação causou ou não uma condição de estouro de log. Os valores válidos são: SQLXA_TRUE Esta transação incerta causou uma condição de estouro de log. SQLXA_FALSE Esta transação incerta não causa uma condição de estouro de log. connected Saída. Indica se o aplicativo está ou não conectado. Os valores válidos são: SQLXA_TRUE A transação está sofrendo um processamento normal do ponto de sincronismo e está aguardando a segunda fase do commit de duas fases. SQLXA_FALSE A transação tornou-se incerta por uma falha anterior, e está agora aguardando por uma nova sincronização do gerenciador de transação. indoubt_status Saída. Indica o status desta transação incerta. Os valores válidos são: SQLXA_TS_PREP A transação está preparada. O parâmetro conectado pode ser usado para determinar se a transação está aguardando uma segunda fase do processamento normal de commit ou se ocorreu um erro e será necessário uma nova sincronização com o gerenciador de transação. SQLXA_TS_HCOM A transação efetuou o commit heuristicamente. SQLXA_TS_HROL A transação sofreu rollback heuristicamente. SQLXA_TS_MACK Falta na transação o reconhecimento do commit de um nó em um banco de dados particionado. SQLXA_TS_END A transação foi encerrada neste banco de dados. Esta transação deve ser ativada novamente, efetuar o commit ou sofrer o rollback em um momento posterior. Também é possível que o gerenciador de transações encontre um erro e a transação não seja concluída. Se o caso for esse, esta transação vai precisar de ações heurísticas, porque deve suspender os bloqueios impedindo o acesso aos dados de outros aplicativos. Notas sobre Utilização Um aplicativo típico executará as seguintes etapas após a definição da conexão atual do banco de dados ou do nó coordenador do banco de dados particionado: 1. Chame db2XaListIndTrans com piIndoubtData definida como NULL. Isto irá retornar valores em oReqBufferLen e em oNumIndoubtsTotal. 2. Use o valor retornado no oReqBufferLen para alocar um buffer. Esse buffer pode não ser suficientemente grande se existirem transações incertas adicionais devido à chamada inicial desta API para obter o oReqBufferLen. O aplicativo pode fornecer um buffer maior que o oReqBufferLen. 3. Determine se todos os registros duvidosos da transação foram obtidos. Isto pode ser feito comparando-se oNumIndoubtsReturned com oNumIndoubtTotal. Se o oNumIndoubtsTotal for maior que o oNumIndoubtsReturned, o aplicativo poderá repetir as etapas anteriores. Consulte Também "sqlxhfrg - Esquecer Status da Transação", "sqlxphcm - Fazer Commit de uma Transação Incerta" e "sqlxphrl - Fazer Roll Back de uma Transação Incerta" no Administrative API Reference. ------------------------------------------------------------------------ |33.8 db2GetSnapshot - Obter instantâneo |A sintaxe da API db2GetSnapshot deve ser a seguinte: | int db2GetSnapshot( unsigned char version; | db2GetSnapshotData *data, | struct sqlca *sqlca); | | Os parâmetros descritos nos dados são: | typedef struct db2GetSnapshotData{ | sqlma *piSqlmaData; | sqlm_collected *poCollectedData | void *poBuffer; | db2uint32 iVersion; | db2int32 iBufferSize; | db2uint8 iStoreResult; | db2uint16 iNodeNumber; | db2uint32 *poOutputFormat; | | }db2GetSnapshotData; ------------------------------------------------------------------------ |33.9 Registro de Log Esquecido |As informações a seguir serão incluídas no Apêndice F seguindo a seção |Preparo do Subordinador MPP. |Esse registro de log é gravado após um avanço de transações duvidosas ou |após uma consolidação da consolidação de duas fases. O registro do log |é gravado para marcar o fim da transação e libera quaisquer recursos do log |retidos. Para que a transação seja esquecida, ela deve estar em um |estado heuristicamente concluído. | |Tabela 21. Estrutura de Registro do Log Esquecido Descrição Tipo Deslocamento (Bytes) Cabeçalho do log LogManagerLogRecordHeader 0(20) time sqluint64 20(8) Comprimento Total: 28 bytes ------------------------------------------------------------------------ 33.10 sqlaintp - Obter mensagem de erro A seguinte nota de uso deve ser incluída para a descrição desta API: Em um aplicativo com multithread, sqlaintp deve estar conectada a um contexto válido; caso contrário, o texto de mensagem para SQLCODE -1445 não poderá ser obtido. ------------------------------------------------------------------------ |33.11 sqlbctcq - Fechar consulta do contêiner de tablespace |O carregamento não é um nível de autorização válido para esta |API. ------------------------------------------------------------------------ |33.12 sqlubkp - Backup do banco de dados |Para o parâmetro BackupType, o valor SQLUB_FULL será |substituído por SQLUB_DB. Será feito backup de todos os tablespaces |do banco de dados. |Para oferecer suporte à nova funcionalidade de backup incremental, |os parâmetros SQLUB_INCREMENTAL e SQLUB_DELTA também são |incluídos. Uma imagem de backup incremental é uma cópia de todos os |dados do banco de dados alterados desde o último backup completo bem |sucedido. Uma imagem de backup delta é uma cópia de todos os dados do |banco de dados alterados desde o último backup bem sucedido de qualquer |tipo. ------------------------------------------------------------------------ |33.13 sqlureot - Reorganizar tabela |A frase a seguir será incluída nas Notas de utilização: |REORGANIZE TABLE não pode utilizar um índice baseado em uma extensão do |índice. ------------------------------------------------------------------------ |33.14 sqlurestore - Restaurar banco de dados |Para o parâmetro RestoreType, o valor SQLUD_FULL será |substituído por SQLUD_DB. Será feita uma restauração de todos os |tablespaces no banco de dados. Isto será executado offline. |Para oferecer suporte à nova funcionalidade de restauração incremental, o |parâmetro SQLUD_INCREMENTAL também é incluído. |Uma imagem de backup incremental é uma cópia de todos os dados do banco de |dados alterados desde o último backup completo bem sucedido. ------------------------------------------------------------------------ 33.15 Erro na Documentação com Relação ao Suporte de Memória Compartilhada Estendida (EXTSHM) do AIX No "Apêndice E. Aplicativos de thread com acesso simultâneo", a Nota 2 deveria ser: |2. Por padrão, o AIX não permite que aplicativos de 32 bits |anexem mais de 11 segmentos de memória compartilhada por processo, dos quais |no máximo 10 podem ser utilizados para conexões do DB2 local. |Para utilizar o EXTSHM com o DB2, faça o seguinte: |Em sessões do cliente: |export EXTSHM=ON |Quando iniciar o DB2: |export EXTSHM=ON |db2set DB2ENVLIST=EXTSHM |db2start |No EEE, inclua também as linhas a seguir em sqllib/db2profile: |EXTSHM=ON |export EXTSHM ------------------------------------------------------------------------ 33.16 SQLFUPD |33.16.1 locklist |O nome do token foi alterado de SQLF_DBTN_LOCKLIST para |SQLF_DBTN_LOCK_LIST. O parâmetro locklist foi alterado de SMALLINT para |um INTEGER não sinalizado de 64 bits. A adição a seguir deve ser |efetuada na tabela de Parâmetros de configuração do banco de dados |atualizável. | Nome do parâmetro Token Valor do token Tipo de Dados locklist SQLF_DBTN_LOCK_LIST704 Uint64 |O novo máximo para esse parâmetro é 524 288. ------------------------------------------------------------------------ |33.17 SQLEDBDESC |Serão incluídos dois valores na lista de valores válidos para SQLDBCSS |(definido no sqlenv). Eles são: | |SQL_CS_SYSTEM_NLSCHAR |Seqüência de intercalação do sistema utilizando a versão NLS de rotinas de |comparação para tipos de caracteres. |SQL_CS_USER_NLSCHAR |Seqüência de intercalação do usuário utilizando a versão NLS de rotinas de |comparação para tipos de caracteres. | ------------------------------------------------------------------------ |33.18 Erro na Documentação do SQLFUPD |No "Capítulo 3. Estruturas de Dados", Tabela 53. Os |Parâmetros de Configuração de Banco de Dados Atualizáveis listam |incorretamente o valor do token para dbheap como |701. O valor correto é 58. ------------------------------------------------------------------------ Manual de Cosntrução de Aplicativo ------------------------------------------------------------------------ 34.1 Capítulo 1. Introdução 34.1.1 Software Suportado Nota: |PHP. O PHP pode ser utilizado como um método para |acessar o DB2 a partir dos aplicativos baseados na web. O PHP é uma |linguagem script do lado do servidor, incorporado ao HTML e de plataforma |cruzada. Ele suporta o acesso ao DB2 utilizando o método Unified-ODBC, |na qual o nível do usuário comunica com o DB2 utilizando a chamada |ODBC. Diferente do ODBC padrão, com o método Unified-ODBC, a |comunicação é diretamente com a camada CLI do DB2, não através da camada |ODBC. Para obter mais informações sobre a utilização do PHP com o DB2, |pesquise o site de suporte do DB2 em www.ibm.com/software/data/db2/udb/winos2unix/support. | AIX As versões listadas para o compilador C e C++ devem ser as seguintes: Compiladores IBM C e C++ para AIX Versão 3.6.6 (Versão 3.6.6.3 para 64 bits) IBM C para AIX 4.4 IBM VisualAge C++ Versão 4.0 Nota: Faça o download dos FixPaks disponíveis mais recentes destas versões dos compiladores no endereço: http://www.ibm.com/software/ad/vacpp/service/csd.html As versões listadas para o compilador Micro Focus COBOL devem ser as seguintes: AIX 4.2.1 Micro Focus COBOL Versão 4.0.20 (PRN 12.03 ou superior) Micro Focus COBOL Versão 4.1.10 (PRN 13.04 ou superior) AIX 4.3 Micro Focus COBOL Server Express Versão 1.0 Nota: Para obter informações sobre o suporte do DB2 para procedimentos armazenados do Micro Focus COBOL e UDFs no AIX 4.3, consulte a página Web DB2 Application Development: http://www.ibm.com/software/data/db2/udb/ad Para gerar os aplicativos de 64 bits com o compilador IBM XL Fortran para AIX Versão 5.1.0, utilize a opção "-q64" nas etapas de compilação e conexão. Observe que os aplicativos de 64 bits não são suportados em versões anteriores deste compilador. HP-UX A versão listada para o compilador C++ deve ser a seguinte: HP aC++, Versão A.03.25 Nota: A HP não suporta compatibilidade binária entre objetos compilados com compiladores antigos e novos, portanto isso forçará a recompilação de qualquer aplicativo C++ construído para acessar o DB2 em HP-UX. Os aplicativos C++ também devem ser construídos para manipular exceções com esse novo compilador. Esta é a URL do manual de transição aCC: http://www.hp.com/esy/lang/cpp/tguide. A parte destinada à incompatibilidade C++ é esta: http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.1.2 http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.3.3 A parte destinada à comparação entre C e C++ é esta: http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.3.3.1 Embora os aplicativos C e aCC sejam compatíveis, ao utilizar dois tipos de objetos diferentes, o objeto que contém "main" deve ser compilado com a aCC e o executável final deve ser ligado com aCC. Linux O DB2 para Linux suporta a seguinte versão REXX: Object REXX Interpreter para Linux Versão 2.1 |Linux/390 O DB2 para Linux/390 suporta somente Java, C e C++. OS/2 As versões listadas para o compilador C/C++ deve ser o seguinte: IBM VisualAge C++ para OS/2 Versão 3.6.5 e Versão 4.0 Nota: Faça o download dos FixPaks disponíveis mais recentes destas versões dos compiladores no endereço: http://www.ibm.com/software/ad/vacpp/service/csd.html |Para limitações no suporte a serviço futuro para esses compiladores |VisualAge C++, consulte as novas seções em: | http://www-4.ibm.com/software/ad/vacpp/ Solaris As versões listadas para o compilador Micro Focus COBOL devem ser as seguintes: Micro Focus COBOL Server Express Versão 1.0 Sistemas Operacionais Windows de 32 bits As versões listadas para o compilador IBM VisualAge C++ devem ser as seguintes: IBM VisualAge C++ para Windows Versões 3.6.5 e 4.0 Nota: Faça o download dos FixPaks disponíveis mais recentes destas versões dos compiladores no endereço: http://www.ibm.com/software/ad/vacpp/service/csd.html |Para limitações no suporte a serviço futuro para esses compiladores |VisualAge C++, consulte as novas seções em: | http://www-4.ibm.com/software/ad/vacpp/ As versões listadas para o compilador Micro Focus COBOL devem ser as seguintes: Micro Focus COBOL Versão 4.0.20 Micro Focus COBOL Net Express Versão 3.0 34.1.2 Programas de Amostra O seguinte deve ser incluído na seção "Ligação de Objeto e Amostras Incorporadas": salarycltvc Uma amostra Visual C++ DB2 CLI que chama o procedimento armazenado do Visual Basic, salarysrv. SALSVADO Uma amostra de procedimento armazenado de automação OLE (SALSVADO) e um cliente SALCLADO (SALCLADO), implementado em Visual Basic de 32 bits e ADO, que calcula o salário médio na tabela staff2. O seguinte deve ser incluído na seção "Gerenciamento de Log de Amostras de Saídas do Usuário": Aplicativos em AIX utilizando ADSM API Client no nível 3.1.6 e posterior devem ser construídas com chamadas ao compilador xlc_r ou xlC_r e não com xlc ou xlC, mesmo que os aplicativos possuam thread simples. Isto assegura que as bibliotecas possuam thread de segurança. Isto se aplica ao Gerenciamento de Log de Amostra de Saída do Usuário, db2uext2.cadsm. Caso tenha um aplicativo que é compilado com uma biblioteca sem thread de segurança, você pode aplicar a correção de teste IC21925E ou contactar seu fornecedor do aplicativo. A correção de teste está disponível no servidor ftp anónimo index.storsys.ibm.com. Isto irá regredir o nível do ADSM API para 3.1.3. ------------------------------------------------------------------------ 34.2 Capítulo 3. Informações Gerais para a Construção de Aplicativos do DB2 34.2.1 Construir Arquivos, Makefiles e Utilitários de Verificação de Erro A entrada para bldevm na tabela 16 deve ser lida: bldevm O programa de amostra do monitor de evento, evm (disponível apenas no AIX, OS/2 e ambientes operacionais Windows de 32 bits). A tabela 17 deve incluir as entradas: bldmevm O programa de amostra do monitor de evento, evm, com o compilador Microsoft Visual C++. bldvevm O programa de amostra do monitor de evento, evm, com o compilador VisualAge C++. ------------------------------------------------------------------------ 34.3 Capítulo 4. Construindo Applets e Aplicativos Java 34.3.1 Definindo o Ambiente Se estiver usando o IBM JDK 1.1.8 em plataformas suportadas para construir programas SQLJ, será necessária uma geração do JDK datando de 24 de novembro de 1999 (ou posterior). Caso contrário, você poderá obter erros JNI panic durante a compilação. Se estiver usando o IBM JDK 1.2.2 em plataformas suportadas para construir programas SQLJ, será necessária uma geração do JDK datando de 17 de abril de 2000 (ou de data posterior). Caso contrário, você poderá obter erros Tipo Java inválido durante a compilação. |Para as subseções AIX, HP-UX, Linux |e Solaris, substitua as informações sobre o JBC 2.0 pelo |seguinte: Usando o driver JDBC 2.0 com Aplicativos Java O driver JDBC 1.22 ainda é o driver padrão em todos os sistemas operacionais. Para aproveitar as vantagens dos novos recursos do JDBC 2.0, você deve instalar o suporte JDK 1.2. Antes de executar um aplicativo que utiliza as vantagem dos novos recursos do JDBC 2.0, você deve configurar seu ambiente emitindo o comando usejdbc2 a partir do diretório sqllib/java12. Se você deseja que seus aplicativos utilizem sempre o driver JDBC 2.0, considere a inclusão da seguinte linha no seu perfil de login, tal como .profile, ou seu molde de script de inicialização tal como .bashrc, .cshrc ou .kshrc: . sqllib/java12/usejdbc2 Assegure-se que este comando seja colocado após o comando para executar o db2profile, como o usejdbc2 deve ser executado após o db2profile. Para retornar ao driver JDBC 1.22, execute o seguinte comando a partir do diretório sqllib/java12: . usejdbc1 Usando o driver JDBC 2.0 com Procedimentos Armazenados Java e UDFs Para utilizar o driver JDBC 2.0 com procedimentos armazenados Java e UDFs, você deve definir o ambiente da ID do usuário restrita para a sua instância. A ID do usuário restrita é db2fenc1. Para definir o ambiente para a ID do usuário restrita, execute as seguintes etapas: 1. Inclua a seguinte linha no perfil de ID do usuário restrito, assim como .profile ou o script de inicialização do shell da ID do usuário restrita, tal como .bashrc, .cshrc ou .kshrc: . sqllib/java12/usejdbc2 2. Emita o seguinte comando a partir do CLP: db2set DB2_USE_JDK12=1 Para retornar ao suporte do driver JDBC 1.22 para UDFs Java e procedimentos armazenados, execute as seguintes etapas: 1. Remova a seguinte linha do perfil da ID do usuário restrita, assim como .profile ou o script de inicialização do shell da ID do usuário restrita, tal como .bashrc, .cshrc ou .kshrc: . sqllib/java12/usejdbc2 2. Emita o seguinte comando a partir do CLP: db2set DB2_USE_JDK12= Se você deseja que seus aplicativos utilizem sempre o driver JDBC 2.0, pode incluir a seguinte linha no seu perfil de login, assim como .profile ou seu shell de script de inicialização tal como .bashrc, .cshrc ou .kshrc: . sqllib/java12/usejdbc2 Assegure-se que este comando seja colocado após o comando para executar o db2profile, como o usejdbc2 deve ser executado após o db2profile. |HP-UX |Os procedimentos armazenados Java e as funções definidas pelo |usuário não são suportadas no DB2 para HP-UX com JDK 1.1. Silicon Graphics IRIX Ao construir aplicativos SQLJ com o tipo de objeto -o32, usando o compilador Java JIT com JDK 1.2.2, se o tradutor SQLJ falhar em uma segmentação com defeito, tente desativar o compilador JIT com este comando: export JAVA_COMPILER=NONE JDK 1.2.2 é obrigatório para construção de programas Java SQLJ em Silicon Graphics IRIX. Sistemas Operacionais Windows de 32 bits Usando o driver JDBC 2.0 com Procedimentos Armazenados Java e UDFs Para utilizar o driver JDBC 2.0 com procedimentos armazenados Java e UDFs, você deve definir o ambiente definindo as seguintes etapas. 1. Emita o seguinte comando no diretório sqllib\java12: usejdbc2 2. Emita o seguinte comando a partir do CLP: db2set DB2_USE_JDK12=1 Para retornar ao suporte do driver JDBC 1.22 para UDFs Java e procedimentos armazenados, execute as seguintes etapas: 1. Emita o seguinte comando no diretório sqllib\java12: usejdbc2 2. Emita o seguinte comando a partir do CLP: db2set DB2_USE_JDK12= 34.3.1.1 Nível JDK no OS/2 Algumas mensagens não serão exibidas no OS/2 que executar versões do JDK 1.1.8 lançado antes de 09/99. Certifique-se de que tenha o último JDK, Versão 1.1.8. |34.3.1.2 Java2 no HP-UX |Para executar os procedimentos armazenados no Java2, o caminho da |biblioteca compartilhada precisa ser alterado para ser semelhante ao |seguinte: |export SHLIB_PATH=$JAVADIR/jre/lib/PA_RISC:$JAVADIR/ |jre/lib/PA_RISC/classic:$HOME/sqllib/lib:/usr/lib:$SHLIB_PATH |$JAVADIR é a localização do SDK do Java2. ------------------------------------------------------------------------ 34.4 Capítulo 5. Construindo procedimentos SQL 34.4.1 Definindo o Ambiente de Procedimentos SQL Estas instruções constituem um adendo das instruções para configuração do ambiente do DB2 em "Configuração". |Para obter suporte aos procedimentos SQL, é necessário instalar o |Cliente de Desenvolvimento de aplicativos no servidor. Para obter |informações sobre como instalar o Cliente de Desenvolvimento de Aplicativos, |consulte o manual Iniciação Rápida referente à sua |plataforma.Para obter os compiladores C e C++ suportados pelo |DB2 em sua plataforma, consulte "Software Suportado pela |Plataforma". Nota: Num sistema de arquivos FAT do OS/2, você está limitado a um nome de esquema para Procedimentos SQL de oito caracteres ou menos. O sistema de arquivos HPFS tem que ser usado para nomes de esquema com mais de oito caracteres. A configuração do compilador consiste em duas partes: definição das variáveis de ambiente para o compilador e definição do comando de configuração. As variáveis de ambiente fornecem os caminhos para os binários, bibliotecas e arquivos incluídos do compilador. O comando de compilação é o comando completo que o DB2 usará para compilar arquivos C gerados para procedimentos SQL. 34.4.2 Definindo as Variáveis de Ambiente do Compilador Existem regras diferentes para a configuração do ambiente nos sistemas operacionais OS/2, Windows e UNIX, conforme a explicação abaixo. Em alguns casos, não é necessária uma configuração; em outros, a variável de registro DB2_SQLROUTINE_COMPILER_PATH DB2 deve ser definida para apontar para um script de executável que defina as variáveis de ambiente adequadamente. Nota: |Você pode utilizar o comando db2set ou o diálogo Opções |de construção de procedimentos armazenados SQL no Construtor de procedimentos |armazenados para definir o valor dessa variável de registro do DB2. O |uso do diálogo Opções de construção de procedimentos armazenados SQL elimina a |necessidade de acessar fisicamente o servidor do banco de dados ou de |reiniciar o servidor do banco de dados para que as alterações sejam |efetivadas. | No OS/2: para IBM VisualAge C++ para OS/2 Versão 3.6: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcxxo\bin\setenv.cmd" para IBM VisualAge C++ para OS/2 Versão 4: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcpp40\bin\setenv.cmd" Nota: Para estes comandos, supõe-se que o compilador C++ esteja instalado na unidade c:. Se necessário, altere a unidade ou o caminho, para refletir a localização do compilador C++ em seu sistema. Nos sistemas operacionais de 32 bits do Windows, se as variáveis de ambiente de seu compilador estiverem definidas como variáveis SYSTEM, nenhuma configuração será necessária. Do contrário, defina a variável de registro DB2_SQLROUTINE_COMPILER_PATH DB2 da seguinte forma: para Microsoft Visual C++ Versões 5.0: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\devstudio\vc\bin\vcvars32.bat" para Microsoft Visual C++ Versões 6.0: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\Micros~1\vc98\bin\vcvars32.bat" para IBM VisualAge C++ para Windows Versão 3.6: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcxxw\bin\setenv.bat" para IBM VisualAge C++ para Windows Versão 4: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcppw40\bin\setenv.bat" Nota: Para estes comandos, supõe-se que o compilador C++ esteja instalado na unidade c:. Se necessário, altere a unidade ou o caminho, para refletir a localização do compilador C++ em seu sistema. Nos sistemas operacionais UNIX, o DB2 gerará o arquivo de script executável $HOME/sqllib/function/routine/sr_cpath (o qual contém os valores padrão das variáveis de ambiente do compilador) na primeira vez que um procedimento armazenado for compilado. Este arquivo poderá ser editado se os valores padrão não forem apropriados para o seu compilador. Alternativamente, você pode definir a variável de registro DB2_SQLROUTINE_COMPILER_PATH DB2 para conter o nome completo do caminho de outro script executável que especifique as definições desejadas (veja os exemplos acima). 34.4.3 Personalizando o Comando de Compilação A instalação do Cliente de Desenvolvimento de Aplicativos fornece um comando de compilação padrão que funciona para pelo menos um dos compiladores suportados em cada plataforma: AIX: IBM C Set++ para AIX Versão 3.6.6 Solaris: SPARCompiler C++ Versões 4.2 e 5.0 HP-UX: HP-UX C++ Versão A.12.00 Linux: GNU/Linux g++ Versão egcs-2.90.27 980315 (release egcs-1.0.2) PTX: ptx/C++ Versão 5.2 OS/2: IBM VisualAge C++ para OS/2 Versão 3 Windows NT e Windows 2000: Microsoft Visual C++ Versões 5.0 e 6.0 Para usar outros compiladores ou personalizar o comando padrão, você deverá definir a variável de registro DB2_SQLROUTINE_COMPILE_COMMAND DB2 com um comando do tipo: db2set DB2_SQLROUTINE_COMPILE_COMMAND=compilation_command em que compilation_command seja o comando de compilação C ou C++, incluindo as opções e os parâmetros requeridos para criar procedimentos armazenados. No comando de compilação, use a palavra-chave SQLROUTINE_FILENAME para substituir o nome do arquivo pelos logs de mensagens e arquivos de biblioteca compartilhados de SQC, C, PDB, DEF, EXP. Somente para o AIX, use a palavra-chave SQLROUTINE_ENTRY para substituir o nome do ponto de entrada. Nota: Você pode utilizar o comando db2set ou o diálogo Opções de construção de procedimentos armazenados SQL no Construtor de procedimentos armazenados para definir o valor dessa variável de registro do DB2. O uso do diálogo Opções de construção de procedimentos armazenados SQL elimina a necessidade de acessar fisicamente o servidor do banco de dados ou de reiniciar o servidor do banco de dados para que as alterações sejam efetivadas. A seguir estão os valores padrão para DB2_SQLROUTINE_COMPILE_COMMAND dos compiladores C ou C++ nas plataformas de servidor suportadas. AIX Para usar o IBM C para AIX Versão 3.6.6: db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlc -H512 -T512 \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \ -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2 Para usar o IBM C Set++ para AIX Versão 3.6.6: db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlC -H512 -T512 \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \ -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2 Este será o comando de compilação padrão, se a variável de registro DB2_SQLROUTINE_COMPILE_COMMAND DB2 não for definida. Nota: Para compilar procedimentos SQL de 64 bits no AIX, inclua a opção -q64 nos comandos anteriores. Para usar o IBM VisualAge C++ para AIX Versão 4: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" Se você não especificar o arquivo de configuração após o comando vacbld, o DB2 criará o arquivo de configuração padrão na primeira tentativa de criar qualquer procedimento SQL: $HOME/sqllib/function/routine/sqlproc.icc Se quiser usar seu próprio arquivo de configuração, poderá especificá-lo ao definir o valor de registro do DB2 para DB2_SQLROUTINE_COMPILE_COMMAND: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%/function/sqlproc.icc" HP-UX Para usar o HP C Compiler Versão A.11.00.03: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc +DAportable +ul -Aa +z \ -I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; \ ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o \ -L$HOME/sqllib/lib -ldb2 Para usar o HP-UX C++ Versão A.12.00: db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC +DAportable +a1 +z -ext \ -I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; \ ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o \ -L$HOME/sqllib/lib -ldb2 Este será o comando de compilação padrão, se a variável de registro DB2_SQLROUTINE_COMPILE_COMMAND DB2 não for definida. Linux Para usar o GNU/Linux gcc Versão 2.7.2.3: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2 Para usar o GNU/Linux g++ Versão egcs-2.90.27 980315 (release egcs-1.0.2): db2set DB2_SQLROUTINE_COMPILE_COMMAND=g++ \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2 Este será o comando de compilação padrão, se a variável de registro DB2_SQLROUTINE_COMPILE_COMMAND DB2 não for definida. PTX Para usar o ptx/C Versão 4.5: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -KPIC \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME.so -L$HOME/sqllib/lib -ldb2 ; \ cp SQLROUTINE_FILENAME.so SQLROUTINE_FILENAME Para usar o ptx/C++ Versão 5.2: db2set DB2_SQLROUTINE_COMPILE_COMMAND=c++ -KPIC \ -D_RWSTD_COMPILE_INSTANTIATE=0 -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME.so -L$HOME/sqllib/lib -ldb2 ; \ cp SQLROUTINE_FILENAME.so SQLROUTINE_FILENAME Este será o comando de compilação padrão, se a variável de registro DB2_SQLROUTINE_COMPILE_COMMAND DB2 não for definida. OS/2 Para usar o IBM VisualAge C++ para OS/2 Versão 3: db2set DB2_SQLROUTINE_COMPILE_COMMAND="icc -Ge- -Gm+ -W2 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /B\"/NOFREE /NOI /ST:64000\" SQLROUTINE_FILENAME.def %DB2PATH%\lib\db2api.lib" Este será o comando de compilação padrão, se a variável de registro DB2_SQLROUTINE_COMPILE_COMMAND DB2 não for definida. Para usar IBM VisualAge C++ para OS/2 Versão 4: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" Se você não especificar o arquivo de configuração após o comando vacbld, o DB2 criará o arquivo de configuração padrão na primeira tentativa de criar qualquer procedimento SQL: %DB2PATH%\function\routine\sqlproc.icc Se quiser usar seu próprio arquivo de configuração, poderá especificá-lo ao definir o valor de registro do DB2 para DB2_SQLROUTINE_COMPILE_COMMAND: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%\function\sqlproc.icc" Solaris Para usar o SPARCompiler C Versão 4.2 e 5.0: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -xarch=v8plusa -Kpic \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib \ -R$HOME/sqllib/lib -ldb2 Para usar o SPARCompiler C++ Versão 4.2 e 5.0: db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC -xarch=v8plusa -Kpic \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib \ -R$HOME/sqllib/lib -ldb2 Este será o comando de compilação padrão, se a variável de registro DB2_SQLROUTINE_COMPILE_COMMAND DB2 não for definida. Notas: 1. A opção do compilador -xarch=v8plusa foi incluída no comando do compilador padrão. Para detalhes sobre o porque da inclusão desta opção, consulte 34.8, "Capítulo 12. Construindo Aplicativos Solaris". 2. Para compilar procedimentos SQL de 64 bits no Solaris, retire a opção -xarch=v8plusa e inclua a opção -xarch=v9 nos comandos anteriores. Windows NT e Windows 2000 Nota: Os procedimentos SQL não são suportados no Windows 98 ou Windows 95. Para usar o Microsoft Visual C++ Versões 5.0 e 6.0: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cl -Od -W2 /TC -D_X86_=1 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /link -dll -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll %DB2PATH%\lib\db2api.lib Este será o comando de compilação padrão, se a variável de registro DB2_SQLROUTINE_COMPILE_COMMAND DB2 não for definida. Para usar o IBM VisualAge C++ para Windows Versão 3.6: db2set DB2_SQLROUTINE_COMPILE_COMMAND="ilib /GI SQLROUTINE_FILENAME.def & icc -Ti -Ge- -Gm+ -W2 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /B\"/ST:64000 /PM:VIO /DLL\" SQLROUTINE_FILENAME.exp %DB2PATH%\lib\db2api.lib" Para usar o IBM VisualAge C++ para Windows Versão 4: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" Se você não especificar o arquivo de configuração após o comando vacbld, o DB2 criará o arquivo de configuração padrão na primeira tentativa de criar qualquer procedimento SQL: %DB2PATH%\function\routine\sqlproc.icc Se quiser usar seu próprio arquivo de configuração, poderá especificá-lo ao definir o valor de registro do DB2 para DB2_SQLROUTINE_COMPILE_COMMAND: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%\function\sqlproc.icc" Para retornar às opções do compilador padrão, defina o valor de registro do DB2 para DB2_SQLROUTINE_COMPILE_COMMAND a fim de anular com o seguinte comando: db2set DB2_SQLROUTINE_COMPILE_COMMAND= 34.4.4 Retendo Arquivos Intermediários Você precisa excluir manualmente arquivos intermediários que podem restar quando um procedimento SQL não é criado com sucesso. Esses arquivos estão nos seguintes diretórios: UNIX $DB2PATH/function/routine/sqlproc/$DATABASE/$SCHEMA/tmp em que $DB2PATH representa o diretório no qual a instância foi criada, $DATABASE representa o nome do banco de dados e $SCHEMA representa o nome do esquema com o qual os procedimentos SQL foram criados. OS/2 e Windows %DB2PATH%\function\routine\sqlproc\ %DATABASE%\%SCHEMA%\tmp em que %DB2PATH% representa o diretório no qual a instância foi criada, %DATABASE% representa o nome do banco de dados e %SCHEMA% o nome do esquema com o qual os procedimentos SQL foram criados. 34.4.5 Backup e Restauração Quando um procedimento SQL é criado, a biblioteca compartilhada/DLL gerada também é mantida na tabela de catálogo se for menor que 2 MB. Quando é feito o backup e a restauração do banco de dados, qualquer procedimento SQL com uma biblioteca compartilhada/DLL gerada que seja menor que 2 MB terá seu backup e a restauração feitos com a versão mantida na tabela de catálogo. Se você possuir os procedimentos SQL com uma biblioteca compartilhada/DLL gerada que seja maior que 2 MB, assegure-se de fazer também o backup e a restauração do sistema de arquivos com o backup e a restauração do banco de dados. Se não, você terá que recriar a biblioteca compartilhada/DLL do procedimento SQL manualmente, usando a fonte na tabela de catálogo syscat.procedures. Nota: No momento da recuperação, serão removidas todas as executáveis do procedimento SQL no sistema de arquivos pertencentes ao banco de dados sendo recuperado. Se o parâmetro de configuração de criação do índice (indexrec) estiver definido em RESTART, todas as executáveis do procedimento SQL serão extraídas da tabela de catálogo e devolvidas ao sistema de arquivos no tempo de conexão seguinte. Caso contrário, as executáveis SQL serão extraídas na primeira execução dos procedimentos SQL. As executáveis serão devolvidas ao seguinte diretório: UNIX $DB2PATH/function/routine/sqlproc/$DATABASE em que $DB2PATH representa o diretório no qual a instância foi criada e $DATABASE representa o nome do banco de dados com o qual os procedimentos SQL foram criados. OS/2 e Windows %DB2PATH%\function\routine\sqlproc\%DATABASE% em que %DB2PATH% representa o diretório no qual a instância foi criada e %DATABASE% representa o nome do banco de dados com o qual os procedimentos SQL foram criados. 34.4.6 Criando Procedimentos SQL Defina o parâmetro de configuração KEEPDARI do gerenciador de banco de dados como 'NO' para procedimentos SQL de desenvolvimento. Se um procedimento SQL for carregado e mantido após ser executado, você terá problemas para eliminá-lo e recriá-lo com o mesmo nome, porque a biblioteca não poderá ser atualizada e os executáveis não poderão ser eliminados do sistema de arquivos. Você também terá problemas quando tentar reverter as alterações ou eliminar o banco de dados, porque os executáveis não poderão ser eliminados. Consulte 'Atualizando o Arquivo do Gerenciador de Banco de Dados' no "Capítulo 2. Configuração" do 'Manual de Construção de Aplicativo' para obter maiores informações sobre a definição do parâmetro KEEPDARI. Nota: Os procedimentos SQL não suportam os seguintes tipos de dados de parâmetros: o LONG VARGRAPHIC o Binary Large Object (BLOB) o Character Large Object (CLOB) o Double-byte Character Large Object (DBCLOB) 34.4.7 Chamando Procedimentos Armazenados O primeiro parágrafo em 'Usando o Comando CALL' deve ser lido: Para usar o comando call, você deve digitar o nome do procedimento armazenado mais quaisquer parâmetros IN ou INOUT, e também '?' como um marcador de lugar para cada parâmetro OUT. Para obter detalhes sobre a sintaxe do comando CALL, consulte 10.14, "CALL". |34.4.8 Distribuindo Procedimentos SQL Compilados |Nota: Para distribuir procedimentos SQL compilados entre servidores do DB@, execute |as seguintes etapas para cada servidor do DB2 que age como origem ou destino |de um procedimento SQL compilado: | Etapa 1. Instale o FixPak 3 Etapa 2. Emita o comando db2updv7 para permitir que o DB2 extraia e instale procedimentos SQL compilados: db2updv7 -d database_name | |Quando você define um procedimento SQL, ele é convertido em um programa C, |pré-compilado, limitado pelo banco de dados de destino, compilado e ligado |para criar uma biblioteca compartilhada. As etapas de compilação e |ligação exigem que um compilador C ou C++ esteja disponível na máquina do |servidor do banco de dados. No entanto, quando o procedimento SQL |estiver definido, você pode distribui-lo na forma compilada para bancos de |dados DB2 que são executados na mesma plataforma, mas que não necessariamente |têm um compilador C ou C++ instalado. O DB2 permite que o usuário |extraia procedimentos SQL na forma compilada de um banco de dados e instale-os |na forma compilada em outro banco de dados. |O DB2 fornece uma interface de linha de comandos e uma interface de |programação para as operações de extração e instalação. A interface de |linha de comandos consiste em dois comandos CLP: GET ROUTINE e PUT |ROUTINE. A interface de programação consiste em dois procedimentos |armazenados incorporados: GET_ROUTINE_SAR e |PUT_ROUTINE_SAR. Para obter mais informações sobre a interface de |linha de comandos, consulte a Referência do Comando. Para obter mais |informações sobre a interface de programação, consulte a Referência |SQL. |Para distribuir um procedimentos SQL compilado de um servidor do banco de |dados para outro, execute as seguintes etapas: | Etapa 1. Desenvolva o aplicativo, definindo os procedimentos SQL que fazem parte do aplicativo. Etapa 2. Após testar os procedimentos, extraia a versão compilada de cada procedimento para um arquivo diferente. Para obter mais informações, consulte o comando GET ROUTINE na Referência do comando, ou o procedimento armazenado _ROUTINE_SAR na Referência SQL. Etapa 3. Instale a versão compilada de cada procedimento em cada servidor, emitindo o comando PUT ROUTINE ou chamando o procedimento armazenado PUT_ROUTINE_SAR, utilizando os arquivos criados por 2. Cada servidor do banco de dados deve ter o mesmo nível de sistema operacional e de DB2. ------------------------------------------------------------------------ 34.5 Capítulo 7. Construindo Aplicativos HP-UX. 34.5.1 HP-UX C Em "Aplicativos Multithread", o arquivo script bldmt foi revisado com opções de compilação diferentes. A nova versão está no diretório sqllib/samples/c. 34.5.2 HP-UX C++ Em construir scripts, a variável do compilador C++ CC foi substituída por aCC, para o compilador HP aC++. Os scripts revisados estão no diretório sqllib/samples/cpp. A opção de compilação "+u1" deve ser usada para construir procedimentos armazenados e UDFs com o compilador aCC. Esta opção permite o acesso de dados desalinhados. Os scripts de construção de amostra fornecidos com o DB2 para HP-UX, bldsrv e bldudf e o makefile de amostra não foram atualizados com esta opção. Eles devem ser revisados para incluir esta opção antes do uso. Esta é a nova etapa de compilação para os scripts bldsrv e bldudf: aCC +DAportable +u1 -Aa +z -ext -I$DB2PATH/include -c $1.C Em "Aplicativos Multithread", o arquivo script bldmt foi revisado com opções de compilação diferentes. A nova versão está no diretório sqllib/samples/cpp. ------------------------------------------------------------------------ 34.6 Capítulo 9. Construindo Aplicativos do OS/2 34.6.1 VisualAge C++ para OS/2 Versão 4.0 Para OS/2 e Windows, utilize o comando set em vez do comando export documentado nesta seção. Por exemplo, set CLI=tbinfo. Em 'Aplicativos DB2 CLI', subseção 'Construindo e Executando Aplicativos SQL Incorporados', para OS/2 e Windows o arquivo cliapi.icc deve ser usado em substituição ao arquivo cli.icc, porque aplicativos SQL incorporados precisam da biblioteca db2api.lib ligadas pelo cliapi.icc. ------------------------------------------------------------------------ 34.7 Capítulo 10. Construindo Aplicativos PTX 34.7.1 ptx/C++ Bibliotecas precisam ser ligadas com a opção -shared para construir procedimentos armazenados e funções definidas pelo usuário. No diretório sqllib/samples, o makefile, os scripts de construção bldsrv e o bldudf foram atualizados para incluir essa opção, como na seguinte etapa de ligação de bldsrv: c++ -shared -G -o $1 $1.o -L$DB2PATH/lib -ldb2 ------------------------------------------------------------------------ 34.8 Capítulo 12. Construindo Aplicativos Solaris 34.8.1 SPARCompiler C++ Problemas ao executar Aplicativos C/C++ e Procedimentos Armazenados no Solaris Quando utilizar o Sun WorkShop Compiler C/C++, se você tiver problemas com seu arquivo executável e quando você receber erros tais como: 1. Erro de sintaxe na linha 1: `(' unexpected 2. ksh: : não pode executar (em que nome do aplicativo é o nome do arquivo executável compilado) você deve tido um problema porque o compilador não produz arquivos executáveis válidos quando ligado com o libdb2.so. Uma sugestão para corrigir isto é incluir a seguinte opção do compilador nos seus comandos de compilação e ligação: -xarch=v8plusa por exemplo, ao compilar o aplicativo de amostra, dynamic.sqc: embprep dynamic sample embprep utilemb sample cc -c utilemb.c -xarch=v8plusa -I/export/home/db2inst1/sqllib/include cc -o dynamic dynamic.c utilemb.o -xarch=v8plusa -I/export/home/db2inst1 /sqllib/include \ -L/export/home/db2inst1/sqllib/lib -R/export/home/db2inst1/sqllib/lib -l db2 Notas: 1. Se você estiver usando Procedimentos SQL no Solaris e sua própria cadeia de compilação através da variável de perfil DB2_SQLROUTINE_COMPILE_COMMAND, por favor assegure-se de que tenha incluído a opção de compilador fornecida acima. O comando do compilador padrão inclui esta opção: db2set DB2_SQLROUTINE_COMPILE_COMMAND="cc -# -Kpic -xarch=v8plusa -I$HOME/sqllib/include \ SQLROUTINE_FILENAME.c -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -R$HOME/sqllib/lib -ldb2 2. Para compilar procedimentos SQL de 64 bits no Solaris, retire a opção -xarch=v8plusa e inclua a opção -xarch=v9 nos comandos anteriores. ------------------------------------------------------------------------ 34.9 Capítulo 13. Construindo Aplicativos para os Sistemas Operacionais de 32 bits do Windows 34.9.1 VisualAge C++ Versão 4.0 Para OS/2 e Windows, utilize o comando set em vez do comando export documentado nesta seção. Por exemplo, set CLI=tbinfo. Em 'Aplicativos DB2 CLI', subseção 'Construindo e Executando Aplicativos SQL Incorporados', para OS/2 e Windows o arquivo cliapi.icc deve ser usado em substituição ao arquivo cli.icc, porque aplicativos SQL incorporados precisam da biblioteca db2api.lib ligadas pelo cliapi.icc. ------------------------------------------------------------------------ Manual de Desenvolvimento de Aplicativo ------------------------------------------------------------------------ 35.1 Capítulo 2. Codificando um Aplicativo do DB2 35.1.1 Ativando o IBM DB2 Universal Database Project e Complementos de Ferramentas para Microsoft Visual C++ Antes de executar o comando db2vccmd (etapa 1), certifique-se de que tenha iniciado e parado o Visual C++ pelo menos uma vez com a ID de login atual.A primeira vez que executar o Visual C++, será criado um perfil para a ID do usuário que é atualizada pelo comando db2vccmd.Se não efetuar a inicialização nenhuma vez e tentar executar db2vccmd, poderão surgir erros como estes: "Registrando complemento do Projeto DB2 ...Falha! (rc = 2)" ------------------------------------------------------------------------ 35.2 Capítulo 6. Técnicas comuns do aplicativo DB2 |35.2.1 Gerando valores seqüenciais | |A geração de valores seqüenciais é um problema comum dos aplicativos de |banco de dados. A melhor solução para esse problema é utilizar objetos |de seqüência e expressões de seqüência no SQL. Cada objeto de seqüência |é um objeto de banco de dados com nome exclusivo que pode ser acessado somente |por expressões de seqüência. Existem suas expressões de |seqüência: a expressão PREVVAL e a expressão NEXTVAL. A expressão |PREVVAL retorna o último valor gerado para a seqüência especificada de uma |instrução anterior. A expressão NEXTVAL incrementa o valor dos objetos |de seqüência e retorna o novo valor de um objeto de seqüência. |Para criar um objeto de seqüência, emita a instrução CREATE |SEQUENCE. Por exemplo, para criar um objeto de seqüência denominado |id_values utilizando os atributos padrão, emita a seguinte instrução: |CREATE SEQUENCE id_values |Para exibir o valor atual do objeto de seqüência, emita uma instrução |VALUES utilizando a expressão PREVVAL: |VALUES PREVVAL FOR id_values | |1 |----------- | 1 | | 1 registro selecionado. |Você pode recuperar várias vezes o valor atual do objeto de seqüência e o |valor retornado pelo objeto de seqüência não muda até que você emita uma |expressão NEXTVAL. No exemplo a seguir, a expressão PREVVAL retorna o |valor 1 até que a expressão NEXTVAL incremente o valor do objeto de |seqüência: |VALUES PREVVAL FOR id_values | |1 |----------- | 1 | | 1 registro(s) selecionado(s). | |VALUES PREVVAL FOR id_values | |1 |----------- | 1 | | 1 registro(s) selecionado(s). | |VALUES NEXTVAL FOR id_values | |1 |----------- | 2 | | 1 registro(s) selecionado(s). | |VALUES PREVVAL FOR id_values | |1 |----------- | 2 | | 1 registro(s) selecionado(s). |Para atualizar o valor de uma coluna com o próximo valor do objeto de |seqüência, inclua a expressão NEXTVAL na instrução UPDATE, da seguinte |forma: |UPDATE staff | SET id = NEXTVAL FOR id_values | WHERE id = 350 |Para inserir uma nova linha na tabela utilizando o próximo valor do |objeto de seqüência, inclua a expressão NEXTVAL na instrução INSERT, da |seguinte forma: |INSERT INTO staff (id, name, dept, job) | VALUES (NEXTVAL FOR id_values, 'Kandil', 51, 'Mgr') |Para obter mais informações sobre as expressões PREVVAL e NEXTVAL, |consulte SQL Reference. |35.2.1.1 Controlando o comportamento da seqüência |Você pode ajustar o comportamento dos objetos de seqüência de acordo com as |necessidades do aplicativo. Os atributos de um objeto de seqüência são |alterados quando você emite a instrução CREATE SEQUENCE para criar um novo |objeto de seqüência e quando emite a instrução ALTER SEQUENCE para um objeto |de seqüência já existente. A seguir são fornecidos alguns dos atributos |de um objeto de seqüência que você pode especificar: | |Tipo de dados |A cláusula AS da instrução CREATE SEQUENCE especifica o tipo de dados |numéricos do objeto de seqüência. O tipo de dados, conforme |especificado no apêndice "Limites de SQL" do SQL |Reference, determina os valores mínimo e máximo possíveis para o objeto |de seqüência. Não é possível alterar o tipo de dados de um objeto de |seqüência; em vez disso, elimine o objeto de seqüência, emitindo a |instrução DROP SEQUENCE e a instrução CREATE SEQUENCE com o novo tipo de |dados. |Valor inicial |A cláusula START WITH da instrução CREATE SEQUENCE define o valor inicial |do objeto de seqüência. A cláusula RESTART WITH da instrução ALTER |SEQUENCE redefine o valor do objeto de seqüência para um valor |especificado. |Valor mínimo |A cláusula MINVALUE define o valor mínimo do objeto de seqüência. |Valor máximo |A cláusula MAXVALUE define o valor máximo do objeto de seqüência. |Valor do incremento |A cláusula INCREMENT BY define o valor que cada expressão NEXTVAL adiciona |ao objeto de seqüência. Para decrementar o valor do objeto de |seqüência, especifique um valor negativo. |Ciclo de seqüência |A cláusula CYCLE faz com que o valor de um objeto de seqüência que atingir |seu máximo ou mínimo retorne ao valor inicial na expressão NEXTVAL a |seguir. | |Por exemplo, para criar um objeto de seqüência denominado id_values |que inicia com o valor 0, tem o valor máximo 1000, é incrementado em 2 com |cada expressão NEXTVAL e retorna ao seu valor inicial quando o valor máximo |for atingido, emita a seguinte instrução: |CREATE SEQUENCE id_values | START WITH 0 | INCREMENT BY 2 | MAXVALUE 1000 | CYCLE |Para obter mais informações sobre as instruções CREATE SEQUENCE e ALTER |SEQUENCE, consulte SQL Reference. |35.2.1.2 Melhorando o desempenho com objetos de seqüência |Assim como as colunas de identidade, o uso de objetos de seqüência para |gerar valores normalmente melhora o desempenho dos aplicativos com comparação |com abordagens alternativas. A alternativa para objetos de seqüência é |criar uma tabela com uma única coluna que armazena o valor atual e incrementar |esse valor com um disparo ou sob controle do aplicativo. Em um ambiente |distribuído no qual os aplicativos acessam a tabela de uma coluna |simultaneamente, o bloqueio necessário para forçar o acesso serializado à |tabela pode afetar seriamente o desempenho. |Os objetos de seqüência evitam os problemas de bloqueio associados à |abordagem de tabela com uma única coluna e podem armazenar valores em |seqüência na cache a fim de melhorar o tempo de resposta do DB2. Para |maximizar o desempenho dos aplicativos que utilizam objetos de seqüência, |verifique se o objeto armazena em cache uma quantidade apropriada de valores |em seqüência. A cláusula CACHE das instruções CREATE SEQUENCE e ALTER |SEQUENCE especifica o número máximo de valores de seqüência que o DB2 gera e |armazena na memória. |Se o seu objeto de seqüência precisar gerar valores em ordem, sem |introduzir intervalos nessa ordem devido a falha no sistema ou desativação do |banco de dados, utilize as cláusulas ORDER e NO CACHE na instrução CREATE |SEQUENCE. A cláusula NO CACHE garante que não apareçam intervalos nos |valores gerados, mas isso reduz o desempenho do aplicativo, pois força o |objeto de seqüência a gravar no log do banco de dados sempre que gera um novo |valor. |35.2.1.3 Comparando objetos de seqüência com colunas de identidade |Apesar de os objetos de seqüência e colunas de identidade parecerem ter |finalidades semelhantes para aplicativos do DB2, existem várias diferenças |importantes: | * |A coluna de identidade gera automaticamente valores para a coluna em uma |única tabela. O objeto de seqüência gera valores seqüenciais que podem |ser utilizados em qualquer instrução SQL. * |A coluna de identidade gera valores que com certeza são exclusivos. |A inclusão da cláusula CYCLE em uma instrução CREATE SEQUENCE ou ALTER |SEQUENCE permite que o objeto de seqüência gere valores em duplicata. | ------------------------------------------------------------------------ 35.3 Capítulo 7. Procedimentos Armazenados |35.3.1 Falhas do Tipo DECIMAL em Rotinas Java do Linux |Esse problema ocorre porque o IBM Developer Kit para Java não cria |links com suas bibliotecas no diretório /usr/lib. O modelo |de segurança para rotinas do DB2 não permite que sejam acessadas bibliotecas |fora das bibliotecas do sistema padrão. Para ativar o suporte DECIMAL |em rotinas Java no Linux, execute as seguintes etapas: | 1. |Crie links simbólicos do IBM Developer Kit em bibliotecas Java para |/usr/lib/ emitindo o seguinte comando com autoridade de raiz: |Para o IBM Developer Kit para Java 1.1.8: | ln -sf /usr/jdk118/lib/linux/native_threads/* /usr/lib/ |Para o IBM Developer Kit para Java 1.3: | ln -sf /opt/IBMJava2-13/jre/bin/*.so /usr/lib/ 2. |Emita o comando ldconfig para atualizar a lista de bibliotecas |em todo o sistema. | |35.3.2 Usando Cursores nos Procedimentos Armazenados Recursivos |Para evitar erros ao usar Procedimentos SQL ou procedimentos armazenados |gravados na SQL embutida, feche todos os cursores abertos emitindo a instrução |CALL recursiva. |Por exemplo, suponha que o procedimento armazenado MYPROC contenha o |seguinte fragmento de código: | OPEN c1; | CALL MYPROC(); | CLOSE c1; |O DB2 retornará um erro quando MYPROC for chamado, porque o cursor c1 |ainda está aberto e quando MYPROC emitir uma instrução CALL recursiva. |O erro especificado retornado pelo DB2 depende das ações que MYPROC executa no |cursor. |Para chamar MYPROC com sucesso, grave novamente MYPROC para fechar todos os |cursores abertosantes de emitir a instrução CALL aninhada, conforme |mostrado no seguinte exemplo: |OPEN c1; |CLOSE c1; |CALL MYPROC(); |Feche todos os cursores abertos emitindo a instrução CALL aninhada para |evitar um erro. 35.3.3 Gravando os Procedimentos Armazenados de Automatização OLE A última sentença do parágrafo a seguir está incompleta a partir do segundo parágrafo sob a seção "Escrevendo os Procedimento Armazenados de automatização OLE": Após codificar o objeto de automatização OLE, você deve registrar os métodos do objeto como procedimentos armazenado usando a instrução CREATE PROCEDURE. Para registrar um procedimento armazenado de automatização OLE, emita uma instrução CREATE PROCEDURE com a cláusula LANGUAGE OLE. O nome externo consiste da identificação OLE progID do objeto de automatização OLE e do nome do método em separado pelo ! (ponto de exclamação). O objeto de automatização OLE precisa ser implementado como um servidor em processo (.DLL). ------------------------------------------------------------------------ 35.4 Capítulo 12. Trabalhando com Objetos Complexos: Tipos Estruturados Definidos pelo Usuário 35.4.1 Inserindo Atributos de Tipos Estruturados em Colunas A seguinte regra aplica-se às instruções SQL estáticas incorporadas: Para inserir um atributo de um tipo estruturado definido pelo usuário em uma coluna do mesmo tipo do atributo, coloque a variável do host que representa a instância do tipo entre parênteses e anexe o operador de dois pontos e o nome do atributo ao parêntese de fechamento. Por exemplo, considere a seguinte situação: - PERSON_T é um tipo estruturado que inclui o atributo NAME do tipo VARCHAR(30). - T1 é uma tabela que inclui uma coluna C1 do tipo VARCHAR(30). - personhv é a variável do host declarada para o tipo PERSON_T na linguagem de programação. A sintaxe adequada para inserir o atributo NAME na coluna C1 é: EXEC SQL INSERT INTO T1 (C1) VALUES ((:personhv)..NAME) ------------------------------------------------------------------------ 35.5 Capítulo 13. Utilizando Objetos Grandes (LOBs) |35.5.1 Suporte ao objeto grande (LOBs) em sistemas do banco de dados federados |O DB2 suporta três tipos de objetos grandes (LOBs): objetos grandes |de caracteres (CLOBs), objetos grandes de caracteres de duplo byte (DBCLOBs) e |objetos grandes binários (BLOBs). Para obter informações gerais sobre o |suporte ao LOB do DB2, consulte os seguintes manuais do DB2: | * |DB2 Application Development Guide * |DB2 SQL Reference * |DB2 Administration Guide: Planning | |Em um sistema do banco de dados federado, você pode acessar e manipular |LOBs em fontes de dados remotas. Como os LOBs podem ser muito grandes, |transferir os LOBs de uma fonte de dados remotas pode demorar. O banco |de dados federado do DB2 tenta minimizar a transferência de dados do LOB das |fontes de dados e também tenta entregar os dados do LOB requeridos diretamente |da fonte de dados para o aplicativo requerido sem materializar o LOB no |DB2. |Esta seção discute: | * |Como o DB2 recupera os LOBs * |Como os aplicativos podem utilizar os localizadores do LOB * |Restrições nos LOBs * |Mapeamentos entre os tipos de dados LOBs e não-LOBs * |Ajuste do sistema | |35.5.1.1 Como o DB2 recupera os LOBs |Os sistemas federados do DB2 utilizam dois mecanismos para recuperarem os |LOBs: streaming do LOB e materialização do LOB. |Streaming do LOB |Em streaming do LOB, os dados do LOB são recuperados em etapas. O |DB2 utiliza o streaming do LOB para dados em conjuntos de consultas de |resultados que são completamente pressionados. Por exemplo, considere a |seguinte consulta: |SELECT empname, picture FROM orc_emp_table WHERE empno = '01192345' |onde picture representa uma coluna do LOB e |orc_emp_table representa um pseudônimo que faz referência |a uma tabela do Oracle que contém dados do empregado. O processador de |consulta do DB2 marcará a coluna picture para streaming, |se ele decidir executar toda a consulta na fonte de dados do Oracle. No |período de execução, se o DB2 observar que um LOB é marcado para streaming, |ele recupera o LOB em etapas da fonte de dados. Em seguida, o DB2 |transfere os dados para o espaço de memória do aplicativo. |Materialização do LOB |Na materialização do LOB, os dados do LOB remotos são recuperados pelo DB2 |e armazenados localmente no servidor federado. O DB2 utiliza a |materialização do LOB quando: | * |A coluna do LOB não pode ser diferida ou movida continuamente. * |Uma função deve ser aplicada a uma coluna do LOB localmente, antes dos |dados serem transferidos. Isso acontece quando o DB2 compensa as |funções indisponíveis em uma fonte de dados remota. Por exemplo, o |Microsoft SQL Server não fornece uma função SUBSTR para as colunas do |LOB. Para compensar, o DB2 materializa a coluna do LOB localmente e |aplica a função SUBSTR do DB2 no LOB recuperado. | |35.5.1.2 Como os aplicativos podem utilizar localizadores do LOB |Os aplicativos podem solicitar localizadores do LOB para os LOBs |armazenados em fontes de dados remotos. Um localizador do LOB é um |valor de 4 bytes armazenado em uma variável do host que um programa pode |utilizar para consultar um valor do LOB (ou expressão do LOB) mantido no |sistema do banco de dados. Utilizando um localizador do LOB, um |programa poderá manipular o valor do LOB se o valor do LOB foi armazenado em |uma variável do host regular. A diferença em utilizar o localizador do |LOB é que não é preciso transportar o valor do LOB do servidor para o |aplicativo (e, possivelmente, de volta outra vez). Consulte o DB2 |Application Development Guide para obter informações adicionais sobre os |localizadores do LOB. |O DB2 pode recuperar os LOBs das fontes de dados remotos, armazená-los no |DB2 e emitir um localizador do LOB contra o LOB armazenado. Os |localizadores do LOB são liberados quando: | * |Os aplicativos emitem instruções SQL "FREE LOCATOR". * |Os aplicativos emitem as instruções COMMIT. * |O DB2 é reiniciado. | |35.5.1.3 Restrições nos LOBs |Quando utilizar e recuperar os LOBs, considere que: | * |O DB2 não consegue ligar LOBs remotos a uma variável de referência de |arquivo. * |Os LOBs não são suportados no modo de acesso direto. | |35.5.1.4 Mapeamentos entre os tipos de dados LOBs e não-LOBs |Existem poucos casos nos quais você pode mapear um tipo de dados LOB do DB2 |para um tipo de dados não-LOB em uma fonte de dados. Quando você |precisar criar um mapeamento entre uma coluna com um tipo de LOB do DB2 e sua |coluna de contraparte em uma fonte de dados, é recomendado que você utilize um |tipo de dados LOB como uma contraparte, se for possível. |Para criar um mapeamento, utilize a instrução DDL de mapeamento do tipo de |criação. Por exemplo: |CREATE TYPE MAPPING my_oracle_lob FROM sysibm.clob TO SERVER TYPE oracle TYPElong |onde: | |my_oracle_lob |É o nome do mapeamento de tipo. |sysibm.clob |É o tipo de dados do CLOB do DB2. |oracle |É o tipo de servidor ao qual você está se conectando. |long |É a contraparte do tipo de dados do Oracle. | 35.5.2 Ajuste do sistema Se um aplicativo que recupera os LOBs remotos retornar uma mensagem de erro indicando que não existem recursos de sistema suficientes para processar a instrução, aumente o valor do parâmetro de tamanho do heap do aplicativo, APPLHEAPSZ, no arquivo de configuração do banco de dados. Por exemplo: DB2 UPDATE DB CFG FOR EMPLOYEE USING APPLHEAPSZ 512 onde EMPLOYEE é o nome do banco de dados que você está ajustando e 512 é o valor do parâmetro de tamanho do heap do aplicativo. ------------------------------------------------------------------------ 35.6 Parte 5. Considerações de Programação do DB2 35.6.1 IBM DB2 OLE DB Provider A instalação do IBM DB2 Versão 7.1 FixPak 1 ou posterior corrige a condição que fez com que o DB2 emitisse o seguinte erro: Falha do teste de conexão devido a um erro na inicialização do provedor. O IBM OLE DB Provider não está disponível neste momento. Consulte o arquivo readme para obter mais informações. Para obter mais informações sobre a utilização do IBM OLE DB Provider para DB2, consulte http://www.ibm.com/software/data/db2/udb/ad/v71/oledb.html. ------------------------------------------------------------------------ 35.7 Capítulo 20. Programando em C e C++ A seguinte tabela suplementa as informações incluídas no capítulo 7, "Procedimentos Armazenados", no capítulo 15, "Gravando Funções e Métodos Definidos pelo Usuário" e no capítulo 20, ""Programando em C e C++". A tabela lista os mapeamentos suportados entre tipos de dados SQL e tipos de dados C para procedimentos armazenados, UDFs e métodos. 35.7.1 Tipos C/C++ para Procedimentos Armazenados, Funções e Métodos Tabela 22. Tipos de Dados SQL Mapeados para Declarações C/C++ Descrição do Tipo de Coluna Tipo de Coluna SQL Tipo de Dados de C/C++ SQL SMALLINT sqlint16 inteiro sinalizado de 16 (500 ou 501) bits INTEGER sqlint32 inteiro sinalizado de 32 (496 ou 497) bits BIGINT sqlint64 inteiro sinalizado de 64 (492 ou 493) bits REAL float Ponto flutuante de precisão (480 ou 481) simples DOUBLE double Ponto flutuante de precisão (480 ou 481) dupla DECIMAL(p,s) Não suportado. Para transmitir um valor (484 ou 485) decimal, defina o parâmetro para que seja um tipo de dados conversível de DECIMAL (por exemplo, CHAR ou DOUBLE) e converta explicitamente o argumento para esse tipo. CHAR(n) char[n+1] em que n é Cadeia de caracteres de (452 ou 453) extenso o suficiente comprimento fixo, terminada para manter os dados em nulo 1<=n<=254 CHAR(n) FOR BIT DATA char[n+1] em que n é Cadeia de caracteres de (452 ou 453) extenso o suficiente comprimento fixo para manter os dados 1<=n<=254 VARCHAR(n) char[n+1] em que n é Cadeia de comprimento (448 ou 449) (460 ou extenso o suficiente variável, terminada em nulo 461) para manter os dados 1<=n<=32 672 VARCHAR(n) FOR BIT struct { Cadeia de caracteres de DATA sqluint16 length; comprimento variável, não (448 ou 449) char[n] terminada em nulo } 1<=n<=32 672 LONG VARCHAR struct { Cadeia de caracteres de (456 ou 457) sqluint16 length; comprimento variável, não char[n] terminada em nulo } 32 673<=n<=32 700 CLOB(n) struct { Cadeia de caracteres de (408 ou 409) sqluint32 length; comprimento variável, não char data[n]; terminada em nulo com } indicador de comprimento de cadeia de 4 bytes 1<=n<=2 147 483 647 BLOB(n) struct { Cadeia binária de (404 ou 405) sqluint32 length; comprimento variável, não char data[n]; terminada em nulo com } indicador de comprimento de cadeia de 4 bytes 1<=n<=2 147 483 647 DATE char[11] formulário de caractere (384 ou 385) terminado em nulo TIME char[9] formulário de caractere (388 ou 389) terminado em nulo TIMESTAMP char[27] formulário de caractere (392 ou 393) terminado em nulo Nota: Os seguintes tipos de dados estão disponíveis somente no ambiente DBCS ou EUC quando pré-compilados com a opção WCHARTYPE NOCONVERT. GRAPHIC(n) sqldbchar[n+1] em que Cadeia de caracteres com (468 ou 469) n é extenso o duplo byte, de comprimento suficiente para manter fixo, terminada em nulo os dados 1<=n<=127 VARGRAPHIC(n) sqldbchar[n+1] em que Cadeia de caracteres com (400 ou 401) n é extenso o duplo byte, de comprimento suficiente para manter variável, não terminada em os dados nulo 1<=n<=16 336 LONG VARGRAPHIC struct { Cadeia de caracteres com (472 ou 473) sqluint16 length; duplo byte, de comprimento sqldbchar[n] variável, não terminada em } nulo 16 337<=n<=16 350 DBCLOB(n) struct { Cadeia de caracteres de (412 ou 413) sqluint32 length; comprimento variável, não sqldbchar data[n]; terminada em nulo com } indicador de comprimento de cadeia de 4 bytes 1<=n<=1 073 741 823 ------------------------------------------------------------------------ 35.8 Capítulo 21. Programando em Java 35.8.1 Assinatura do Método Java nos Procedimentos e Funções PARAMETER STYLE JAVA Se for especificada a alteração do nome do método Java na cláusula EXTERNAL NAME da instrução CREATE PROCEDURE ou CREATE FUNCTION, a assinatura do método Java deve corresponder ao mapeamento do tipo Java padrão da assinatura especificada após o nome do procedimento ou função. Por exemplo, o mapeamento Java padrão do tipo SQL INTEGER é "int", não "java.lang.Integer". |35.8.2 Conectando-se ao Servidor de Applet do JDBC |É essencial que o arquivo db2java.zip usado pelo applet Java esteja |no mesmo nível do FixPak que o servidor de applet do JDBC. Sob |circunstâncias normais, o db2java.zip é carregado a partir do Servidor |Web, no qual o servidor de applet do JDBC está em execução, conforme mostrado |na Figura 22 do manual. Isso assegura uma correspondência. Se, |no entanto, a configuração fizer com que o applet Java carregue o |db2java.zip a partir de uma localização diferente, poderá ocorrer uma |incompatibilidade. Antes do FixPak 2, isso poderia levar a falhas |inesperadas. Até o FixPak 2, a correspondência de níveis do FixPak |entre os dois arquivos era estritamente obrigatória no momento da |conexão. Se fosse detectada uma incompatibilidade, a conexão seria |rejeitada e o cliente recebia uma das seguintes exceções: | * |Se o db2java.zip estivesse no FixPak 2 ou posterior: | COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] | CLI0621E Configuração do servidor JDBC não suportada. * |Se o db2java.zip fosse anterior ao FixPak 2: | COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] | CLI0601E Manipulação de instrução inválida ou fechamento da instrução. | SQLSTATE=S1000 | |Se ocorrer uma incompatibilidade, o servidor de applet do JDBC registrará |uma das seguintes mensagens no arquivo jdbcerr.log: | * |Se o servidor de applet do JDBC estiver no FixPak 2 ou posterior: | jdbcFSQLConnect: As versões do cliente e Servidor de Applet do JDBC | (db2java.zip) não correspondem. Impossível prosseguir com a conexão., | einfo= -111 * |Se o servidor de applet do JDBC for anterior ao FixPak 2: | jdbcServiceConnection(): Pedido Inválido Recebido., einfo= 0 | ------------------------------------------------------------------------ 35.9 Apêndice B. Programas de Amostra O seguinte deve ser incluído na seção "Ligação de Objeto e Amostras Incorporadas": salarycltvc Uma amostra Visual C++ DB2 CLI que chama o procedimento armazenado do Visual Basic, salarysrv. SALSVADO Uma amostra de procedimento armazenado de automação OLE (SALSVADO) e um cliente SALCLADO (SALCLADO), implementado no Visual Basic de 32 bits e ADO, que calcula o salário médio na tabela staff2. ------------------------------------------------------------------------ Manual de Referência ao CLI ------------------------------------------------------------------------ 36.1 Fazendo o Bind dos Utilitários de Banco de Dados Utilizando o Cliente de Tempo de execução O Cliente de Tempo de execução não pode ser usado para fazer o bind dos utilitários de banco de dados (importar, exportar, reorganizar, o processador da linha de comandos) e o DB2 CLI faz o bind dos arquivos para cada banco de dados antes que possam ser utilizados com aquele banco de dados. Você deve utilizar o Cliente de Administração do DB2 ou o Cliente de Desenvolvimento de aplicativo do DB2 preferivelmente. Você deve fazer o bind destes utilitários de banco de dados e dos arquivos de bind do DB2 CLI para cada banco de dados antes que estes possam ser utilizados com aquele banco de dados. Em um ambiente de rede, se você estiver usando múltiplos clientes que executam em diferentes sistemas operacionais, em diferentes versões ou níveis de serviço do Db2, você deve fazer o bind dos utilitários uma vez para cada sistema operacional e para a combinação da versão do DB2. ------------------------------------------------------------------------ 36.2 Utilizando SQL Estático em Aplicativos CLI Para mais informações sobre o uso de SQL estático em aplicativos CLI, consulte a página Web em: http://www.ibm.com/software/data/db2/udb/staticcli/ ------------------------------------------------------------------------ 36.3 Limitações do Traçado de Perfil Estático JDBC/ODBC/CLI O traçado de perfil estático JDBC/ODBC/CLI atualmente objetiva aplicativos de avanço direto. Isto não é o significado para aplicativos complexos com muitos componentes funcionais e lógica de programa complexa durante a execução. Uma instrução SQL deve ser executada com sucesso para que ela possa ser capturada em uma seção de traçado de perfil. Em uma sessão de coincidência de instruções, as instruções não coincidentes dinâmicas continuam a ser executadas como chamadas JDBC/ODBC/CLI dinâmicas. Uma instrução SQL deve ser idêntica caractere-por-caractere para uma que tenha sido capturada e ligada a um candidato válido para a coincidência da instrução. Os espaços são significativos: por exemplo, "COL = 1" é considerado diferente de "COL=1". Use marcadores de parâmetros no lugar de literais para aumentar a que correspondentes. Ao executar um aplicativo com instruções SQL estáticas pré-ligadas os registradores dinâmicos que controlam o comportamento de instrução dinâmico não terá efeito sobre as instruções que são convertidas para estático. Se um aplicativo emite instruções DDL para objetos que são referenciados em instruções subseqüentes, você encontrará todas estas instruções no arquivo de captura. A Ferramenta de Bind de Traçado de Perfil Estático JDBC/ODBC/CLI tentará efetuar o bind. A tentativa de efetuar o bind será bem sucedida com DBMSs que suportam a opção de bind VALIDATE(RUN), mas isto irá falhar com um que não efetuar. Neste caso o aplicativo não deve usar o Traçado de Perfil Estático. O Administrador de Banco de Dados pode editar o arquivo de captura para incluir, alterar ou remover instruções SQL, baseado nos requisitos específicos do aplicativo. ------------------------------------------------------------------------ 36.4 Transformações ADT A seguintes informações complementam as contidas no manual. * Existe um novo tipo de descritor (smallint) SQL_DESC_USER_DEFINED_TYPE_CODE, com valores: SQL_TYPE_BASE 0 (esse não é um USER_DEFINED_TYPE) SQL_TYPE_DISTINCT 1 SQL_TYPE_STRUCTURED 2 Esse valor pode ser consultado com SQLColAttribute ou SQLGetDescField (somente IRD). Os seguintes atributos são incluídos para obter os nomes de tipos reais: SQL_DESC_REFERENCE_TYPE SQL_DESC_STRUCTURED_TYPE SQL_DESC_USER_TYPE Os valores acima podem ser consultados por meio de SQLColAttribute ou SQLGetDescField (somente IRD). * Inclua SQL_DESC_BASE_TYPE caso o aplicativo precise dela. Por exemplo, o aplicativo não pode reconhecer o tipo estruturado, mas pretende buscá-lo ou inseri-lo e deixar que outro código se encarregue dos detalhes. * Inclua o novo atributo de conexão chamado SQL_ATTR_TRANSFORM_GROUP para permitir que o aplicativo defina o grupo de transformação (em vez de utilizar a instrução SQL "SET CURRENT DEFAULT TRANSFORM GROUP"). * Inclua um novo atributo de instrução/conexão chamado SQL_ATTR_RETURN_USER_DEFINED_TYPES que possa ser definido ou consultado por meio do SQLSetConnectAttr, que faz com que o CLI retorne o valor SQL_DESC_USER_DEFINED_TYPE_CODE como tipo SQL válido. Este atributo é obrigatório antes de se usar qualquer transformação. o Por padrão, o atributo é desligado e faz com que a informação de tipo básico seja retornada como tipo SQL. o Quando ativado, SQL_DESC_USER_DEFINED_TYPE_CODE será retornado como SQL_TYPE. O aplicativo presume que você verificou SQL_DESC_USER_DEFINED_TYPE_CODE, e, então, recuperou o nome do tipo apropriado. O sistema estará disponível para SQLColAttribute, SQLDescribeCol e SQLGetDescField. * O SQLBindParameter não fornece o erro quando você efetua o bind do SQL_C_DEFAULT, porque não existe código que permita o SQLBindParameter especificar o tipo SQL_USER_DEFINED_TYPE. Serão usados os tipos C originais padrão com base no tipo SQL básico transferido para o servidor. Por exemplo: sqlrc = SQLBindParameter (hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 30, 0, &c2, 30, NULL); ------------------------------------------------------------------------ |36.5 Capítulo 3. Usando Recursos Avançados |36.5.1 Gravando Aplicativos de Multi-Threaded |Os seguintes devem ser adicionados no final da seção"Aplicativos Mistos |Multi-Threaded": |Nota: É recomendado que você não utilize o tamanho da pilha padrão, mas em vez |disso, aumente o tamanho da pilha para, no mínimo, 256 000. O DB2 |requer um tamanho de pilha mínimo de 256 000 ao chamar uma função do |DB2. Portanto, você deve assegurar-se de alocar um tamanho de pilha |total que seja grande o suficiente para seu aplicativo e os requisitos mínimos |para uma chamada da função do DB2. | |36.5.2 Scrollable Cursors |A seguinte informação deve ser incluída na seção "Cursores |deslocáveis": |36.5.2.1 Suporte ao cursor deslocável no lado do servidor para OS/390 | | | | | | | | |O cliente UDB para as plataformas Unix, Windows e OS/2 suporta cursores |deslocáveis atualizáveis no lado do servidor ao executar em bancos de dados |OS/390 Versão 7. Para acessar um cursor deslocável do OS/390 em um |ambiente em três camadas, o cliente e o gateway devem estar executando o DB2 |UDB Versão 7.1, FixPak 3 ou posterior. |Existem duas interfaces de ativação de aplicativos que podem acessar |cursores deslocáveis: ODBC e JDBC. A interface JDBC pode acessar |somente cursores deslocáveis estáticos, enquanto a interface ODBC pode acessar |somente cursores deslocáveis estáticos e guiados por teclas no lado do |servidor. |Atributos do cursor | | | | | | |A tabela abaixo lista os atributos padrão para cursores do OS/390 Versão 7 |no ODBC. | |Tabela 23. Atributos padrão para cursores do OS/390 no ODBC Tipo de Sensibilidade Cursor Concorrência Cursor cursor do cursor atualizável do cursor deslocável somente não não concorrência não deslocável avançoa especificado atualizável somente leitura estático insensível não concorrência deslocável atualizável somente leitura guiado por sensível atualizável concorrência deslocável conjunto de de valores teclas a Somente avanço é o comportamento padrão de um cursor deslocável sem a cláusula FOR UPDATE. Especificar FOR UPDATE em um cursor somente avanço cria um cursor atualizável, com concorrência de bloqueio, não deslocável. |Orientações de busca suportadas | |Todas as orientações de busca ODBC são suportadas através das interfaces |SQLFetchScroll ou SQLExtendedFetch. |Atualização do cursor guiado por conjunto de teclas | | | |Um cursor guiado por conjunto de teclas é atualizável. O driver CLI |anexa a cláusula FOR UPDATE na consulta, exceto quando a consulta é |emitida como SELECT ... FOR READ ONLY, ou se a cláusula |FOR UPDATE já existir. O cursor guiado por conjunto de |teclas implementado no DB2 para OS/390 é um cursor de concorrência de |valores. O cursor de concorrência de valores resulta em bloqueio |otimista, nos quais os bloqueios não são retidos até que seja tentada uma |atualização ou exclusão. Quando for tentada uma atualização ou |exclusão, o servidor do banco de dados compara os valores anteriores do |aplicativo recuperado com os valores atuais da tabela fundamental. Se |os valores corresponderem, a atualização ou exclusão ocorre. Se não |corresponderem, a operação falha. Caso ocorra uma falha, o aplicativo |deve consultar os valores novamente e reemitir a atualização ou a exclusão, se |ainda for aplicável. |O aplicativo pode atualizar o cursor guiado por teclas de suas |formas: | * |Emitir UPDATE WHERE CURRENT OF "" ou |DELETE WHERE CURRENT OF "" utilizando |SQLPrepare() com SQLExecute() ou |SQLExecDirect(). * |Utilizar SQLSetPos() ou SQLBulkOperations() para |atualizar, excluir ou incluir uma linha no conjunto de resultados. |Nota: As linhas incluídas em um conjunto de resultados através de |SQLSetPos() ou SQLBulkOperations() são inseridas na |tabela no servidor, mas não no conjunto de resultados do servidor. |Portanto, essas linhas não são atualizáveis e não são sensíveis a alterações |efetuadas por outras transações. Entretanto, as linhas inseridas |parecem parte do conjunto de resultados, já que são armazenadas em cache no |cliente. Todos os disparos aplicados nas linhas inseridas parecem ao |aplicativo como se não tivessem sido aplicadas. Para tornar as linhas |inseridas atualizáveis, sensíveis e para ver os resultados dos disparos |aplicados, o aplicativo deve emitir a consulta novamente para gerar o conjunto |de resultados. | | |Detectando problemas em aplicativos criados antes do suporte ao cursor deslocável | |Como o suporte ao cursor deslocável é novo, alguns aplicativos ODBC que |trabalhavam com releases anteriores do UDB para OS/390 ou UDB para Unix, |Windows, e OS/2 podem encontrar mudanças no comportamento ou no |desempenho. Isso ocorre porque antes do suporte aos cursores |deslocáveis, os aplicativos que solicitavam um cursor deslocável recebiam um |cursor somente de avanço. Para restaurar o comportamento anterior do |aplicativo, antes do suporte ao cursor deslocável, defina as seguintes |palavras-chave de configuração no arquivo db2cli.ini: | |Tabela 24. Valores de palavra-chave de configuração para restaurar o comportamento do aplicativo antes do suporte ao cursor deslocável Definição da palavra-chave de Descrição configuração PATCH2=6 Retorna uma mensagem indicando que os cursores deslocáveis (guiados por conjunto de teclas e estáticos) não são suportados. O CLI automaticamente rebaixa qualquer pedido de um cursor deslocável para um cursor somente de avanço. DisableKeysetCursor=1 Desativa os cursores deslocáveis guiados por teclas no lado do servidor e no lado do cliente. Pode ser utilizado para forçar o driver do CLI a fornecer ao aplicativo um cursor estático quando o cursor guiado por teclas for solicitado. UseServerKeysetCursor=0 Desativa o cursor guiado por teclas no lado do servidor para aplicativos que utilizam a biblioteca do cursor guiado por teclas no lado do cliente para simular um cursor guiado por teclas. Utilize essa opção somente quando ocorrerem problemas com o cursor guiado por teclas no lado do servidor, já que o cursor no lado do cliente resulta em muita sobra e geralmente tem desempenho mais baixo que o cursor no lado do servidor. |36.5.3 Utilizando o SQL Composto | | |A seguinte nota está faltando no manual: | Qualquer instrução SQL que pode ser preparada dinamicamente, diferentemente | de uma consulta, que pode ser executada como uma instrução dentro de uma | instrução composta. | | Nota: Dentro do SQL Composto Atômico, instruções savepoint, savepoint de | liberação e rollback para savepoint SQL são também desabilitadas. | Do contrário, o SQL Composto Atômico é desabilitado no savepoint. |36.5.4 Utilizando os Procedimentos Armazenados |36.5.4.1 Gravando um Procedimento Armazenado em CLI | |A seguir uma limitação não documentada nos procedimentos armazenados |CLI: | Se estiver fazendo chamadas aos procedimentos armazenados CLI múltiplos, | o aplicativo fecha os cursores abertos de um procedimento armazenado | antes de chamar o próximo procedimento armazenado. Mais especificamente, | o primeiro conjunto de cursores abertos devem ser fechados antes do | próximo procedimento armazenado tentar abrir um cursor. |36.5.4.2 Procedimentos Armazenados e Bind Automático da CLI | |O item a seguir suplementa as informações no manual: |O driver CLI/ODBC normalmente irá fazer o bind automático dos pacotes da |CLI na primeira vez que um aplicativo CLI/ODBC executar a SQL no banco de |dados, contanto que o usuário tenha o privilégio ou a autorização |adequada. O bind automático dos pacotes da CLI não pode ser executado |de dentro de um procedimento armazenado e, portanto, não ocorrerá se a |primeira coisa que um aplicativo fizer for chamar um procedimento armazenado |da CLI. Antes de executar um aplicativo da CLI que chama um |procedimento armazenado da CLI em um novo banco de dados do DB2, você deve |conectar os pacotes da CLI uma vez com este comando: | |UNIX |db2 bind /@db2cli.lst blocking all |Windows e OS/2 |db2bind "%DB2PATH%\bnd\@db2cli.lst" blocking | |A abordagem recomendada é sempre conectar estes pacotes ao mesmo tempo em |que o banco de dados é criado para evitar o bind automático no tempo de |execução. O bind automático poderá falhar se o usuário não tiver |privilégio ou se outro aplicativo tentar fazer o bind automático ao mesmo |tempo. ------------------------------------------------------------------------ |36.6 Capítulo 4. Configurando CLI/ODBC e executando amostras de aplicativos |36.6.1 Palavras-chave de configuração |Ignore o último parágrafo da palavra-chave CURRENTFUNCTIONPATH. A |informação correta é a seguinte: |Esta palavra-chave é utilizada como parte do processo de resolução de |referência de função não qualificada e procedimento armazenado que pode ter |sido definido com um nome de esquema diferente do esquema do usuário |atual. A ordem dos nomes de esquemas determina a ordem na qual os nomes |das funções e procedimentos são resolvidos. Para obter mais informações |sobre a resolução de funções e procedimentos, consulte a Referência |SQL. ------------------------------------------------------------------------ 36.7 Capítulo 5. Funções da CLI do DB2 36.7.1 SQLBindFileToParam - Ligar Referência do Arquivo do LOB ao Parâmetro do LOB O último parâmetro - IndicatorValue - na função CLI SQLBindFileToParam() está documentado atualmente como "saída (adiada)". Ele deve ser "entrada (adiada)". |36.7.2 SQLNextResult - Associar o Próximo Conjunto de Resultados a Outra Manipulação de Instrução | | |O seguinte texto deve ser incluído no Capítulo 5, "Funções do DB2 |CLI": |36.7.2.1 Objetivo |Especificação: DB2 CLI 7.x |36.7.2.2 Sintaxe |SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 | SQLHSTMT StatementHandle2); |36.7.2.3 Argumentos de Função | |Tabela 25. Argumentos SQLNextResult Tipo de DadosArgumento Uso Descrição SQLHSTMT StatementHandle entrada Manipulação de instrução. SQLHSTMT StatementHandle entrada Manipulação de instrução. |36.7.2.4 Uso |Um procedimento armazenado retorna vários conjuntos de resultados deixando |um ou mais cursores abertos após a saída. O primeiro conjunto de |resultados é sempre acessado através da manipulação de instrução chamada pelo |procedimento armazenado. Se vários conjuntos de resultados forem |retornados, o SQLMoreResults() ou o SQLNextResult() |poderão ser usados para descrever e buscar o conjunto de resultados. |SQLMoreResults() é usado para fechar o cursor do primeiro |conjunto de resultados e permitir que o próximo seja processado, contanto que |SQLNextResult() mova o próximo conjunto de resultados |paraStatementHandle2, sem fechar o cursor em |StatementHandle1. Ambas as funções retornarão |SQL_NO_DATA_FOUND, se não houver nenhum conjunto de resultados para ser |buscado. |O uso de SQLNextResult() permite que os conjuntos de resultados |sejam processados em qualquer ordem depois de terem sido transferidos para |outras manipulações de instrução. Chamadas mistas a |SQLMoreResults() e a SQLNextResult() são permitidas até |que não haja mais cursores (conjuntos de resultados abertos) em |StatementHandle1. |Quando SQLNextResult() retorna SQL_SUCCESS, o próximo conjunto |de resultados não é mais associado a StatementHandle1. Ao |invés disso, o próximo conjunto de resultados é associado a |StatementHandle2, como se uma chamada a SQLExecDirect() |tivesse executado com sucesso uma consulta em |StatementHandle2. O cursor, portanto, pode ser descrito usando |SQLNumResultSets(), SQLDescribeCol() ou |SQLColAttribute(). |Após SQLNextResult() ter sido chamado, o conjunto de resultados |agora associado a StatementHandle2 será removido da cadeia de |conjuntos de resultados restantes e não poderá ser usado novamente em |SQLNextResult() ou SQLMoreResults(). Isso |significa que para 'n' conjuntos de resultados, |SQLNextResult() pode ser chamado com sucesso no máximo |'n-1' vezes. |Se SQLFreeStmt() for chamado com a opção SQL_CLOSE ou |SQLFreeHandle() for chamado com HandleType definido para |SQL_HANDLE_STMT, todos os conjuntos de resultados pendentes nessa manipulação |de instrução serão descartados. |SQLNextResult() retornará SQL_ERROR se StatementHandle2 |tiver um cursor aberto ou StatementHandle1 e |StatementHandle2 não estiverem na mesma conexão. Se forem |retornados quaisquer erros ou avisos, SQLError() deverá sempre ser |chamado em StatementHandle1. |Nota: SQLMoreResults() também trabalha com uma consulta de parâmetros |com uma matriz de valores de parâmetros especificada com |SQLParamOptions() e SQLBindParameter(). |SQLNextResult(), no entanto, não suporta isso. | |36.7.2.5 Códigos de Retorno | * |SQL_SUCCESS * |SQL_SUCCESS_WITH_INFO * |SQL_STILL_EXECUTING * |SQL_ERROR * |SQL_INVALID_HANDLE * |SQL_NO_DATA_FOUND | |36.7.2.6 Diagnósticos | |Tabela 26. SQLNextResult SQLSTATEs SQLSTATE Descrição Explicação 40003 Falha no link de O link de comunicação entre o aplicativo 08S01 comunicação. e a fonte de dados falhou antes da conclusão da função. 58004 Queda do sistema Erro do sistema irrecuperável. inesperada. HY001 Falha na alocação de O DB2 CLI não consegue alocar a memória memória. requerida para suportar a execução ou a conclusão da função. HY010 Erro de seqüência da A função foi chamada durante uma operação função. de dados na execução (SQLParamData(), SQLPutData()). StatementHandle2 tem um cursor aberto associado a ele. A função foi chamada durante uma operação BEGIN COMPOUND e END COMPOUND SQL. HY013 Erro inesperado de O DB2 CLI não consegue acessar a memória manipulação de requerida para suportar a execução ou a memória. conclusão da função. HYT00 Tempo limite O período de tempo limite expirou antes expirado. da fonte de dados retornar o conjunto de resultados. Os tempos limite são suportados somente em sistemas de multitarefas, como o Windows 3.1 e o Macintosh System 7. O período de tempo limite pode ser definido usando-se o atributo SQL_ATTR_QUERY_TIMEOUT para SQLSetConnectAttr(). |36.7.2.7 Restrições |Somente SQLMoreResults() pode ser usado para consultas de |parâmetros. |36.7.2.8 Referências | * |"SQLMoreResults - Determina se Há Mais Conjuntos de Resultados" na página |535 * |"Retornando Conjuntos de Resultados de Procedimentos Armazenados" na |página 120 | ------------------------------------------------------------------------ 36.8 Apêndice D. Funções Escalares Estendidas 36.8.1 Funções de Data e Hora As funções a seguir estão incompletas a partir da seção Funções de Data e Hora do Apêndice D "Funções Escalares Estendidas": DAYOFWEEK_ISO( date_exp ) Retorna o dia da semana em date_exp como um valor inteiro no intervalo de 1 a 7, em que 1 representa segunda-feira. Observe a diferença entre esta função e a função DAYOFWEEK(), em que 1 representa domingo. WEEK_ISO( date_exp ) Retorna a semana do ano em date_exp como sendo um valor inteiro no intervalo de 1 a 53. A semana 1 é definida como a primeira do ano a conter uma quinta-feira. Portanto, Semana 1 é equivalente à primeira semana a conter 4 de Janeiro, visto que considera-se a Segunda-Feira o primeiro dia da semana. Observe que WEEK_ISO() é diferente da definição atual de WEEK(), que retorna um valor de até 54. Para a função WEEK(), a Semana 1 indica a semana que contém o primeiro Sábado. Isto é equivalente à semana que contém primeiro de Janeiro, mesmo que a semana contenha somente um dia. DAYOFWEEK_ISO() e WEEK_ISO() estão automaticamente disponíveis em um banco de dados criado na Versão 7. Se um banco de dados foi criado antes da Versão 7, essas funções podem não estar disponíveis. Para tornar as funções DAYOFWEEK_ISO() e WEEK_ISO() disponíveis em tal banco de dados, use o comando de sistema db2updb. Para obter maiores informações sobre db2updb, consulte a seção "Referência e Comando" nestas Notas de Release. ------------------------------------------------------------------------ 36.9 Apêndice K. Usando a Funcionalidade de Rastreamento do DB2 CLI/ODBC/JDBC As seções dentro deste apêndice foram atualizadas. Consulte o capítulo "Rastreamentos" no Troubleshooting Guide para obter as informações mais atualizadas sobre esta funcionalidade de rastreamento. ------------------------------------------------------------------------ Referência da Mensagem ------------------------------------------------------------------------ |37.1 Obtendo Mensagem e Auxílio SQLSTATE |O auxílio disponível do processador de linha de comando contém auxílio novo |e atualizado para mensagens e valores SQLSTATE que não estão disponíveis no |Referência de Mensagens. |Para exibir o auxílio de mensagem do processador de linha de comando, |digite o comando a seguir no prompt de comandos do sistema operacional: |db2 "? XXXnnnnn" |onde XXX representa o prefixo da mensagem e onde nnnnn |representa o número da mensagem. |Por exemplo, db2 "? SQL30081" exibe o auxílio sobre a |mensagem SQL30081. |Para exibir o texto SQLSTATE do processador de linha de comando, digite o |comando a seguir no prompt de comandos do sistema operacional: |db2 "? XXXXX" |onde XXXXX representa o valor SQLSTATE. |Por exemplo, db2 "? 428F1" exibe o texto para SQLSTATE |428F1. ------------------------------------------------------------------------ |37.2 Alteração de Remapeamento do SQLCODE no DB2 Connect |O remapeamento padrão do SQLCODE para DB2 Connect foi alterado na Versão |7.2. Quando um banco de dados do host retorna o valor -567 |SQLCODE, o DB2 Connect remapeia o valor SQLCODE para -551, antes de executar o |valor SQLCODE para o DB2 client. ------------------------------------------------------------------------ 37.3 Mensagens Novas e Alteradas A lista a seguir contém os números de mensagens de mensagens que foram alteradas desde que o Message Reference foi publicado para DB2 Versão 7.1. Se você receber uma dessas mensagens enquanto utilizar o DB2, receberá a mensagem atualizada correta; entretanto, a mensagem não corresponderá às informações no Message Reference. 37.3.1 Mensagens da Call Level Interface (CLI) CLI0645E CLI0646E CLI0647E 37.3.2 Mensagens do DB2 DB21086I DB210060E DB210061E DB210062E DB210113E DB210114E DB210115E DB210116E DB210117E DB210118E DB210120E DB210121E DB210200I DB210201I 37.3.3 Mensagens do DBI DBI1172E DBI1793W DBI1794E DBI1795E DBI1796W DBI1797I 37.3.4 Mensagens do Centro de Data Warehouse (DWC) DWC0000I DWC03504E DWC08900E DWC08901E DWC08902E DWC08903E DWC08904E DWC08907C DWC08908C DWC08909C DWC08910E DWC08911E DWC08912E DWC08913E DWC08914E DWC08915E DWC08917E DWC08919I DWC08930E DWC08931E DWC08932E DWC08933E DWC08934E DWC08935E DWC08936W DWC08937I DWC08938I DWC08939I DWC08940I DWC08941I DWC08960I DWC08961I DWC08962I DWC08963I DWC08964I DWC08965I DWC08966E DWC08967E DWC08968E DWC13239E DWC13300E DWC13301E DWC13302E DWC13304E DWC13603E DWC13700E DWC13701E DWC13702E DWC13703E DWC13705E DWC13706E DWC13707E 37.3.5 Mensagens SQL SQL0017N SQL0056N SQL0057N SQL0058N SQL0097N SQL0224N SQL0225N SQL0227N SQL0228N SQL0231W SQL0243N SQL0244N SQL0270N SQL0301N SQL0303N SQL0336N SQL0348N SQL0349N SQL0357N SQL0358N SQL0368N SQL0408N SQL0423N SQL0590N SQL0670N SQL0845N SQL0846N SQL1179W SQL1186N SQL1550N SQL1551N SQL1552N SQL1553N SQL1704N SQL2077W SQL2078N SQL2417N SQL2426N SQL2571N SQL2572N SQL2573N SQL2574N SQL2575N SQL2576N SQL4942N SQL5012N SQL6583N SQL20005N SQL20117N SQL20121N SQL20133N SQL20134N SQL20135N SQL20143N SQL20144N SQL20145N SQL20146N SQL20147N SQL20148N SQL20153N SQL21000N ------------------------------------------------------------------------ 37.4 SQLSTATES Corrigido Tabela 27. 42630 Uma variável SQLSTATE ou SQLCODE não é válida neste contexto. 42631 Uma expressão deve ser especificada em uma instrução RETURN em uma função SQL. 42632 Deve existir uma instrução RETURN em uma função ou método SQL. 428F2 Uma expressão inteira deve ser especificada em uma instrução RETURN em um procedimento SQL. 560B7 Para um INSERT de várias linhas, o uso de uma expressão de seqüência NEXTVAL deve o mesmo em cada linha. ------------------------------------------------------------------------ Referência a SQL ------------------------------------------------------------------------ 38.1 A Referência SQL é Fornecida em Um Arquivo PDF O apêndice "Usando a Biblioteca do DB2" em cada manual indica que a Referência SQL está disponível no formato PDF como dois volumes separados. Isto está incorreto. Embora o manual impresso apareça em dois volumes, e os dois números de formulário correspondentes estejam corretos, existe apenas um arquivo PDF e ele contém ambos os volumes. O nome do arquivo PDF é db2s0x70. ------------------------------------------------------------------------ |38.2 Capítulo 3. Elementos de linguagem |38.2.1 Convenções de Nomenclatura e Qualificações de Nomes de Objetos Implícitos |Inclua a seguinte observação nesta seção no Capítulo 3: | Os seguintes nomes, quando usados no contexto de Procedimentos SQL, | estão restritos aos caracteres permitidos em um | identificador ordinário, mesmo se os nomes forem delimitados: | | - condition-name | - label | - parameter-name | - procedure-name | - SQL-variable-name | - statement-name |38.2.2 Atribuições DATALINK |Um parágrafo nesta seção foi alterado para o seguinte: | Observe que o tamanho de um parâmetro ou resultado de função URL é o mesmo |na entrada e na saída e está ligado pelo comprimento da coluna DATALINK. |Entretanto, em alguns casos, o valor URL retornado tem um sinal de acesso |conectado. |Quando possível, a localização da saída deve ter |espaço de armazenamento suficiente para o sinal de acesso e o comprimento |da coluna DATALINK. Assim, o comprimento real do comentário e da |URL em sua forma totalmente expandida fornecido na entrada deve ser restrito |a fim de acomodar o espaço de armazen. da saída. Se o comprimento restrito |for ultrapassado, é detectado um erro. |38.2.3 Expressões |38.2.3.1 Diagrama de sintaxe |O diagrama de sintaxe mudou: | .-operator------------------------------. | V | |>>----+-----+---+-function--------------+--+------------------->< | +- + -+ +-(expression)----------+ | '- - -' +-constant--------------+ | +-column-name-----------+ | +-host-variable---------+ | +-special-register------+ | +-(scalar-fullselect)---+ | +-labeled-duration------+ | +-case-expression-------+ | +-cast-specification----+ | +-dereference-operation-+ | +-OLAP-function---------+ | +-method-invocation-----+ | +-subtype-treatment-----+ | '-sequence-reference----' | |operador | | (1) ||---+-CONCAT------+---------------------------------------------| | +- / ---------+ | +- * ---------+ | +- + ---------+ | '- - ---------' | |Notas: 1. ||| pode ser utilizado como sinônimo de CONCAT. | |38.2.3.2 Funções OLAP |O seguinte representa uma correção à seção "OLAP Functions" sob |"Expressions" no Capítulo 3. | |aggregation-function | ||--column-function--OVER---(--+------------------------------+--> | '-| window-partition-clause |--' | |>----+--------------------------------------------------------------------+> | '-| window-order-clause |--+--------------------------------------+--' | '-| window-aggregation-group-clause |--' | |>---------------------------------------------------------------| | |window-order-clause | | .-,-------------------------------------------. | V .-| asc option |---. | ||---ORDER BY-----sort-key-expression--+------------------+--+---| | '-| desc option |--' | |asc option | | .-NULLS LAST--. ||---ASC--+-------------+----------------------------------------| | '-NULLS FIRST-' | |desc option | | .-NULLS FIRST--. ||---DESC--+--------------+--------------------------------------| | '-NULLS LAST---' | |window-aggregation-group-clause | ||---+-ROWS--+---+-| group-start |---+---------------------------| | '-RANGE-' +-| group-between |-+ | '-| group-end |-----' | |group-end | ||---+-UNBOUNDED FOLLOWING-----------+---------------------------| | '-unsigned-constant--FOLLOWING--' | |Na descrição de window-order-clause; | |NULLS FIRST |A ordem de janelas considera valores nulos antes de todos os valores não |nulos na ordenação. |NULLS LAST |A ordem de janelas considera valores nulos depois de todos os valores não |nulos na ordenação. | |Na descrição de window-aggregation-group-clause: | |window-aggregation-group-clause |O grupo de agregação de uma coluna R é um conjunto de colunas, definido |relativo a R na ordenação das colunas da partição de R. Esta cláusula |especifica o grupo de agregação. Se esta cláusula não estiver |especificada, o padrão é o mesmo de RANGE BETWEEN UNBOUNDED PRECEDING AND |CURRENT ROW, contanto que resulte uma agregação cumulativa. | |ROWS |Indica que o grupo de agregação é definido pela contagem de linhas. |RANGE |Indica que o grupo de agregação é definido por um deslocamento de uma |coluna de ordenação. |group-start |Especifica o ponto inicial de um grupo de agregação. O fim do grupo |de agregação é a linha atual. A especificação da cláusula group-start é |equivalente a uma cláusula group-between do formulário "BETWEEN group-start |AND CURRENT ROW". |group-between |Especifica que o grupo de agregação começa e termina baseado em ROWS ou |RANGE. |group-end |Especifica que ponto de término do grupo de agregação. O início do |grupo de agregação é a linha atual. A especificação da cláusula |group-end é equivalente a uma cláusula group-between do |formulário "BETWEEN CURRENT ROW AND group-end". |UNBOUNDED PRECEDING |Inclui a partição inteira que precede a linha atual. Isto pode ser |especificado com ROWS ou RANGE. Além disso, isto pode ser especificado |com múltiplas sort-key-expressions em window-order-clause. |UNBOUNDED FOLLOWING |Inclui a partição inteira que segue a linha atual. Isto pode ser |especificado com ROWS ou RANGE. Além disso, isto pode ser especificado |com múltiplas sort-key-expressions em window-order-clause. |CURRENT ROW |Especifica o início ou o final do grupo de agregação baseado na linha |atual. Se ROWS for especificado, a linha atual é o limite do grupo de |agregação. Se RANGE for especificado, o limite do grupo de agregação |inclui o conjunto de linhas com os mesmos valores das |sort-key-expressions como da linha atual. Esta cláusula não |pode ser especificada em group-bound2 se group-bound1 |especificar value FOLLOWING. |value PRECEDING |Especifica que o intervalo ou o número de colunas precedendo a linha |atual. Se ROWS for especificado, então value é um inteiro |positivo indicando um número de linhas. Se RANGE for especificado, |então o tipo de dado de value deve ser comparável ao tipo da |sort-key-expression da window-order-clause. Só pode haver uma |sort-key-expression, e o tipo de dado da sort-key-expression deve permitir |subtração. Esta cláusula não pode ser especificada em |group-bound2 se group-bound1 for CURRENT ROW ou |value FOLLOWING. |value FOLLOWING |Especifica que o intervalo ou o número de colunas seguindo a linha |atual. Se ROWS for especificado, então value é um inteiro |positivo indicando um número de linhas. Se RANGE for especificado, |então o tipo de dado de value deve ser comparável ao tipo da |sort-key-expression da window-order-clause. Só pode haver uma |sort-key-expression, e o tipo de dado da sort-key-expression deve permitir |adição. | | |38.2.3.3 referência de seqüência |As seguintes informações devem ser incluídas no fim da seção Expressões |(após "Tratamento do subtipo"). | | | | | | | | |referência à seqüência | ||--+-| expressão nextval |-+------------------------------------| | '-| expressão prevval |-' | |expressão nextval | ||---NEXTVAL FOR--sequence-name----------------------------------| | |prevval-expression | ||---PREVVAL FOR--sequence-name----------------------------------| | | |NEXTVAL FOR sequence-name |A expressão NEXTVAL retorna o próximo valor para a seqüência especificada |por sequence-name. |PREVVAL FOR sequence-name |A expressão PREVVAL retorna o último valor gerado para a seqüência |especificada de uma instrução anterior dentro da sessão atual. É |possível fazer referência a esse valor várias vezes utilizando expressões |PREVVAL, especificando o nome da seqüência. Podem existir várias |instâncias de expressões PREVVAL que especificam o mesmo nome de seqüência |dentro de uma única instrução e todos eles retornam o mesmo valor. |A expressão PREVVAL pode ser utilizada somente se uma expressão NEXTVAL que |especifica o mesmo nome de seqüência já tiver sido mencionada na sessão de |usuário atual (na transação atual ou em uma anterior) (SQLSTATE |51035). | |Nota: | o |É gerado um novo número de seqüência quando a expressão NEXTVAL especifica |o nome da seqüência. Entretanto, se houver várias instâncias de uma |expressão NEXTVAL especificando o mesmo nome de seqüência dentro de uma |consulta, o contador da seqüência é incrementado somente uma vez para cada |linha do resultado. o |Pode-se fazer referência ao último valor gerado para a seqüência várias |vezes, utilizando a expressão PREVVAL, especificando o nome da |seqüência. Podem existir várias instâncias de expressões PREVVAL que |especificam o mesmo nome de seqüência dentro de uma única instrução. o |O mesmo número de seqüência pode ser utilizado como valor de chave |exclusiva em duas tabelas separadas, fazendo referência ao número de seqüência |com a expressão NEXTVAL para a primeira linha (que gera o valor da seqüência) |e com a expressão PREVVAL para as linhas adicionais (essa instância do PREVVAL |faz referência ao valor de seqüência gerado pela expressão NEXTVAL na sessão |anterior), como mostrado abaixo: | INSERT INTO order(orderno, custno) | VALUES (NEXTVAL FOR order_seq, 123456); | | INSERT INTO line_item (orderno, partno, quantity) | VALUES (PREVVAL FOR order_seq, 987654, 1); o |Alguns exemplos de onde as expressões NEXTVAL e PREVVAL podem ser |especificadas são: | + |instrução select ou SELECT INTO: dentro da cláusula select, desde |que a instrução não contenha uma palavra-chave DISTINCT, uma cláusula GROUP |BY, uma cláusula ORDER BY, uma palavra-chave UNION, uma palavra-chave |INTERSECT ou uma palavra-chave EXCEPT + |Instrução INSERT: dentro de uma cláusula VALUES + |Instrução INSERT: dentro da cláusula select de seleção completa + |Instrução UPDATE: dentro da cláusula select de seleção completa de |uma expressão na cláusula SET (instrução UPDATE pesquisada ou posicionada) + |Instrução VALUES INTO: dentro da cláusula select da seleção completa |de uma expressão | o |Alguns exemplos de onde as expressões NEXTVAL e PREVVAL podem ser |especificadas (SQLSTATE 428F9) são: | + |condições de junção ou uma junção externa completa + |valor DEFAULT para uma coluna em uma instrução CREATE TABLE ou ALTER TABLE + |definição de coluna gerada em uma instrução CREATE TABLE ou ALTER TABLE + |condição de uma limitação CHECK + |instrução CREATE TRIGGER + |instrução CREATE VIEW + |instrução CREATE METHOD + |instrução CREATE FUNCTION. | o |Além disso, a expressão NEXTVAL não pode ser especificada (SQLSTATE 428F9) |nestes casos: | + |expressão CASE + |lista de parâmetros de uma função agregada + |subconsulta + |instrução SELECT que contém um operador DISTINCT + |condições de junção da junção + |cláusula GROUP BY de uma instrução SELECT + |instrução SELECT combinada com outra instrução SELECT utilizando o |operador definido UNION, INTERSECT ou EXCEPT + |expressão de tabela aninhada + |lista de parâmetros de uma função de tabela + |cláusula WHERE de uma instrução SELECT, DELETE ou UPDATE + |cláusula ORDER BY + |lista de parâmetros de uma instrução CALL. | o |Quando é gerado um valor para uma seqüência, ele é consumido e na próxima |vez em que for necessário um valor, é gerado um novo. Isto é verdadeiro |mesmo quando a instrução que contém a expressão NEXTVAL falha. o |Se uma instrução INSERT incluir uma expressão NEXTVAL na lista VALUES da |coluna e se ocorrer um erro em algum ponto durante a execução de INSERT (pode |ser devido a um problema ao gerar o próximo valor da seqüência ou um problema |com o valor de outra coluna), ocorre uma falha na inserção e o valor gerado |para a seqüência é considerado consumido. Em alguns casos, reemitir a |mesma instrução INSERT pode ser bem sucedido. |Por exemplo, considere um erro resultante da existência de um índice |exclusivo para a coluna na qual NEXTVAL foi utilizado e o valor da seqüência |gerada já existe no índice. É possível que o próximo valor gerado para |a seqüência seja um valor que não existe no índice e portanto a instrução |INSERT posterior não será bem sucedida. o |Se ao gerar um valor para uma seqüência o valor máximo da seqüência for |ultrapassado (ou o valor mínimo de uma seqüência descendente) e não forem |permitidos ciclos, ocorre um erro (SQLSTATE 23522). Nesse caso, o |usuário pode emitir ALTER para a seqüência, a fim de ampliar o intervalo de |valores aceitáveis, ou permitir ciclos para a seqüência, ou então, DROP e |CREATE uma nova seqüência com um tipo de dados que tenha um intervalo de |valores maior. |Por exemplo, uma seqüência pode ter sido definida com o tipo de dados |SMALLINT e eventualmente, ela fica sem valores atribuíveis. Para |redefinir a seqüência como INTEGER é necessário eliminar e recriar a seqüência |com a nova definição. o |Uma referência ao PREVVAL em uma instrução select de um cursor aplica-se a |um valor que foi gerado para a seqüência especificada antes da abertura do |cursor. Entretanto, fechar o cursor pode afetar os valores retornados |pelo PREVVAL para a seqüência especificada nas instruções subseqüentes ou |mesmo para a mesma instrução no evento que o cursor está reaberto. Este |deve ser o caso quando a instrução select do cursor incluiu uma referência |para NEXTVAL para o mesmo nome da seqüência. | | |Exemplos: |Estes exemplos supõem que exista uma tabela denominada "order" e que uma |seqüência chamada "order_seq" seja criada da seguinte forma: |CREATE SEQUENCE order_seq | START WITH 1 | INCREMENT BY 1 | NOMAXVALUE | NOCYCLE | CACHE 24 | * |Alguns exemplos de como gerar um número de seqüência "order_seq" com uma |expressão NEXTVAL para a seqüência criada acima: |INSERT INTO order(orderno, custno) | VALUES (NEXTVAL FOR order_seq, 123456); ou |UPDATE order | SET orderno = NEXTVAL FOR order_seq | WHERE custno = 123456; ou |VALUES NEXTVAL FOR order_seq INTO :hv_seq; | ------------------------------------------------------------------------ 38.3 Capítulo 4. Funções |38.3.1 Ativando as Novas Funções e Procedimentos |A Versão 7 do FixPaks entrega novas funções escalares incorporadas ao |SQL. Consulte as atualizações da Referência SQL para obter |uma descrição dessas novas funções. As novas funções não são |automaticamente ativadas em cada banco de dados quando o código de servidor do |banco de dados é atualizado para o novo nível de serviço. Para ativar |essas novas funções, o administrador do sistema deve emitir o comando |db2updv7, especificando cada banco de dados no servidor. |Esse comando faz uma entrada no banco de dados que assegura que os objetos do |banco de dados criando antes da execução desse comando usam assinaturas de |função existentes que podem corresponder às novas assinaturas de |função. |Para obter informações sobre como ativar as funções do MQSeries |(aquelas definidas no esquema MQDB2), consulte MQSeries. 38.3.2 Funções Escalares |38.3.2.1 ABS ou ABSVAL |>>-+-ABS----+--(expression)------------------------------------>< | '-ABSVAL-' | |O esquema é SYSIBM. |Essa função estava disponível no FixPak 2 da Versão 7.1. |Nota: A versão SYSFUN da função ABS (ou ABSVAL) continua disponível. | |Retorna o valor absoluto do argumento. |O argumento é uma expressão que retorna um valor de qualquer tipo de dados |numérico incorporado. |O resultado da função tem o mesmo atributo de tipo de dados e comprimento |do argumento. Se o argumento puder ser nulo ou se o banco de dados |estiver configurado com DFT_SQLMATHWARN definido como sim, o resultado pode |ser nulo. Se o argumento for nulo, o resultado é o valor nulo. |Por exemplo: |ABS(-51234) |retorna um INTEGER com um valor 51234. |38.3.2.2 DECRYPT_BIN e DECRYPT_CHAR | | | | |>>-+-DECRYPT_BIN--+---------------------------------------------> | '-DECRYPT_CHAR-' | |>----(--encrypted-data--+--------------------------------+---)-->< | '-,--password-string-expression--' | |O esquema é SYSIBM. |Essa função estava disponível no FixPak 3 da Versão 7.1. |As funções DECRYPT_BIN e DECRYPT_CHAR retornam um valor que é |resultado da decriptografia de encrypted-data. A senha |utilizada para a decriptografia é o valor password-string-expression |ou o valor ENCRYPTION PASSWORD (conforme atribuído utilizando a instrução SET |ENCRYPTION PASSWORD). As funções DECRYPT_BIN e DECRYPT_CHAR podem |decriptografar somente valores criptografados utilizando a função ENCRYPT |(SQLSTATE 428FE). | |encrypted-data |Uma expressão que retorna um valor CHAR FOR BIT DATA ou VARCHAR FOR BIT |DATA que é uma cadeia de dados criptografada completa, que foi criptografada |utilizando a função ENCRYPT. |password-string-expression |Uma expressão que retorna um valor CHAR ou VARCHAR com no mínimo 6 bytes e |no máximo 127 bytes (SQLSTATE 428FC). Deve ser a mesma senha utilizada |para criptografar os dados. Caso contrário, a decriptografia resulta em |erro (SQLSTATE 428FD). Se o valor do argumento de senha for nulo ou não |for fornecido, os dados são decriptografados utilizando o valor ENCRYPTION |PASSWORD, que deve ter sido definido para a sessão (SQLSTATE 51039). | |O resultado da função DECRYPT_BIN é VARCHAR FOR BIT DATA. O |resultado da função DECRYPT_CHAR é VARCHAR. Se |encrypted-data incluir uma dica, esta não é retornada pela |função. O atributo de comprimento do resultado é o atributo de |comprimento do tipo de dados de encrypted-data menos 8 bytes. |O comprimento real do valor retornado pela função corresponde ao comprimento |da cadeia original criptografada. Se encrypted-data incluir um |número de bytes maior que a cadeia criptografada, esses bytes não são |retornados pela função. Se o primeiro argumento puder ser nulo, o |resultado pode ser nulo; se o primeiro argumento for nulo, o resultado |será o valor nulo. |Se os dados forem criptografados em um sistema diferente, utilizando uma |página de códigos diferente da página de códigos na qual a criptografia |ocorreu, pode ocorrer expansão ao converter o valor decriptografado na página |de códigos do banco de dados. Nessas situações, o valor |encrypted-data deve ser distribuído para uma cadeia VARCHAR com um |número de bytes maior. |Consulte também 38.3.2.3, ENCRYPT e 38.3.2.4, GETHINT para obter informações adicionais sobre o |uso dessa função. |Exemplos: |Exemplo 1: Este exemplo utiliza o valor ENCRYPTION |PASSWORD para conter a senha de criptografia. | SET ENCRYPTION PASSWORD = 'Ben123'; | INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832'); | SELECT DECRYPT_CHAR(SSN) | FROM SSN; |O valor retornado é '289-46-8832'. |Exemplo 2: Este exemplo passa explicitamente a senha de |criptografia. | SELECT DECRYPT_CHAR(SSN,'Ben123') | FROM SSN; |O valor retornado é '289-46-8832'. |38.3.2.3 ENCRYPT | | | | |>>-ENCRYPT------------------------------------------------------> | |>----(--data-string-expression--+----------------------------------------------------------------+---)-> | '-,--password-string-expression--+----------------------------+--' | '-,--hint-string-expression--' | |>-------------------------------------------------------------->< | |O esquema é SYSIBM. |Essa função estava disponível no FixPak 3 da Versão 7.1. |A função ENCRYPT retorna um valor que é resultado da criptografia de |data-string-expression. A senha utilizada para a |decriptografia é o valor password-string-expression ou o valor |ENCRYPTION PASSWORD (conforme atribuído utilizando a instrução SET ENCRYPTION |PASSWORD). | |data-string-expression |Uma expressão que retorna um valor CHAR ou VARCHAR a ser |criptografado. O atributo de comprimento do tipo de dados |data-string-expression é limitado a 32663 sem um argumento |hint-string-expression e a 32631 quando o argumento |hint-string-expression é especificado (SQLSTATE 42815). |password-string-expression |Uma expressão que retorna um valor CHAR ou VARCHAR com no mínimo 6 bytes e |no máximo 127 bytes (SQLSTATE 428FC). O valor representa a senha |utilizada para criptografar data-string-expression. Se o valor |do argumento de senha for nulo ou não for fornecido, os dados são |criptografados utilizando o valor ENCRYPTION PASSWORD, que deve ter sido |definido para a sessão (SQLSTATE 51039). |hint-string-expression |Uma expressão que retorna um valor CHAR ou VARCHAR value de até 32 bytes e |que vai ajudar os proprietários de dados a lembrarem as senhas (por exemplo, |'Oceano' e uma dica para lembrar de 'Pacifico'). Se |for fornecido um valor para a dica, ela é incorporada no resultado e pode ser |recuperada utilizando a função GETHINT. Se esse argumento for nulo ou |não for fornecido, não é incorporada dica no resultado. | |O tipo de dados resultante da função é VARCHAR FOR BIT DATA. |O atributo de comprimento do resultado é: | * |Quando o parâmetro opcional de dica é especificado, o atributo de |comprimento dos dados não criptografados + 8 bytes + o número de bytes para o |próximo limite de 8 bytes + 32 bytes para o comprimento da dica. * |Sem parâmetro de dica, o atributo de comprimento dos dados não |criptografados + 8 bytes + o número de bytes para o próximo limite de 8 |bytes. | |Se o primeiro argumento puder ser nulo, o resultado pode ser nulo; se |o primeiro argumento for nulo, o resultado será o valor nulo. |Observe que o resultado criptografado é mais longo que o |valordata-string-expression. Portanto, ao atribuir valores |criptografados, verifique se o destino foi declarado com tamanho suficiente |para conter o valor criptografado inteiro. |Notas: | * |Algoritmo de criptografia: O algoritmo de criptografia |interna utilizado é código em bloco RC2 com enchimento, sendo que a chave |secreta de 128 bits deriva da senha utilizando uma compilação de mensagem |MD2. * |Senhas e dados de criptografia: É de responsabilidade do |usuário executar gerenciamento de senhas. Quando os dados são |criptografados, somente a senha utilizada para para criptografá-los pode ser |utilizada para decriptografá-los (SQLSTATE 428FD). Cuidado ao utilizar |variáveis CHAR para definir valores de senha, já que podem sem preenchidos com |espaços em branco. O resultado criptografado pode conter terminador |nulo e outros caracteres não imprimíveis. * |Definição de coluna da tabela: Ao definir colunas e tipos |para conter dados criptografados, sempre calcule o atributo de comprimento da |forma a seguir. Para dados criptografados sem dica: |Comprimento máximo dos dados não criptografados + 8 bytes + o número de |bytes para o próximo limite de 8 bytes = comprimento da coluna dos dados |criptografados. |Para dados criptografados com dica incorporada: |Comprimento máximo dos dados não criptografados + 8 bytes + o número de |bytes para o próximo limite de 8 bytes + 32 bytes para o comprimento da dica = |comprimento da coluna de dados criptografados. |Qualquer atribuição ou distribuição para um comprimento menor que o |comprimento sugerido dos dados pode resultar em falha na decriptografia no |futuro e em perda de dados. Os espaços em branco são valores |de dados criptografados válidos que podem ser truncados quando armazenados em |uma coluna muito curta. |Cálculo do comprimento do exemplo de coluna |Comp máx. dos dados não criptografados 6 bytes |8 bytes 8 bytes |Núm. de bytes para o próx. limite de 8 bytes 2 bytes | --------- |Comprimento da coluna de dados criptografados 16 bytes | |Comprimento máx. dos dados não criptografados 32 bytes |8 bytes 8 bytes |Núm. de bytes para o próx. limite de 8 bytes 8 bytes | --------- |Comprimento da coluna de dados criptografados 48 bytes * |Administração dos dados criptografados: Os dados |criptografados podem ser decriptografados somente em servidores que suportam |as funções de decriptografia correspondentes à função ENCRYPT. Assim, a |replicação de colunas com dados criptografados deve ser efetuada somente em |servidores que suportam a função DECRYPT_BIN ou DECRYPT_CHAR. | |Consulte também 38.3.2.2, DECRYPT_BIN e DECRYPT_CHAR e 38.3.2.4, GETHINT para obter informações adicionais sobre o |uso dessa função. |Exemplos: |Exemplo 1: Este exemplo utiliza o valor ENCRYPTION |PASSWORD para conter a senha de criptografia. | SET ENCRYPTION PASSWORD = 'Ben123'; | INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832'); |Exemplo 2: Este exemplo passa explicitamente a senha de |criptografia. | INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832','Ben123',''); |Exemplo 3: A dica 'Oceano' é armazenada para |ajudar o usuário a lembrar-se da senha de criptografia |'Pacifico'. | INSERT INTO EMP (SSN) VALUES |ENCRYPT('289-46-8832','Pacifico','Oceano'); | |38.3.2.4 GETHINT | | | | |>>-GETHINT--(--encrypted-data--)------------------------------->< | |O esquema é SYSIBM. |Essa função estava disponível no FixPak 3 da Versão 7.1. |A função GETHINT retorna a dica de senha, se esta for encontrada no |encrypted-data. A dica de senha é uma frase que ajuda os |proprietários de dados a lembrarem das senhas (por exemplo, 'Oceano' |como dica para lembrar de 'Pacifico'). | |encrypted-data |Uma expressão que retorna um valor CHAR FOR BIT DATA ou VARCHAR FOR BIT |DATA que é uma cadeia de dados criptografada completa, que foi criptografada |utilizando a função ENCRYPT (SQLSTATE 428FE). | |O resultado da função é VARCHAR(32). O resultado pode ser |nulo. Se o parâmetro de dica não foi incluído em |encrypted-data pela função ENCRYPT ou se o primeiro argumento for |nulo, o resultado é o valor nulo. |Consulte também 38.3.2.2, DECRYPT_BIN e DECRYPT_CHAR e 38.3.2.3, ENCRYPT para obter informações adicionais sobre o |uso dessa função. |Exemplo: |Neste exemplo, a dica 'Oceano' é armazenada para ajudar o usuário |a lembrar-se da senha de criptografia 'Pacifico'. | INSERT INTO EMP (SSN) VALUES |ENCRYPT('289-46-8832','Pacifico','Oceano'); | SELECT GETHINT(SSN) | FROM EMP; |O valor retornado é 'Oceano'. |38.3.2.5 IDENTITY_VAL_LOCAL | | | | |>>-IDENTITY_VAL_LOCAL--(--)------------------------------------>< | |O esquema é SYSIBM. |Este procedimento estava disponível no FixPak 3 da Versão |7.1. |A função IDENTITY_VAL_LOCAL é uma função não determinística que retorna o |último valor atribuído a uma coluna de identidade, onde a atribuição ocorreu |como resultado de uma declaração INSERT de coluna única usando uma cláusula |VALUES. A função não possui parâmetros de entrada. |O resultado é um DECIMAL(31,0), independentemente do tipo de dados real da |coluna de identidade correspondente. |O valor retornado é o valor atribuído à coluna de identidade da tabela |identificada na instrução INSERT de linha única mais recente. A |instrução INSERT deve ser feita utilizando uma cláusula VALUES em uma cláusula |que contém uma coluna de identidade. Além disso, a instrução INSERT |deve ser emitida no mesmo nível |1 | (isto é, o valor está disponível localmente no |nível em que foi atribuído, até que seja substituído pelo próximo valor |atribuído). |O valor atribuído é um valor fornecido pelo usuário (se a coluna de |identidade for definida como GENERATED BY DEFAULT), ou um valor de identidade |gerado pelo DB2. |A função retorna um valor nulo nas seguintes situações: | * |Quando uma instrução INSERT de linha única com uma cláusula VALUES não foi |emitida para uma tabela que contém uma coluna de identidade no nível de |processamento atual. * |Quando um COMMIT ou ROLLBACK de uma unidade de trabalho ocorreu desde que |a instrução INSERT mais recente que atribuiu um valor. |2 |. | |O resultado da função não é afetado pelo seguinte: | * |Uma instrução INSERT de linha única com uma cláusula VALUES para uma |tabela sem coluna de identidade. * |Uma instrução INSERT de várias linhas com uma cláusula VALUES. * |Uma INSERT com uma seleção completa. * |Uma instrução ROLLBACK TO SAVEPOINT. | |Observações: | * |As expressões na cláusula VALUES de uma instrução INSERT são avaliadas |antes das atribuições às colunas de destino da instrução INSERT. Assim, |uma chamada de função IDENTITY_VAL_LOCAL dentro da cláusula VALUES de uma |instrução INSERT usará o último valor atribuído a uma coluna de identidade de |uma instrução INSERT anterior. A função retorna o valor nulo se nenhuma |instrução INSERT de linha única anterior com uma cláusula VALUES para uma |tabela que contém uma coluna de identidade foi executada dentro do mesmo nível |da função IDENTITY_VAL_LOCAL. * |O valor da coluna de identidade da tabela para a qual o disparador foi |definido pode ser determinado dentro de um disparador, referenciando a |variável de transição do disparador da coluna de identidade. * |O resultado de invocar a função IDENTITY_VAL_LOCAL de dentro da condição |de disparo de um disparo de inserção é um valor nulo. * |É possível que existam vários disparos de inserção anterior ou posterior |para uma tabela. Nesse caso, cada disparo é processado separadamente e |os valores de identidades atribuídos por uma ação disparada não estarão |disponíveis para outras ações disparadas utilizando a função |IDENTITY_VAL_LOCAL. Isto é válido mesmo que as várias ações disparadas |sejam definidas de forma conceitual no mesmo nível. * |Geralmente não é recomendado utilizar a função IDENTITY_VAL_LOCAL no corpo |de um disparo de inserção anterior. O resultado de invocar a função |IDENTITY_VAL_LOCAL de dentro da ação disparada de um disparo de inserção |anterior é um valor nulo. O valor da coluna de identidade da tabela |para a qual o disparo foi definido não pode ser obtido invocando a função |IDENTITY_VAL_LOCAL dentro da ação disparada de um disparador de inserção |anterior. Entretanto, o valor da coluna de identidade pode ser obtido |na ação disparada, fazendo referência à variável de transição de disparo da |coluna de identidade. * |O resultado de invocar a função IDENTITY_VAL_LOCAL de dentro da ação |disparada de um disparo de inserção posterior |3 | é o valor atribuído a uma coluna de identidade da tabela |identificada na instrução INSERT de linha única mais recente invocada na mesma |ação disparada com uma cláusula VALUES para uma tabela que contém uma coluna |de identidade. Se uma instrução INSERT de linha única com uma cláusula |VALUES para uma tabela que contém uma coluna de identidade não tiver sido |executada dentro da mesma ação disparada antes da invocação da função |IDENTITY_VAL_LOCAL, a função retorna um valor nulo. * |Como os resultados da função IDENTITY_VAL_LOCAL não são determinísticos, o |resultado de uma invocação da função IDENTITY_VAL_LOCAL dentro da instrução |SELECT de um cursor pode variar para cada instrução FETCH. * |O valor atribuído é o valor atualmente atribuído à coluna de identidade |(isto é, o valor que seria retornado em uma instrução SELECT |subseqüente). Este valor não é necessariamente o valor fornecido na |cláusula VALUES da instrução INSERT, ou um valor gerado pelo DB2. O |valor atribuído poderia ser um valor especificado em uma instrução de variável |de transição SET dentro do corpo de um disparador de inserção anterior, para |uma variável de transição de disparador associada à coluna de |identidade. * |O valor retornado pela função é imprevisível, segundo um INSERT de linha |única com falha com uma cláusula VALUES para uma tabela com uma coluna de |identidade. O valor pode ser o valor que seria retornado da função se |fosse chamada antes do INSERT com falha, ou poderia ser o valor que seria |atribuído se INSERT fosse bem-sucedido. O valor atual retornado depende |do ponto de falha e é, portanto, imprevisível. | |Exemplos: |Exemplo 1: Definir a variável IVAR para o valor atribuído à coluna de |identidade na tabela EMPLOYEE. Se esta inserção é a primeira para a |tabela EMPLOYEE, então IVAR teria um valor de 1. | CREATE TABLE EMPLOYEE | (EMPNO INTEGER GENERATED ALWAYS AS IDENTITY, | NAME CHAR(30), | SALARY DECIMAL(5,2), | DEPTNO SMALLINT) |Exemplo 2: Uma função IDENTITY_VAL_LOCAL invocada em uma instrução |INSERT retorna o valor associado à instrução INSERT de linha única anterior, |com uma cláusula VALUES para uma tabela com uma coluna de identidade. |Assuma, para este exemplo, que há duas tabelas, T1 e T2. Ambas as |tabelas possuem uma coluna de identidade chamada C1. O DB2 gera valores |em seqüência começando com 1 para a coluna C1 na tabela T1, e valores em |seqüência começando com 10 para a coluna C1 na tabela T2. | CREATE TABLE T1 | (C1 INTEGER GENERATED ALWAYS AS IDENTITY, | C2 INTEGER), | CREATE TABLE T2 | (C1 DECIMAL(15,0) GENERATED BY DEFAULT AS IDENTITY | (START WITH 10), | C2 INTEGER), | INSERT INTO T1 (C2) VALUES (5), | INSERT INTO T1 (C2) VALUES (6), | SELECT * FROM T1 |o que resulta em: | C1 |C2 | ----------- ---------- | 1 5 | 2 6 |e agora, declarando a função para a variável IVAR: | VALUES IDENTITY_VAL_LOCAL() INTO :IVAR |Neste ponto, a função IDENTITY_VAL_LOCAL retornaria um valor 2 em IVAR, |porque esse era o último valor atribuído pelo DB2. A seguinte instrução |INSERT insere uma única linha em T2, onde a coluna C2 obtém um valor 2 da |função IDENTITY_VAL_LOCAL. |INSERT INTO T2 (C2) VALUES (IDENTITY_VAL_LOCAL()); | SELECT * FROM T2 | WHERE C1 = DECIMAL(IDENTITY_VAL_LOCAL(),15,0) |retornando o resultado: | C1 |C2 | ----------------- ---------- | 10. 2 |A chamada da função IDENTITY_VAL_LOCAL após essa inserção resulta em um |valor 10, que é o valor gerado pelo DB2 para a coluna C1 de T2. |Em um ambiente aninhado que envolve um disparo, utilize a função |IDENTITY_VAL_LOCAL para recuperar o valor de identidade atribuído a um |determinado nível, mesmo que possam existir valores atribuídos a níveis |inferiores. Suponha que existam três tabelas, EMPLOYEE, EMP_ACT e |ACCT_LOG. Existe um disparo de inserção posterior definido em EMPLOYEE |que resulta em inserções adicionais nas tabelas EMP_ACT e ACCT_LOG. | CREATE TABLE EMPLOYEE | (EMPNO SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 1000), | NAME CHAR(30), | SALARY DECIMAL(5,2), | DEPTNO SMALLINT); | | CREATE TABLE EMP_ACT | (ACNT_NUM SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 1), | EMPNO SMALLINT); | | CREATE TABLE ACCT_LOG | (ID SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 100), | ACNT_NUM SMALLINT, | EMPNO SMALLINT); | | CREATE TRIGGER NEW_HIRE | AFTER INSERT ON EMPLOYEE | REFERENCING NEW AS NEW_EMP | FOR EACH ROW MODE DB2SQL | BEGIN ATOMIC | INSERT INTO EMP_ACT (EMPNO) | VALUES (NEW_EMP.EMPNO); | INSERT INTO ACCT_LOG (ACNT_NUM EMPNO) | VALUES (IDENTITY_VAL_LOCAL(), NEW_EMP.EMPNO); | END |A primeira instrução INSERT disparada insere uma linha na tabela |EMP_ACT. Essa instrução INSERT utiliza uma variável de transição de |disparo para a coluna EMPNO da tabela EMPLOYEE para indicar que o valor de |identidade para a coluna EMPNO da tabela EMPLOYEE deve ser copiada para a |coluna EMPNO da tabela EMP_ACT. A função IDENTITY_VAL_LOCAL não pôde |ser utilizada para obter o valor atribuído à coluna EMPNO da tabela |EMPLOYEE. Isto ocorre porque uma instrução INSERT não foi emitida neste |nível de aninhamento e portanto, se a função IDENTITY_VAL_LOCAL fosse invocada |na cláusula VALUES de INSERT para EMP_ACT, retornaria um valor nulo. |Essa instrução INSERT para a tabela EMP_ACT também resulta na geração de um |novo valor da coluna de identidade para a coluna ACNT_NUM. |Uma segunda instrução INSERT disparada insere uma linha na tabela |ACCT_LOG. Essa instrução invoca a função IDENTITY_VAL_LOCAL para |indicar que o valor de identidade atribuído à coluna ACNT_NUM da tabela |EMP_ACT na instrução INSERT anterior na ação disparada deve ser copiado para a |coluna ACNT_NUM da tabela ACCT_LOG. A coluna EMPNO recebe o mesmo valor |que a coluna EMPNO da tabela EMPLOYEE. |Do aplicativo de invocação (isto é, o nível no qual INSERT é emitido a |EMPLOYEE), defina a variável IVAR para o valor atribuído à coluna EMPNO da |tabela EMPLOYEE com a instrução INSERT original. | INSERT INTO EMPLOYEE (NAME, SALARY, DEPTNO) | VALUES ('Rupert', 989.99, 50); |O conteúdo das três tabelas após o processamento da instrução INSERT |original e de todas as ações disparadas é: | SELECT EMPNO, SUBSTR(NAME,10) AS NAME, SALARY, DEPTNO | FROM EMPLOYEE; | | EMPNO NAME SALARY |DEPTNO | ----------- ----------- ---------------------------------- ----------- | 1000 Rupert 989.99 |50 | | SELECT ACNT_NUM, EMPNO | FROM EMP_ACT; | | ACNT_NUM EMPNO | ----------- ----------- | 1 1000 | | SELECT * FROM |ACCT_LOG; | | ID ACNT_NUM EMPNO | ----------- ----------- ----------- | 100 1 1000 |O resultado da função IDENTITY_VAL_LOCAL é o último valor atribuído a uma |coluna de identidade no mesmo nível de aninhamento. Após o |processamento da instrução INSERT original e de todas as ações disparadas, a |função IDENTITY_VAL_LOCAL retorna o valor 1000, pois este é o valor atribuído |à coluna EMPNO da tabela EMPLOYEE. A instrução VALUES a seguir resulta |na definição de IVAR como 1000. A inserção na tabela EMP_ACT (que |ocorreu após a inserção na tabela EMPLOYEE e em um nível de aninhamento |inferior) não tem efeito sobre o que é retornado por esta invocação da função |IDENTITY_VAL_LOCAL. |VALUES IDENTITY_VAL_LOCAL() INTO :IVAR; 38.3.2.6 LCASE e UCASE (Unicode) Em um banco de dados Unicode, o repertório inteiro de caracteres Unicode é usado em maiúsculas (ou minúsculas) com base nas propriedades Unicode destes caracteres. Versões de largura dupla de caracteres ASCII, assim como numerais Romanos, são agora convertidos para maiúsculas e minúsculas corretamente. |38.3.2.7 MQPUBLISH | | | |>>-MQPUBLISH---(------------------------------------------------> | |>-----+-----------------------------------------------+---------> | '-publisher-service--,--+--------------------+--' | '-service-policy--,--' | |>----msg-data----+-----------------------------------+--)------>< | '-,--topic--+--------------------+--' | | (1) | | '-,--correl-id-------' | |Notas: 1. |O correl-id não pode ser especificado a menos que um |service e um policy sejam definidos anteriormente. | |O esquema é MQDB2. |A função MQPUBLISH publica dados para o MQSeries. Essa função requer |a instalação do MQSeries Publish/Subscribe ou do MQSeries Integrator. |Consulte www.ibm.com/software/MQSeries para obter |detalhes adicionais. |A função MQPUBLISH publica os dados contidos em msg-data para o |MQSeries publisher especificado em publisher-service e utilizando a |qualidade de política de serviço definida pelo service-policy. |Pode ser especificado um tópico opcional para a mensagem e também pode ser |especificado o identificador de correlação de mensagem definido pelo |usuário. A função retorna um valor '1' se bem-sucedida ou um |valor '0' se malsucedida. | |publisher-service |Uma cadeia que contém o destino lógico do MQSeries, onde a mensagem deve |ser enviada. Se especificado, o publisher-service deve se |referir a um publisher Service Point definido no arquivo de repositório |AMT.XML. Um ponto de serviço é um nó de extremidade lógico a |partir do qual uma mensagem é enviada ou recebida. As definições do |ponto de serviço incluem o nome do MQSeries Queue Manager e da Fila. |Consulte o MQSeries Application Messaging Interface para obter detalhes |adicionais. Se o publisher-service não for especificado, o |DB2.DEFAULT.PUBLISHER não será utilizado. O tamanho |máximo de publisher-service é 48 caracteres. |service-policy |Uma cadeia que contém o MQSeries AMI Service Policy a ser utilizado no |tratamento dessa mensagem. Se especificado, o service-policy |deve se referir a um Policy definido no arquivo de repositório |AMT.XML. Um Service Policy define um conjunto de qualidade de |opções de serviço que deve ser aplicado a essa operação de mensagem. |Essas opções incluem a prioridade e a persistência da mensagem. |Consulte o manual MQSeries Application Messaging Interface para obter detalhes |adicionais. Se service-policy não for especificado, o |DB2.DEFAULT.POLICY padrão será utilizado. O tamanho |máximo de service-policy é 48 caracteres. |msg-data |Uma expressão de cadeia que contém os dados a serem enviados através do |MQSeries. O tamanho máximo é 4000 caracteres. |topic |Uma expressão de cadeia que contém o tópico para a publicação da |mensagem. Se nenhum tópico for especificado, ninguém será associado à |mensagem. O tamanho máximo de topic é 40 caracteres. |Vários tópicos podem ser especificados em uma cadeia (até 40 |caracteres). Cada tópico deve ser separado por uma dois pontos. |Por exemplo, "t1:t2:o terceiro tópico" indica que a mensagem está |associada a todos os três tópicos: t1, t2 e "o terceiro tópico". |correl-id |Uma expressão de cadeia opcional que contém um identificador de correlação |a ser associado a esta mensagem. O correl-id é freqüentemente |especificado em cenários do pedido e da resposta para associar os pedidos às |respostas. Se nenhum for especificado, nenhum ID de correlação será |incluído na mensagem. O tamanho máximo de correl-id é 24 |caracteres. | |Exemplos |Exemplo 1: Este exemplo publica a cadeia "Testando 123" para o |publisher service padrão (DB2.DEFAULT.PUBLISHER) que utiliza a |política padrão (DB2.DEFAULT.POLICY). Nenhum |identificador de correlação ou tópico está especificado para a |mensagem. |VALUES MQPUBLISH('Testando 123') |Exemplo 2: Este exemplo publica a cadeia "Testando 345" para o |publisher service "MYPUBLISHER" no tópico "TESTS". A política padrão é |utilizada e nenhum identificador de correlação é especificado. |VALUES MQPUBLISH('MYPUBLISHER','Testando 345', 'TESTS') |Exemplo 3: Este exemplo publica a cadeia "Testando 678" para o |publisher service "MYPUBLISHER" que utiliza a política "MYPOLICY" com um |identificador de correlação "TEST1". A mensagem é publicada com o |tópico "TESTS". |VALUES MQPUBLISH('MYPUBLISHER','MYPOLICY','Testando 678','TESTS','TEST1') |Exemplo 4: Este exemplo publica a cadeia "Testando 901" para o |publisher service "MYPUBLISHER" no tópico "TESTS" que utiliza a política |padrão (DB2.DEFAULT.POLICY) e nenhum identificador de |correlação. |VALUES MQPUBLISH('Testando 901','TESTS') |Todos os exemplos retornam o valor '1' se |bem-sucedidos. |38.3.2.8 MQREAD | | | |>>-MQREAD---(----+------------------------------------------+---> | '-receive-service--+--------------------+--' | '-,--service-policy--' | |>----)--------------------------------------------------------->< | |O esquema é MQDB2. |A função MQREAD retorna uma mensagem da localização do MQSeries |especificada pelo receive-service, utilizando a qualidade de política |de serviço definida em service-policy. Executar esta operação |não remove a mensagem da fila associada ao receive-service, mas em |vez disso retorna a mensagem na cabeça da fila. O valor de retorno é um |VARCHAR(4000) que contém a mensagem. Se nenhuma mensagem estiver |disponível para ser executada, um NULL será retornado. | |receive-service |Uma cadeia que contém o destino lógico do MQSeries de onde a mensagem deve |ser recebida. Se especificado, o receive-service deve se |referir a um Service Point definido no arquivo de repositório |AMT.XML. Um ponto de serviço é um nó de extremidade lógico de |onde uma mensagem é enviada ou recebida. As definições de pontos de |serviços incluem o nome do MQSeries Queue Manager e da Fila. Consulte o |MQSeries Application Messaging Interface para obter detalhes |adicionais. Se receive-service não for especificado, o |DB2.DEFAULT.SERVICE será utilizado. O tamanho máximo de |receive-service é 48 caracteres. |service-policy |Uma cadeia que contém o MQSeries AMI Service Policy utilizado no |tratamento dessa mensagem. Se especificado, o service-policy |deve se referir a um Policy definido no arquivo de repositório |AMT.XML. Um Service Policy define um conjunto de qualidade de |opções de serviço que deve ser aplicado a essa operação de mensagem. |Essas opções incluem a prioridade e a persistência da mensagem. |Consulte o manual MQSeries Application Messaging Interface para obter detalhes |adicionais. Se service-policy não for especificado, o |DB2.DEFAULT.POLICY padrão será utilizado. O tamanho |máximo de service-policy é 48 caracteres. | |Exemplos: |Exemplo 1: Este exemplo lê a mensagem na cabeça da fila especificada |pelo serviço padrão (DB2.DEFAULT.SERVICE), utilizando a política |padrão (DB2.DEFAULT.POLICY). |VALUES MQREAD() |Exemplo 2: Este exemplo lê a mensagem na cabeça da fila especificada |pelo serviço "MYSERVICE" utilizando a política padrão |(DB2.DEFAULT.POLICY). |VALUES MQREAD('MYSERVICE') |Exemplo 3: Este exemplo lê a mensagem na cabeça da fila especificada |pelo serviço "MYSERVICE" e utilizando a política "MYPOLICY". |VALUES MQREAD('MYSERVICE','MYPOLICY') |Todos esses exemplos retornam o conteúdo da mensagem como um VARCHAR(4000), |se bem-sucedidos. Se nenhuma mensagem estiver disponível, um NULL será |retornado. |38.3.2.9 MQRECEIVE | | | |>>-MQRECEIVE----------------------------------------------------> | |>----(--+-------------------------------------------------------------+---)-> | '-receive-service--+---------------------------------------+--' | '-,--service-policy--+---------------+--' | '-,--correl-id--' | |>-------------------------------------------------------------->< | |O esquema é MQDB2. |A função MQRECEIVE retorna uma mensagem da localização do MQSeries |especificada pelo receive-service, utilizando a qualidade de política |de serviço service-policy. Executar essa operação remove a |mensagem da fila associada ao receive-service. Se o |correl-id for especificado, a primeira mensagem com um identificador |de correlação correspondente será retornada. Se correl-id não |for especificado, a mensagem na cabeça da fila será retornada. O valor |de retorno é um VARCHAR(4000) que contém a mensagem. Se nenhuma |mensagem estiver disponível para ser executada, um NULL será retornado. | |receive-service |Uma cadeia que contém o destino lógico do MQSeries do qual a mensagem deve |ser recebida. Se especificado, o receive-service deve se |referir a um Service Point definido no arquivo de repositório |AMT.XML. Um ponto de serviço é um nó de extremidade lógico a |partir do qual uma mensagem é enviada ou recebida. As definições de |pontos de serviços incluem o nome do MQSeries Queue Manager e da Fila. |Consulte o MQSeries Application Messaging Interface para obter detalhes |adicionais. Se receive-service não for especificado, o |DB2.DEFAULT.SERVICE será utilizado. O tamanho máximo de |receive-service é 48 caracteres. |service-policy |Uma cadeia que contém o MQSeries AMI Service Policy a ser utilizado no |tratamento dessa mensagem. Se especificada, o service-policy |deverá se referir a um Policy definido no arquivo de repositório AMT XML |4 |. Se service-policy não for |especificado, o DB2.DEFAULT.POLICY padrão será utilizado. |O tamanho máximo de service-policy é 48 caracteres. |correl-id |Uma cadeia que contém um identificador de correlação opcional a ser |associado a esta mensagem. O correl-id é freqüentemente |especificado em cenários do pedido e da resposta para associar os pedidos às |respostas. Se não for especificado, nenhum ID de correlação será |especificado. O tamanho máximo de correl-id é 24 |caracteres. | |Exemplos: |Exemplo 1: Este exemplo recebe a mensagem na cabeça da fila |especificada pelo serviço padrão (DB2.DEFAULT.SERVICE), |utilizando a política padrão (DB2.DEFAULT.POLICY). |VALUES MQRECEIVE() |Exemplo 2: Este exemplo recebe a mensagem na cabeça da fila |especificada pelo serviço "MYSERVICE" utilizando a política padrão |(DB2.DEFAULT.POLICY). |VALUES MQRECEIVE('MYSERVICE') |Exemplo 3: Este exemplo recebe a mensagem na cabeça da fila |especificada pelo serviço "MYSERVICE" e utilizando a política |"MYPOLICY". |VALUES MQRECEIVE('MYSERVICE','MYPOLICY') |Exemplo 4: Este exemplo recebe a primeira mensagem com um ID de |correlação que corresponde '1234' da cabeça da fila especificada |pelo serviço "MYSERVICE" utilizando a política "MYPOLICY". |VALUES MQRECEIVE('MYSERVICE',MYPOLICY','1234') |Todos esses exemplos retornam o conteúdo da mensagem como um |VARCHAR(4000), se bem-sucedidos. Se nenhuma mensagem estiver |disponível, um NULL será retornado. |38.3.2.10 MQSEND | | | |>>-MQSEND---(----+------------------------------------------+---> | '-send-service--,--+--------------------+--' | '-service-policy--,--' | |>----msg-data----+--------------------+--)--------------------->< | | (1) | | '-,--correl-id-------' | |Notas: 1. |O correl-id não pode ser especificado a menos que um |service e um policy sejam definidos anteriormente. | |O esquema é MQDB2. |A função MQSEND envia os dados contidos em msg-data para a |localização do MQSeries especificada em send-service e utilizando a |qualidade de política de serviço definida pelo service-policy. |Um identificador de correlação de mensagem definido pelo usuário opcional pode |ser especificado pelo correl-id. A função retorna um valor |'1' se bem-sucedida ou um valor '0' se malsucedida. | |msg-data |Uma expressão de cadeia que contém os dados a serem enviados através do |MQSeries. O tamanho máximo é 4000 caracteres. |send-service |Uma cadeia que contém o destino lógico do MQSeries, onde a mensagem deve |ser enviada. Se especificado, o send-service refere-se a um |ponto de serviço definido no arquivo de repositório AMT.XML. Um |ponto de serviço é um nó de extremidade lógico a partir do qual uma mensagem é |enviada ou recebida. As definições do ponto de serviço incluem o nome |do MQSeries Queue Manager e da Fila. Consulte o manual MQSeries |Application Messaging Interface para obter detalhes adicionais. Se |send-service não for especificado, o valor |DB2.DEFAULT.SERVICE será utilizado. O tamanho máximo de |send-service é 48 caracteres. |service-policy |Uma cadeia que contém o MQSeries AMI Service Policy utilizado no |tratamento dessa mensagem. Se especificado, o service-policy |deve se referir a uma política de serviço definida no arquivo de repositório |AMT XML. Um Service Policy define um conjunto de qualidade de opções de |serviço que deve ser aplicado a essa operação de mensagem. Essas opções |incluem a prioridade e a persistência da mensagem. Consulte o manual |MQSeries Application Messaging Interface para obter detalhes |adicionais. Se service-policy não for especificado, um valor |padrão de DB2.DEFAULT.POLICY será utilizado. O tamanho |máximo de service-policy é 48 caracteres. |correl-id |Uma cadeia opcional que contém um identificador de correlação associado a |esta mensagem. O correl-id é freqüentemente especificado em |cenários do pedido e da resposta para associar os pedidos às respostas. |Se não for especificado, nenhum ID de correlação será especificado. O |tamanho máximo de correl-id é 24 caracteres. | |Exemplos: |Exemplo 1: Este exemplo envia a cadeia "Testando 123" para o serviço |padrão (DB2.DEFAULT.SERVICE), utilizando a política padrão |(DB2.DEFAULT.POLICY), sem nenhum identificador de |correlação. |VALUES MQSEND('Testando 123') |Exemplo 2: Este exemplo envia a cadeia "Testando 345" para o serviço |"MYSERVICE", utilizando a política "MYPOLICY", sem nenhum identificador de |correlação. |VALUES MQSEND('MYSERVICE','MYPOLICY','Testando 345') |Exemplo 3: Este exemplo envia a cadeia "Testando 678" para o serviço |"MYSERVICE", utilizando a política "MYPOLICY", sem nenhum identificador de |correlação "TEST3". |VALUES MQSEND('MYSERVICE','MYPOLICY','Testando 678','TEST3') |Exemplo 4: Este exemplo envia a cadeia "Testando 901" para o serviço |"MYSERVICE" utilizando a política padrão (DB2.DEFAULT.POLICY) e |nenhum identificador de correlação. |VALUES MQSEND('MYSERVICE','Testando 901') |Todos os exemplos retornam um valor escalar '1' se |bem-sucedidos. |38.3.2.11 MQSUBSCRIBE | | | |>>-MQSUBSCRIBE---(----------------------------------------------> | |>-----+------------------------------------------------+--------> | '-subscriber-service--,--+--------------------+--' | '-service-policy--,--' | |>----topic---)------------------------------------------------->< | |O esquema é MQDB2. |A função MQSUBSCRIBE é utilizada para registrar o interesse em mensagens do |MQSeries publicadas em um tópico especificado. O |subscriber-service especifica um destino lógico para mensagens que |correspondem ao tópico especificado. As mensagens que correspondem a |topic serão colocadas na fila definida pelo |subscriber-service e podem ser lidas ou recebidas através de uma |chamada subseqüente para MQREAD, MQRECEIVE, MQREADALL ou MQRECEIVEALL. |Essa função requer a instalação e a configuração de um sistema de publicação e |assinatura baseado no MQSeries, tal como MQSeries Integrator ou MQSeries |Publish/Subscribe. Consulte o |www.ibm.com/software/MQSeries para obter detalhes |adicionais. |A função retorna um valor '1' se bem-sucedida ou um valor |'0' se malsucedida. A execução bem-sucedida dessa função fará |com que o servidor de publicação e assinatura envie mensagens que correspondam |o tópico ao ponto de serviço definido pelo subscriber-service. | |subscriber-service |Uma cadeia que contém o ponto de assinatura lógico do MQSeries para onde |as mensagens que corresponde a topic serão enviadas. Se |especificado, o subscriber-service deverá se referir a um Subscribers |Service Point definido no arquivo de repositório AMT.XML. As |definições de pontos de serviços incluem o nome do MQSeries Queue Manager e da |Fila. Consulte o manual MQSeries Application Messaging Interface para |obter detalhes adicionais. Se subscriber-service não for |especificado, em vez disso, o DB2.DEFAULT.SUBSCRIBER será |utilizado. O tamanho máximo de subscriber-service é 48 |caracteres. |service-policy |Uma cadeia que contém o MQSeries AMI Service Policy a ser utilizado no |tratamento da mensagem. Se especificado, o service-policy deve |se referir a um Policy definido no arquivo de repositório |AMT.XML. Um Service Policy define um conjunto de qualidade de |opções de serviço que deve ser aplicado a essa operação de mensagem. |Essas opções incluem a prioridade e a persistência da mensagem. |Consulte o manual MQSeries Application Messaging Interface para obter detalhes |adicionais. Se service-policy não for especificado, em vez |disso, o DB2.DEFAULT.POLICY padrão será utilizado. O |tamanho máximo de service-policy é 48 caracteres. |topic |Uma cadeia que define os tipos de mensagens a serem recebidos. |Apenas as mensagens publicadas com os tópicos especificados serão recebidas |por essa assinatura. Várias assinaturas podem coexistir. O |tamanho máximo do tópico é 40 caracteres. Vários tópicos podem ser |especificados em uma cadeia (até 40 caracteres). Cada tópico deve ser |separado por uma dois pontos. Por exemplo, "t1:t2:o |terceiro tópico" indica que a mensagem está associada a todos os três |tópicos: t1, t2 e "o terceiro tópico". | |Exemplos: |Exemplo 1: Este exemplo registra um interesse em mensagens que contêm |o tópico "Tempo". O subscriber-service padrão |(DB2.DEFAULT.SUBSCRIBER) é registrado como o assinante e o |service-policy padrão (DB2.DEFAULT.POLICY) especifica a |qualidade de serviço. |VALUES MQSUBSCRIBE('Tempo') |Exemplo 2: Este exemplo demonstra um assinante registrando o |interesse em mensagens que contêm "Estoques". O assinante registra como |"PORTFOLIO-UPDATES" com política "BASIC-POLICY". |VALUES MQSUBSCRIBE('PORTFOLIO-UPDATES','BASIC-POLICY','Estoques') |Todos os exemplos retornam um valor escalar '1' se |bem-sucedidos. |38.3.2.12 MQUNSUBSCRIBE | | | |>>-MQUNSUBSCRIBE---(--------------------------------------------> | |>-----+------------------------------------------------+--------> | '-subscriber-service--,--+--------------------+--' | '-service-policy--,--' | |>----topic---)------------------------------------------------->< | |O esquema é MQDB2. |A função MQUNSUBSCRIBE é utilizada para cancelar o registro de uma |assinatura de mensagem existente. O subscriber-service, |service-policy e topic são utilizados para identificar qual |assinatura é cancelada. Essa função requer a instalação e a |configuração de um sistema de publicação e assinatura baseado no MQSeries, tal |como MQSeries Integrator ou MQSeries Publish/Subscribe. Consulte o |www.ibm.com/software/MQSeries para obter detalhes |adicionais. |A função retorna um valor '1' se bem-sucedida ou um valor |'0' se malsucedida. O resultado da execução bem-sucedida |dessa função é que o servidor de publicação e assinatura removerá a assinatura |definida pelos parâmetros determinados. As mensagens com o |topic especificado não serão mais enviadas para o destino lógico |definido pelo subscriber-service. | |subscriber-service |Se especificado, o subscriber-service deverá se referir a um |Subscribers Service Point definido no arquivo de repositório |AMT.XML. As definições do ponto de serviço incluem o nome do |MQSeries Queue Manager e da Fila. Consulte o manual MQSeries |Application Messaging Interface para obter detalhes adicionais. Se |subscriber-service não for especificado, o valor |DB2.DEFAULT.SUBSCRIBER será utilizado. O tamanho máximo |de subscriber-service é 48 caracteres. |service-policy |Se especificado, o service-policy deve se referir a um Policy |definido no arquivo de repositório AMT.XML. Um Service Policy |define um conjunto de qualidade de opções de serviço que deve ser aplicado a |essa operação de mensagem. Consulte o manual MQSeries Application |Messaging Interface para obter detalhes adicionais. Se |service-policy não for especificado, o |DB2.DEFAULT.POLICY padrão será utilizado. O tamanho |máximo de service-policy é 48 caracteres. |topic |Uma cadeia que especifica o assunto de mensagens que não são devem ser |recebidas. O tamanho máximo de topic é 40 caracteres. |Vários tópicos podem ser especificados em uma cadeia (até 40 |caracteres). Cada tópico deve ser separado por uma dois pontos. |Por exemplo, "t1:t2:o terceiro tópico" indica que a mensagem está |associada a todos os três tópicos: t1, t2 e "o terceiro tópico". | |Exemplos: |Exemplo 1: Este exemplo cancela um interesse em mensagens que contêm |o tópico "Tempo". O subscriber-service padrão |(DB2.DEFAULT.SUBSCRIBER) é registrado como não-assinante e o |service-policy padrão (DB2.DEFAULT.POLICY) especifica a |qualidade de serviço. |VALUES MQUNSUBSCRIBE('Tempo') |Exemplo 2: Este exemplo demonstra um assinante cancelando o interesse |em mensagens que contêm "Estoques". O assinante é registrado como |"PORTFOLIO-UPDATES" com a política "BASIC-POLICY". |VALUES MQUNSUBSCRIBE('PORTFOLIO-UPDATES','BASIC-POLICY','Estoques') |Esses exemplos retornam um valor escalar '1' se bem-sucedidos e |um valor escalar '0' se malsucedidos. |38.3.2.13 MULTIPLY_ALT |>>-MULTIPLY_ALT-------------------------------------------------> | |>----(exact_numeric_expression, exact_numeric_expression)------>< | |O esquema é SYSIBM. |Essa função estava disponível no FixPak 2 da Versão 7.1. |A função escalar MULTIPLY_ALT retorna o produto de dois argumentos como um |valor decimal. Ela é fornecida como uma alternativa ao operador de |multiplicação, especialmente quando a soma das precisões dos argumentos |exceder 31. |Os argumentos podem ser qualquer tipo de dados numérico exato incorporado |(DECIMAL, BIGINT, INTEGER ou SMALLINT). |O resultado da função é DECIMAL. A precisão e a escala do resultado |são determinadas como segue, usando os símbolos p e s para denotar a precisão |e a escala do primeiro argumento e os símbolos p' e s' para denotar |a precisão e a escala do segundo argumento. | * |A precisão é MIN(31, p + p') * |A escala é: | o |0 se a escala de ambos os argumentos for 0 o |MIN(31, s+s') se p+p' for menor ou igual a 31 o |MAX(MIN(3, s+s'), 31-(p-s+p'-s') ) se p+p' for maior |que 31. | | |O resultado poderá ser nulo se pelo menos um argumento puder ser nulo ou o |banco de dados for configurado com DFT_SQLMATHWARN definido para sim; o |resultado será o valor nulo se um dos argumentos for nulo. |A função MULTIPLY_ALT é uma opção melhor do que o operador de multiplicação |na execução de aritmética decimal, na qual uma escala de pelo menos 3 é |necessária e a soma das precisões excede 31. Nesses casos, o cálculo |integral é executado de forma que seja evitada a sobrecarga. O |resultado final é então atribuído ao tipo de dados de resultado usando |truncamento onde necessário para corresponder à escala. Observe que a |sobrecarga do resultado final é ainda possível quando a escala é 3. |A seguir há um exemplo comparando os tipos de resultados usando |MULTIPLY_ALT e o operador de multiplicação. | Tipo de argumento Tipo de argumento Resultado usando Resultado usando o 1 2 MULTIPLY_ALT operador de multiplicação DECIMAL(31,3) DECIMAL(15,8) DECIMAL(31,3) DECIMAL(31,11) DECIMAL(26,23) DECIMAL(10,1) DECIMAL(31,19) DECIMAL(31,24) DECIMAL(18,17) DECIMAL(20,19) DECIMAL(31,29) DECIMAL(31,31) DECIMAL(16,3) DECIMAL(17,8) DECIMAL(31,9) DECIMAL(31,11) DECIMAL(26,5) DECIMAL(11,0) DECIMAL(31,3) DECIMAL(31,5) DECIMAL(21,1) DECIMAL(15,1) DECIMAL(31,2) DECIMAL(31,2) |Exemplo: |Multiplique dois valores em que o tipo de dados do primeiro argumento é |DECIMAL(26, 3) e o tipo de dados do segundo argumento é DECIMAL(9,8). O |tipo de dados do resultado é DECIMAL(31,7). |values multiply_alt(98765432109876543210987.654,5.43210987) |1 |--------------------------------- | 536504678578875294857887.5277415 |Observe que o produto completo desses dois números é |536504678578875294857887.52774154498, mas os últimos 4 |dígitos foram truncados para corresponder à escala do tipo de dados de |resultado. O uso do operador de multiplicação com os mesmos valores |resulta em uma sobrecarga aritmética, porque o tipo de dados de resultado é |DECIMAL(31,11) e o valor do resultado tem 24 dígitos à esquerda do decimal, |mas o tipo de dados de resultado suporta somente 20 dígitos. |38.3.2.14 REC2XML | | | |>>-REC2XML---(--decimal-constant---,--format-string-------------> | |>----,--row-tag-string----+------------------------+--)-------->< | | .------------------. | | | V | | | '----,--column-name---+--' | |O esquema é SYSIBM. |A função REC2XML retorna uma cadeia formatada com tags XML e que contêm os |nomes e os valores de colunas. | |decimal-constant |O fator de expansão para substituição de caracteres de valores de |colunas. O valor decimal deve ser maior que 0.0 e menor ou igual |a 6.0 (SQLSTATE 42820). |O valor decimal-constant é utilizado para calcular o comprimento |do resultado da função. Para cada coluna com um tipo de dados de |caractere, o atributo de comprimento da coluna é multiplicado por esse fator |de expansão antes de ser incluído no comprimento de resultado. |Para não especificar nenhuma expansão, utilize um valor 1.0. |Especificar um valor menor que 1.0 reduz o comprimento de resultado |calculado. Se o comprimento atual da cadeia de resultado for maior que |o comprimento de resultado calculado da função, um erro será apresentado |(SQLSTATE 22001). |format-string |A constante da cadeia que especifica qual formato da função deve ser |utilizado durante a execução. |O format-string tem distinção entre maiúsculas e minúsculas, |portanto, os valores a seguir devem ser especificados em letras maiúsculas |para ser reconhecido. | |COLATTVAL ou COLATTVAL_XML |Esses formatos retornam uma cadeia com colunas como valores de |atributos. |>>-<--row-tag-string-->-----------------------------------------> | | .----------------------------------------------------------------------------. | V | |>--------<--column-name--=--"nome da coluna"--+->--column-value----+--+> | '-null="true"------------------------------------------->< | |Os nomes de colunas podem ou não ser valores de atributos XML |válidos. Para aqueles nomes de colunas que não são valores de atributos |XML válidos, a substituição do caractere é executada no nome da coluna antes |de ser incluído na cadeia de resultado. |Os valores de colunas podem ou não ser valores de elementos XML |válidos. Se o format-string COLATTVAL for especificado, para |aqueles valores de colunas que não são valores de elementos XML válidos, a |substituição do caractere será executada no valor da coluna antes de ser |incluída na cadeia de resultado. Se o format-string |COLATTVAL_XML for especificado, a substituição do caractere não será executada |em valores de colunas (observe que a substituição do caractere ainda é |executada em nomes de colunas). | |row-tag-string |Uma constante de cadeia que especifica a marcação utilizada para cada |linha. |Se uma cadeia vazia for especificada, um valor 'row' será |assumido. |Se uma cadeia de um ou mais caracteres vazios for especificada, nenhum |row-tag-string de início ou row-tag-string de fim (incluindo |os delimitadores de suporte de ângulo) aparecerão na cadeia de |resultado. |nome da coluna |Um nome qualificado ou não de uma coluna da tabela. A coluna deve |ter um dos seguintes tipos de dados (SQLSTATE 42815): | o |numérico (SMALLINT, INTEGER, BIGINT, DECIMAL, NUMERIC, REAL, DOUBLE) o |cadeia de caracteres (CHAR, VARCHAR) |5 o |data/hora (DATE, TIME, TIMESTAMP) o |um tipo definido pelo usuário baseado em um dos tipos acima | |O mesmo nome da coluna não pode ser especificado mais de uma vez (SQLSTATE |42734). | |O resultado da função é VARCHAR. O comprimento máximo é 32672 bytes |(SQLSTATE 54006). |Considere a seguinte invocação: | REC2XML (dc, fs, rt, c1, c2, ..., cn) | |Se o valor fs for "COLATTVAL" ou "COLATTVAL_XML" |o resultado será o mesmo que a seguinte expressão: | '<' CONCAT rt CONCAT '>' CONCAT y1 CONCAT y2 CONCAT ... CONCAT yn | CONCAT '' |onde yn é equivalente a: | '' CONCAT rn CONCAT '' |se a coluna não for nula e | '" null="true"/>' |se o valor da coluna for nulo. |xvcn é equivalente a uma representação de cadeia do nome da |coluna cn, onde quaisquer caracteres que aparecem em Tabela 29 são substituídos pela representação correspondente. |Isso garante que a cadeia resultante é um atributo XML válido ou um símbolo de |valor de elemento. |rn é equivalente a uma representação de cadeia conforme indicado |em Tabela 28. | |Valores de Colunas do Resultado: |Com base no tipo de dados da coluna e na format-string atual |especificada, os valores de colunas da tabela podem ser transformados antes de |serem concatenados na cadeia de resultado. A tabela a seguir mostra as |transformações feitas nos valores das colunas. | |Tabela 28. Resultado da Cadeia de Valores da Coluna Tipo de dados cn rn CHAR, VARCHAR O valor é a cadeia. Se format-string não encerrar nos caracteres "_XML", cada caractere em cn será substituído pela representação de substituição correspondente de Tabela 29, conforme indicado. O atributo de comprimento é: dc * o atributo de comprimento cn. SMALLINT, INTEGER, BIGINT, DECIMAL, O valor é LTRIM(RTRIM(CHAR(cn))). O NUMERIC, REAL, DOUBLE atributo de comprimento é o comprimento de resultado CHAR(cn). O caractere decimal é sempre o caractere de ponto. DATE O valor é CHAR(cn, ISO). O atributo de comprimento é o comprimento de resultado CHAR(cn, ISO). TIME O valor é CHAR(cn, JIS). O atributo de comprimento é o comprimento de resultado CHAR(cn, JIS) TIMESTAMP O valor é CHAR(cn). O atributo de comprimento é o comprimento de resultado CHAR(cn). |Substituição do Caractere: |Dependendo do valor especificado para format-string, determinados |caracteres nos nomes e valores de colunas serão substituídos para garantir que |os nomes de colunas formam os valores de atributos XML válidos e os valores de |colunas formam os valores de elementos XML válidos. | |Tabela 29. Substituições de Caracteres para Valores de Atributos e de Elementos XML < é substituído por < > é substituído por > " é substituído por " & é substituído por & ' é substituído por ' |Exemplos: | * |Utilizando a tabela DEPARTMENT, formate a linha da tabela de departamento, |exceto as colunas DEPTNAME e LOCATION, para o departamento 'D01' em |uma cadeia de XML válido. Visto que os dados não contêm nenhum |caractere que requer substituição, o fator de expansão será 1.0 (sem |expansão). Também observe que o valor MGRNO é nulo para essa |linha. | SELECT REC2XML (1.0, 'COLATTVAL', '', DEPTNO, MGRNO, ADMRDEPT) | FROM DEPARTMENT | WHERE DEPTNO = 'D01' |Esse exemplo retorna a seguinte cadeia VARCHAR(117): | | D01 | | A00 | | |Nota: REC2XML não insere caracteres de avanço de linha na saída. A saída de |exemplo acima é formatada em consideração a leitura. | * |Uma agenda universitária de 5 dias introduz uma classe com o nome |'&43' e |sobrecarga da '', 21 para os nomes de colunas, |75 para o '', |'' e aspas duplas, 7 para os dados CLASS_CODE, |6 para os dados DAY e 8 para os dados STARTING). Visto que os |caracteres '&' e '<' serão substituídos, um fator |de expansão 1.0 não será suficiente. O atributo de comprimento |da função precisará suportar um aumento de 7 a 14 caracteres para os novos |dados CLASS_CODE do formato. |Entretanto, desde que se saiba que o valor DAY nunca terá mais de 1 dígito |longo, um extra de 5 é calculado no comprimento que nunca será |utilizado. Portanto, a expansão apenas precisa manipular um aumento de |2. Visto que CLASS_CODE é a única coluna de cadeia de caracteres na |lista de argumentos, esse é o único valor da coluna ao qual o fator de |expansão se aplica. Para obter um aumento de 2 para o comprimento, será |necessário um fator de expansão de 9/7 (aproximadamente |1.2857). Um fator de expansão de 1.3 será |utilizado. | SELECT REC2XML (1.3, 'COLATTVAL', 'record', CLASS_CODE, DAY, STARTING) | FROM CL_SCHED | WHERE CLASS_CODE = '&43 | &43<FIE | 5 | 06:45:00 | | |Nota: REC2XML não insere caracteres de avanço de linha na saída. A saída de |exemplo acima é formatada em consideração a leitura. | * |Esse exemplo mostra os caracteres substituídos em um nome de |coluna. | SELECT REC2XML (1.3,'COLATTVAL', '', Class, "time | &43<FIE | >-GET_ROUTINE_SAR----------------------------------------------> | |>----(--sarblob--,--type--,--cadeia de nome da rotina--)------->< | |O esquema é SYSFUN. |Este procedimento estava disponível no FixPak 3 da Versão |7.1. |O procedimento GET_ROUTINE_SAR recupera as informações necessárias para |instalar a mesma rotina em outro servidor do banco de dados que está |executando o mesmo nível no mesmo sistema operacional. As informações |são recuperadas em uma única cadeia BLOB que representa um arquivo acumulativo |SQL. O solicitador do procedimento GET_ROUTINE_SAR deve ter autoridade |DBADM. | |sarblob |Um argumento de saída do tipo BLOB(3M) que contém o conteúdo do arquivo |SAR da rotina. |type |Um argumento de entrada do tipo CHAR(2) que especifica se o tipo de rotina |está utilizando um dos seguintes valores: | o |P para um procedimento. o |SP para o nome específico de um procedimento. | |routine_name_string |Um argumento de entrada do tipo VARCHAR(257) que especifica um nome |qualificado da rotina. Se não for especificado um nome de esquema, o |padrão será CURRENT SCHEMA quando a rotina for processada. | |Nota: A routine_name_string não pode incluir o caractere de aspas duplas |("). | |O nome qualificado da rotina é usado para determinar qual rotina |recuperar. A rotina encontrada deve ser uma rotina SQL, caso contrário, |é emitido um erro (SQLSTATE 428F7). Quando não é usado um nome |específico, isso pode resultar em mais de uma rotina e é emitido um erro |(SQLSTATE 42725). Se isso ocorrer, o nome específico da rotina deverá |ser usado para se obter a rotina. |O arquivo SAR deve incluir um arquivo de ligação que pode não estar |disponível no servidor. Se o arquivo de ligação não puder ser |encontrado e armazenado no arquivo SAR, é emitido um erro (SQLSTATE |55045). |38.3.4.2 PUT_ROUTINE_SAR |>>-PUT_ROUTINE_SAR----------------------------------------------> | |>----(--sarblob--+----------------------------------------------+> | '-,--new_owner--,--usar indicador de registro--' | |>----)--------------------------------------------------------->< | |O esquema é SYSFUN. |Este procedimento estava disponível no FixPak 3 da Versão |7.1. |O procedimento PUT_ROUTINE_SAR passa o arquivo necessário para criar uma |rotina de SQL no servidor e, então, define a rotina. O solicitador do |procedimento PUT_ROUTINE_SAR deve ter autoridade DBADM. | |sarblob |Um argumento de entrada do tipo BLOB(3M) que contém o conteúdo do arquivo |SAR da rotina. |new_owner |Um argumento de entrada do tipo VARCHAR(128) que contém um nome de |autorização para verificação de autorização da rotina. O novo |proprietário deve ter os privilégios necessários para a definição da |rotina. Se o novo proprietário não for especificado, é |utilizado o nome da autorização do definidor da rotina original. |use_register_flag |Um argumento de entrada do tipo INTEGER que indica se os registradores |especiais CURRENT SCHEMA e CURRENT PATH são usados ou não para definir a |rotina. Se não forem usados, as definições para o esquema padrão e para |o caminho da SQL serão as definições usadas quando a rotina foi originalmente |definida. Valores possíveis para usar sinalizador de |registro: | |0 |Não usar os registradores especiais do ambiente atual |1 |Usar os registradores especiais CURRENT SCHEMA e CURRENT PATH. | |Se o valor for 1, CURRENT SCHEMA será usado para nomes de objetos não |qualificados na definição de rotina (incluindo o nome da rotina) e CURRENT |PATH será usado para resolver rotinas e tipos de dados não qualificados na |definição de rotina. Se usar sinalizador de registro não for |especificado, o comportamento será como se o valor 0 tivesse sido |especificado. | |As informações de identificação contidas em sarblob são |verificadas para confirmar se as entradas são adequadas para o ambiente, caso |contrário, é emitido um erro (SQLSTATE 55046). O procedimento |PUT_ROUTINE_SAR então usa o conteúdo do sarblob para definir a rotina |no servidor. |O conteúdo do argumento sarblob é extraído para os arquivos |separados que compõem o arquivo archive SQL. A biblioteca compartilhada |e os arquivos de ligação são gravados em arquivos em um diretório |temporário. O ambiente é definido para que o processamento da instrução |de definição de rotina saiba que a compilação e a ligação não são necessárias |e que a localização da biblioteca compartilhada e dos arquivos de ligação está |disponível. O conteúdo do arquivo DDL é então usado para executar |dinamicamente a instrução de definição de rotina. |Nota: Somente um procedimento pode ser instalado simultaneamente sob um determinado |esquema. | |O processamento dessa instrução pode resultar nos mesmos erros que ocorrem |na execução da instrução de definição de rotina usando outras |interfaces. Durante o processamento da definição de rotina, a presença |da biblioteca compartilhada e dos arquivos de ligação é observada e as etapas |de pré-compilação, compilação e ligação são puladas. O arquivo de |ligação é usado durante o processamento de ligação e o conteúdo de ambos os |arquivos é copiado para o diretório usual de uma rotina SQL. |Nota: Se uma operação GET ROUTINE ou PUT ROUTINE (ou seu procedimento |correspondente) falhar, sempre é retornado um erro (SQLSTATE 38000), |juntamente com texto de diagnóstico fornecendo informações sobre o motivo da |falha. Por exemplo, se o nome do procedimento fornecido para GET |ROUTINE não identificar um procedimento SQL, é retornado o texto de |diagnóstico "100, 02000", onde "100" e "02000" são respectivamente o SQLCODE e |o SQLSTATE que identificam o motivo do problema. O SQLCODE e o SQLSTATE |neste exemplo indicam que a linha especificada para o nome de procedimento |indicado não foi encontrada nas tabelas do catálogo. | ------------------------------------------------------------------------ 38.4 Capítulo 5. Consultas |38.4.1 select-statement/diagrama de sintaxe |O diagrama de sintaxe muda para: |>>-+---------------------------------------+--fullselect--------> | | .-,--------------------------. | | | V | | | '-WITH-----common-table-expression---+--' | |>----+-----------------+--+--------------------+----------------> | '-order-by-clause-' '-fetch-first-clause-' | |>----*--+---------------------+--*--+---------------------+--*--> | +-read-only-clause----+ '-optimize-for-clause-' | | (1) | | '-update-clause-------' | |>-----+---------------+---------------------------------------->< | '-WITH--+-RR-+--' | +-RS-+ | +-CS-+ | '-UR-' | |Notas: 1. |update-clause e order-by-clause não podem ser ambos especificados no mesmo |select-statement. | |Inclua o seguinte parágrafo na descrição abaixo no diagrama de |sintaxe: | | A cláusula WITH opcional especifica o nível de isolamento no qual a |instrução select é executada. | | o |RR - Leitura repetível o |RS - Estabilidade de leitura o |CS - Estabilidade do cursor o |UR - Leitura não consolidada | |O nível de isolamento padrão da instrução é o nível de isolamento do |pacote ao qual a instrução está ligada. | 38.4.2 select-statement/fetch-first-clause O último parágrafo da descrição de fetch-first-clause: A especificação de fetch-first-clause em uma instrução-select torna o cursor não é eliminável (somente para leitura). Essa cláusula não pode ser especificada junto com a cláusula FOR UPDATE. está incorreto e deve ser removido. ------------------------------------------------------------------------ |38.5 Capítulo 6. Instruções SQL |38.5.1 Atualização da Chave de Particionamento Agora Suportada |A atualização da chave de particionamento é agora suportada. O |seguinte texto de várias instruções no Capítulo 6 deverá excluído |somente se DB2_UPDATE_PART_KEY=ON: |Nota: Se DB2_UPDATE_PART_KEY=OFF, as restrições ainda são válidas. | |38.5.1.1 Instrução: ALTER TABLE |Regras | * |Uma coluna de chave de particionamento de uma tabela não pode ser |atualizada (SQLSTATE 42997). * |Uma coluna que permite nulos de uma chave de particionamento não pode ser |incluída como uma chave externa quando o relacionamento é definido com ON |DELETE SET NULL (SQLSTATE 42997). | |38.5.1.2 Instrução: CREATE TABLE |Regras | * |Uma coluna de chave de particionamento de uma tabela não pode ser |atualizada (SQLSTATE 42997). * |Uma coluna que permite nulos de uma chave de particionamento não pode ser |incluída como uma chave externa quando o relacionamento é definido com ON |DELETE SET NULL (SQLSTATE 42997). | |38.5.1.3 Instrução: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (column-name,...) |Nota: As colunas da chave de particionamento não podem ser atualizadas (SQLSTATE |42997). | |38.5.1.4 Instrução: UPDATE |Notas de rodapé | * |108 Uma coluna de uma chave de particionamento não é atualizável (SQLSTATE |42997). A linha de dados deve ser excluída e inserida para alterar |colunas em uma chave de particionamento. | |38.5.2 Chaves de índice maiores para bancos de dados Unicode |38.5.2.1 ALTER TABLE |O comprimento das colunas de comprimento variável que fazem parte de |qualquer índice, inclusive chaves primárias e exclusivas, definidas quando a |variável de registro DB2_INDEX_2BYTEVARLEN estava ativada, podem ser alterados |para um comprimento maior que 255 bytes. O fato de uma coluna de |comprimento variável estar envolvida em uma chave remota não impede mais que o |comprimento dessa coluna seja alterado para mais de 255 bytes, |independentemente da definição da variável de registro. Entretanto, os |dados com comprimento maior que 255 não podem ser inseridos na tabela, a não |ser que a coluna da chave principal correspondente tenha comprimento maior que |255 bytes, o que é possível somente se a chave primária tiver sido criada com |a variável de registro definida como ON. |38.5.2.2 CREATE INDEX |Os índices podem ser definidos em colunas com comprimento variável cujo |comprimento é maior que 255 bytes se a variável de registro |DB2_INDEX_2BYTEVARLEN for ON. |38.5.2.3 CREATE TABLE |Chaves principais e exclusivas com peças variáveis podem ter mais de 255 se |a variável de registro DB2_INDEX_2BYTEVARLEN for ON. Chaves remotas |podem ser definidas em colunas de comprimento variável cujo comprimento é |maior que 255 bytes. |38.5.3 ALTER SEQUENCE |ALTER SEQUENCE | | |A instrução ALTER SEQUENCE modifica os atributos de uma seqüência da |seguinte forma: | * |Reinício da seqüência * |Alterando o incremento entre valores de seqüência futuros * |Definindo novos valores mínimo ou máximo * |Alterando o número de números de seqüência em cache * |Alterando se a seqüência pode ou não executar um ciclo * |Alterando se os números de seqüência devem ser gerados pela ordem do |pedido | |Invocação |Essa instrução pode ser incorporada em um programa aplicativo ou emitida |através do uso de instruções SQL dinâmicas. Trata-se de uma instrução |executável que pode ser preparada dinamicamente.Entretanto, se a opção |de ligação DYNAMICRULES BIND for válida, a instrução não pode ser preparada |dinamicamente (SQLSTATE 42509). |Autorização |Os privilégios retidos pelo ID de autorização da instrução devem incluir no |mínimo um dos seguintes: | * |Definidor da seqüência * |O privilégio ALTERIN do esquema definido de forma implícita ou explícita * |Autoridade SYSADM ou DBADM | |Sintaxe |>>-ALTER SEQUENCE--sequence-name--------------------------------> | | .-------------------------------------------. | V | |>-------+-RESTART--+-------------------------+-+--+------------>< | | '-WITH--numeric-constant--' | | +-INCREMENT BY--numeric-constant-------+ | +-+-MINVALUE--numeric-constant--+------+ | | '-NO MINVALUE-----------------' | | +-+-MAXVALUE--numeric-constant--+------+ | | '-NO MAXVALUE-----------------' | | +-+-CYCLE----+-------------------------+ | | '-NO CYCLE-' | | +-+-CACHE--integer-constant--+---------+ | | '-NO CACHE-----------------' | | '-+-ORDER----+-------------------------' | '-NO ORDER-' | |Descrição | |sequence-name |Identifica a seqüência específica. A combinação de nome e o nome do |esquema implícito ou explícito deve identificar uma seqüência existente no |servidor atual. Se não houver seqüência com esse nome no esquema |especificado de forma explícita ou implícita, é emitido um erro (SQLSTATE |42704). |RESTART |Reinicia a seqüência. Se numeric-constant não for |especificado, a seqüência é reiniciada no valor especificado de forma |implícita ou explícita como valor inicial na instrução CREATE SEQUENCE que |criou a seqüência originalmente. | |WITH numeric-constant |Reinicia a seqüência com o valor especificado. Esse valor pode ser |qualquer valor positivo ou negativo que pode ser atribuído a uma coluna do |tipo de dados associado à seqüência (SQLSTATE 42820), desde que não existam |dígitos diferentes de zero à direita do ponto decimal (SQLSTATE 42894). | |INCREMENT BY |Especifica o intervalo entre valores consecutivos da seqüência. |Esse valor pode ser qualquer valor positivo ou negativo que pode ser atribuído |a uma coluna do tipo de dados associado à seqüência (SQLSTATE 42820) e não |ultrapassa o valor de uma constante de número inteiro grande (SQLSTATE 42815), |sem dígitos diferentes de zero existentes à direita do ponto decimal (SQLSTATE |428FA). |Se esse valor for negativo, a seqüência de valores decresce. Se esse |valor for positivo, a seqüência de valores sobe. Se esse valor for 0 ou |maior que o intervalo definido por MINVALUE e MAXVALUE, é gerado somente um |valor, mas caso contrário, a seqüência é tratada como uma seqüência |ascendente. |MINVALUE ou NO MINVALUE |Especifica o valor mínimo no qual uma seqüência descendente executa o |ciclo ou pára de gerar valores, ou uma seqüência ascendente executa o ciclo |após atingir o valor máximo. | |MINVALUE numeric-constant |Especifica a constante numérica que corresponde ao valor mínimo. |Esse valor pode ser qualquer valor positivo ou negativo que pode ser atribuído |a uma coluna do tipo de dados associado à seqüência (SQLSTATE 42820), sem |dígitos diferentes de zero à direita do ponto decimal (SQLSTATE 428FA), mas o |valor pode ser menor ou igual ao valor máximo (SQLSTATE 42815). |NO MINVALUE |Para uma seqüência ascendente, o valor é START WITH, ou 1 se START WITH |não for especificado. Para uma seqüência descendente, o valor é o |mínimo do tipo de dados associado à seqüência. Esse é o padrão. | |MAXVALUE ou NO MAXVALUE |Especifica o valor máximo no qual uma seqüência descendente executa o |ciclo ou pára de gerar valores, ou uma seqüência descendente executa o ciclo |após atingir o valor mínimo. | |MAXVALUE numeric-constant |Especifica a constante numérica que corresponde ao valor máximo. |Esse valor pode ser qualquer valor positivo ou negativo que pode ser atribuído |a uma coluna do tipo de dados associado à seqüência (SQLSTATE 428FA), sem |dígitos diferentes de zero à direita do ponto decimal (SQLSTATE 428FA), mas o |valor pode ser maior ou igual ao valor mínimo (SQLSTATE 42815). |NO MAXVALUE |Para uma seqüência ascendente, o valor é o máximo do tipo de dados |associado à seqüência. Para uma seqüência descendente, o valor é START |WITH, ou -1 se START WITH não for especificado. Esse é o padrão. | |CYCLE ou NOCYCLE |Especifica se a seqüência deve continuar gerando valores após atingir seu |valor máximo ou mínimo. O limite da seqüência pode ser atingido com o |próximo valor caindo exatamente na condição do limite, ou se o alvo estiver |errado, sendo que neste caso, o próximo valor é determinado através do |reinício cíclico do valor START WITH, se forem permitidos ciclos. | |CYCLE |Especifica que continuam sendo gerados valores para essa seqüência após o |valor máximo ou mínimo ter sido atingido. Se essa opção for utilizada, |quando uma seqüência ascendente atingir seu valor máximo, ela gera seu valor |mínimo ou quando uma seqüência descendente atingir seu valor mínimo, ela gera |seu valor máximo. Os valores máximo e mínimo da seqüência determinam o |intervalo utilizado para o ciclo. |Quando CYCLE está efetivo, podem ser gerados valores em duplicata para a |seqüência. |NO CYCLE |Especifica que não são gerados valores para a seqüência quando o valor |máximo ou mínimo da seqüência tiver sido atingido. Esse é o |padrão. | |CACHE ou NO CACHE |Especifica se devem ser mantidos alguns valores pré-alocados na memória, |tornando o acesso mais rápido. Esta é uma opção de desempenho e |ajuste. | |CACHE integer-constant |Especifica o número máximo de valores de seqüência pré-alocados e mantidos |na memória. A pré-alocação e armazenamento de valores em cache reduz a |E/S síncrona no log quando são gerados valores para a seqüência. |No caso de uma falha no sistema, todos os valores de seqüência em cache que |não foram utilizados em instruções consolidadas são perdidos (isto é, nunca |são utilizados). O valor especificado para a opção CACHE é o número |máximo de valores de seqüência que podem ser perdidos no caso de falha no |sistema. |O valor mínimo é 2 (SQLSTATE 42815). O valor padrão é CACHE |20. |NO CACHE |Especifica que os valores da seqüência não devem ser pré-alocados. |Garante que não ocorre perda de valores no caso de falha no sistema, |encerramento ou desativação do banco de dados. Quando essa opção é |especificada, os valores da seqüência não são armazenados na cache. |Nesse caso, cada pedido de um novo valor para a seqüência resulta em E/S |síncrona para o log. | |NO ORDER ou ORDER |Especifica se os números de seqüência devem ser gerados pela ordem do |pedido. | |ORDER |Especifica se os números de seqüência são gerados pela ordem do |pedido. |NO ORDER |Especifica se os números de seqüência não precisam ser gerados pela ordem |do pedido. Esse é o padrão. | | |Após reiniciar uma seqüência ou alterar para CYCLE, é possível gerar |números de seqüência em duplicata, iguais aos gerados anteriormente pela |seqüência. |Versão | * |Somente os números de seqüência futuros são afetados pela instrução ALTER |SEQUENCE. * |O tipo de dados de uma seqüência não pode ser alterado. Em vez |disso, elimine e recrie a seqüência, especificando o tipo de dados desejado |para a nova seqüência. * |Todos os valores de seqüência em cache são perdidos quando a seqüência é |alterada. | |Exemplos |Exemplo 1: Um possível motivo para especificar RESTART sem |valor numérico é redefinir a seqüência para o valor START WITH. Neste |exemplo, o objetivo é gerar os números de 1 até o número de linhas na tabela e |depois inserir os números em uma coluna adicionada à tabela utilizando tabelas |temporárias. Outro uso seria recuperar resultados quando todas as |linhas resultantes estiverem numeradas: | ALTER SEQUENCE org_seq | RESTART | SELECT NEXTVAL para org_seq, org.* | FROM org | |38.5.4 ALTER TABLE |Alterações em fragmentos da sintaxe: | |alteração de coluna | ||--column-name--------------------------------------------------> | |>-----+-SET--+-DATA TYPE--+-VARCHAR-----------+---(--integer--)--+-----------+> | | | +-CHARACTER VARYING-+ | | | | | '-CHAR VARYING------' | | | | '-EXPRESSION AS--(--generation-expression--)--------' | | +-ADD SCOPE--+-typed-table-name-+--------------------------------------+ | | '-typed-view-name--' | | '-+-| alteração de identidade |--------------------------------------+-' | '-SET GENERATED--+-ALWAYS-----+---+------------------------------+-' | '-BY DEFAULT-' '-| alteração de identidade |--' | |>---------------------------------------------------------------| | |alteração de identidade | ||---+-RESTART--+--------------------------+-+-------------------| | | '-WITH--numeric-constant---' | | +-SET INCREMENT BY--numeric-constant----+ | | (1) | | +-SET--+-NO MINVALUE-----------------+--+ | | '-MINVALUE--numeric-constant--' | | +-SET--+-NO MAXVALUE-----------------+--+ | | '-MAXVALUE--numeric-constant--' | | +-SET--+-CYCLE----+---------------------+ | | '-NO CYCLE-' | | +-SET--+-NO CACHE-----------------+-----+ | | '-CACHE--integer-constant--' | | '-SET--+-NO ORDER-+---------------------' | '-ORDER----' | |Notas: 1. |Estes parâmetros podem ser especificados sem espaços: NOMINVALUE, |NOMAXVALUE, NOCYCLE, NOCACHE e NOORDER. Todas essas versões de uma |palavra são alternativas aceitáveis para as versões de duas palavras. | |Inclua os seguintes parâmetros: | |SET GENERATED |Especifica se os valores devem ser gerados para a coluna sempre ou somente |quando for necessário um valor padrão. | |ALWAYS |Sempre será gerado um valor para a coluna quando uma linha for inserida ou |atualizada na tabela. A coluna já deve estar definida como coluna |gerada (SQLSTATE 42837). |BY DEFAULT |Será gerado um valor para a coluna quando uma linha for inserida na |tabela, a não ser quando especificado de outra forma. A coluna já deve |estar definida como coluna gerada (SQLSTATE 42837). |RESTART ou RESTART WITH numeric-constant |Redefine o estado da seqüência associada à coluna de identidade. Se |WITH numeric-constant não for especificado, a seqüência para a coluna |de identidade é reiniciada no valor especificado, de forma implícita ou |explícita, como o valor inicial de quando a coluna de identidade foi |criada. A numeric-constant é uma numeric-constant exata que |pode assumir qualquer valor positivo ou negativo que pode ser atribuído a essa |coluna (SQLSTATE 42820), desde que não existam dígitos diferentes de zero à |direita do ponto decimal (SQLSTATE 42894). A coluna já deve estar |definida com o atributo IDENTITY (SQLSTATE 42837).A |numeric-constant será utilizada como o próximo valor da |coluna. |SET INCREMENT BY numeric-constant |Especifica o intervalo entre valores consecutivos da coluna de |identidade. A coluna já deve estar definida com o atributo IDENTITY |(SQLSTATE 42837). Esse valor é qualquer valor positivo ou negativo que |pode ser atribuído a essa coluna (SQLSTATE 42820) e não ultrapassa o valor de |uma constante de número inteiro grande (SQLSTATE 42815), desde que não tenha |dígitos diferentes de zero à direita do ponto decimal (SQLSTATE 42894). |Se esse valor for negativo, a seqüência de valores dessa coluna de |identidade decresce. Se esse valor for negativo, a seqüência de valores |dessa coluna de identidade sobe. Se esse valor for 0 ou maior que o |intervalo definido por MINVALUE e MAXVALUE, o DB2 gera somente um valor, mas |caso contrário, a seqüência é tratada como uma seqüência ascendente. |SET MINVALUE numeric-constant or NO MINVALUE |Especifica o valor mínimo no qual uma coluna de identidade descendente |executa um ciclo ou pára de gerar valores, ou o valor no qual uma coluna de |identidade ascendente executa um ciclo após atingir o valor máximo. A |coluna já deve estar definida com o atributo IDENTITY (SQLSTATE 42837). | |MINVALUE numeric-constant |Especifica o valor mínimo da constante numérica. Esse valor pode |ser qualquer valor positivo ou negativo que pode ser atribuído a essa coluna |(SQLSTATE 42820), sem dígitos diferentes de zero à direita do ponto decimal |(SQLSTATE 42894), mas o valor deve ser menor que o valor máximo (SQLSTATE |42815). |NO MINVALUE |Para uma seqüência ascendente, o valor é START WITH, ou 1 se START WITH |não for especificado. Para uma seqüência descendente, o valor é o |mínimo do tipo de dados da coluna. | |SET MAXVALUE numeric-constant ou NO MAXVALUE |Especifica o valor máximo no qual uma coluna de identidade ascendente |executa um ciclo ou pára de gerar valores, ou o valor no qual uma coluna de |identidade descendente executa um ciclo após atingir o valor mínimo. A |coluna já deve estar definida com o atributo IDENTITY (SQLSTATE 42837). | |MAXVALUE numeric-constant |Especifica a constante numérica que corresponde ao valor máximo. |Esse valor pode ser qualquer valor positivo ou negativo que pode ser atribuído |a essa coluna (SQLSTATE 42820), sem dígitos diferentes de zero à direita do |ponto decimal (SQLSTATE 42894), mas o valor deve ser maior que o valor mínimo |(SQLSTATE 42815). |NO MAXVALUE |Para uma seqüência ascendente, o valor é o máximo do tipo de dados da |coluna. Para uma seqüência descendente, o valor é START WITH, ou -1 se |START WITH não for especificado. | |SET CYCLE ou NO CYCLE |Especifica se essa coluna de identidade deve continuar gerando valores |após gerar o valor máximo ou mínimo. A coluna já deve estar definida |com o atributo IDENTITY (SQLSTATE 42837). | |CYCLE |Especifica que continuam sendo gerados valores para essa coluna após o |valor máximo ou mínimo ter sido atingido. Se essa opção for utilizada, |quando uma coluna de identidade ascendente atingir seu valor máximo, ela gera |seu valor mínimo ou quando uma seqüência descendente atingir seu valor mínimo, |ela gera seu valor máximo. Os valores máximo e mínimo da coluna de |identidade determinam o intervalo utilizado para o ciclo. |Quando CYCLE está efetivo, podem ser gerados valores em duplicata para uma |coluna de identidade. Apesar de não ser necessário, se você desejar |valores exclusivos, um índice exclusivo de uma coluna definido utilizando a |coluna de identidade garante a exclusividade. Se existir um índice |exclusivo nessa coluna de identidade e for gerado um valor não exclusivo, |ocorre um erro (SQLSTATE 23505). |NO CYCLE |Especifica que não são gerados valores para a coluna de identidade quando |o valor máximo ou mínimo tiver sido atingido. | |SET CACHE integer-constant ou NO CACHE |Especifica se devem ser mantidos alguns valores pré-alocados na memória, |tornando o acesso mais rápido. Esta é uma opção de desempenho e |ajuste. A coluna já deve estar definida com o atributo IDENTITY |(SQLSTATE 42837). | |CACHE integer-constant |Especifica quantos valores da seqüência de identidade são pré-alocados e |mantidos na memória. Quando são gerados valores para a coluna de |identidade, a pré-alocação e armazenamento de valores em cache reduz a E/S |síncrona para o log. |Se for necessário um novo valor para a coluna de identidade e não houver |valores são utilizados disponíveis em cache, a alocação do valor exige que se |aguarde a E/S do log. Entretanto, quando for necessário um novo valor |para a coluna de identidade e houver um valor não utilizado na cache, a |alocação desse valor de identidade pode ocorrer mais rapidamente, evitando a |E/S para o log. |Quando o gerenciador do banco de dados é interrompido (desativação do banco |de dados, falha no sistema ou encerramento, por exemplo), todos os valores de |seqüências em cache que não foram utilizados em instruções consolidadas são |perdidos (isto é, nunca são utilizados). O valor especificado para a |opção CACHE é o número máximo da coluna de identidade que podem ser perdidos |no caso de falha no sistema. |O valor mínimo é 2 (SQLSTATE 42615). |NO CACHE |Especifica que os valores da coluna de identidade não devem ser |pré-alocados. |Quando essa opção é especificada, os valores da coluna de identidade não |são armazenados na cache. Nesse caso, cada pedido de um novo valor de |identidade resulta em E/S síncrona para o log. | |SET ORDER ou NO ORDER |Especifica se os valores da coluna de identidade devem ser gerados pela |ordem do pedido. A coluna já deve estar definida com o atributo |IDENTITY (SQLSTATE 42837). | |ORDER |Especifica que os valores da coluna de identidade são gerados pela ordem |do pedido. |NO ORDER |Especifica que os valores da coluna de identidade não precisam ser gerados |pela ordem do pedido. | | | |38.5.5 SQL Composto (Incorporado) |Uma instrução COMMIT preparada não é permitida em uma instrução SQL |composta ATOMIC. |38.5.6 Instrução composta (dinâmica) |Instrução composta (dinâmica) | | | | | | | |A instrução composta agrupa outras instruções em um bloco |executável. Você pode declarar variáveis SQL dentro de uma instrução |composta atômica preparada dinamicamente. |Invocação |Essa instrução pode ser incorporada em um disparador, Função SQL ou Método |SQL, ou emitida através do uso de instruções SQL dinâmicas. Trata-se de |uma instrução executável que pode ser preparada dinamicamente. |Autorização |Não são exigidos privilégios para invocar uma instrução composta |dinâmica. Entretanto, o ID de autorização da instrução composta deve |conter os privilégios necessários para invocar as instruções SQL incorporadas |na instrução composta. |Sintaxe |instrução composta dinâmica | |>>-+--------------+--BEGIN ATOMIC-------------------------------> | | (1) | | '-label:-------' | |>-----+-----------------------------------------------+---------> | | .-----------------------------------------. | | | V | | | '-----+-| SQL-variable-declaration |-+---;---+--' | '-| condition-declaration |----' | | .-,-----------------------------. | V | |>--------SQL-procedure-statement--;---+---END--+--------+------>< | '-label--' | |SQL-variable-declaration | | .-,--------------------. | V | ||---DECLARE-------SQL-variable-name---+--data-type--------------> | | .-DEFAULT NULL-------------. |>-----+--------------------------+------------------------------| | '-DEFAULT--default-values--' | |condition-declaration | ||---DECLARE--condition-name--CONDITION--FOR---------------------> | | .-VALUE-. | .-SQLSTATE--+-------+---. |>----+-----------------------+---string-constant----------------| | |Notas: 1. |Especifique um rótulo somente quando a instrução estiver em uma definição |de função, método ou disparo. | |Descrição | |label |Define o rótulo do bloco de código. Se o rótulo inicial for |especificado, pode ser utilizado para qualificar variáveis SQL declaradas na |instrução composta dinâmica, além de ser especificado em uma instrução |LEAVE. Se o rótulo final for especificado, deve ser igual ao |inicial. |ATOMIC |ATOMIC indica que, se ocorrer um erro na instrução composta, todas as |instruções SQL da instrução composta são retrocedidas e as instruções SQL |restantes na instrução composta não serão processadas. |SQL-procedure-statement |A lista de instruções de controle SQL a seguir pode ser utilizada |dentro da instrução composta dinâmica: | o |instrução FOR o |instrução GET DIAGNOSTICS o |instrução IF o |instrução ITERATE o |instrução LEAVE o |instrução SIGNAL o |instrução WHILE | |As instruções SQL que podem ser emitidas são: | o |seleção completa |6 o |UPDATE pesquisado o |DELETE pesquisado o |INSERT o |instrução de variável SET | |SQL-variable-declaration |Declara uma variável que é local para a instrução composta |dinâmica. | |nome da variável SQL |Define o nome de uma variável local. O DB2 converte todos os nomes |de variáveis SQL em letras maiúsculas. O nome não pode: | + |Ser igual a outra variável SQL dentro da mesma instrução composta. + |Ser igual a um nome de parâmetro. + |Ser igual aos nomes de colunas. | |Se uma instrução SQL tiver um identificador com o mesmo nome de uma |variável SQL e uma referência de coluna, o DB2 interpreta o identificador como |coluna. |tipo de dados |Especifica o tipo de dados da variável. |DEFAULT valores padrão ou NULL |Define o padrão da variável SQL. A variável é inicializada quando a |instrução composta dinâmica é chamada. Se não for especificado um valor |padrão, a variável é inicializada como NULL. | |condition-declaration |Declara um nome de condição e o valor SQLSTATE correspondente. | |nome da condição |Especifica o nome da condição. O nome da condição deve ser |exclusivo dentro do corpo do procedimento e pode ser feita referência a ele |somente dentro da instrução composta na qual é declarado. |FOR SQLSTATE constante de cadeia |Especifica o SQLSTATE associado à condição. A constante de |cadeia deve ser especificada como cinco caracteres entre aspas simples e |não pode ser '00000'. | | |Versão | * |As instruções compostas dinâmicas são compiladas pelo DB2 como uma única |instrução. Essa instrução é efetiva para scripts curtos que envolvem |pouca lógica do fluxo de controle, mas que têm fluxo de dados |significativo. Para construções maiores com fluxo de controle complexo |aninhado, uma melhor opção seria utilizar procedimentos SQL. | |38.5.7 CREATE FUNCTION (Origem ou Modelo) |O diagrama de sintaxe muda para o seguinte |>>-CREATE FUNCTION--function-name-------------------------------> | |>----(--+------------------------------------------+---)---*----> | | .-,----------------------------------. | | | V | | | '----+-----------------+---data-type1---+--' | '-parameter-name--' | |>----RETURNS--data-type2---*----+--------------------------+----> | '-SPECIFIC--specific-name--' | |>----*----------------------------------------------------------> | |>-----+-SOURCE--+-function-name--------------------------------+------------------+> | | +-SPECIFIC--specific-name----------------------+ | | | '-function-name--(--+-------------------+---)--' | | | | .-,-----------. | | | | | V | | | | | '----data-type---+--' | | | .-NOT DETERMINISTIC--. .-EXTERNAL ACTION----. | | '-AS TEMPLATE--*----+--------------------+--*----+--------------------+--*--' | '-DETERMINISTIC------' '-NO EXTERNAL ACTION-' | |>----*--------------------------------------------------------->< | |Inclua o seguinte na função "Descrição": | |DETERMINISTIC ou NOT DETERMINISTIC |Essa cláusula opcional especifica se a função sempre retorna os mesmos |resultados para determinados valores de argumentos (DETERMINISTIC) ou se a |função depende de alguns valores de estado que afetam os resultados (NOT |DETERMINISTIC). Isto é, uma função DETERMINISTIC sempre deve retornar a |mesma tabela para invocações sucessivas com entradas idênticas. As |otimizações que aproveitam o fato de entradas idênticas sempre produzirem os |mesmos resultados são impedidas especificando NOT DETERMINISTIC. |NOT DETERMINISTIC deve ser especificado de forma explícita ou implícita se |o corpo da função acessar um registro especial ou chamar outra função não |determinística (SQLSTATE 428C2). |NO EXTERNAL ACTION ou EXTERNAL ACTION |Essa cláusula opcional especifica se a função executa ou não alguma ação |que altera o estado de um objeto não gerenciado pelo gerenciador do banco de |dados. Especificando NO EXTERNAL ACTION, o sistema pode utilizar |determinadas otimizações que supõem que as funções não têm impacto |externo. |EXTERNAL ACTION deve ser especificado de forma explícita ou implícita se o |corpo da função chamar outra função que é uma ação externa (SQLSTATE |428C2). | |38.5.8 CREATE FUNCTION (SQL Escalar, Tabela ou Linha) |O diagrama de sintaxe muda para: |>>-CREATE FUNCTION--function-name-------------------------------> | |>----(--+------------------------------------+---)---*----------> | | .-,----------------------------. | | | V | | | '----parameter-name--data-type1---+--' | |>----RETURNS--+-data-type2--------------------+--*--------------> | '--+-ROW---+---| column-list |--' | '-TABLE-' | | .-LANGUAGE SQL--. |>-----+--------------------------+--*----+---------------+--*---> | '-SPECIFIC--specific-name--' | | .-NOT DETERMINISTIC--. .-EXTERNAL ACTION----. |>-----+--------------------+--*----+--------------------+--*----> | '-DETERMINISTIC------' '-NO EXTERNAL ACTION-' | | .-READS SQL DATA--. .-STATIC DISPATCH--. |>-----+-----------------+--*----+------------------+--*---------> | '-CONTAINS SQL----' | | (1) | .-CALLED ON NULL INPUT-------. |>-----+----------------------------+--*-------------------------> | |>-----+--------------------------------------------------------+> | | (2) | | '-PREDICATES--(--| especificação do predicado |--)-------' | |>----| corpo da função SQL |----------------------------------->< | |lista de colunas | | .-,--------------------------. | V | ||---(-----column-name--data-type3---+---)-----------------------| | |SQL-function-body | ||---+-instrução RETURN-----------+------------------------------| | '-dynamic-compound-statement-' | |Notas: 1. |NULL CALL pode ser especificado em vez de CALLED ON NULL INPUT 2. |Válido somente se RETURNS especificar um resultado escalar (tipo de dados |2) | |Altere os seguintes parâmetros: | |LANGUAGE SQL |Especifica que a função é escrita utilizando SQL. | |Esta seção de parâmetros substitui a seção de parâmetros "expressão RETURN, |NULL, WITH common-table-expression, fullselect". | |corpo da função SQL |Especifica o corpo da função. Os nomes de parâmetros podem ser |indicados no corpo da função SQL. Os nomes de parâmetros podem ser |qualificados com o nome da função para evitar referências ambíguas. |Se o corpo da função SQL for uma instrução composta dinâmica, deve conter |no mínimo uma instrução RETURN e essa instrução RETURN deve ser executada |quando a função for chamada (SQLSTATE 42632). Se a função for de tabela |ou de linha, pode conter somente uma instrução RETURN, que deve ser a última |composta dinâmica (SQLSTATE 429BD). |Para obter mais detalhes, consulte Instrução composta (dinâmica) e RETURN. | |38.5.9 CREATE METHOD |O diagrama de sintaxe muda para: |CREATE METHOD |Sintaxe |>>-CREATE-------------------------------------------------------> | |>-----+-METHOD--+-method-name----------+---FOR--type-name--+----> | | '-| method-signature |-' | | '-SPECIFIC METHOD--specific-name---------------------' | |>-----+-*----EXTERNAL--+-----------------------+--*----+------------------------------+--*--+> | | '-NAME--+-'string'---+--' '-TRANSFORM GROUP--group-name--' | | | '-identifier-' | | '-| SQL-method-body |-----------------------------------------------------------------' | |>-------------------------------------------------------------->< | |method-signature | ||---method-name--(--+---------------------------------------------------------+---)--> | | .-,--------------------------------------------------. | | | V | | | '----+-----------------+---data-type1--+-------------+--+-' | '-parameter-name--' '-AS LOCATOR--' | |>----+------------------------------------------------------------------+-> | '-RETURNS--+-data-type2--+-------------+------------------------+--' | | '-AS LOCATOR--' | | '-data-type3--CAST FROM--data-type4--+-------------+-' | '-AS LOCATOR--' | |>---------------------------------------------------------------| | |SQL-method-body | ||---+-instrução RETURN-----------+------------------------------| | '-dynamic-compound-statement-' | |Os seguintes parâmetros substituem a seção "RETURN expressão escalar ou |NULL": | |corpo do método SQL |O corpo do método SQL define como o método é implementado se a |especificação do método em CREATE TYPE for LANGUAGE SQL. |O corpo do método SQL deve estar em conformidade com as seguintes partes da |especificação do método: | o |DETERMINISTIC ou NOT DETERMINISTIC (SQLSTATE 428C2) o |EXTERNAL ACTION ou NO EXTERNAL ACTION (SQLSTATE 428C2) o |CONTAINS SQL ou READS SQL DATA (SQLSTATE 42985) | |Os nomes de parâmetros podem ser indicados no corpo do método SQL. O |assunto do método é passado para sua implementação como primeiro parâmetro |implícito denominado SELF. |Para obter mais detalhes, consulte Instrução composta (dinâmica) e RETURN. | |38.5.10 CREATE SEQUENCE |CREATE SEQUENCE | | |A seqüência CREATE SEQUENCE cria uma seqüência no servidor do |aplicativo. |Invocação |Essa instrução pode ser incorporada em um programa aplicativo ou emitida |através do uso de instruções SQL dinâmicas. Trata-se de uma instrução |executável que pode ser preparada dinamicamente. Entretanto, se a opção |de ligação DYNAMICRULES BIND for válida, a instrução não pode ser preparada |dinamicamente (SQLSTATE 42509). |Autorização |Os privilégios retidos pelo ID de autorização da instrução devem incluir no |mínimo um dos seguintes: | * |Privilégio CREATEIN para o esquema especificado de forma implícita ou |explícita * |Autoridade SYSADM ou DBADM | |Sintaxe | .-AS INTEGER-----. |>>-CREATE SEQUENCE--sequence-name---*----+----------------+--*--> | '-AS--data-type--' | |>-----+-------------------------------+--*----------------------> | '-START WITH--numeric-constant--' | | .-INCREMENT BY 1------------------. |>-----+---------------------------------+--*--------------------> | '-INCREMENT BY--numeric-constant--' | | (1) | .-NO MINVALUE-----------------. |>-----+-----------------------------+--*------------------------> | '-MINVALUE--numeric-constant--' | | .-NO MAXVALUE-----------------. .-NO CYCLE--. |>-----+-----------------------------+--*----+-----------+--*----> | '-MAXVALUE--numeric-constant--' '-CYCLE-----' | | .-CACHE 20-----------------. .-NO ORDER--. |>-----+--------------------------+--*----+-----------+--*------>< | +-CACHE--integer-constant--+ '-ORDER-----' | '-NO CACHE-----------------' | |Notas: 1. |Estes parâmetros podem ser especificados sem espaços: NOMINVALUE, |NOMAXVALUE, NOCYCLE, NOCACHE e NOORDER. Todas essas versões de uma |palavra são alternativas aceitáveis para as versões de duas palavras. | |Descrição | |sequence-name |Nomeia a seqüência. A combinação de nome e o nome do esquema |implícito ou explícito não devem identificar uma seqüência existente no |servidor atual (SQLSTATE 42710). |A forma não qualificada de nome da seqüência é um identificador SQL. |A forma qualificada é um qualificador seguido de um ponto e um identificador |SQL. O qualificador é um nome de esquema. |Se o nome da seqüência for qualificado explicitamente com um nome de |esquema, esse nome não pode começar com 'SYS'; caso contrário, |ocorre um erro (SQLSTATE 42939). |AS tipo de dados |Especifica o tipo de dados a ser utilizado para o valor da |seqüência. O tipo de dados pode ser qualquer tipo numérico exato |(SMALLINT, INTEGER, BIGINT ou DECIMAL) com escala zero, ou um tipo distinto |definido pelo usuário para o qual o tipo de origem é um tipo numérico exato |com escala zero (SQLSTATE 42815). O padrão é INTEGER. |START WITH numeric-constant |Especifica o primeiro valor da seqüência. Esse valor pode ser |qualquer valor positivo ou negativo que pode ser atribuído a uma coluna do |tipo de dados associado à seqüência (SQLSTATE 42820), sem dígitos diferentes |de zero existentes à direita do ponto decimal (SQLSTATE 428FA). O valor |é MINVALUE para seqüências ascendentes e MAXVALUE para seqüências |descendentes. |Esse valor não é necessariamente o valor para o qual a seqüência é enviada |após atingir o valor máximo ou mínimo da seqüência. A cláusula START |WITH pode ser utilizada para iniciar uma seqüência fora do intervalo utilizado |para ciclos. O intervalo utilizado para ciclos é definido por MINVALUE |e MAXVALUE. |INCREMENT BY numeric-constant |Especifica o intervalo entre valores consecutivos da seqüência. |Esse valor pode ser qualquer valor positivo ou negativo que pode ser atribuído |a uma coluna do tipo de dados associado à seqüência (SQLSTATE 42820) e não |ultrapassa o valor de uma constante de número inteiro grande (SQLSTATE 42815), |sem dígitos diferentes de zero existentes à direita do ponto decimal (SQLSTATE |428FA). |Se esse valor for negativo, a seqüência de valores decresce. Se esse |valor for positivo, a seqüência de valores sobe. Se esse valor for 0 ou |maior que o intervalo definido por MINVALUE e MAXVALUE, é gerado somente um |valor, mas caso contrário, a seqüência é tratada como uma seqüência |ascendente. O padrão é 1. |MINVALUE ou NO MINVALUE |Especifica o valor mínimo no qual uma seqüência descendente executa o |ciclo ou pára de gerar valores, ou uma seqüência ascendente executa o ciclo |após atingir o valor máximo. | |MINVALUE numeric-constant |Especifica a constante numérica que corresponde ao valor mínimo. |Esse valor pode ser qualquer valor positivo ou negativo que pode ser atribuído |a uma coluna do tipo de dados associado à seqüência (SQLSTATE 42820), sem |dígitos diferentes de zero à direita do ponto decimal (SQLSTATE 428FA), mas o |valor pode ser menor ou igual ao valor máximo (SQLSTATE 42815). |NO MINVALUE |Para uma seqüência ascendente, o valor é START WITH, ou 1 se START WITH |não for especificado. Para uma seqüência descendente, o valor é o |mínimo do tipo de dados associado à seqüência. Esse é o padrão. | |MAXVALUE ou NO MAXVALUE |Especifica o valor máximo no qual uma seqüência descendente executa o |ciclo ou pára de gerar valores, ou uma seqüência descendente executa o ciclo |após atingir o valor mínimo. | |MAXVALUE numeric-constant |Especifica a constante numérica que corresponde ao valor máximo. |Esse valor pode ser qualquer valor positivo ou negativo que pode ser atribuído |a uma coluna do tipo de dados associado à seqüência (SQLSTATE 428FA), sem |dígitos diferentes de zero à direita do ponto decimal (SQLSTATE 428FA), mas o |valor pode ser maior ou igual ao valor mínimo (SQLSTATE 42815). |NO MAXVALUE |Para uma seqüência ascendente, o valor é o máximo do tipo de dados |associado à seqüência. Para uma seqüência descendente, o valor é START |WITH, ou -1 se START WITH não for especificado. Esse é o padrão. | |CYCLE ou NO CYCLE |Especifica se a seqüência deve continuar gerando valores após atingir seu |valor máximo ou mínimo. O limite da seqüência pode ser atingido com o |próximo valor caindo exatamente na condição do limite ou se o alvo estiver |errado. | |CYCLE |Especifica que continuam sendo gerados valores para essa seqüência após o |valor máximo ou mínimo ter sido atingido. Se essa opção for utilizada, |quando uma seqüência ascendente atingir seu valor máximo, ela gera seu valor |mínimo e quando uma seqüência descendente atingir seu valor mínimo, ela gera |seu valor máximo. Os valores máximo e mínimo da seqüência determinam o |intervalo utilizado para o ciclo. |Quando CYCLE está efetivo, podem ser gerados valores em duplicata para a |seqüência. |NO CYCLE |Especifica que não são gerados valores para a seqüência quando o valor |máximo ou mínimo da seqüência tiver sido atingido. Esse é o |padrão. | |CACHE ou NO CACHE |Especifica se devem ser mantidos alguns valores pré-alocados na memória, |tornando o acesso mais rápido. Esta é uma opção de desempenho e |ajuste. | |CACHE integer-constant |Especifica o número máximo de valores de seqüência pré-alocados e mantidos |na memória. A pré-alocação e armazenamento de valores em cache reduz a |E/S síncrona no log quando são gerados valores para a seqüência. |No caso de uma falha no sistema, todos os valores de seqüência em cache que |não foram utilizados em instruções consolidadas são perdidos (isto é, nunca |são utilizados). O valor especificado para a opção CACHE é o número |máximo de valores de seqüência que podem ser perdidos no caso de falha no |sistema. |O valor mínimo é 2 (SQLSTATE 42815). O valor padrão é CACHE |20. |NO CACHE |Especifica que os valores da seqüência não devem ser pré-alocados. |Garante que não ocorre perda de valores no caso de falha no sistema, |encerramento ou desativação do banco de dados. Quando essa opção é |especificada, os valores da seqüência não são armazenados na cache. |Nesse caso, cada pedido de um novo valor para a seqüência resulta em E/S |síncrona para o log. | |NO ORDER ou ORDER |Especifica se os números de seqüência devem ser gerados pela ordem do |pedido. | |ORDER |Especifica se os números de seqüência são gerados pela ordem do |pedido. |NO ORDER |Especifica se os números de seqüência não precisam ser gerados pela ordem |do pedido. Esse é o padrão. | | |Versão | * |É possível definir uma seqüência constante, isto é, uma que sempre retorna |um valor constante. Isto pode ser feito especificando o mesmo valor |para MINVALUE ou MAXVALUE, ou especificando um valor INCREMENT zero. |Nos dois casos, a fim de permitir que NEXTVAL gere o mesmo valor mais de uma |vez, CYCLE deve ser especificado. Uma seqüência constante pode ser |utilizada como variável numérica global. ALTER SEQUENCE pode ser |utilizado para ajustar os valores que serão gerados para uma seqüência |constante. * |A seqüência pode executar ciclo manualmente, utilizando a instrução ALTER |SEQUENCE. Se NO CYCLE estiver especificado de forma implícita ou |explícita, a seqüência pode ser reiniciada ou estendida utilizando a instrução |ALTER SEQUENCE para fazer com que os valores continuem sendo gerados quando o |valor máximo ou mínimo da seqüência for atingido. * |Os números de seqüência em cache implicam que um intervalo de números de |seqüência pode ser mantido na memória a fim de tornar o acesso mais |rápido. Quando um aplicativo acessa uma seqüência que pode aplicar o |próximo número de seqüência da cache, a alocação de número de seqüência pode |ocorrer rapidamente. Entretanto, se um aplicativo acessar uma seqüência |que não pode alocar o próximo número de seqüência da cache, pode ser |necessário que a alocação de número de seqüência aguarde operações de E/S no |armazenamento persistente. Ao fazer a opção pelo valor CACHE, tenha em |mente os requisitos de desempenho e do aplicativo. * |O proprietário tem os privilégios ALTER e USAGE na nova seqüência. |Somente o privilégio USAGE pode ser concedido pelo usuário e somente a |PUBLIC. * |A sintaxe a seguir também é suportada: NOMINVALUE, NOMAXVALUE, |NOCYCLE, NOCACHE e NOORDER. | |Exemplos |Exemplo 1: Criar uma seqüência chamada org_seq: | CREATE SEQUENCE org_seq | START WITH 1 | INCREMENT BY 1 | NO MAXVALUE | NO CYCLE | CACHE 24 |38.5.11 CREATE TRIGGER |CREATE TRIGGER |Sintaxe |>>-CREATE TRIGGER--trigger-name----+-NO CASCADE BEFORE-+--------> | '-AFTER-------------' | |>-----+-INSERT-----------------------------+--ON--table-name----> | +-DELETE-----------------------------+ | '-UPDATE--+------------------------+-' | | .-,--------------. | | | V | | | '-OF----column-name---+--' | |>-----+----------------------------------------------------------------------+> | | .----------------------------------------------------. | | | V (1) (2) .-AS-. | | | '-REFERENCING-------------------+-OLD--+----+--correlation-name--+--+--' | | .-AS-. | | +-NEW-+----+--correlation-name---+ | | .-AS-. | | +-OLD_TABLE-+----+--identifier---+ | | .-AS-. | | '-NEW_TABLE-+----+--identifier---' | |>-----+-FOR EACH ROW---------------+--MODE DB2SQL---------------> | | (3) | | '--------FOR EACH STATEMENT--' | |>-----| triggered-action |------------------------------------->< | |triggered-action | ||--+-------------------------------+--SQL-procedure-statement---| | '-WHEN--(--search-condition--)--' | |Notas: 1. |OLD e NEW podem ser especificados somente uma vez cada um. 2. |OLD_TABLE e NEW_TABLE podem ser especificados somente uma vez cada um e |somente para disparos AFTER. 3. |FOR EACH STATEMENT não pode ser especificado para disparos BEFORE. | |Substitua a descrição de "ação disparada" pelo seguinte: | |ação disparada |Especifica a ação a ser executada quando o disparo é ativado. A |ação disparada é composta por uma instrução do procedimento SQL e uma |condição opcional para a execução da instrução do procedimento |SQL. |WHEN (condição da pesquisa) |Especifica uma condição verdadeira, falsa ou desconhecida. A |condição da pesquisa fornece a capacidade de determinar se uma |determinada ação disparada deve ser executada. |A ação associada é executada somente se a condição da pesquisa especificada |for avaliada como verdadeira. Se a cláusula WHEN for omitida, a |instrução do procedimento SQL sempre for executada. |SQL-procedure-statement |A instrução do procedimento SQL pode conter uma instrução |composta dinâmica ou quaisquer das instruções de controle SQL listadas em Instrução composta (dinâmica). |Se tratar-se de um disparador BEFORE, a instrução do procedimento |SQL também pode incluir seleção completa | ou |uma instrução de variável SET (SQLSTATE 42987). |Se tratar-se de um disparador AFTER, a instrução do procedimento |SQL também pode incluir um dos seguintes (SQLSTATE 42987): | o |uma instrução INSERT SQL o |uma instrução UPDATE SQL pesquisada o |uma instrução DELETE SQL pesquisada o |uma instrução de variável SET o |uma seleção completa 7 | |A instrução do procedimento SQL não pode fazer referência a uma |variável de transição indefinida (SQLSTATE 42703) ou a uma tabela temporária |declarada (SQLSTATE 42995). |A instrução do procedimento SQL em um disparo BEFORE não pode |fazer referência a uma tabela de resumo definida em REFRESH IMMEDIATE |(SQLSTATE 42997). |A instrução do procedimento SQL em um disparo BEFORE não pode |fazer referência a uma coluna gerada, que não seja a coluna de identidade, na |nova variável de transição (SQLSTATE 42997). | |A seção Notas é alterada para o seguinte: | * |O resultado de uma seleção completa especificada na instrução do |procedimento SQL não está disponível dentro ou fora do disparo. * |Disparos inoperantes: | | |Um disparo |inoperante é aquele que não está mais disponível e portanto nunca é |ativado. O disparo torna-se inoperante se: | o |Um privilégio que o criador do disparo precisar possuir para a execução do |disparo for revogado. o |Um objeto, tal como uma tabela, exibição ou alias sobre o qual a ação |disparada dependente é eliminado. o |Uma exibição, da qual a ação disparada depende, torna-se |inoperante. o |Um alias que é a tabela alvo do disparo é eliminado. | |Em termos práticos, um disparo inoperante é aquele no qual a definição do |disparo foi eliminada como resultado de regras em cascata para as instruções |DROP ou REVOKE. Por exemplo, quando uma exibição é eliminada, o disparo |com uma instrução do procedimento SQL definida utilizando essa |exibição torna-se inoperante. |Quando um disparo torna-se inoperante, todos os pacotes com instruções que |executam operações que estavam ativando o disparo são marcados como |inválidos. Quando o pacote é ligado novamente (de forma explícita ou |implícita), o disparo inoperante é completamente ignorado. |Da mesma forma, os aplicativos com instruções SQL dinâmicas que executam |operações que estavam ativando o disparo também vão ignorar completamente os |disparos inoperantes. |O nome do disparo ainda pode ser especificado nas instruções DROP TRIGGER e |COMMENT ON TRIGGER. |Um disparo inoperante pode ser recriado emitindo uma instrução CREATE |TRIGGER utilizando o texto da definição do disparo inoperante. Esse |texto de definição do disparo é armazenado na coluna TEXT do |SYSCAT.TRIGGERS. Observe que não há necessidade de eliminar |explicitamente o disparo inoperante a fim de recriá-lo. A emissão da |instrução CREATE TRIGGER com o mesmo nome de disparo que o disparo |inoperante, faz com que este seja substituído por um aviso (SQLSTATE |01595). |Os disparos inoperantes são indicados por um X na coluna VALID da exibição |do catálogo SYSCAT.TRIGGERS. * |Erros ao executar disparos: | | |Os erros ocorridos durante a execução das instruções SQL disparadas são |retornados utilizando SQLSTATE 09000, a não ser que o erro seja considerado |grave. Se o erro for grave, é retornado o erro grave SQLSTATE. O |campo SQLERRMC do SQLCA para erro não grave inclui o nome do disparo, o |SQLCODE, o SQLSTATE e o máximo de sinais possível a partir dos sinais da |falha. |A instrução do procedimento SQL pode incluir uma instrução SIGNAL |SQLSTATE ou conter uma função RAISE_ERROR. Nos dois casos, o SQLSTATE |retornado é o especificado na instrução SIGNAL SQLSTATE ou na condição |RAISE_ERROR. | |38.5.12 CREATE WRAPPER |O Linux utiliza bibliotecas chamadas LIBDRDA.SO e |LIBSQLNET.SO, não LIBDRDA.A e |LIBSQLNET.A. |38.5.13 DECLARE CURSOR | | |Dentro da instrução "DECLARE CURSOR", perto do final da seção Notas, a |sentença a seguir deve ser alterada de: |Um cursor ambíguo será considerado somente leitura, se a opção de ligação |BLOCKING for ALL, do contrário, ela será considerada excluível. |para: |Um cursor ambíguo será considerado somente leitura, se a opção de ligação |BLOCKING for ALL, do contrário, ela será considerada excluível. |A alteração surge da palavra "excluível" para a palavra |"atualizável". |38.5.14 DELETE |O diagrama de sintaxe de DELETE pesquisado muda para o seguinte |>>-DELETE FROM----+-table-name-------------------+--------------> | +-view-name--------------------+ | '-ONLY--(--+-table-name-+---)--' | '-view-name--' | |>-----+---------------------------+-----------------------------> | | .-AS-. | | '-+----+--correlation-name--' | |>-----+--------------------------+---+---------------+--------->< | '-WHERE--search-condition--' '-WITH--+-RR-+--' | +-RS-+ | +-CS-+ | '-UR-' | |DELETE posicionado: |>>-DELETE FROM----+-table-name-------------------+--------------> | +-view-name--------------------+ | '-ONLY--(--+-table-name-+---)--' | '-view-name--' | |>----WHERE CURRENT OF--cursor-name----------------------------->< | |Inclua o seguinte na seção de descrição: | |WITH | | Especifica o nível de isolamento utilizado ao localizar as linhas a serem |excluídas. | |RR |Leitura repetível |RS |Estabilidade de leitura |CS |Estabilidade do cursor |UR |Leitura não consolidada | |O nível de isolamento padrão da instrução é o nível de isolamento do |pacote ao qual a instrução está ligada. | |38.5.15 DROP |Inclua a seguinte opção: |>>-SEQUENCE--sequence-name--RESTRICT--------------------------->< | |Inclua os seguintes parâmetros: | |SEQUENCE sequence-name RESTRICT |Identifica a seqüência específica que deve ser eliminada. O |sequence-name, juntamente com o nome do esquema implícito ou |explícito, deve identificar uma seqüência existente no servidor atual. |Se não houver seqüência com esse nome no esquema especificado de forma |explícita ou implícita, será emitido um erro (SQLSTATE 42704). |A palavra-chave RESTRICT garante a regra de que a seqüência não é eliminada |se a definição de uma coluna da tabela fizer referência à seqüência (através |de uma coluna IDENTITY). | |Nota: | o |As seqüências criadas pelo sistema para colunas IDENTITY não podem ser |eliminadas utilizando o comando da seqüência DROP. o |Quando uma seqüência é eliminada, todos os seus privilégios também são |eliminados. | | |A tabela que mostra as dependências dos objetos entre si (tabela 27) deve |ser atualizada da seguinte forma: |Nova linha: DROP SEQUENCE A entrada da interseção da nova linha "DROP |SEQUENCE" e da coluna "PACKAGE" será um "A". O restante das entradas |dessa nova linha serão "-" |38.5.16 GRANT (Privilégios da Seqüência) |GRANT (privilégios de seqüência) | | | | | |Esta forma da instrução GRANT concede privilégios em uma seqüência definida |pelo usuário. |Invocação |Essa instrução pode ser incorporada em um programa aplicativo ou emitida |através do uso de instruções SQL dinâmicas. Trata-se de uma instrução |executável que pode ser preparada dinamicamente. Entretanto, se a opção |de ligação DYNAMICRULES BIND for válida, a instrução não pode ser preparada |dinamicamente (SQLSTATE 42509). |Autorização |Os privilégios retidos pelo ID de autorização da instrução devem incluir no |mínimo um dos seguintes: | * |Proprietário da seqüência * |Autoridade SYSADM ou DBADM | |Sintaxe |>>-GRANT--USAGE--ON SEQUENCE--sequence-name--TO PUBLIC--------->< | |Descrição | |USAGE |Concede o privilégio USAGE a uma seqüência. |ON SEQUENCE sequence-name |Identifica a seqüência na qual o privilégio USAGE deve ser |concedido. O sequence-name, incluindo o qualificador do |esquema implícito ou explícito, deve identificar com exclusividade uma |seqüência existente no servidor atual. Se não houver seqüência com esse |nome no esquema especificado, é emitido um erro (SQLSTATE 42704). |TO PUBLIC |Concede o privilégio USAGE a todos os usuários. | |Exemplos |Exemplo 1: Concede a qualquer usuário o privilégio |sobre uma seqüência chamada MYNUM | GRANT USAGE ON SEQUENCE MYNUM TO PUBLIC | |38.5.17 INSERT |O diagrama de sintaxe muda para: |>>-INSERT INTO----+-table-name-+--------------------------------> | '-view-name--' | |>-----+----------------------------+----------------------------> | | .-,--------------. | | | V | | | '-(-----column-name---+---)--' | | .-,------------------------------------. | V | |>-----+-VALUES------+-+-expression-+----------------+--+--------+> | | | +-NULL-------+ | | | | | '-DEFAULT----' | | | | | .-,-----------------. | | | | | V | | | | | '-(------+-expression-+--+---)--' | | | +-NULL-------+ | | | '-DEFAULT----' | | '-+---------------------------------------+---fullselect--' | | .-,--------------------------. | | | V | | | '-WITH-----common-table-expression---+--' | |>-----+---------------+---------------------------------------->< | '-WITH--+-RR-+--' | +-RS-+ | +-CS-+ | '-UR-' | |Inclua o seguinte na seção de descrição: | |WITH | | Especifica o nível de isolamento no qual a seleção completa é |executada. | |RR |Leitura repetível |RS |Estabilidade de leitura |CS |Estabilidade do cursor |UR |Leitura não consolidada | |O nível de isolamento padrão da instrução é o nível de isolamento do |pacote ao qual a instrução está ligada. | |38.5.18 SELECT INTO |O diagrama de sintaxe muda para: | .-,----------------. | V | |>>-select-clause--INTO-------host-variable---+--from-clause-----> | |>----+--------------+--+-----------------+--+---------------+---> | '-where-clause-' '-group-by-clause-' '-having-clause-' | |>-----+---------------+---------------------------------------->< | '-WITH--+-RR-+--' | +-RS-+ | +-CS-+ | '-UR-' | |Inclua o seguinte na seção de descrição: | |WITH | | A cláusula WITH opcional especifica o nível de isolamento no qual a instrução |SELECT INTO é executada. | |RR |Leitura repetível |RS |Estabilidade de leitura |CS |Estabilidade do cursor |UR |Leitura não consolidada | |O nível de isolamento padrão da instrução é o nível de isolamento do |pacote ao qual a instrução está ligada. | |38.5.19 SET ENCRYPTION PASSWORD |SET ENCRYPTION PASSWORD | | |A instrução SET ENCRYPTION PASSWORD define a senha que será utilizada pelas |funções de criptografia e decriptografia. A senha não é ligada á |autenticação do DB2 e é utilizada somente para criptografia de dados. |Essa instrução não está sob controle da transação. |Invocação |A instrução pode ser incorporada a um programa aplicativo ou emitida |interativamente. Trata-se de uma instrução executável que pode ser |preparada dinamicamente. |Autorização |Não é necessária autorização para executar essa instrução. |Sintaxe | .-=-. |>>-SET--ENCRYPTION PASSWORD--+---+--+-host-variable---+-------->< | '-string-constant-' | |Descrição |A ENCRYPTION PASSWORD pode ser utilizada pelas funções incorporadas |ENCRYPT, DECRYPT_BIN e DECRYPT_CHAR para criptografia baseada na senha. |O comprimento deve ser entre 6 e 127, inclusive. Todos os caracteres |devem ser especificados exatamente com o formato de maiúsculas e minúsculas |pretendido, já que não há conversão para maiúsculas. | |host-variable |Uma variável do tipo CHAR ou VARCHAR. O comprimento do conteúdo da |variável do host deve ser entre 6 e 127, inclusive (SQLSTATE 428FC). |Não pode ser definida como nula. Todos os caracteres devem ser |especificados exatamente com o formato de maiúsculas e minúsculas pretendido, |já que não há conversão para maiúsculas. |string-constant |Uma constante de cadeia de caracteres. O comprimento deve ser entre |6 e 127, inclusive (SQLSTATE 428FC). | |Regras | * |O valor ENCRYPTION PASSWORD inicial é a cadeia vazia |(''). * |A variável do host ou a constante de cadeia são transmitidas para o |servidor do banco de dados utilizando mecanismos normais do DB2. | |Versão | * |Consulte 38.3.2.3, ENCRYPT e 38.3.2.2, DECRYPT_BIN e DECRYPT_CHAR para obter mais informações sobre o uso |dessa instrução. | |Exemplos |Exemplo 1: A instrução a seguir define a ENCRYPTION |PASSWORD. | SET ENCRYPTION PASSWORD = 'bubbalu' |38.5.20 Variável de transição SET |Esta seção é alterada para o seguinte: |variável SET | | | |A instrução da variável SET atribui valores a variáveis locais ou a novas |variáveis de transição. Ela está sob controle da transação. |Invocação |Essa instrução pode ser utilizada como instrução SQL somente em uma |instrução composta dinâmica, em um disparo, em uma função SQL ou em um método |SQL. |Autorização |Para fazer referência a uma variável de transição, os privilégios retidos |pelo ID de autorização do criador do disparo devem incluir no mínimo um dos |seguintes: | * |UPDATE das colunas indicadas do lado esquerdo da atribuição e SELECT para |as colunas indicadas do lado direito. * |Privilégio CONTROL na tabela (tabela alvo do disparo) * |Autoridade SYSADM ou DBADM. | |Para executar essa instrução com uma seleção completa de linha |como lado direito da atribuição, os privilégios retidos pelo ID de autorização |do definidor de disparo ou do proprietário da instrução composta dinâmica |também devem incluir no mínimo um dos seguintes, para cada tabela ou exibição |mencionada: | * |privilégio SELECT * |privilégio CONTROL * |SYSADM ou DBADM. | |Sintaxe |>>-SET----------------------------------------------------------> | | .-,---------------------------------------------------------------------------------. | V | |>--------+-| target-variable |--=--+-expression-+--------------------------------------+--+> | | +-NULL-------+ | | | '-DEFAULT----' | | | .-,----------------------. .-,--------------------. | | | V | V (1) | | | '-(-----| target-variable |---+---)--=--(--+----+-expression------+--+-+---)--' | | +-NULL------------+ | | | '-DEFAULT---------' | | | (2) | | '-row-fullselect------------' | |>-------------------------------------------------------------->< | |variável de destino | ||---+-SQL-variable-name--------+---+--------------------------+-| | '-transition-variable-name-' | .--------------------. | | | V | | | '----..attribute-name---+--' | |Notas: 1. |O número de expressões, NULLs e DEFAULTs deve corresponder ao número de |variáveis de destino. 2. |O número de colunas na lista de seleção deve corresponder ao número de |variáveis de destino. | |Descrição | |variável de destino |Identifica a variável de destino da atribuição. Não deve ser |especificada uma variável de destino representando a mesma variável |mais de uma vez (SQLSTATE 42701). | |nome da variável SQL |Identifica a variável SQL que é o destino da atribuição. As |variáveis SQL devem ser declaradas antes de serem utilizadas. As |variáveis SQL podem ser definidas em uma instrução composta dinâmica. |nome da variável de transição |Identifica a coluna a ser atualizada na linha de transição. O |nome da variável de transição deve identificar uma coluna na tabela |de assunto de um disparo, qualificada opcionalmente por um nome de correlação |que identifica o novo valor (SQLSTATE 42703). |..nome do atributo |Especifica o atributo de um tipo estruturado definido (chamado de |atribuição de atributo). O nome da variável SQL |ou o nome da variável de transição especificados devem ser definidos |com um tipo estruturado definido pelo usuário (SQLSTATE 428DP). O |nome do atributo deve ser um atributo do tipo estruturado (SQLSTATE |42703). Uma atribuição que não envolve o ..nome do |atributo é chamada de atribuição convencional. | |expression |Indica o novo valor da variável de destino. A expressão é |qualquer expressão do tipo descrito no Capítulo 2 da Referência SQL. A |expressão não pode incluir uma função de coluna, exceto quando ocorrer dentro |de uma seleção completa escalar (SQLSTATE 42903). No contexto de uma |instrução CREATE TRIGGER, a expressão pode conter referências a |variáveis de transição OLD e NEW e deve ser qualificada pelo nome da |correlação para especificar a variável de transição (SQLSTATE |42702). |NULL |Especifica o valor nulo e pode ser especificado somente para colunas que |podem ser anuladas (SQLSTATE 23502). NULL não pode ser o valor em uma |atribuição de atributo (SQLSTATE 429B9), a não ser que tenha sido distribuído |especificamente para o tipo de dados do atributo. |DEFAULT |Especifica que deve ser utilizado o valor padrão. |Se a variável de destino for uma coluna, o valor inserido depende |de como a coluna foi definida na tabela. | o |Se a coluna tiver sido definida utilizando a cláusula WITH DEFAULT, o |valor é definido como o padrão definido para a coluna. o |Se a coluna tiver sido definida utilizando a cláusula IDENTITY, o valor é |gerado pelo gerenciador do banco de dados. o |Se a coluna tiver sido definida sem especificar a cláusula WITH DEFAULT, a |cláusula IDENTITY ou a cláusula NOT NULL, o valor será NULL. o |Se a coluna tiver sido definida utilizando a cláusula NOT NULL e a |cláusula IDENTITY não for utilizada, ou se a cláusula WITH DEFAULT for |utilizada e DEFAULT NULL for utilizada, a palavra-chave DEFAULT não pode ser |especificada para essa coluna (SQLSTATE 23502). | |Se a variável de destino for uma variável SQL, o valor inserido |é o padrão, conforme especificado ou implícito na declaração da |variável. |seleção completa de linha |Uma seleção completa que retorna uma única linha com o número de colunas |correspondente ao número de variáveis de destino especificado para |atribuição. Os valores são atribuídos a cada variável de destino |correspondente. Se o resultado da seleção completa de linha for nenhuma |linha, são atribuídos valores nulos. No contexto de uma instrução |CREATE TRIGGER, a seleção completa de linha pode conter referências |a variáveis de transição OLD e NEW e deve ser qualificada pelo nome da |correlação para especificar a variável de transição a ser utilizada |(SQLSTATE 42702). É retornado um erro se houver mais de uma linha no |resultado (SQLSTATE 21000). | |Regras | * |O número de valores a serem atribuídos a partir de expressões, NULLs e |DEFAULTs ou a seleção completa de linha devem corresponder ao número |de variáveis de destino especificadas para atribuição (SQLSTATE 42802). * |Uma instrução de variável SET não pode atribuir uma variável SQL e uma |variável de transição em uma instrução (SQLSTATE 42997). * |São atribuídos valores a variáveis de destino de acordo com as regras de |atribuição descritas no Capítulo 2 da Referência SQL. |Se a instrução for utilizada em um disparador BEFORE UPDATE e a variável de |registro DB2_UPDATE_PART_KEY=OFF, a variável de transição |especificada como variável de destino não pode ser uma coluna de |chave de particionamento (SQLSTATE 42997). | |Versão | * |Se for incluída mais de uma atribuição, todas as expressões e |seleções completas de linha são avaliadas antes da execução das |atribuições. Assim, as referências a variáveis de destino em uma |expressão ou uma seleção completa de linha são sempre o valor da variável de |destino antes de qualquer atribuição na instrução SET simples. * |Quando uma coluna de identidade definida como tipo distinto é atualizada, |o cálculo inteiro é feito no tipo de origem e o resultado é distribuído para o |tipo distinto antes de o valor ser realmente atribuído à coluna. |8 * |Para que o DB2 gere um valor em uma instrução SET para uma coluna de |identidade, utilize a palavra-chave DEFAULT: | SET NEW.EMPNO = DEFAULT Neste exemplo, NEW.EMPNO é definido como uma coluna de |identidade e o valor utilizado para atualizar essa coluna é gerado pelo |DB2. | |Os exemplos desta instrução permanecem os mesmos. |38.5.21 UPDATE |O diagrama de sintaxe UPDATE pesquisado muda para: |>>-UPDATE----+-table-name-------------------+-------------------> | +-view-name--------------------+ | '-ONLY--(--+-table-name-+---)--' | '-view-name--' | |>-----+---------------------------+-----------------------------> | | .-AS-. | | '-+----+--correlation-name--' | |>-----SET--| assignment-clause |--------------------------------> | |>-----+--------------------------+---+---------------+--------->< | '-WHERE--search-condition--' '-WITH--+-RR-+--' | +-RS-+ | +-CS-+ | '-UR-' | |Inclua o seguinte na seção de descrição: | |WITH | | Especifica o nível de isolamento no qual a instrução UPDATE é |executada. | |RR |Leitura repetível |RS |Estabilidade de leitura |CS |Estabilidade do cursor |UR |Leitura não consolidada | |O nível de isolamento padrão da instrução é o nível de isolamento do |pacote ao qual a instrução está ligada. | ------------------------------------------------------------------------ |38.6 Capítulo 7. Procedimentos SQL, agora chamado de Capítulo 7. Instruções de controle SQL |As instruções de controle são instruções SQL que permitem o uso do SQL de |forma semelhante à escrita de um programa na linguagem de programação |estruturada. As instruções de controle SQL podem ser utilizadas no |corpo de uma rotina, disparo ou instrução composta dinâmica. |Este capítulo contém a sintaxe e as descrições das instruções de controle |SQL suportadas, juntamente com a instrução de procedimento SQL. |38.6.1 Instrução de procedimento SQL |As informações da Instrução de procedimento SQL mudam para o |seguinte: |Instrução do procedimento SQL | |Este capítulo contém diagramas de sintaxe, descrições semânticas, regras e |exemplos do uso das instruções que constituem o corpo do procedimento em uma |rotina, disparo ou instrução composta dinâmica SQL. |Sintaxe |>>-+---------+---+-| SQL-control-statement |-+----------------->< | '-label:--' '-| SQL-statement |---------' | |instrução de controle SQL | | (1) ||---+-ALLOCATE CURSOR statement---------+-----------------------| | | (1) | | +-assignment statement--------------+ | | (1) | | +-ASSOCIATE LOCATORS statement------+ | | (1) | | +-CASE statement--------------------+ | | (2) | | +-dynamic-compound statement--------+ | +-instrução FOR---------------------+ | +-GET DIAGNOSTICS statement---------+ | | (1) | | +-GOTO statement--------------------+ | +-IF statement----------------------+ | +-ITERATE statement-----------------+ | +-LEAVE statement-------------------+ | | (1) | | +-LOOP statement--------------------+ | | (1) | | +-procedure-compound statement------+ | | (1) | | +-REPEAT statement------------------+ | | (1) | | +-RESIGNAL statement----------------+ | +-instrução RETURN------------------+ | +-instrução SIGNAL------------------+ | '-WHILE statement-------------------' | |Notas: | 1. |Essa instrução é suportada no escopo de um Procedimento SQL. 2. |Esta instrução é suportada apenas dentro de um disparo, função SQL ou |método SQL. Ela deve ser a instrução mais externa. | |Descrição | |rótulo: |Especifica o rótulo de uma instrução de procedimento SQL. O rótulo |deve ser exclusivo dentro de uma lista de instruções de procedimento SQL, |incluindo qualquer instrução composta aninhada dentro da lista. Observe |que as instruções compostas que não estão aninhadas podem utilizar o mesmo |rótulo. Uma lista de instruções de procedimentos SQL é possível em |várias instruções de controle SQL. |No contexto de um disparo, uma função ou método SQL ou uma instrução |composta dinâmica, somente a instrução composta dinâmica, a instrução FOR e a |instrução WHILE podem ser rotuladas. |instrução SQL |No corpo do procedimento SQL, todas as instruções SQL executáveis podem |ser contidas, com exceção das seguintes: | o |CONNECT o |CREATE qualquer objeto que não seja índices, tabelas ou exibições o |DESCRIBE o |DISCONNECT o |DROP qualquer objeto que não seja índices, tabelas ou exibições o |FLUSH EVENT MONITOR o |REFRESH TABLE o |RELEASE (somente conexão) o |RENAME TABLE o |RENAME TABLESPACE o |REVOKE o |SET CONNECTION o |SET INTEGRITY | | |Nota: Você pode incluir instruções CALL dentro do corpo de um procedimento SQL, mas |essas instruções CALL podem chamar somente outro procedimento SQL ou um |procedimento C. As instruções CALL dentro do corpo de um procedimento |SQL não podem chamar outros tipos de procedimentos armazenados. | | |38.6.2 FOR |FOR | | | |A instrução FOR executa uma instrução ou um grupo de instruções para cada |linha de uma tabela. |Sintaxe |>>-+---------+---FOR--for-loop-name--AS-------------------------> | '-label:--' | |>-----+-------------------------------+--select-statement---DO--> | | (1) | | '-cursor-name--CURSOR FOR-------' | | .-------------------------------. | V | |>--------SQL-procedure-statement--;---+--END FOR----+--------+->< | '-label--' | |Notas: 1. |Esta opção pode ser utilizada somente no contexto de um Procedimento |SQL. | |Descrição | |label |Especifica o rótulo de uma instrução FOR. Se o rótulo inicial for |especificado, ele pode ser utilizado nas instruções LEAVE e ITERATE. Se |o rótulo final for especificado, deve ser igual ao inicial. |for-loop-name |Especifica um rótulo para a instrução composta implícita gerada para |implementar a instrução FOR. Ele segue as regras do rótulo de uma |instrução composta, com a diferença que não pode ser utilizado com uma |instrução ITERATE ou LEAVE dentro da instrução FOR. O nome do loop |for é utilizado para qualificar os nomes de colunas retornados pela |instrução select especificada. |cursor-name |Nomeia o cursor utilizado para selecionar linhas da tabela de resultados a |partir da instrução SELECT. Se não for especificado, o DB2 gera um nome |de cursor exclusivo. |select-statement |Especifica a instrução SELECT do cursor. Todas as colunas na lista |de seleção devem ter um nome e não podem existir duas colunas com o mesmo |nome. |Em um disparo, função, método ou instrução composta dinâmica, a |instrução select deve consistir em somente uma seleção |completa com expressões comuns de tabela opcionais. |SQL-procedure-statement |Especifica uma instrução (ou instruções) a ser chamada para cada linha da |tabela. | |Regras | * |A lista de seleção deve consistir em nomes de colunas exclusivos e a |tabela especificada na lista de seleção deve existir quando o procedimento for |criado, ou deve ser uma tabela criada em uma instrução de procedimento SQL |anterior. * |O cursor especificado em uma instrução for não pode ser mencionado fora da |instrução for e não pode ser especificado em uma instrução OPEN, FETCH ou |CLOSE. | |Exemplos |No exemplo a seguir, a instrução for é utilizada para iteração sobre a |tabela funcionário completa. Para cada linha da tabela, a |variável SQL nome completo é definida como o último sobrenome do |funcionário, seguido de vírgula, o nome, um espaço em branco e a inicial do |primeiro sobrenome. Cada valor de nome completo é inserido |na tabela tnames. | BEGIN | DECLARE fullname CHAR(40); | FOR vl AS | SELECT firstnme, midinit, lastname FROM employee | DO | SET fullname = lastname || ',' || firstnme ||' ' || midinit; | INSERT INTO tnames VALUE (fullname); | END FOR | END |38.6.3 Alterações de instrução composta para instrução composta (procedimento) |Uma instrução composta de procedimento agrupa outras instruções em um |procedimento SQL. Você pode declarar variáveis SQL, cursores e rotinas |de tratamento de condição dentro de uma instrução composta. |Agora o diagrama de sintaxe tem um título: instrução composta de |procedimento. | .-NOT ATOMIC--. |>>-+---------+--BEGIN----+-------------+------------------------> | '-label:--' '-ATOMIC------' | |>-----+-----------------------------------------------+---------> | | .-----------------------------------------. | | | V | | | '-----+-| SQL-variable-declaration |-+---;---+--' | +-| condition-declaration |----+ | '-| return-codes-declaration |-' | |>-----+--------------------------------------+------------------> | | .--------------------------------. | | | V | | | '----| statement-declaration |--;---+--' | |>-----+-------------------------------------+-------------------> | | .-------------------------------. | | | V | | | '----DECLARE-CURSOR-statement--;---+--' | |>-----+------------------------------------+--------------------> | | .------------------------------. | | | V | | | '----| handler-declaration |--;---+--' | | .-------------------------------. | V | |>--------SQL-procedure-statement--;---+---END--+--------+------>< | '-label--' | |SQL-variable-declaration | | .-,--------------------. | V | ||---DECLARE-------SQL-variable-name---+-------------------------> | | .-DEFAULT NULL-------. |>-----+-data-type----+--------------------+-+-------------------| | | '-DEFAULT--constant--' | | '-RESULT_SET_LOCATOR--VARYING---------' | |condition-declaration | ||---DECLARE--condition-name--CONDITION--FOR---------------------> | | .-VALUE-. | .-SQLSTATE--+-------+---. |>----+-----------------------+---string-constant----------------| | |statement-declaration | | .-,-----------------. | V | ||---DECLARE-----statement-name---+---STATEMENT------------------| | |return-codes-declaration | ||---DECLARE----+-SQLSTATE--CHAR (5)--+---+--------------------+-| | '-SQLCODE--INTEGER----' '-DEFAULT--constant--' | |handler-declaration | ||---DECLARE----+-CONTINUE-+---HANDLER--FOR----------------------> | +-EXIT-----+ | '-UNDO-----' | | .-,-----------------------------------. | V .-VALUE-. | |>---------+-SQLSTATE--+-------+--string--+--+-------------------> | +-condition-name---------------+ | +-SQLEXCEPTION-----------------+ | +-SQLWARNING-------------------+ | '-NOT FOUND--------------------' | |>----SQL-procedure-statement------------------------------------| | | |statement-declaration |Uma statement-declaration declara uma lista de um ou mais nomes |que são locais à instrução composta. Um nome de instrução não pode o |mesmo que outro nome de instrução dentro da mesma instrução composta. | |38.6.4 RETURN |RETURN | | | |A instrução RETURN é utilizada para retornar da rotina. Para funções |ou métodos SQL, retorna o resultado da função ou do método. Para um |procedimento SQL, retorna opcionalmente um valor de status inteiro. |Sintaxe |>>-RETURN--+---------------------------------------------------------+-> | +-expression----------------------------------------------+ | +-NULL----------------------------------------------------+ | '-+---------------------------------------+---fullselect--' | | .-,--------------------------. | | | V | | | '-WITH-----common-table-expression---+--' | |>-------------------------------------------------------------->< | |Descrição | |expression |Especifica um valor retornado da rotina: | o |Se a rotina for uma função ou método, deve ser especificado |expressão, NULL ou fullselect (SQLSTATE 42630) e o tipo de |dados do resultado pode ser atribuído ao tipo RETURNS da rotina (SQLSTATE |42866). o |Uma expressão escalar (diferente de uma seleção completa escalar) não pode |ser especificada para uma função da tabela (SQLSTATE 428F1). o |Se a rotina for um procedimento, o tipo de dados da expressão |deve ser INTEGER (SQLSTATE 428E2). O procedimento não pode retornar |NULL ou uma seleção completa. | |NULL |Especifica que a função ou o método retorna um valor nulo do tipo de dados |definido na cláusula RETURNS. NULL não pode ser especificado para |RETURN de um procedimento. |WITH common-table-expression |Define uma expressão de tabela comum para uso com a seleção completa a |seguir. | |fullselect |Especifica a linha ou linhas a serem retornadas para a função. O |número de colunas na seleção completa deve corresponder ao número de colunas |no resultado da função (SQLSTATE 42811). Além disso, os tipos de |colunas estáticas da seleção completa devem ser atribuíveis aos tipos de |colunas declarados do resultado da função, utilizando as regras de atribuição |de colunas (SQLSTATE 42866). |A fullselect não pode ser especificada para um RETURN de um |procedimento. |Se a rotina for uma função ou método escalar, a seleção completa deve |retornar uma coluna (SQLSTATE 42823) e, no máximo, uma linha (SQLSTATE |21000). |Se a rotina for uma função da linha, deve retornar, no máximo uma linha |(SQLSTATE 21505). |Se a rotina for função da tabela, pode retornar zero ou mais linhas em uma |ou mais colunas. | | |Regras | * |A execução de uma função ou método SQL deve terminar com RETURN (SQLSTATE |42632). * |Em uma função de tabela ou linha SQL utilizando uma instrução composta |dinâmica, a única instrução RETURN permitida é aquela no fim da instrução |composta (SQLSTATE 429BD). | |Versão | * |Quando é retornado um valor de um procedimento, o originador da chamada |pode acessar o valor utilizando: | o |a instrução GET DIAGNOSTICS para recuperar o RETURN_STATUS quando o |procedimento SQL for chamado de outro procedimento SQL o |o parâmetro ligado ao marcador de parâmetro do valor de retorno na sintaxe |CALL da cláusula escape (?=CALL...) em um aplicativo CLI o |diretamente do SQLCA retornado do processamento de CALL de um procedimento |SQL, recuperando o valor de SQLERRD[0] quando o SQLCODE não |é menor que zero (suponha um valor -1 quando SQLCODE for menor que |zero). | | |Exemplos |Utilize uma instrução RETURN para retornar de um procedimento armazenado |SQL com um valor de status se for bem sucedido e -200 caso |contrário. | BEGIN | ... | GOTO FAIL | ... | SUCCESS: RETURN 0 | FAIL: RETURN -200 | END |38.6.5 SIGNAL |A instrução SIGNAL SQLSTATE não é mais utilizada, a favor desta |utilização. |SIGNAL | | | |A instrução SIGNAL é utilizada para indicar uma condição de erro ou de |aviso. Ela faz com que seja retornado um erro ou um aviso com o |SQLSTATE especificado, juntamente com texto de mensagem opcional. |Sintaxe | .-VALUE-. |>>-SIGNAL----+-SQLSTATE--+-------+--sqlstate-string-constant--+-> | '-condition-name---------------------------------' | |>-----+--------------------------------------------------------+->< | +-SET--MESSAGE_TEXT-- = --+-variable-name--------------+-+ | | '-diagnostic-string-constant-' | | | (1) | | '-(--diagnostic-string--)--------------------------------' | |Notas: 1. |Essa opção é fornecida somente dentro do escopo de uma instrução CREATE |TRIGGER para compatibilidade com versões mais antigas do DB2. | |Descrição | |SQLSTATE VALUE sqlstate-string-constant |A constante de cadeia especificada representa um SQLSTATE. Ela deve |ser uma cadeia de caracteres constante, com exatamente 5 caracteres que seguem |as regras de SQLSTATEs: | o |Cada caractere deve ser do conjunto de dígitos ('0' a '9') |ou de letras maiúsculas não acentuadas ('A' a 'Z'). o |A classe SQLSTATE (dois primeiros caracteres) não pode ser '00', |já que isto representa conclusão com êxito. | |No contexto de uma instrução composta dinâmica, disparador, função SQL ou |método SQL, as seguintes regras também devem ser aplicadas: | o |A classe SQLSTATE (dois primeiros caracteres) não pode ser '01' ou |'02', já que não são classes de erro. o |Se a classe SQLSTATE iniciar com os números '0' a '6' ou |com as letras 'A' a 'H', a classe filha (os três últimos |caracteres) devem iniciar com uma letra no intervalo de 'I' a |'Z'. o |Se a classe SQLSTATE iniciar com os número '7', |'8', '9', ou com as letras 'I' a |'Z', a classe filha pode ser de '0' a '9' ou |'A' a 'Z'. | |Se o SQLSTATE não estiver em conformidade com essas regras, é emitido um |erro (SQLSTATE 428B3). |nome da condição |Especifica o nome da condição. O nome da condição deve ser |exclusivo dentro do procedimento e pode ser feita referência a ele somente |dentro da instrução composta na qual é declarado. |SET MESSAGE_TEXT= |Especifica uma cadeia que descreve o erro ou o aviso. A cadeia é |retornada no campo SQLERRMC do SQLCA. Se a cadeia real tiver mais de 70 |bytes, ela é truncada sem aviso. Essa cláusula pode ser especificada |somente se um SQLSTATE ou um nome de condição também for especificado |(SQLSTATE 42601). | |nome da variável |Identifica uma variável SQL que deve ser declarada dentro da instrução |composta. A variável SQL deve ser definida como um tipo de dados CHAR |ou VARCHAR. |constante de cadeia de diagnóstico |Especifica uma cadeia de caracteres constante que contém o texto da |mensagem. | |cadeia de diagnóstico |Uma expressão com o tipo CHAR ou VARCHAR que retorna uma cadeia de |caracteres de até 70 bytes para descrever uma condição de erro. Se a |cadeia tiver mais de 70 bytes, ela será truncada. Essa opção é |fornecida somente dentro do escopo de uma instrução CREATE TRIGGER, para |compatibilidade com versões mais antigas do DB2. O uso regular não é |recomendado. | |Versão | * |Se uma instrução SIGNAL for emitida, o SQLCODE atribuído é: | | +438 se o SQLSTATE iniciar com '01' ou '02' | -438 caso contrário | * |Se o SQLSTATE ou a condição indicar que uma exceção (classe SQLSTATE |diferente de '01' ou '02') está assinalada: | o |A exceção é tratada e o controle é transferido a uma rotina de tratamento, |desde que exista uma rotina de tratamento na mesma instrução composta (ou em |uma instrução composta externa) como instrução de sinal e a instrução composta |contenha uma rotina de tratamento para o SQLSTATE, nome da condição ou |SQLEXCEPTION especificado. o |Se a instrução não puder ser tratada, o controle é retornado imediatamente |para o fim da instrução composta. | * |Se o SQLSTATE ou a condição indicar que um aviso (classe SQLSTATE |'01') está assinalado: | o |O aviso ou condição não encontrada é identificada e o controle é |transferido a uma rotina de tratamento, desde que exista uma rotina de |tratamento na mesma instrução composta (ou em uma instrução composta externa) |como instrução de sinal e a instrução composta contenha uma rotina de |tratamento para o SQLSTATE, nome da condição, SQLWARNING (se a classe SQLSTATE |for '01') ou NOT FOUND (se a classe SQLSTATE for '02') |especificado. o |Se o aviso não puder ser tratado, o processamento continua com a próxima |instrução. | * |Os valores de SQLSTATE são formados de um valor de código de classe de |dois caracteres, seguido de um valor de código de classe filha de três |caracteres. Os valores de código de classe representam, classes de |condições de execução bem sucedidas ou não. |Qualquer valor SQLSTATE válido pode ser utilizado na instrução |SIGNAL. Entretanto, recomenda-se que os programadores definam novos |SQLSTATEs com base em intervalos reservados para aplicativos. Isto |impede o uso não intencional de um valor SQLSTATE que pode ser definido pelo |gerenciador do banco de dados em um próximo release. | o |Podem ser definidas as classes SQLSTATE que iniciam com os caracteres |'7' a '9' ou 'I' a 'Z'. Dentro dessas |classes, pode ser definida qualquer classe filha. o |As classes SQLSTATE que começam com os caracteres '0' a |'6' ou 'A' a 'H' são reservadas para o gerenciador do |banco de dados. Dentro dessas classes, as classes filhas que começam |com os caracteres '0' a 'H' são reservados para o gerenciador |do banco de dados. As classes filhas que começam com os caracteres |'I' a 'Z' podem ser definidas. | | |Exemplos |Um procedimento SQL para um sistema de pedidos que indica um erro no |aplicativo quando o número do cliente não é conhecido no aplicativo. A |tabela ORDERS inclui uma chave remota para a tabela CUSTOMER, exigindo que o |CUSTNO exista para que possa ser inserido um pedido. | CREATE PROCEDURE SUBMIT_ORDER | (IN ONUM INTEGER, IN CNUM INTEGER, | IN PNUM INTEGER, IN QNUM INTEGER) | SPECIFIC SUBMIT_ORDER | MODIFIES SQL DATA | LANGUAGE SQL | BEGIN | DECLARE EXIT HANDLER FOR SQLSTATE VALUE '23503' | SIGNAL SQLSTATE '75002' | SET MESSAGE_TEXT = 'Customer number is not known'; | INSERT INTO ORDERS (ORDERNO, CUSTNO, PARTNO, QUANTITY) | VALUES (ONUM, CNUM, PNUM, QNUM); | END ------------------------------------------------------------------------ |38.7 Apêndice A. Limites de SQL |Existe uma alteração para a Tabela 33, Limites do Database Manager. |Com a variável de registro DB2_INDEX_2BYTEVARLEN definida como ON, a parte da |chave do índice de variável mais longo (em bytes) pode ser maior que |255. ------------------------------------------------------------------------ |38.8 Apêndice D. Exibições do Catálogo |Foi incluída uma nova exibição do catálogo: |38.8.1 SYSCAT.SEQUENCES |A exibição SYSCAT.SEQUENCES é gerada automaticamente para bancos de |dados criados com o FixPak 3 ou posterior. Para bancos de dados criados |antes do FixPak 3, execute o comando db2updv7 a fim de incluir a |exibição no banco de dados. Consulte a atualização da Referência do |comando nas Notas do release para obter detalhes. |Essa exibição do catálogo é atualizada durante a operação normal, em |resposta a instruções de definição de dados SQL, rotinas do ambiente e |determinados utilitários. Os dados na exibição do catálogo estão |disponíveis através de recursos de consulta SQL normais. As colunas têm |nomes consistentes com base no tipo de objeto que descrevem. | | |Tabela 30. Colunas na Exibição de catálogo SYSCAT.SEQUENCES Nome da coluna Tipo de Dados AnulávelDescrição SEQSCHEMA VARCHAR(128) Esquema da seqüência. SEQNAME VARCHAR(128) Nome da seqüência (gerado pelo DB2 para uma coluna de identidade). DEFINER VARCHAR(128) Definidor da seqüência. OWNER VARCHAR(128) Proprietário da seqüências SEQID INTEGER ID interno da seqüência. SEQTYPE CHAR(1) Tipo de seqüência S - Seqüência regular INCREMENT DECIMAL(31,0) Valor do incremento. START DECIMAL(31,0) Valor inicial. MAXVALUE DECIMAL(31,0) Sim Valor máximo. MINVALUE DECIMAL(31,0) Valo mínimo. CYCLE CHAR(1) Se o ciclo ocorrer quando o limite for atingido: Y - o ciclo ocorrerá N - o ciclo não ocorrerá CACHE INTEGER Número de valores em seqüência a serem pré-alocados na memória para facilitar o acesso. 0 indica que os valores não são pré-alocados. ORDER CHAR(1) Se os números de seqüência devem ou não ser gerados pela ordem do pedido: Y - os números de seqüência devem ser gerados pela ordem do pedido N - os números de seqüência não precisam ser gerados pela ordem do pedido. DATATYPEID INTEGER Para tipos embutidos, o ID interno do tipo embutido. Para tipos distintos, o ID interno do tipo distinto. SOURCETYPEID INTEGER Para um tipo interno, tem o valor 0. Para um tipo distinto, é o ID interno do tipo interno que é o tipo de origem do tipo distinto. CREATE_TIME TIMESTAMP O horário de criação da seqüência. ALTER_TIME TIMESTAMP Horário em que a última instrução ALTER SEQUENCE foi executada para esta seqüência. PRECISION SMALLINT A precisão definida para uma seqüência com um tipo numérico ou decimal. Os valores são: 5 para SMALLINT, 10 para INTEGER e 19 para BIGINT. ORIGIN CHAR(1) Origem da seqüência U - Seqüência gerada pelo usuário S - Seqüência gerada pelo sistema REMARKS VARCHAR(254) Sim Comentários fornecidos pelo usuário ou nulos. ------------------------------------------------------------------------ DB2 Stored Procedure Builder ------------------------------------------------------------------------ 39.1 suporte ao Java 1.2 o DB2 Stored Procedure Builder O DB2 Stored Procedure Builder suporta a construção de procedimentos armazenados Java utilizando a funcionalidade do Java 1.2. Além disso, o Stored Procedure Builder suporta idiomas bidirecionais, como o árabe e o hebreu, utilizando o suporte bidirecional do Java 1.2. Esse suporte é fornecido somente às plataformas do Windows NT. Para que o Stored Procedure Builder reconheça e use a funcionalidade do Java 1.2, o Java 1.2 deverá estar instalado. Para instalar o Java 1.2: 1. O JDK 1.2.2 está disponível no CD do DB2 UDB sob o diretório DB2\bidi\NT. ibm-inst-n122p-win32-x86.exe é o programa instalador, e ibm-jdk-n122p-win32-x86.exe é a distribuição do JDK. Copie ambos os arquivos para um diretório temporário em seu disco rígido, e execute o programa instalador a partir daí. 2. Instale-o sob \java\Java12, sendo que é o caminho de instalação do DB2. 3. Não selecione JDK/JRE como MV do Sistema quando solicitado pela instalação do JDK/JRE. Depois que o Java 1.2 estiver instalado, inicie o Construtor de Procedimentos Armazenados do modo normal. Para executar os procedimentos armazenados Java usando o suporte do JDK 1.2, defina a variável de ambiente do servidor de bancos de dados DB2_USE_JDK12 como TRUE usando o seguinte comando: DB2SET DB2_USE_JDK12=TRUE Também defina JDK11_PATH para que indique para o diretório em que o suporte do Java 1.2 foi instalado. Você define esse caminho usando o seguinte comando: DB2 UPDATE DBM CFG USING JDK11_PATH Para interromper o uso do Java 1.2, você pode desinstalar o JDK/JRE do \java\Java12 ou, simplesmente, renomear o subdiretório \java\Java12. Importante: Não confunda o \java\Java12 com o \Java12. O \Java12 faz parte da instalação do DB2 e inclui o suporte JDBC do Java 1.2. ------------------------------------------------------------------------ 39.2 Fazendo Depuração Remota dos DB2 Stored Procedures |Para utilizar a capacidade de depuração remota dos procedimentos |armazenados Java e C nas plataformas UNIX e Windows, é preciso instalar o IBM |Distributed Debugger. O IBM Distributed Debugger está contido no CD da |Edição Profissional do Visual Age for Java. O cliente do depurador |executa somente na plataforma Windows. As plataformas do servidor |suportadas são: Windows, AIX e Solaris. Utilize o recurso de |depuração SQL interno Construtor de Procedimentos Armazenados para depurar |Procedimentos Armazenados SQL locais e remotos nas plataformas Windows e |UNIX. O suporte à plataforma OS/2 ainda não está disponível. |Para obter informações sobre o Construtor de Procedimentos Armazenados DB2 |para OS/390, vá para o seguinte site na Web: |http://www-4.ibm.com/software/data/db2/os390/spb/exciting Para depurar os procedimentos SQL na plataforma OS/390, você também deverá ter o produto IBM C/C++ Productivity Tools for OS/390 R1. Para obter mais informações sobre o IBM C/C++ Productivity Tools for OS/390 R1, vá até este site: http://www.ibm.com/software/ad/c390/pt/ ------------------------------------------------------------------------ 39.3 Construindo Procedimentos SQL na Plataforma Windows, OS/2 ou UNIX Antes de usar o Stored Procedure Builder para construir com sucesso Procedimentos SQL no banco de dados Windows, OS/2 ou UNIX, você precisa configurar o servidor para os Procedimentos SQL. Para obter mais informações sobre como configurar o servidor para Procedimentos SQL, consulte 34.3, Capítulo 4. Construindo Applets e Aplicativos Java. ------------------------------------------------------------------------ 39.4 Utilizando o DB2 Stored Procedure Builder na Plataforma Solaris Para utilizar o Stored Procedure Builder na plataforma Solaris: 1. Faça um download e instale o JDK 1.1.8. Você pode fazer o download do JDK 1.1.8 no site do JavaSoft. 2. Defina a variável de ambiente JAVA_HOME no local em que instalou o JDK. 3. Defina o DB2 JDK11_PATH no diretório em que instalou o JDK. Para definir o DB2 JDK11_PATH, use o comando: DB2 UPDATE DBM CFG USING JDK11_PATH. ------------------------------------------------------------------------ 39.5 Problemas e Limitações Conhecidas * Os Procedimentos SQL não são atualmente suportados no Windows 98. * Nos procedimentos armazenados Java, a JAR ID, os nomes das classes e os nomes dos métodos não podem conter caracteres não-ASCII. * No AS/400, os seguintes V4R4 PTFs devem ser aplicados ao OS/400 V4R4: - SF59674 - SF59878 * Os parâmetros do procedimento armazenado com um caractere do subtipo FOR MIXED DATA ou FOR SBCS DATA não são mostrados no código fonte do quadro do editor quando o procedimento armazenado for restaurado a partir do banco de dados. * Atualmente, há um problema quando o código fonte Java é recuperado a partir de um banco de dados. No momento da recuperação, os comentários do código aparecem reduzidos. Isso afetará os usuários do DB2 Stored Procedure Builder que estão trabalhando em páginas do código não-ASCII, e cujos clientes e servidores estão em páginas de código diferentes. ------------------------------------------------------------------------ 39.6 Utilizando o DB2 Stored Procedure Builder com Locale do Chinês Tradicional Haverá um problema quando o Java Development Kit ou o Java Runtime 1.1.8 for usado com o locale do Chinês Tradicional. Os aspectos gráficos do programa Stored Procedure Builder (menus, texto do editor, mensagens, etc) não serão exibidos adequadamente. A solução será fazer uma alteração no arquivo font.properties.zh_TW, que aparece em um destes diretórios ou em ambos: sqllib/java/jdk/lib sqllib/java/jre/lib Alteração de: monospaced.0=\u7d30\u660e\u9ad4,CHINESEBIG5_CHARSET,NEED_CONVERTED para: monospaced.0=Courier New,ANSI_CHARSET ------------------------------------------------------------------------ 39.7 Instalações UNIX (AIX, Sun Solaris, Linux) e o Stored Procedure Builder Para instalações do Sun Solaris, e se você estiver usando um Java Development Kit ou Runtime diferente daquele instalado no AIX com UDB, você deverá definir a variável de ambiente JAVA_HOME para o caminho em que o Java foi instalado, ou seja, para o diretório que contém os diretórios /bin e /lib. O Stored Procedure Builder não é suportado pelo Linux, mas pode ser usado em plataformas suportadas para criar e executar procedimentos armazenados em sistemas DB2 UDB para Linux. |As plataformas suportadas incluem AIX, Solaris e NT para o cliente e |AIX, Solaris, NT, Linux, OS/2, HP-UX e NUMA-Q para o servidor. ------------------------------------------------------------------------ |39.8 Construindo Procedimentos Armazenados SQL no OS/390 |O Construtor de Procedimentos Armazenados do DB2 suporta a construção de |procedimentos armazenados no UDB DB2 para o servidor OS390 V7. ------------------------------------------------------------------------ |39.9 Depurando procedimentos armazenados SQL |A depuração de procedimentos armazenados SQL nas plataformas Windows |e UNIX não está diretamente integrada ao Construtor de Procedimentos |Armazenados DB2. A opção de configuração do gerenciador do banco de |dados KEEPDARI pode ser definida como SIM ou NÃO ao depurar Procedimentos SQL |não definidos (confiados); entretanto, deve ser definido como SIM (o |padrão) ao depurar Procedimentos SQL não definidos (não confiados). |Consulte a ajuda do Construtor de Procedimentos Armazenados para obter mais |informações sobre o uso do depurador integrado. ------------------------------------------------------------------------ |39.10 Exportando procedimentos armazenados Java |Agora o DB2 Stored Procedure Builder suporta a exportação de procedimentos |armazenados Java. Para exportar um procedimento armazenado Java: | 1. |Clique com o botão direito do mouse na pasta de procedimentos armazenados |e clique em Exportar Procedimentos Armazenados Java para abrir a janela |Exportar Procedimentos Armazenados Java. 2. |Selecione os procedimentos armazenados que deseja exportar e mova-os para |a coluna "Procedimentos armazenados selecionados". 3. |Selecione as opções de sua preferência e clique em OK. | ------------------------------------------------------------------------ |39.11 Inserindo procedimentos armazenados no OS/390 |No DB2 Stored Procedure Builder Versão 5 e posterior, executando no OS/390, |se você utilizar o assistente para inserir um procedimento armazenado e não |indicar opções do ambiente WLM, o código gerado conterá o seguinte |texto: NO WLM ENVIRONMENT. Esta linha de código faz com que o |procedimento armazenado execute no espaço de endereçamento SPAS conforme |esperado. Essa correção resolve um problema que existia no DB2 Stored |Procedure Builder versão 6 e posterior. |O código gerado após a correção é o seguinte: | CREATE PROCEDURE SYSPROC.Proc2 ( ) | RESULT SETS 1 | LANGUAGE SQL | MODIFIES SQL DATA | COLLID TEST | NO WLM ENVIRONMENT | ASUTIME NO LIMIT | RUN OPTIONS 'NOTEST(ALL,*,,VADTCPIP&9.112.14.91:*)' | ------------------------------------------------------------------- | -- SQL Stored Procedure | ------------------------------------------------------------------- | P1: BEGIN | -- Declare cursor | DECLARE cursor1 CURSOR WITH RETURN FOR | SELECT * FROM SYSIBM.SYSPROCEDURES; | | -- Cursor left open for client application | OPEN cursor1; | | END P1 ------------------------------------------------------------------------ |39.12 Definindo opções de construção para procedimentos armazenados SQL em um servidor de estação de trabalho |Utilizando o DB2 Stored Procedure Builder em plataformas UNIX e |Windows, você pode definir opções de construção para todos os procedimentos |armazenados SQL. Essas opções de construção incluem as seguintes |variáveis de registro DB2 do compilador e do pré-compilador: | * |DB2_SQLROUTINE_PREPOPTS * |DB2_SQLROUTINE_COMPILER_PATH * |DB2_SQLROUTINE_COMPILE_COMMAND * |DB2_SQLROUTINE_KEEP_FILES | |Apesar de ser possível definir essas variáveis de registro utilizando o |comando db2set, o uso do Stored Procedure Builder elimina a necessidade de |acessar fisicamente o servidor do banco de dados para emitir o comando ou de |encerrar e depois reiniciar o servidor para que as alterações sejam |efetivadas. |Para abrir a janela Opções do construtor de procedimento armazenado SQL, |clique com o botão direito do mouse em uma conexão do banco de dados na |exibição do projeto e clique em Opções do construtor de procedimento |armazenado. Para obter mais informações sobre como definir essas |opções, consulte a ajuda do DB2 Stored Procedure. ------------------------------------------------------------------------ |39.13 Atualizando automaticamente o espaço de endereçamento WLM para procedimentos armazenados construídos no OS/390 |Após construir com êxito um procedimento armazenado no OS/390 que vai |executar no WLM, o DB2 Stored Procedure Builder atualiza automaticamente o |espaço de endereçamento WLM. ------------------------------------------------------------------------ |39.14 Desenvolvendo procedimentos armazenados Java em OS/390 |O DB2 Stored Procedure Builder suporta o desenvolvimento de procedimentos |armazenados Java no DB2 UDB para OS/390 Versão 6 e superior. Você pode |criar novos procedimentos armazenados Java ou alterar aqueles |existentes. ------------------------------------------------------------------------ |39.15 Criando uma função definida pelo usuário (UDF) do DB2 para MQ Series e OLE DB |O DB2 Stored Procedure Builder fornece assistentes que o ajudam a criar |UDFs de tabelas para o MQSeries e o OLE DB. Você pode utilizar o |assistente UDF da tabela OLE DB para acessar os provedores de dados do OLE |DB. O assistente cria uma UDF da tabela OLE e uma exibição da tabela |opcional. Você pode utilizar a opção Criar assistente UDF da tabela do |MQSeries para criar uma UDF da tabela com uma exibição da tabela de opções, |para acessar as mensagens do MQSeries e analisar os dados em um formato |tabular. ------------------------------------------------------------------------ |Atualizações do Unicode ------------------------------------------------------------------------ |40.1 Introdução |O padrão Unicode é o esquema universal de codificação de caracteres para |caracteres e texto escrito. O Unicode é uma representação de múltiplos |bytes de um caractere. Ele define uma forma consistente de codificar |texto multilíngüe, o que permite a troca de dados de texto internacionalmente |e cria a base para software global. |O Unicode fornece os dois esquemas de codificação a seguir. O |esquema de codificação padrão é o UTF-16, um formato de codificação de 16 |bits. Ele é um subconjunto do UTF-16 que usa dois bytes para |representar um caractere. O UCS-2 é geralmente aceito como a página de |código universal capaz de representar todos os caracteres necessários de todas |as páginas de código de byte simples e duplo byte existentes. Ele está |registrado na IBM como página de código 1200. |O outro formato de codificação do Unicode é o UTF-8, que é orientado por |bytes e foi planejado para facilitar o uso com sistemas baseados em |ASCII. O UTF-8 usa um número variável de bytes (normalmente 1-3, às |vezes 4) para armazenar cada caractere. Os caracteres ASCII invariáveis |são armazenados como bytes simples. Todos os outros caracteres são |armazenados usando múltiplos bytes. Em geral, os dados do UTF-8 podem |ser tratados como dados ASCII estendidos pelo código que não foi designado |para páginas de código de múltiplos bytes. Ele está registrado na IBM |como página de código 1208. |É importante que os aplicativos levem em conta os requisitos dos dados |conforme eles são convertidos entre a página de código local, UCS-2 e |UTF-8. Por exemplo, 20 caracteres precisarão de exatamente 40 bytes no |UCS-2 e algo entre 20 e 60 bytes no UTF-8, dependendo da página de código |original e do caractere usado. |40.1.1 Bancos de Dados e Aplicativos do DB2 Unicode | | |Um DB2 Universal database para Unix, Windows ou OS/2 criado com um conjunto |de códigos UTF-8 pode ser usado para armazenar dados nos formatos UCS-2 e |UTF-8. Tal banco de dados é referido como um banco de dados |Unicode. Os dados SQL CHAR são codificados usando o UTF-8 e os dados |SQL GRAPHIC são codificados usando o UCS-2. Isso pode ser igualado ao |armazenamento de conjuntos de códigos de Byte Simples (SBCS) e de Múltiplos |Bytes (MBCS) nas colunas CHAR e conjuntos de códigos de Byte Duplo (DBCS) na |colunas GRAPHIC. |A página de código de um aplicativo pode não corresponder à página de |código que o DB2 usa para armazenar dados. Em um banco de dados |não-Unicode, quando as páginas de código não são iguais, o gerenciador de |banco de dados converte dados de caractere e gráficos (DBCS puro) que são |transferidos entre cliente e servidor. Em um banco de dados Unicode, a |conversão de dados de caractere entre a página de código do cliente e o UTF-8 |é automaticamente executada pelo gerenciador de banco de dados, mas todos os |dados gráficos (UCS20 são passados sem qualquer conversão entre o cliente e o |servidor. |Figura 7. Conversões de Página de Código Executadas pelo Gerenciador de Banco de Dados [Conversões de Página de Código Executadas pelo Gerenciador de Banco de Dados] |Notas: 1. |Ao conectar-se a Bancos de Dados Unicode, se o aplicativo definir |DB2CODEPAGE=1208, a página de código local será UTF-8, portanto não |será necessária nenhuma conversão de página. 2. |Quando estiver conectado a um Banco de Dados Unicode, os aplicativos CLI |também poderão receber dados de caractere como dados gráficos e |vice-versa. | |É possível que um aplicativo especifique uma página de código UTF-8, |indicando que enviará e receberá todos os dados gráficos em UCS-2 e dados de |caractere em UTF-8. Essa página de código de aplicativo é suportada |somente para bancos de dados Unicode. |Outros pontos a considerar ao usar o Unicode: | 1. |A página de código do banco de dados é determinada no momento em que o |banco de dados é criado e, por padrão, seu valor é determinado a partir do |locale do sistema operacional (ou da página de código). As |palavras-chave CODESET e TERRITORY podem ser usadas para criar explicitamente |um banco de dados DB2 Unicode. Por exemplo: |CREATE DATABASE unidb USING CODESET UTF-8 TERRITORY US 2. |A página de código de aplicativo também usa como padrão a página de código |local, mas ela pode ser substituída pelo UTF-8 de duas formas: | o |Definindo a página de código de aplicativo para UTF-8 (1208) com este |comando: |db2set DB2CODEPAGE=1208 o |Para aplicativos CLI/ODBC, chamando SQLSetConnectAttr() e definindo |SQL_ATTR_ANSI_APP para SQL_AA_FALSE. A definição padrão é |SQL_AA_TRUE. | | 3. |Os dados nas colunas GRAPHIC usarão exatamente dois bytes para cada |caractere do Unicode, enquanto que os dados nas colunas CHAR usarão de 1 a 3 |bytes para caractere do Unicode. Os limites SQL em termos de caracteres |para colunas GRAPHIC são geralmente metade daqueles para colunas CHAR, mas em |termos de bytes eles são iguais. O comprimento máximo de caracteres |para uma coluna CHAR é 254. O comprimento máximo de caracteres para uma |coluna graphic é 127. Para obter maiores informações, consulte MAX no capítulo "Functions" do SQL |Reference. | 4. |Um literal gráfico é diferenciado de um literal de caractere por um |prefixo G. Por exemplo: |SELECT * FROM mytable WHERE mychar = 'utf-8 data' | AND mygraphic = G'ucs-2 data' | |Nota: O prefixo G não é necessário para bancos de dados Unicode. | Consulte "Literais em Bancos de Dados Unicode" para obter maiores informações e suporte atualizado. | 5. |Suporte para aplicativos CLI/ODBC e JDBC difere do suporte para |aplicativos incorporados. Para obter informações específicas do suporte |CLI/ODBC, consulte 40.3, "Manual de Referência do CLI". | 6. |A ordenação de bytes dos dados UCS-2 pode diferir entre |plataformas. Internamente, o DB2 usa o formato big-endian. | |40.1.2 Atualizações de Documentação | |Este documento atualiza as seguintes informações sobre o uso do Unicode com |o DB2 Versão 7.1: | * |SQL Reference: | | Capítulo 3 Elementos de Linguagem | Capítulo 4 Funções | * |CLI Guide and Reference: | | Capítulo 3. Usando Recursos Avançados | Apêndice C. DB2 CLI e ODBC | * |Data Movement Utilities Guide and Reference, Apêndice C. |Formatos de Arquivo do Utilitário de Exportação/Importação/Carregamento | |Para obter maiores informações sobre o uso do Unicode com o DB2, consulte o |Administration Guide, Appendix J. National |Language Support (NLS): "Suporte para Unicode/UCS-2 |e UTF-8 no DB2 UDB". ------------------------------------------------------------------------ |40.2 Referência a SQL |40.2.1 Capítulo 3 Elementos de Linguagem |40.2.1.1 Promoção de Tipos de Dados | |Nesta seção a tabela 5 mostra a lista de precedência para cada tipo de |dados. Observe que: | 1. |Para um banco de dados Unicode, os seguintes tipos de dados são |considerados equivalentes: | o |CHAR e GRAPHIC o |VARCHAR e VARGRAPHIC o |LONG VARCHAR e LONG VARGRAPHIC o |CLOB e DBCLOB | 2. |Em um banco de dados Unicode, é possível criar funções nas quais a |única diferença na assinatura da função está entre os tipos de dados CHAR e |GRAPHIC equivalente, por exemplo foo(CHAR(8)) e foo(GRAPHIC(8)). |Recomendamos que você não defina tais funções duplicadas, porque a migração |para um release futuro precisará que uma delas seja eliminada antes que a |migração continue. |Se tais funções duplicadas existirem, a opção de qual será solicitada é |determinada por um algoritmo de duas passagens. A primeira passagem |tenta localizar uma correspondência usando o mesmo algoritmo que é usado para |resolver funções em um banco de dados não-Unicode. Se nenhuma |correspondência for encontrada, então uma segunda passagem será feita |levando-se em conta a seguinte precedência de promoção para as cadeias CHAR e |GRAPHIC: |GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR-->DBCLOB-->CLOB | |40.2.1.2 Conversão entre Tipos de Dados |A seguinte entrada foi incluída na lista introduzida como: "As |seguintes conversões que envolvem tipos distintos são suportadas": | * |para um banco de dados Unicode, converta de um VARCHAR ou VARGRAPHIC para |um tipo DT distinto com um tipo de dados fonte CHAR ou GRAPHIC. | |A seguir há atualizações para aTabela 6. Conversões Suportadas |entre Tipos de Dados Incorporados. Somente as linhas afetadas da |tabela são incluídas. | |Tabela 31. Conversões suportadas entre Tipos de Dados Incorporados L O N L G O V V Tipo de Dados de Destino N A A > G R R V V G G G A A R R R D R R A A A B C C C C P P P C H H H L H H H L A A A O I I I O Tipo de Dados Fonte V R R R B C C C B CHAR S S S S Y1 Y1 - - VARCHAR S S S S Y1 Y1 - - LONGVARCHAR S S S S - - Y1 Y1 CLOB S S S S - - - Y1 GRAPHIC Y1 Y1 - - S S S S VARGRAPHIC Y1 Y1 - - S S S S LONGVARGRAPHIC - - Y1 Y1 S S S S DBCLOB - - - Y1 S S S S | |1 |A conversão é suportada somente para bancos de dados Unicode. | |40.2.1.3 Atribuições e Comparações |Atribuições e comparações que envolvem dados de caractere e dados |gráficos são somente suportadas quando uma das cadeias é um literal. |Para a resolução da função, os literais gráficos e de caractere corresponderão |aos parâmetros da função de caractere e gráfica. |A seguir há atualizações à Tabela 7. Compatibilidade de Tipos |de Dados para Atribuições e Comparações. Somente as linhas |afetadas da tabela e a nova nota de rodapé 6 serão incluídas: | Inteiro Número Ponto Cadeia de Cadeia RegistroCadeia Operandos Binário Decimal Flutuante Caracteres Gráfica Data Hora de TempoBinária UDT Cadeia de Não Não Não Sim Sim 6 1 1 1 Não 3 2 Caracteres Cadeia Não Não Não Sim 6 Sim Não Não Não Não 2 Gráfica | |6 |Somente suportada para bancos de dados Unicode. | |Atribuições de Cadeia | | | | | |Atribuição de Armazenamento |O último parágrafo dessa subseção foi modificado desta forma: |Quando uma cadeia é atribuída a uma coluna de comprimento fixo e o |comprimento da cadeia é menor que o atributo de comprimento do destino, a |cadeia é preenchida à direita com o número necessário de espaços brancos de |byte simples, byte duplo ou UCS-22. O caractere de |enchimento é sempre um espaço branco para as colunas definidas com o atributo |FOR BIT DATA. |Atribuição de Recuperação |O terceiro parágrafo dessa subseção foi modificado desta forma: |Quando uma cadeia de caracteres é atribuída a uma variável de comprimento |fixo e o comprimento da cadeia é menor que o atributo de comprimento do |destino, a cadeia é preenchida à direita com o número necessário de espaços |brancos de byte simples, byte duplo ou UCS-22. O caractere |de enchimento é sempre um espaço branco mesmo para as cadeias definidas com o |atributo FOR BIT DATA. | |2 |O UCS-2 define vários caracteres SPACE com propriedades diferentes. |Para um banco de dados Unicode, o gerenciador de banco de dados sempre usa |ASCII SPACE na posição x'0020' como espaço branco UCS-2. Para |um banco de dados EUC, IDEOGRAPHIC SPACE na posição x'3000' é usado |para preencher as cadeias GRAPHIC. | |Regras de Conversão para Atribuições de Cadeia |O seguinte parágrafo foi incluído no final dessa subseção: |Para bancos de dados Unicode, cadeias de caracteres podem ser atribuídas a |uma coluna gráfica e cadeias gráficas podem ser atribuídas a uma coluna de |caracteres. |Considerações DBCS para Atribuições de Cadeia Gráfica |O primeiro parágrafo dessa subseção foi modificado desta forma: |As atribuições de cadeia gráfica são processadas de maneira análoga àquela |feita para cadeias de caracteres. Para bancos de dados não-Unicode, os |tipos de dados da cadeia gráfica são compatíveis somente com outros tipos de |dados da cadeia gráfica e nunca com tipos de dados numéricos, da cadeia de |caracteres ou de data/hora. Para bancos de dados Unicode, os tipos de |dados da cadeia gráfica são compatíveis com os tipos de dados da cadeia de |caracteres. |Comparações de Cadeias | |Regras de Conversão para Comparação |Essa subseção foi modificada desta forma: |Quando duas cadeias são comparadas, uma delas é primeiro convertida, se |necessário, para o esquema de codificação e/ou página de código da outra |cadeia. Para obter detalhes, consulte a seção "Regras para Conversões de Cadeias" do Capítulo 3 |Elementos de Linguagem no SQL Reference. |40.2.1.4 Regras para Tipos de Dados de Resultado |Cadeias de Caracteres e Gráficas em um Banco de Dados Unicode |Essa é uma nova subseção inserida após a subseção "Cadeias |Gráficas". |Em um banco de dados Unicode, as cadeias de caracteres e as cadeias |gráficas são compatíveis. | Se um operando for... E o outro operando O tipo de dados do for... resultado será... GRAPHIC(x) CHAR(y) ou GRAPHIC(y) GRAPHIC(z) em que z = max(x,y) VARGRAPHIC(x) CHAR(y) ou VARCHAR(y) VARGRAPHIC(z) em que z = max(x,y) VARCHAR(x) GRAPHIC(y) ou VARGRAPHIC(z) em que z = VARGRAPHIC max(x,y) LONG VARGRAPHIC CHAR(y) ou VARCHAR(y) LONG VARGRAPHIC ou LONG VARCHAR LONG VARCHAR GRAPHIC(y) ou LONG VARGRAPHIC VARGRAPHIC(y) DBCLOB(x) CHAR(y) ou VARCHAR(y) DBCLOB(z) em que z = ou CLOB(y) max(x,y) DBCLOB(x) LONG VARCHAR DBCLOB(z) em que z = max(x,16350) CLOB(x) GRAPHIC(y) ou DBCLOB(z) em que z = VARGRAPHIC(y) max(x,y) CLOB(x) LONG VARGRAPHIC DBCLOB(z) em que z = max(x,16350) |40.2.1.5 Regras para Conversões de Cadeias | | | | |O terceiro ponto foi incluído na seguinte lista dessa seção: |Para cada par de páginas de código, o resultado é determinado pelo |aplicativo seqüencial das seguintes regras: | * |Se as páginas de código forem iguais, o resultado será aquela página de |código. * |Se ambas as páginas de código forem BIT DATA (página de código 0), a |página de código de resultado será BIT DATA. * |Em um banco de dados Unicode, se uma página de código denotar dados |em um esquema de codificação diferente da outra página de código, o resultado |será UCS-2 sobre UTF-8 (ou seja, o tipo de dados gráficos sobre o tipo de |dados de caracteres).1 * |Caso contrário, a página de código de resultado será determinada pela |Tabela 8 da seção "Regras para Conversões de |Cadeias" do Capítulo 3 Elementos de Linguagem no SQL Reference. Uma entrada 'primeiro' na |tabela significa que a página de código do primeiro operando é selecionada e |uma entrada 'segundo' significa que a página de código do segundo |operando é selecionada. | | |1 |Em um banco de dados não-Unicode, a conversão entre esquemas de |codificação diferentes não é suportada. | |40.2.1.6 Expressões |O seguinte foi incluído: |Em um banco de dados Unicode, uma expressão que aceita uma cadeia de |caracteres ou gráfica aceitará todos os tipos de cadeia na quais a conversão é |suportada. |Com o Operador de Concatenação | | | | | | |O seguinte foi incluído no final dessa subseção: |Em um banco de dados Unicode, a concatenação que envolve operandos da |cadeia de caracteres e da cadeia gráfica converterão primeiro os operandos de |caractere para operandos gráficos. Observe que em um banco de dados |Unicode, a concatenação não envolve operandos de caractere e gráficos. |40.2.1.7 Predicados |A seguinte entrada foi incluída na lista introduzida pela sentença: |"As seguintes regras aplicam-se a todos os tipos de predicados": | * |Em um banco de dados Unicode, todos os predicados que aceitam uma cadeia |de caracteres ou gráfica aceitarão todos os tipos de cadeia na quais a |conversão é suportada. | |40.2.2 Capítulo 4 Funções |40.2.2.1 Funções Escalares | | |A seguinte sentença foi incluída no final dessa seção: |No banco de dados Unicode, todas as funções escalar que aceitam um |caractere ou uma cadeia gráfica será aceito em qualquer tipo de cadeia para |que a conversão seja suportada. ------------------------------------------------------------------------ |40.3 Manual de Referência do CLI |40.3.1 Capítulo 3. Usando Recursos Avançados |Esta é uma nova seção para esse capítulo. |40.3.1.1 Escrevendo um Aplicativo Unicode do DB2 CLI | |Existem duas áreas principais de suporte para Aplicativos Unicode do DB2 |CLI: | 1. |A inclusão de um conjunto de funções que podem aceitar argumentos de |cadeia Unicode no lugar de argumentos de cadeia ANSI. 2. |A inclusão de novos tipos de dados C e SQL para descrever dados como ANSI |ou Unicode. As seguintes seções fornecem mais informações para essas |duas áreas. Para ser considerado um aplicativo Unicode, o aplicativo |deve definir o atributo de conexão SQL_ATTR_ANSI_APP para SQL_AA_FALSE, antes |de uma conexão ser feita. Isso assegurará que a CLI será conectada como |um cliente Unicode e que todos os dados Unicode serão enviados em UTF-8 para |dados CHAR ou em UCS-2 para dados GRAPHIC. | |Funções Unicode |A seguir há uma lista de funções ODBC API que suportam as versões Unicode |(W) e ANSI (A) (o nome da função terá um W para Unicode): |SQLBrowseConnect SQLForeignKeys SQLPrimaryKeys |SQLColAttribute SQLGetConnectAttr SQLProcedureColumns |SQLColAttributes SQLGetConnectOption SQLProcedures |SQLColumnPrivileges SQLGetCursorName SQLSetConnectAttr |SQLColumns SQLGetDescField SQLSetConnectOption |SQLConnect SQLGetDescRec SQLSetCursorName |SQLDataSources SQLGetDiagField SQLSetDescField |SQLDescribeCol SQLGetDiagRec SQLSetStmtAttr |SQLDriverConnect SQLGetInfo SQLSpecialColumns |SQLDrivers SQLGetStmtAttr SQLStatistics |SQLError SQLNativeSQL SQLTablePrivileges |SQLExecDirect SQLPrepare SQLTables |As funções Unicode que sempre retornam ou usam argumentos de comprimento de |cadeia são passadas como contagem de caracteres. Para as funções que |retornam a informação do tamanho para os dados do servidor, a exibição do |tamanho e precisão são descritas no número de caracteres. Quando o |comprimento (tamanho de transferência dos dados) pode referir-se a um dado de |cadeia ou sem cadeia, o comprimento é descrito em comprimentos de |octeto. Por exemplo, SQLGetInfoW ainda usa o comprimento como contagem |de bytes, mas SQLExecDirectW usará contagem de caracteres. A CLI |retornará os conjuntos de resultados em Unicode ou ANSI, dependendo da |vinculação do aplicativo. Se um aplicativo vincular-se ao SQL_C_CHAR, o |driver converterá os dados SQL_WCHAR para SQL_CHAR. O gerenciador de |driver mapeia SQL_C_WCHAR para SQL_C_CHAR para drivers ANSI, mas não faz |nenhum mapeamento para drivers Unicode. |Novos tipos de dados e conversões válidas |Existem dois novos tipos de dados CLI ou ODBC definidos, SQL_C_WCHAR e |SQL_WCHAR. SQL_C_WCHAR indica que o buffer C contém dados UCS-2. |SQL_WCHAR indica que uma coluna ou marcador de parâmetro específico contém |dados Unicode. Para DB2 Unicode Servers, as colunas gráficas serão |descritas como SQL_WCHAR. A conversão será permitida entre SQL_C_WCHAR |and SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR e SQL_CLOB, bem como entre os tipos |de dados gráficos. | |Tabela 32. Conversões de Dados Suportadas S S Q Q L S S L _ Q Q _ C L L C S S _ _ _ _ Q Q T C C D S L L Y _ _ B S Q S _ _ P S S C B C S Q S S L S Q C C E Q Q L L L Q L S Q S Q _ Q L _ _ _ L L O O O L _ Q L Q L C L _ T T T _ S _ B B B _ C L _ L _ _ _ C Y Y I C Q C _ _ _ C _ _ C _ C T C _ P P M _ L _ L L L _ N C _ C _ I _ D E E E B _ D O O O B U _ W _ S N F O _ _ S I C B C C C I M C C L H Y L U D T T N _ C A A A G E H H O O I O B A I A A B H T T T I R A A N R N A L T M M R I A O O O N I Tipo de Dados SQL R R G T T T E E E P S T R R R R T C BLOB X X D X CHAR D X X X X X X X X X X X X X CLOB D X X X DATE X X D X DBCLOB X X D X DECIMAL D X X X X X X X X X X DOUBLE X X X X X X D X X X FLOAT X X X X X X D X X X GRAPHIC X X D (Não-Unicode) GRAPHIC X X X X X X X X X X X X D X (Unicode) INTEGER X X D X X X X X X X LONG D X X VARCHAR LONG X X X D VARGRAPHIC (Não-Unicode) LONG X X X D VARGRAPHIC (Unicode) NUMERIC D X X X X X X X X REAL X X X X X D X X X SMALLINT X X X D X X X X X X BIGINT X X X X X X X X X D X TIME X X D X TIMESTAMP X X X X D VARCHAR D X X X X X X X X X X X X X VARGRAPHIC X X D (Não-Unicode) VARGRAPHIC X X X X X X X X X X X X D X (Unicode) | |Nota: | |D |A conversão é suportada. Essa é a conversão padrão para o tipo de |dados SQL. |X |Todos os IBM DBMSs suportam a conversão. |espaço branco |Nenhum IBM DBMS suporta a conversão. | | o |Os dados não são convertidos para os tipos de Localizadores LOB, pois os |localizadores representam um valor de dados, consulte Usando |Objetos Grandes para obter maiores informações. o |SQL_C_NUMERIC está disponível somente em sistemas operacionais Windows de |32 bits. | | |Palavra-Chave Obsoleta/Valor de Correção |Antes dos aplicativos Unicode serem suportados, os aplicativos que foram |escritos para trabalhar com dados de caractere de byte simples trabalhavam com |dados gráficos de byte duplo através de uma série de palavras-chave do arquivo |cli ini, como GRAPHIC=1,2 ou 3, Patch2=7, etc. Essas |soluções alternativas apresentaram dados gráficos como dados de caractere e |também afetaram o comprimento relatado dos dados. |Essas palavras-chaves não são mais necessárias para aplicativos Unicode e, |de fato, não devem ser usadas, pois poderão surgir sérios efeitos |colaterais. Se você não souber se um aplicativo específico é um |aplicativo Unicode, sugerimos que tente sem quaisquer palavras-chaves que |afetem a manipulação de dados gráficos. |Literais em Bancos de Dados Unicode |Nos bancos de dados sem Unicode, os dados no LONG VARGRAPHIC e as colunas |LONG VARCHAR não puderam ser comparados. Os dados no GRAPHIC/VARGRAPHIC |e as colunas CHAR/VARCHAR podem ser apenas comparadas ou atribuídas para cada |um, usando as funções explícitas cast desde que a página de código |implícita seja suportada. Isto inclui os literais GRAPHIC/VARGRAPHIC e |CHAR/VARCHAR onde o literal GRAPHIC/VARGRAPHIC é diferente do literal |CHAR/VARCHAR por um prefixo G. |Para os bancos de dados Unicode, a conversão entre os literais |GRAPHIC/VARGRAPHIC e CHAR/VARCHAR não são requeridos. Um prefixo G, |também será requerido no início do literal GRAPHIC/VARGRAPHIC. Contanto |que pelo menos um dos argumentos seja um literal, as conversões implícitas |ocorrerão. Isso permite que literais com ou sem o prefixo G sejam |usados em instruções que usam SQLPrepareW() ou SQLExecDirect().Os |literais para LONG VARGRAPHICs já possuem um prefixo G. |Para obter maiores informações, consulte"Conversão Entre |Tipos de Dados" no Capítulo 3 Elementos de Linguagem do SQL Reference. |Configuração das Palavras-chave CLI Nova |As três palavras-chave foram incluídas para evitar que qualquer suplemento |extra seja conectado aos aplicativos Unicode para um banco de dados. | 1. |DisableUnicode | |Descrição da Palavra-chave |Desativa o suporte sublinhado para o Unicode. |Sintaxe da Palavra-chave db2cli.ini: |DisableUnicode = 0 | 1 |Definição Padrão: |0 (falso) |Manual de Definições do DB2 CLI/ODBC: |Esta palavra-chave não pode ser definida usando o bloco de notas de |Definições CLI/ODBC. O arquivo db2cli.ini deve ser modificado |diretamente para ser utilizado por esta palavra-chave. |Notas de Uso: | |Com o suporte Unicode ativado e quando for solicitado por um aplicativo |Unicode, o CLI tentará conectar o banco de dados usando a página de código |mais adequada possível para assegurar que não haverá perda de dados |desnecessária na conversão. Isto deve aumentar o tempo de conexão com |as página de código que foram trocadas ou deve causar a conversão da página de |código do cliente que não aconteceu antes deste suporte ter sido |incluído. |Definindo esta palavra-chave para True induzirá todos os dados Unicode a |serem convertidos para a primeira página de código local do aplicativo, antes |do dado ser enviado para o servidor. Isto pode causar a perda de dados |para qualquer dados que não possa ser representado na página de código |local. | 2. |ConnectCodepage | |Descrição da Palavra-chave |Especifica uma página de código específica a ser utilizada quando for |conectar-se a origem de dados para evitar uma conexão de suplementos |extra. |Sintaxe da Palavra-chave db2cli.ini: |ConnectCodepage = 0 | 1 |Definição Padrão: |0 |Manual de Definições do DB2 CLI/ODBC: |Esta palavra-chave não pode ser definida usando o bloco de notas de |Definições CLI/ODBC. O arquivo db2cli.ini deve ser modificado |diretamente para ser utilizado por esta palavra-chave. |Notas de Uso: | |Os aplicativos Sem-Unicode sempre conectam-se ao banco de dados usando a |página de código local dos aplicativos ou as definições de ambiente do |DB2Codepage. Por padrão, o CLI irá verificar se os aplicativos Unicode |serão conectados para os banco de dados do Unicode usando UTF-8 e as páginas |de código UCS-2, e serão conectadas para os bancos de dados sem-Unicode usando |a página de código dos banco de dados. Isto assegura que existe não |desnecessariamente perdas de dados devido a conversão da página de |código. |Esta palavra-chave permite ao usuário especificar a página de código do |banco de dados conectando-se a um banco de dados sem-Unicode pela seqüência |para evitar a inclusão de de qualquer complemento extra na conexão. |Especifique um valor 1 para provocar SQLDriverConnect() retornar ao valor |correto da cadeia de conexão de saída, assim o valor poderá ser usado no |futuro para chamar SQLDriverConnect(). | 3. |UnicodeServer | |Descrição da Palavra-chave |Indica que a origem de dados é um Servidor Unicode. Equivalente |para definir ConnectCodepage=1208. |Sintaxe da Palavra-chave db2cli.ini: |UnicodeServer = 0 | 1 |Definição Padrão: |0 |Manual de Definições do DB2 CLI/ODBC: |Esta palavra-chave não pode ser definida usando o bloco de notas de |Definições CLI/ODBC. O arquivo db2cli.ini deve ser modificado |diretamente para ser utilizado por esta palavra-chave. |Notas de Uso: | |Esta palavra-chave é equivalente para ConnectCodepage=1208 e é incluída |apenas por conveniência. Defina esta palavra-chave para evitar conexões |suplementares extra quando for conectar o DB2 para OS/390 Versão 7 ou |superior. Não existe a necessidade de definir esta palavra-chave para |os banco de dados do DB2 para Windows, DB2 para Unix ou DB2 para OS/2, desde |que não exista solicitação de uma processamento extra. | |40.3.2 Apêndice C. DB2 CLI e ODBC |Esta é uma nova seção incluída nesse apêndice. |40.3.2.1 Aplicativos Unicode do ODBC | | |Um aplicativo Unicode do ODBC envia e recupera dados de caractere |primeiramente no UCS-2. Ela faz isso chamando as versões Unicode das |funções ODBC (sufixo 'W') e indicando os tipos de dados |Unicode. O aplicativo não especifica explicitamente uma página de |código local. Ela ainda pode chamar as funções ANSI e passar as cadeias |da página de código local. |Por exemplo, o aplicativo pode chamar SQLConnectW() e passar o DSN, a ID do |Usuário e a Senha como argumentos do Unicode. Então, ela pode chamar |SQLExecDirectW() e passar uma cadeia de instrução SQL do Unicode e vincular |uma combinação de buffers da página de código local ANSI (SQL_C_CHAR) e de |buffers Unicode (SQL_C_WCHAR). Os tipos de dados do banco de dados |podem ser uma página de código local ou o UCS-2 e o UTF-8. |Se um aplicativo CLI chamar SQLConnectW ou chamar SQLSetConnectAttr com |SQL_ATTR_ANSI_APP definido para SQL_AA_FALSE, o aplicativo será considerado um |aplicativo Unicode. Isso significa que todos os dados CHAR serão |enviados e recebidos do banco de dados no formato UTF-8. O aplicativo |poderá então buscar os dados CHAR nos buffers SQL_C_CHAR na página de código |local (com possível perda de dados) ou nos buffers SQL_C_WCHAR no UCS-2 sem |perda de dados. |Se o aplicativo não fizer nenhuma das chamadas anteriores, os dados CHAR |serão convertidos para a página de código local dos aplicativos no |servidor. Isso significa que os dados CHAR buscados em SQL_C_WCHAR |poderão sofrer perda de dados. |Se a variável de instância DB2CODEPAGE for definida(utilizando db2set) para |a página de código 1208 (UTF-8), o aplicativo receberá todos os dados CHaR em |UTF-8, porque essa é agora a página de código local. O aplicativo |também deve assegurar que todos os dados de entrada CHAR também estejam em |UTF-8. O ODBC também assume que todos os dados SQL_C_WCHAR estão no |formato endian nativo. A CLI executará toda a reversão de bytes |requerida para SQL_C_WCHAR. |Aplicativos Unicode Versus Não-Unicode do ODBC |Este release do DB2 Universal Database contém a APISQLConnectW(). Um |driver Unicode deve exportar SQLConnectW para ser reconhecido como um driver |Unicode pelo gerenciador de driver. É importante observar que muitos |aplicativos ODBC (como o Microsoft Access e o Visual Basic) chamam |SQLConnectW(). Em releases anteriores do DB2 Universal Database, o DB2 |CLI não suportava essa API e, portanto, não era reconhecido como um driver |Unicode pelo gerenciador de driver ODBC. Isso fazia com o gerenciador |de driver ODBC convertesse todos os dados Unicode para a página de código |local do aplicativo. Com o suporte incluído da função SQLConnectW(), |esses aplicativos agora serão conectados como aplicativos Unicode e o DB2 CLI |cuidará de todas as conversões de dados necessárias. |O DB2 CLI agora aceita APIs Unicode (com um sufixo "W") e APIs ANSI |comuns. O ODBC define um conjunto de funções com um sufixo "A", mas o |gerenciador de driver não passa funções ANSI com o sufixo "A" para o |driver. Ao invés disso, ele converte essas funções para chamadas de |função ANSI sem o sufixo e, então, as passa ao driver. |Um aplicativo ODBC que chama a API SQLConnectW() é considerado um |aplicativo Unicode. Como o gerenciador de driver ODBC sempre chamará a |API SQLConnectW() independente da versão do aplicativo chamado, o ODBC |introduziu o atributo de conexão SQL_ATTR_ANSI_APP para notificar a unidade, |se o aplicativo precisar ser considerado um aplicativo ANSI ou UNICODE. |Se SQL_ATTR_ANSI_APP não for definido para SQL_AA_FALSE, o DB2 CLI converterá |todos os dados Unicode para a página de código local antes de enviá-los ao |servidor. ------------------------------------------------------------------------ |40.4 Manual e Referência dos Utilitário de Movimento dos Dados |40.4.1 Apêndice C. Formatos de Arquivo do Utilitário de Exportação/Importação/Carregamento | | |A seguinte atualização foi incluída nesse Apêndice: |Os utilitários de exportação, importação e carregamento não são suportados |quando usados com um cliente Unicode conectado a um banco de dados |não-Unicode. Arquivos de cliente Unicode são suportados somente quando |o cliente Unicode está conectado a um banco de dados Unicode. ------------------------------------------------------------------------ Conectando aos sistemas host Índice Parcial * Connectivity Supplement o 41.1 Configurando o Servidor de Aplicativos em um Ambiente VM o 41.2 Configuração do PATCH1 CLI/ODBC/JDBC e Definições do PATCH2 ------------------------------------------------------------------------ Connectivity Supplement ------------------------------------------------------------------------ 41.1 Configurando o Servidor de Aplicativos em um Ambiente VM Inclua as seguinte sentença após a primeira (e única) sentença na seção "Fornecer Informações de Rede", sub-seção "Definindo o Servidor de Aplicativos": O RDB_NAME é fornecido no SQLSTART EXEC como o parâmetro DBNAME. ------------------------------------------------------------------------ 41.2 Configuração do PATCH1 CLI/ODBC/JDBC e Definições do PATCH2 O driver CLI/ODBC/JDBC pode ser configurado através do Assistente de Configuração de Cliente ou do Gerenciador de Driver ODBC (se estiver instalado no sistema), ou manualmente editando o arquivo db2cli.ini. Para mais detalhes, consulte o Suplemento de Instalação e Configuração ou o CLI Guide and Reference. O comportamento padrão do driver DB2 CLI/ODBC pode ser modificado por meio da especificação de valores para ambas as palavras-chave, PATCH1 e PATCH2, através do arquivo db2cli.ini ou através da API CLI SQLDriverConnect() ou SQLBrowseConnect(). A palavra-chave PATCH1 é especificada por meio da inclusão de todas as palavras-chave que o usuário quer definir juntas. Por exemplo, se forem especificados patch 1, 2 e 8, o PATCH1 teria o valor 11. Esta é uma descrição do valor de cada palavra-chave e seu efeito no driver: 1 - Faz o driver pesquisar "count(exp)" e substitui-lo por "count(distinct exp)". É necessário porque algumas versões do DB2 suportam a sintaxe "count(exp)" e essa sintaxe é gerada por alguns aplicativos ODBC. Solicitada por aplicativos Microsoft quando o servidor não suportar a sintaxe "count(exp)". 2 - Alguns aplicativos ODBC são interrompidos quando o SQL_NULL_DATA for apresentado na função SQLGetTypeInfo() da coluna LITERAL_PREFIX ou LITERAL_SUFFIX. Isso obriga o driver a apresentar uma cadeia vazia no lugar. Solicitado por Impromptu 2.0. 4 - Obriga o driver a tratar os dados do registro de tempo de entrada como dados de data caso o tempo e a parte de fração do registro de tempo forem zero. Solicitado pelo Microsoft Access. 8 - Obriga o driver a tratar os dados do registro de tempo de entrada como dados de hora se a parte da data do registro de tempo for 1899-12-30. Solicitado pelo Microsoft Access. 16 - Não utilizado. 32 - Obriga o driver a não apresentar informações sobre as colunas SQL_LONGVARCHAR, SQL_LONGVARBINARY e SQL_LONGVARGRAPHIC. Para o aplicativos ele aparece como se campos longos não fossem suportados. Solicitado pelo Lotus 123. 64 - Obriga o driver a terminar como NULL cadeias de saída gráfica. Solicitado pelo Microsoft Access em um ambiente de duplo bytes. 128 - Obriga o driver a deixar a consulta "SELECT Config, nValue FROM MSysConf" ir para o servidor. Atualmente o driver apresenta um erro com o valor SQLSTATE associado S0002 (tabela não encontrada). Solicitado se o usuário tiver criado essa tabela de configuração no banco de dados e quiser que o aplicativo a acesse. 256 - Obriga o driver a apresentar primeiro as colunas da chave primária na chamada SQLStatistics(). Atualmente, o driver apresenta os índices ordenados pelo nome, que é o comportamento padrão do ODBC. 512 - Obriga o driver a apresentar FALSE em SQLGetFunctions() tanto para SQL_API_SQLTABLEPRIVILEGES quanto para SQL_API_SQLCOLUMNPRIVILEGES. 1024 - Obriga o driver a apresentar SQL_SUCCESS em lugar de SQL_NO_DATA_FOUND em SQLExecute() ou SQLExecDirect() se a instrução UPDATE ou DELETE executada não afetar nenhuma linha. Solicitado por aplicativos Visual Basic. 2048 - Não utilizado. 4096 - Obriga o driver a não emitir um COMMIT depois de fechar um cursor quando estiver no modo autocommit. 8192 - Obriga o driver a apresentar um conjunto de resultados extra depois de chamar um procedimento armazenado. Esse conjunto de resultado é uma linha que consiste nos valores de saída do procedimento armazenado. Pode ser acessado por aplicativos Powerbuild. 32768 - Obriga o driver a fazer os aplicativos Microsoft Query trabalharem com sinônimos do DB2 MVS. 65536 - Obriga o driver a inserir manualmente um "G" em frente aos literais dos caracteres que são na verdade gráficos literais. Essa correção deve sempre ser fornecida durante o trabalho em um ambiente de duplo byte. 131072 - Obriga o driver a descrever uma coluna de registro de tempo como uma coluna CHAR(26), quando ela fizer parte de um índice exclusivo. Solicitado por aplicativos Microsoft. 262144 - Obriga o driver a usar a tabela de catálogo de apelidos db2cli.procedures em lugar das tabelas SYSCAT.PROCEDURES e SYSCAT.PROCPARMS. 524288 - Obriga o driver a usar SYSTEM_TABLE_SCHEMA em lugar de TABLE_SCHEMA quando fizer a consulta de uma tabela do sistema em um sistema DB2/400 V3.x. Isso resulta em um melhor desempenho. 1048576 - Obriga o driver a tratar uma cadeia de comprimento zero através de SQLPutData() como SQL_NULL_DATA. A palavra-chave PATCH2 difere da palavra-chave PATCH1. Nesse caso, várias correções são especificadas com a utilização de vírgulas como separadores. Por exemplo, se forem especificadas as correções 1, 4 e 5, o PATCH2 teria o valor "1,4,5". Esta é uma descrição do valor de cada palavra-chave e seu efeito no driver: 1 - Obriga o driver a converter o nome do procedimento armazenado de uma instrução CALL em maiúsculas. 2 - Não utilizado. 3 - Obriga o driver a converter todos os argumentos das chamadas de esquema em maiúsculas. 4 - Obriga o driver a apresentar a Versão 2.1.2 como conjunto de resultados das chamadas do esquema (ou seja, SQLColumns(), SQLProcedureColumns() e assim por diante), em lugar da Versão 5 como um conjunto de resultados. 5 - Obriga o driver a não otimizar o processamento das colunas VARCHAR de entrada, em que o indicador dos dados e o indicador do comprimento são consecutivos na memória. 6 - Obriga o driver a apresentar a mensagem de que os cursores deslocáveis não são suportados. É solicitado pelos programas do Visual Basic se o cliente DB2 for a Versão 5 e o servidor for o DB2 UDB Versão 5. 7 - Obriga o driver a mapear todos os tipos de dados da coluna GRAPHIC para o tipo de dados da coluna CHAR. Solicitado em um ambiente de duplo byte. 8 - Obriga o driver a ignorar argumentos de pesquisa do catálogo em chamadas do esquema. 9 - Não efetua o commit em Early Close de um cursor 10 - Não Utilizado 11 - Relata que o nome do catálogo é suportado, (procedimentos armazenados VB) 12 - Remove as aspas duplas dos argumentos da chamada do esquema, (Visual Interdev) 13 - Não anexa as palavras-chave do db2cli.ini na cadeia de conexão de saída 14 - Ignora o nome do esquema em SQLProcedures() e SQLProcedureColumns() 15 - Usa sempre um ponto como separador decimal na saída do caractere 16 - Obriga a apresentação das informações de descrição de cada abertura 17 - Não apresenta os nomes de colunas na descrição 18 - Tenta substituir literais por marcadores de parâmetros 19 - Atualmente, o DB2 MVS V4.1 não suporta a sintaxe ODBC em que os parênteses são permitidos na cláusula ON em uma cláusula de join externa. Ao ligar este PATCH2 causará ao driver do IBM DB2 ODBC a retirada dos parênteses quando a cláusula join externa está em uma seqüência de saída ODBC. Este PATCH2 só deve ser usado em relação ao DB2 MVS 4.1. 20 - Atualmente, o DB2 em MVS não suporta o predicado BETWEEN com marcadores de parâmetros como ambos operandos (expressão ? BETWEEN ?). Ao ligar esta correção fará o Driver IBM ODBC gravar novamente o predicado como (expression >= ? and expression <= ?). 21 - Defina todos os parâmetros somente OUTPUT dos procedimentos armazenados como SQL_NULL_DATA 22 - Este PATCH2 causa ao driver IBM ODBC reportar join OUTER como não suportado. Destinado ao aplicativo que gera SELECT DISTINCT col1 ou ORDER BY col1 ao utilizar a instrução de join externa em que col1 é maior do que 254 caracteres e faz o DB2 UDB apresentar um erro (já que o DB2 UDB não suporta uma coluna maior do que 254 bytes nessa utilização 23 - Não otimize a entrada dos parâmetros bound com cbColDef=0 24 - Solução de acesso para o mapeamento de valores de Tempo como Caracteres 25 - Solução de acesso para colunas decimais - remove zeros iniciais em representações de carac 26 - Não retorna o sqlcode 464 para o aplicativo - indica o retorno de conjunto de resultados 27 - Força o SQLTables a utilizar o valor palavra-chave TABLETYPE, mesmo que o aplicativo especifica um valor válido 28 - Descreve colunas reais como colunas duplas 29 - ADO soluções para colunas decimais - remove zeros iniciais para valores x, em que 1 > x > -1 (Apenas necessário para algumas versões MDAC) 30 - Desativa a otimização de cache do Procedimento Armazenado 31 - Relata estatísticas para aliases na chamada SQLStatistics 32 - Sobrepõe o processamento do sqlcode -727 código de motivo 4 33 - Retorna a versão ISO do registro de tempo quando convertido para caractere (como oposto à versão ODBC) 34 - Relata colunas CHAR FOR BIT DATA como CHAR 35 - Relata um TABLENAME inválido quando o SQL_DESC_BASE_TABLE_NAME é requisitado - otimização apenas-leitura ADO 36 - Reservado 37 - Reservado ------------------------------------------------------------------------ Informações gerais Índice Parcial * Informações gerais o 42.1 Apresentação do DB2 Universal Database Business Intelligence o 42.2 O DB2 Everywhere é Agora DB2 Everyplace o 42.3 Exigências de Mouse o 42.4 Tentativa para fazer o Bind a partir dos Resultados do Cliente de Tempo de execução do DB2 em um Erro "Arquivos de Bind não encontrados" o 42.5 Pesquisa de Descoberta o 42.6 Janelas de Memória do HP-UX 11 o 42.7 Falha da Ação do Usuário para dlfm client_conf o 42.8 No Evento de Pouca Freqüência que Copia o Daemon e que Não Para com dlfm stop o 42.9 Desinstalando o DB2 DFS Client Enabler o 42.10 Autenticação de Cliente no Windows NT o 42.11 O Carregador Automático Pode Travar Durante uma Bifurcação o 42.12 Restaurar DATALINK o 42.13 Definir a ID do Usuário e a Senha em Servidores de Comunicações IBM para Windows NT (CS/NT) + 42.13.1 Definição do Nó o 42.14 Restrições de Sistemas Federados o 42.15 Restrição do DataJoiner o 42.16 Gerenciador do Catálogo de Informações em Hebraico para Windows NT o 42.17 Suporte de Atualização do Microsoft SNA Server e SNA Multisite (Commit de Duas Fases) o 42.18 SNA SPM do DB2 Falhou ao Iniciar Após a Inicialização do Windows o 42.19 Definindo locale para o Servidor de Administração do DB2 o 42.20 Atalhos que Não Funcionam o 42.21 Requisitos da Conta de Serviço para DB2 no Windows NT e Windows 2000 o 42.22 O Privilégio EXECUTE para Usuários do Query Patroller Criados na Versão 6 não está Implementado o 42.23 Restrições do Query Patroller o 42.24 É Necessário Fazer o Commit de Todos os Programas Definidos pelo Usuário que serão Usados no Centro de Data Warehouse (DWC) o 42.25 Nova Opção para a Exportação da Linha de Comandos do Centro de Data Warehouse o 42.26 APIS dos Serviços de Backup (XBSA) o |42.27 Agente do OS/390 + |42.27.1 Visão geral da instalação + |42.27.2 Detalhes da instalação + |42.27.3 Configurando as funções adicionais do agente + |42.27.4 Planejamento de etapas do warehouse com o programa de disparo (XTClient) + |42.27.5 Transformadores + |42.27.6 Acessando os bancos de dados fora da família DB2 + |42.27.7 Executando utilitários do DB2 para OS/390 + |42.27.8 Replicação + |42.27.9 Log de agente o |42.28 Armazenamento em Cache no Lado Cliente no Windows NT o |42.29 Produtos para teste em CD-ROMs UNIX Enterprise Edition o |42.30 Produtos para teste em CD-ROMs UNIX do DB2 Connect Enterprise Edition o |42.31 Eliminar o Data Links Manager o |42.32 Desinstalar Componentes do DLFM Usando o SMIT pode Remover Conjuntos de Arquivos Adicionais o |42.33 Erro SQL1035N ao utilizar CLP no Windows 2000 o |42.34 Melhorias no SQL Assist o |42.35 Integração do Desktop Gnome e KDE para DB2 no Linux o |42.36 Executando o DB2 no Servidor Terminal do Windows 2000, Nó de Administração o |42.37 Auxílio Online para Comandos de Backup e de Restauração o 42.38 O "Warehouse Manager" Deveria Ser "DB2 Warehouse Manager" ------------------------------------------------------------------------ Informações gerais ------------------------------------------------------------------------ 42.1 Apresentação do DB2 Universal Database Business Intelligence A Apresentação não está disponível no DB2 para Linux ou Linux/390. A Apresentação é otimizada para a execução com fontes pequenas do sistema. Talvez você precise ajustar o tamanho de fonte do navegador Web para exibir corretamente a Apresentação no OS/2. Consulte a ajuda do navegador Web para obter informações sobre o ajuste do tamanho da fonte. Para exibir a Apresentação corretamente (SBCS somente), é recomendado que você use uma fonte Helv de 8 pontos. Para clientes no Japão e na Coréia, o uso de uma fonte Mincho com 8 pontos é recomendado. Ao definir as preferências de fonte, certifique-se de selecionar a opção "Usar fontes padrão, substituindo fontes especificadas do documento" na página Fontes da janela Preferências. Em alguns casos, a Apresentação pode lançar uma janela secundária do navegador em segundo plano. Para corrigir esse problema, feche a Apresentação e siga as etapas em 2.4, Mensagens de Erro na Tentativa de Lançar o Netscape. Ao lançar a Apresentação, você poderá receber um erro de JavaScript similar ao seguinte: arquivo:/C/Arquivos de Programas/SQLLIB/doc/html/db2qt/index4e.htm, linha 65: A janela não está definida. Esse erro do JavaScript impede que a Apresentação lance a página, index4e.htm, fechando automaticamente após a Apresentação ser lançada. Você pode fechar a página de lançamento da Apresentação, fechando a janela do navegador na qual o index4e.htm é exibido. A seção "Novidades", sob o tópico Gerenciamento de Dados, está descrito que o "suporte do arquivo acumulativo de log por pedido" é suportado na Versão 7.1. Isto não está correto. Ela afirma também que: O tamanho dos arquivos de log aumentou de 4 GB para 32 GB. Esta sentença deveria ser: O espaço total do log ativo aumentou de 4 GB para 32 GB. A seção que descreve o Gerenciador do DB2 Data Links contém a seguinte frase: Além disso, suporta o uso da interface Veritas XBSA para o backup e a restauração através do NetBackup. Esta sentença deveria ser: Além disso, agora suporta a interface XBSA para gravação e restauração de arquivos. Os gerenciadores de armazenamento que suportam a interface XBSA incluem Legato NetWorker e Veritas NetBackup. ------------------------------------------------------------------------ 42.2 O DB2 Everywhere é Agora DB2 Everyplace O nome do DB2 Everywhere foi alterado para DB2 Everyplace. ------------------------------------------------------------------------ 42.3 Exigências de Mouse Para todas as plataformas exceto Windows, um mouse é exigido para usar as ferramentas. ------------------------------------------------------------------------ 42.4 Tentativa para fazer o Bind a partir dos Resultados do Cliente de Tempo de execução do DB2 em um Erro "Arquivos de Bind não encontrados" Porque o Cliente de Tempo de execução do DB2 não possui um conjunto completo de arquivos de bind, o bind das ferramentas GUI não pode ser feito a partir do Cliente de Tempo de execução do DB2, e pode apenas ser feito a partir do Cliente de Administração do DB2. ------------------------------------------------------------------------ 42.5 Pesquisa de Descoberta A Pesquisa de Descoberta é apenas suportada na mídia de distribuição. Por exemplo, a pesquisa de descoberta não funcionará através de um adaptador ATM. De qualquer modo, esta restrição não se aplica à descoberta conhecida. ------------------------------------------------------------------------ 42.6 Janelas de Memória do HP-UX 11 As janelas de memória são destinadas aos usuários de grandes máquinas HP de 64 bits, que podem aproveitar as vantagens de mais de 1,75 GB de memória compartilhada dos aplicativos de 32 bits. As janelas de memória não são obrigatórias se você estiver executando a versão de 64-bit do DB2. As janelas de memória tornam disponível a memória compartilhada separada de 1 GB por processo ou por grupo de processos. Isso permite que uma instância possua sua própria memória compartilhada de 1 GB, mais a memória compartilhada global de 0,75 GB. Se os usuários quiserem aproveitar essa vantagem, eles irão poder executar diversas instâncias, cada uma em sua própria janela. Estes são os pré-requisitos e condições para o uso das janelas de memória: * Ambiente DB2 EE o Correções: Extension Software 12/98 e PHKL_17795. o A variável $DB2INSTANCE deve ser definida para a instância. o Deve haver uma entrada no arquivo /etc/services.window para cada instância DB2 que você deseja executar sob as janelas de memória. Por exemplo: db2instance1 50 db2instance2 60 Nota: Pode existir apenas um espaço entre o nome e a ID. o Qualquer comando do DB2 que você deseja executar no servidor e que exija mais de uma instrução individual deve ser executado usando um método de loopback do TCP/IP. Isto acontece porque o shell irá terminar quando as janelas de memória finalizarem o processamento da primeira instrução. O Serviço do DB2 sabe como realizar isso. o Qualquer comando do DB2 que você deseja executar contra uma instância que está em execução nas janelas da memória deve ser utilizado inicialmente no db2win (localizado em sqllib/bin). Por exemplo: db2win db2start db2win db2stop o Qualquer comando do DB2 que seja executado fora das janelas da memória (mas quando as janelas da memória estiverem sendo executadas) deverá apresentar um 1042. Por exemplo: db2win db2start <== OK db2 connect to db <==SQL1042 db2stop <==SQL1042 db2win db2stop <== OK * Ambiente DB2 EEE o Correções: Extension Software 12/98 e PHKL_17795. o A variável $DB2INSTANCE deve ser definida para a instância. o A variável de registro DB2_ENABLE_MEM_WINDOWS deve ser definida para TRUE. o Deve haver uma entrada no arquivo /etc/services.window para cada nó lógico de cada instância que você deseja executar sob as janelas da memória. O primeiro campo de cada entrada deve ser o nome da instância concatenado com o número da porta. Por exemplo: === $HOME/sqllib/db2nodes.cfg for db2instance1 === 5 host1 0 7 host1 1 9 host2 0 === $HOME/sqllib/db2nodes.cfg for db2instance2 === 1 host1 0 2 host2 0 3 host2 1 === /etc/services.window on host1 === db2instance10 50 db2instance11 55 db2instance20 60 === /etc/services.window on host2 === db2instance10 30 db2instance20 32 db2instance21 34 o Você não deve iniciar qualquer comando do DB2 com db2win, o qual deve ser usado apenas em um ambiente EE. ------------------------------------------------------------------------ 42.7 Falha da Ação do Usuário para dlfm client_conf Se, um cliente DLFM, dlfm client_conf falhar por alguma razão, entradas "antigas" nos catálogos do DB2 podem ser o motivo. A solução é emitir os seguintes comandos: db2 uncatalog db db2 uncatalog node db2 terminate Em seguida tente o dlfm client_conf novamente. ------------------------------------------------------------------------ 42.8 No Evento de Pouca Freqüência que Copia o Daemon e que Não Para com dlfm stop Isto poderia ocorrer em situações muito raras em que o dlfm_copyd (o comando para copiar daemon) não parasse quando um usuário emitisse um dlfm ou existisse um encerramento anormal do sistema. Se isto ocorrer, emita o encerramento dlfm antes de tentar reiniciar o dlfm. ------------------------------------------------------------------------ 42.9 Desinstalando o DB2 DFS Client Enabler Antes do DB2 DFS Client Enabler ser desinstalado, o usuário raiz deve assegurar-se de que não existe arquivo DFS em utilização, e que nenhum usuário tenha um shell aberto no espaço de arquivo dos DFS. Como raiz, emita o comando: stop.dfs dfs_cl Verifique se o /... não está mais montado: mount | grep -i dfs Caso isto não seja feito, e o DB2 DFS Client Enabler seja desinstalado, a máquina precisará ser reinicializada. ------------------------------------------------------------------------ 42.10 Autenticação de Cliente no Windows NT Uma nova variável de registro DB2 DB2DOMAINLIST é introduzida para complementar o mecanismo de autenticação no ambiente Windows NT. Essa variável é emitida no servidor DB2 para Windows NT para definir um ou mais domínios do Windows NT. Apenas as solicitações de conexão ou anexação de usuários pertencentes ao domínio definido nesta lista serão aceitos. A variável de registro deve ser apenas utilizada em um ambiente de domínio do Windows NT puro com servidores e cliente do DB2 sendo executados na Versão 7 (ou superior). Para obter mais informações sobre a definição desta variável de registro, consulte a seção "Variáveis do Registro e Ambiente do DB2" no Administration Guide: Performance. ------------------------------------------------------------------------ 42.11 O Carregador Automático Pode Travar Durante uma Bifurcação O AIX 4.3.3 contém uma correção para um problema libc que pode causar o travamento do Carregador Automático durante uma bifurcação. O Carregador Automático é um programa de multithread. Uma das threads surgiram da bifurcação de outro processo. A bifurcação de um processo filho provoca a criação de uma imagem de memória pai a ser criada na imagem filho. É possível que o bloqueio usado pelo libc.a gerencie múltiplas threads alocando a memória da pilha dentro do mesmo processo que foi mantido por uma thread sem bifurcação. Se uma thread sem bifurcação não ocorrer no processo filho, o bloqueio nunca será liberado no filho, causando algumas vezes, interrupções no processo pai. ------------------------------------------------------------------------ 42.12 Restaurar DATALINK A restauração de qualquer backup offline que foi tomado após uma restauração de banco de dados, com ou sem rollforward, não envolverá o processamento de reconciliação rápida. Em tais casos, todas as tabelas com colunas DATALINK sob o controle de ligação do arquivo serão colocadas no estado pendente de reconciliação do datalink (DRP). ------------------------------------------------------------------------ 42.13 Definir a ID do Usuário e a Senha em Servidores de Comunicações IBM para Windows NT (CS/NT) Se você estiver usando o APPC como o protocolo de comunicação para que os clientes do DB2 remoto possam se conectar ao servidor do DB2, e estiver usando o CS/NT como o produto SNA, verifique se as palavras-chave a seguir foram definidas corretamente no arquivo de configuração CS/NT. Este arquivo é comumente encontrado no diretório x:\ibmcs\private. 42.13.1 Definição do Nó TG_SECURITY_BEHAVIOR Este parâmetro permite ao usuário determinar como o nó deve manipular as informações de segurança presentes no ATTACH se o TP não estiver configurado para segurança. IGNORE_IF_NOT_DEFINED Este parâmetro permite ao usuário determinar se os parâmetros de segurança estão presentes no ATTACH e ignorá-los se o TP não estiver configurado para segurança. Caso utilize IGNORE_IF_NOT_DEFINED, você não precisa definir uma ID do Usuário e senha no CS/NT. VERIFY_EVEN_IF_NOT_DEFINED Esse parâmetro permite ao usuário determinar se os parâmetros de segurança estão presentes no ATTACH e verificá-los mesmo que o TP não esteja configurado para segurança. Esse é o padrão. Se você usa VERIFY_EVEN_IF_NOT_DEFINED, deve definir a ID do Usuário e senha no CS/NT. Para definir a ID do Usuário e senha CS/NT, execute as seguintes etapas: 1. Iniciar --> Programas --> Servidor de Comunicações IBM --> Configuração de nó SNA.A janela Bem-vindo para a Configuração do Servidor de Comunicações é aberta. 2. Escolha o arquivo de configuração que deseja alterar. Clique em Próximo.A janela Escolher um Cenário de Configuração é aberta. 3. Destaque CPI-C, APPC ou Emulação 5250. Dê um clique em Concluir.A Janela Nó SNA do Servidor de Comunicações é aberta. 4. Clique no [+] junto ao CPI-C e APPC. 5. Clique no [+] junto ao LU6.2 Security. 6. Clique com o botão direito em Senhas de Usuários e selecione Criar. A janela Definir uma Senha de ID do Usuário é aberta. 7. Preencha a ID do usuário e a senha. Clique em OK. Clique em Concluir para aceitar as alterações. ------------------------------------------------------------------------ 42.14 Restrições de Sistemas Federados A seguir estão restrições que se aplicam a sistemas federados: * Os tipos de dados do Oracle NCHAR, NVARCHAR2, NCLOB e BFILE não são suportados em consultas que envolvem pseudônimos. * Os comandos Create Server Option, Alter Server Option e Drop Server Option não são suportados no Centro de Controle. Para emitir qualquer um desses comandos, use o processador da linha de comandos (CLP). * Para consultas que envolvem apelidos, o DB2 UDB nem sempre suporta a opção de configuração do banco de dados DFT_SQLMATHWARN. Em vez disso, ele retorna os erros aritméticos ou avisos diretamente da fonte de dados remota independente da definição DFT_SQLMATHWARN. * A instrução CREATE SERVER OPTION não permite que a opção do servidor COLSEQ seja definida para 'I' no caso das origens de dados com seqüências de classificação sensíveis a maiúsculas e minúsculas. * A instrução ALTER NICKNAME retorna SQL0901N quando uma opção inválida é especificada. * Em fontes de dados Oracle, servidor Microsoft SQL e Sybase, os tipos de dados numéricos não podem ser mapeados para o tipo de dados BIGINT do DB2. Por padrão, o tipo de dados número(p,s) da Oracle, em que 10 <= p <= 18 e s = 0, mapeia o tipo de dados DECIMAL do DB2. ------------------------------------------------------------------------ 42.15 Restrição do DataJoiner Solicitações distribuídas dentro de um ambiente federado são limitadas a operações de leitura. ------------------------------------------------------------------------ 42.16 Gerenciador do Catálogo de Informações em Hebraico para Windows NT O componente Gerenciador do Catálogo de Informações está disponível em hebraico e é fornecido no CD do DB2 Warehouse Manager para Windows NT. A tradução em hebraico é fornecida em um arquivo zip chamado IL_ICM.ZIP e está localizada no diretório DB2\IL, no CD DB2 Warehouse Manager para Windows NT. Para instalar a tradução em hebraico do Gerenciador do Catálogo de Informações, primeiro instale a versão em inglês do DB2 Warehouse Manager para Windows NT e todos os pré-requisitos para uma versão Ativa em hebraico do Windows NT. Após o DB2 Warehouse Manager para Windows NT ser instalado, descompacte o arquivo IL_ICM.ZIP a partir do diretório DB2\IL no mesmo diretório onde o DB2 Warehouse Manager para Windows NT foi instalado. Certifique-se de que as opções corretas sejam fornecidas para o programa unzip criar a estrutura de diretórios no arquivo zip. Após o arquivo zip ser descompactado, a variável de ambiente global LC_ALL deve ser alterada de En_US para Iw_IL. Para alterar a definição: 1. Abra o Painel de Controle do Windows NT e clique duas vezes no ícone Sistema. 2. Na janela Propriedades do Sistema, clique na guia Ambiente e localize a variável LC_ALL na seção Variáveis do sistema. 3. Clique na variável para exibir o valor na caixa de edição Valor. Altere o valor de En_US para Iw_IL. 4. Clique no botão Definir. 5. Feche a janela Propriedades do Sistema e o Painel de Controle. A versão em hebraico do Gerenciador do Catálogo de Informações, agora, deve ser instalada. ------------------------------------------------------------------------ 42.17 Suporte de Atualização do Microsoft SNA Server e SNA Multisite (Commit de Duas Fases) Os aplicativos do host e do AS/400 não podem acessar servidores DB2 UDB usando o commit de duas fases SNA, quando o Microsoft SNA Server é o produto SNA em uso. Qualquer publicação do DB2 UDB que indicar que existe esse suporte está incorreta. É necessário o IBM Communications Server para Windows NT Versão 5.02 ou posterior. Nota: Aplicativos que acessam servidores de bancos de dados do host e do AS/400 usando o DB2 UDB para Windows podem usar o commit de duas fases SNA através do Microsoft SNA Server Versão 4 Service Pack 3 ou posterior. ------------------------------------------------------------------------ 42.18 SNA SPM do DB2 Falhou ao Iniciar Após a Inicialização do Windows Se estiver usando o Microsoft SNA Server Versão 4 SP3 ou posterior, verifique se o SNA SPM do DB2 iniciou adequadamente após a inicialização. Verifique o arquivo \sqllib\\db2diag.log para obter entradas similares ao seguinte: 2000-04-20-13.18.19.958000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:none common_communication sqlccspmconnmgr_APPC_init Probe:19 SPM0453C Sync point manager did not start because Microsoft SNA Server has not been started. 2000-04-20-13.18.23.033000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:302 Appid:none common_communication sqlccsna_start_listen Probe:14 DIA3001E "SNA SPM" protocol support was not successfully started. 2000-04-20-13.18.23.603000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:none common_communication sqlccspmconnmgr_listener Probe:6 DIA3103E Error encountered in APPC protocol support. APPC verb "APPC(DISPLAY 1 BYTE)". Primary rc was "F004". Secondary rc was "00000000". Se tais entradas existirem no db2diag.log, e os registros de tempo corresponderem à hora de reinicialização mais recente, você deve: 1. Solicitar o db2stop. 2. Iniciar o serviço SnaServer (se ainda não o tiver feito). 3. Solicitar o db2start. Verifique o arquivo db2diag.log novamente para ver se as entradas não estão mais anexadas. ------------------------------------------------------------------------ 42.19 Definindo locale para o Servidor de Administração do DB2 Certifique-se de que o locale da instância do Servidor de Administração do DB2 sejam compatíveis com o locale da instância do DB2. Caso contrário, a instância do DB2 não poderá se comunicar com o Servidor de Administração do DB2. Se a variável de ambiente LANG não estiver definida no perfil de usuário do Servidor de Administração do DB2, este iniciará com o locale do sistema padrão. Se o locale do sistema padrão não estiverem definidas, o Servidor de Administração do DB2 será iniciado com a página de código 819. Se a instância do DB2 utilizar um locale do DBCS e o Servidor de Administração do DB2 for iniciado com a página de código 819, a instância não conseguirá se comunicar com o Servidor de Administração do DB2. O locale do Servidor de Administração do DB2 e o locale da instância do DB2 devem ser compatíveis. Por exemplo, em um sistema Linux com chinês simplificado, "LANG=zh_CN" deve ser definido no perfil de usuário do Servidor de Administração do DB2. ------------------------------------------------------------------------ 42.20 Atalhos que Não Funcionam Em alguns idiomas, para o Centro de Controle nos sistemas baseados em UNIX e no OS/2, alguns atalhos do teclado não funcionam. Use o mouse para selecionar opções. ------------------------------------------------------------------------ 42.21 Requisitos da Conta de Serviço para DB2 no Windows NT e Windows 2000 Durante a instalação do DB2 para Windows NT ou Windows 2000, o programa de configuração cria vários serviços do Windows e atribui uma conta de serviço para cada serviço. Para executar o DB2 adequadamente, o programa de configuração concede os seguintes direitos de usuário à conta de serviço associada ao serviço do DB2: * Agir como parte do sistema operacional * Criar um objeto token * Aumentar cotas * Efetuar o logon como um serviço * Substituir um token de nível de processo. Se deseja utilizar uma conta de serviço diferente para os serviços do DB2, você deverá conceder estes direitos de usuário à conta do serviço. Além destes direitos, a conta do serviço também deverá ter acesso para gravação no diretório em que o produto DB2 estiver instalado. A conta de serviço para o serviço DB2 Administration Server (serviço DB2DAS00) também deve possuir a autoridade para iniciar e encerrar outros serviços do DB2 (ou seja, a conta do serviço deve pertencer ao grupo Usuários Avançados), e possuir a autoridade DB2 SYSADM para qualquer instância do DB2 a ser administrada. ------------------------------------------------------------------------ 42.22 O Privilégio EXECUTE para Usuários do Query Patroller Criados na Versão 6 não está Implementado Devido a alguns procedimentos armazenados novos (IWM.DQPGROUP, IWM.DQPVALUR, IWM.DQPCALCT e IWM.DQPINJOB) incluídos no Query Patroller Versão 7, os usuários existentes criados no Query Patroller Versão 6 não contêm o privilégio EXECUTE nesses pacotes. Foi incluído um aplicativo para corrigir automaticamente este problema no FixPak 1. Ao tentar usar o DQP Query Admin para modificar as informações do usuário DQP, não tente remover os usuários existentes da lista de usuários. ------------------------------------------------------------------------ 42.23 Restrições do Query Patroller Por causa das restrições da plataforma JVM (Java Virtual Machine), o Query Enabler não é suportado no HP-UX and NUMA-Q. Além disso, o Query Patroller Tracker não é suportado no NUMA-Q. Se todas as ferramentas do cliente Query Patroller forem exigidas, nós recomendamos que se utilize uma plataforma diferente (tal como Windows NT) para executar essas ferramentas, ao invés do servidor HP-UX ou NUMA-Q. ------------------------------------------------------------------------ 42.24 É Necessário Fazer o Commit de Todos os Programas Definidos pelo Usuário que serão Usados no Centro de Data Warehouse (DWC) Se você deseja usar um procedimento armazenado construído pelo DB2 Stored Procedure Builder como um programa definido pelo usuário no Centro de Data Warehouse (DWC), você deverá inserir a seguinte instrução no procedimento armazenado antes da instrução con.close();: con.commit(); Se esta instrução não for inserida, as alterações feitas pelo procedimento armazenado retrocederão quando o procedimento armazenado for executado a partir do DWC. Para todos os programas definidos pelo usuário no DWC, é necessário fazer o commit explicitamente de qualquer função do DB2 incluída, para que as alterações sejam efetivadas no banco de dados, ou seja você deve incluir as instruções do COMMIT nos programas definidos pelo usuário. ------------------------------------------------------------------------ 42.25 Nova Opção para a Exportação da Linha de Comandos do Centro de Data Warehouse A exportação da linha de comandos para arquivos tag possui uma opção nova, /B. Esta opção não está disponível através da interface do Centro de Data Warehouse . A nova sintaxe do comando iwh2exp2 será: iwh2exp2 nome_do_arquivo.INP nome do db senha id do usuário [PREFIX=table_schema] [/S] [/R] [/B] Em que - nome_do_arquivo.INP indica o nome completo do caminho do arquivo INP - nome do db indica o nome do banco de dados de controle do Data Warehouse Center - id de usuário indica a ID de usuário usado para efetuar o logon no banco de dados - senha indica a senha usada para efetuar o logon no banco de dados - os parâmetros opcionais são: - PREFIX=table_schema: o esquema da tabela das tabelas do banco de dados de controle (o valor padrão é IWH) - /S: exportar programas com etapas selecionadas - /R: não exportar as fontes do warehouse com etapas selecionadas - /B: não exportar as etapas contribuintes com etapas selecionadas Nota: Se /R ou /B estiverem especificados, as fontes do warehouse ou as etapas de contribuição deverão existir quando o arquivo tag resultante for exportando ou quando um erro retornar. ------------------------------------------------------------------------ 42.26 APIS dos Serviços de Backup (XBSA) As APIS dos Serviços de Backup (XBSA) foram definidas pelo Open Group no Reino Unido como uma interface de programação de aplicativos aberta entre aplicativos ou recursos que precisem do gerenciamento de armazenamento de dados para fins de backup ou arquivamento. Isto foi documentado no "Open Group Technical Standard System Management: Backup Services API (XBSA)", Número do Documento C425 (ISBN: 1-85912-056-3). |Em apoio a isto, foram criadas duas novas variáveis de registro do |DB2 e elas são suportadas atualmente no AIX, HP, Solaris e Windows NT: | |DB2_VENDOR_INI |Aponta para um arquivo que contém todas as definições de ambiente |específicas do fornecedor. O valor é coletado quando o gerenciador de |bancos de dados é iniciado. |DB2_XBSA_LIBRARY |Aponta para a biblioteca XBSA distribuída pelo fornecedor. No AIX, |a definição deve incluir o objeto compartilhado se ele não se chamar |shr.o. O HP, Solaris e Windows NT não exigem o nome |de objeto compartilhado. Por exemplo, para usar o NetWorker Business |Suite Module para DB2 do Legato, a variável de registro deve estar definida da |seguinte forma: | db2set DB2_XBSA_LIBRARY="/usr/lib/libxdb2.a(bsashr10.o)" | A interface XBSA pode ser chamada através do comando BACKUP DATABASE ou RESTORE DATABASE. Por exemplo: db2 backup db sample use XBSA db2 restore db sample use XBSA ------------------------------------------------------------------------ |42.27 Agente do OS/390 |O que este documento contém? Instalando o OS/390 e seus recursos |Neste documento você encontra instruções sobre como instalar o agente do |OS/390 e informações sobre seus recursos. Consulte "Visão geral da |instalação" para obter uma revisão rápida do processo de instalação e |"Detalhes da instalação" para obter instruções detalhadas. Consulte |"Configuração de funções adicionais do agente", "Transformadores" e "Acesso a |bancos de dados de fora da família DB2" para obter informações sobre os |recursos do agente. |Visão geral |O DB2 Warehouse Center inclui um agente do OS/390. Utilize o agente |para se comunicar com o DB2 Universal Database para OS/390 e outros bancos de |dados, inclusive com os bancos de dados do DB2 em outras plataformas e com |bancos de dados não-DB2. O agente pode comunicar-se com origens de |dados suportadas que utilizam uma conexão ODBC. O agente executa no |UNIX Systems Services do OS/390. Ele requer o OS/390 V2R6 ou superior e |é compatível com o DB2 para OS/390 Versões 5, 6 e 7. |O agente do OS/390 suporta as seguintes tarefas: | * |Copiar dados de um banco de dados DB2 de origem para um banco de dados DB2 |de destino * |Obter amostra de conteúdo de uma tabela ou arquivo. * |Executar programas definidos pelo usuário * |Acessar bancos de dados não-DB2 através do programa IBM DataJoiner * |Acessar dados VSAM ou IMS através do produto Cross Access Classic Connect * |Executar utilitários do DB2 Universal Database para OS/390 * |Executar o aplicativo de job para o IBM Data Propagator | |42.27.1 Visão geral da instalação |Estas etapas resumem o processo de instalação. A seção "Detalhes da |instalação" fornece mais detalhes sobre essas etapas. | 1. |Instale o agente do OS/390 a partir da fita do DB2 Universal Database para |OS/390. 2. |Atualize as variáveis de ambiente no arquivo de perfis. 3. |Configure as conexões: | o |Entre o kernel e o daemon do agente. o |Entre o agente e os bancos de dados que serão acessados. | 4. |Ligue o CLI localmente e para os bancos de dados remotos. 5. |Configure o arquivo de inicialização ODBC. 6. |Configure autorizações para que o usuário: | o |Possa executar o daemon do agente. o |Tenha autoridade de execução no plano DSNAOCLI. o |Tenha autorização de leitura e gravação nos diretórios de registro e |rastreio ODBC, se necessário. | 7. |Inicie o daemon do agente. | |42.27.2 Detalhes da instalação |Instalando o agente do OS/390 |O agente OS/390 é incluído na fita DB2 Universal Database para OS/390 |versão 7. Consulte o Diretório do programa que acompanha a fita para |obter mais informações sobre a instalação do agente do OS/390. |Aplique o apar PQ36585 ou PQ36586 no subsistema do DB2 antes de instalar o |agente do OS/390. |Atualização das variáveis de ambiente no arquivo de perfis |As variáveis indicam ao agente diversas bibliotecas do DB2, diretórios de |saída, etc. |O exemplo a seguir mostra o conteúdo de um exemplo de arquivo |.profile. O arquivo .profile define |as variáveis de ambiente de deve estar no diretório pessoal do usuário que |inicia o daemon do agente: |export VWS_LOGGING=/usr/lpp/DWC/logs |export VWP_LOG=/usr/lpp/DWC/vwp.log |export VWS_TEMPLATES=usr/lpp/DWC/ |export DSNAOINI=/usr/lpp/DWC/dsnaoini |export LIBPATH=usr/lpp/DWC/:$LIBPATH |export PATH=/usr/lpp/DWC/:$PATH |export STEPLIB=DSN710.SDSNEXIT:DSN710.SDSNLOAD |Configurando conexões |Para configurar conexões do kernel e do daemon, inclua as seguintes linhas |no arquivo /etc/services ou |TCPIP.ETC.SERVICES: |vwkernal 11000/tcp |vwd 11001/tcp |vwlogger 11002/tcp |Para configurar as conexões entre o agente e os bancos de dados do OS/390, |inclua qualquer banco de dados remoto no banco de dados de comunicações do |OS/390 (CDB). A seguir algumas inserções de amostra do CDB: |INSERT INTO SYSIBM.LOCATIONS | (LOCATION, LINKNAME, PORT) |VALUES | ('NTDB','VWNT704','60002'); | |INSERT INTO SYSIBM.IPNAMES | (LINKNAME, SECURITY_OUT, USERNAMES, IPADDR) |VALUES | ('VWNT704', 'P', 'O', 'VWNT704.STL.IBM.COM'); | |INSERT INTO SYSIBM.USERNAMES | (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) |VALUES | ('O', 'MVSUID', 'VWNT704', 'NTUID', 'NTPW'); |Para obter mais informações sobre como configurar conexões e atualizar o |banco de dados de comunicações, consulte o capítulo "Connecting Distributed |Database Systems" no Manual de Instalação para DB2 UDB para OS/390, |GC26-9008-00. |Vinculando a CLI |Como o agente do OS/390 utiliza a CLI para se comunicar com o DB2, ligue o |plano CLI a todos os bancos de dados remotos que seu agente pretende |acessar. A seguir, algumas instruções de amostra do pacote de ligação |para um banco de dados DB2 local para OS/390: |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLICS) ISO(CS) |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLINC) ISO(NC) |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIRR) ISO(RR) |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIRS) ISO(RS) |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIUR) ISO(UR) |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIMS) |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIC1) |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIC2) |BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIF4) | |A seguir, algumas instruções de amostra do pacote de vinculação para um |banco de dados DB2 em execução no Windows NT: |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLICS) ISO(CS) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLINC) ISO(NC) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIRR) ISO(RR) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIRS) ISO(RS) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIUR) ISO(UR) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIC1) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIC2) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIQR) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIF4) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIV1) |BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIV2) | |A seguir, uma instrução de vinculação de amostra para vincular pacotes CLI |em um plano: |BIND PLAN(DWC6CLI) PKLIST(*.DWC6CLI.* ) |Configurando o arquivo de inicialização ODBC |Um arquivo de inicialização ODBC de amostra, inisamp, é incluído |no diretório usr/lpp/DWC/. Você pode editar esse arquivo |para trabalhar com o sistema ou pode criar seu próprio arquivo. Para se |certificar de que o arquivo trabalha corretamente, verifique se ele está |configurado de forma adequada: | * |A variável de ambiente DSNAOINI deve indicar o arquivo de |inicialização. * |O nome do arquivo deve utilizar uma convenção de nomenclatura |dsnaoini.nome_da_localização. * |O arquivo deve incluir os parâmetros CONNECTTYPE=2 e |MVSATTACHTYPE=CAF. | |Para obter mais informações sobre ligação da CLI e do arquivo DSNAOINI, |consulte DB2 UDB for OS/390 ODBC Guide and Reference, |SC26-9005. |Configurando autorizações |O agente do OS/390 é um processo de daemon. Execute o daemon do |agente com a segurança Unix comum ou com a segurança UNIX do OS/390. |Como o agente requer autoridade de daemon, defina os executáveis desse |agente no Controle de Programa RACF: | * |libtls4d.dll * |iwhcomnt.dll * |vwd | |Para definir os programas executáveis para o controle do programa RACF, vá |para o diretório no qual os arquivos executáveis do Centro de Data Warehouse |estão armazenados e execute os seguintes comandos: |extattr +p libtls4d.dll |extattr +p iwhcomnt.dll |extattr +p vwd |Para utilizar o comando extattr com o parâmetro +p, é |necessário possuir no mínimo acesso de leitura à classe |BPX.FILEATTR.PROGCTL FACILITY. O exemplo a seguir mostra |o comando RACF utilizado para fornecer essa permissão ao ID do usuário |SMORG: |RDEFINE FACILITY BPX.FILEATTR.PROGCTL UACC(NONE) |PERMIT BPX.FILEATTR.PROGCTL CLASS(FACILITY) ID(SMORG) ACCESS(READ) |SETROPTS RACLIST(FACILITY) REFRESH |Para obter mais informações sobre autorização, consulte OS/390 UNIX |System Services Planning, SC28-1890. |Iniciando o daemon do agente |Depois de terminar a configuração do sistema, inicie o daemon do |agente: | 1. |Execute Telnet para UNIX Systems Services no OS/390 através do nome do |host OS/390 e da porta USS. 2. |Inicie o daemon do agente: | o |Para iniciar o daemon em primeiro plano, digite vwd na linha de |comandos. o |Para iniciar o daemon em background, digite: |vwd>/usr/lpp/DWC/logs/vwd.log 2>&1 & | | |Para verificar se o daemon de agente do OS/390 está sendo executado, digite |o seguinte em uma linha de comandos do shell UNIX. |ps -e | grep vwd |Ou, digite D OMVS,a=all no console do OS/390 e procure a cadeia |vwd |42.27.3 Configurando as funções adicionais do agente |O pacote do DB2 Warehouse Manager inclui os seguintes programas definidos |pelo usuário: | * |vwpftp: Executa um arquivo de comandos FTP. * |vwpmvs: Envia um fluxo de job JCL. * |vwprcpy: Copia um arquivo utilizando FTP. * |XTClient: Programa de disparo do cliente. * |etidlmvs: Um utilitário do ETI (Evolutionary Technologies |International); exclui um arquivo no MVS. * |etircmvs: Um utilitário do ETI; executa FTP em um host |MVS. * |etiexmvs: Um utilitário do ETI; executa JCL no MVS. | |Além disso, você pode criar programas definidos pelo usuário e |procedimentos armazenados no Centro de Data Warehouse. O agente do |OS/390 suporta qualquer programa executável que seja executado no UNIX Systems |Services. |Um programa definido pelo usuário é atribuído a uma ou mais etapas. |Quando você executa o programa definido pelo usuário, ocorrem as seguintes |ações: | * |O agente é iniciado. * |O agente executa o programa definido pelo usuário. * |O programa definido pelo usuário retorna um código de retorno e um arquivo |de feedback para o agente. * |O agente retorna os resultados para o kernel. | |Para executar programas ETI no OS/390, aplique primeiro o FixPack 2 ao DB2 |Universal Database Versão 7.1. |Utilize a variável de ambiente VWP_LOG para definir um diretório no qual os |programas definidos pelo usuário podem gravar saída. |Se você utilizar um programa definido pelo usuário para enviar um job |utilizando FTP, primeiro crie a JCL e os dados que deseja enviar. O |nome do job na JCL deve ser USERIDx, em que x é uma letra ou número de um |caractere (exemplo: MYUSERA). A classe de saída dos arquivos |MSGCLASS e SYSOUT contidos na JCL deve especificar uma classe de saída mantida |por JES. |Restrição: O LRECL máximo para o job enviado é 254 |caracteres. O JES rastreia somente os primeiros 72 caracteres da |JCL. |Alteração do modelo do Centro de Data Warehouse para suporte a |FTP |O Centro de Data Warehouse instala um modelo da JCL para transferir |arquivos utilizando FTP. Se você pretende que o agente do OS/390 |utilize os comandos de FTP GET ou PUT para transferir arquivos de um host do |OS/390 para outro host remoto, é necessário alterar as informações sobre conta |no modelo JCL para o sistema OS/390: | 1. |Efetue logon com uma ID que tenha autoridade para copiar e atualizar |arquivos no diretório /usr/lpp/DWC. 2. |Localize ftp.jcl e copie o arquivo com o novo nome de |arquivo systemname.ftp.jcl, onde |systemname é o nome do sistema OS/390. 3. |Crie uma cópia desse arquivo para cada sistema OS/390 em que planeja |executar os programas de conversão vwpmvs ou extração de |ETI. Por exemplo, se quiser executar qualquer um desses programas |no STLMVS1, crie uma cópia do arquivo chamada |STLMVS1.ftp.jcl. 4. |Use um editor de textos para personalizar JCL, a fim de que atenda aos |requisitos do site. Altere as informações sobre a conta para que |correspondam às informações padrão sobre conta no sistema MVS. Não |altere parâmetros entre colchetes, tais como [USERID] e [FTPFILE]. Os |colchetes são os caracteres hexadecimais x'AD' e x'BD', |respectivamente. Se o tipo de terminal TSO não estiver definido como |3278A na opção 0 do SPF, esses valores podem aparecer como caracteres |especiais em vez de colchetes. Isto não será um problema se você não |alterar x'AD' ou x'BD', ou quaisquer dos dados entre os |caracteres. 5. |Atualize a variável de ambiente VWS_TEMPLATES para que aponte para o |diretório do arquivo de modelo copiado. | |O Centro de Data Warehouse inclui este modelo de amostra JCL: |//[USERID]A JOB , 'PUT/GET', |// CLASS=A, |// USER=&SYSUID, |// NOTIFY=&SYSUID, |// TIME=(,30), |// MSGCLASS=H |//STEP1 EXEC PGM=FTP,PARM='( EXIT' |//INPUT DD DSN=[FTPFILE],DISP=SHR |//OUTPUT DD SYSOUT=* |//SYSPRINT DD SYSOUT=* |Obtendo amostras de conteúdo de uma tabela ou arquivo |Através do agente do OS/390, é possível obter amostras do conteúdo de |tabelas do DB2 e arquivos simples, como do UNIX Systems Services e dos |arquivos simples nativos do OS/390. Você também pode obter amostras de |conteúdo de arquivos IMS ou VSAM através do Classic Connect usando o agente do |OS/390. Para arquivos simples, o agente determina o formato de arquivo |com base nos parâmetros nas propriedades da definição do arquivo. |42.27.4 Planejamento de etapas do warehouse com o programa de disparo (XTClient) |Utilize o programa de disparo para planejar etapas do warehouse a partir da |plataforma do OS/390. Você ou um programador de jobs do OS/390 pode |submeter um job que dispare uma etapa no Centro de Data Warehouse. Se a |etapa ocorrer com sucesso, a etapa de disparo na JCL retornará um código de |retorno 0. |Você deve ter o Java Development Kit (JDK) 1.1.8 ou posterior |instalado no UNIX Systems Services do OS/390 a fim de utilizar o programa de |disparo. Para iniciar o disparo, primeiro inicie o XTServer na máquina |na qual o servidor de warehouse está sendo executado. Esse processo é |descrito no Capítulo 5 do Manual de Administração do Centro de Data |Warehouse, no tópico "Iniciando uma etapa fora do Centro de Data |Warehouse." Após iniciar o XTServer, inicie o XTClient no |OS/390. O exemplo a seguir mostra JCL de amostra para iniciar o |disparo. |//DBA1A JOB 1,'XTCLIENT',CLASS=A,MSGCLASS=H, |// MSGLEVEL=(1,1),REGION=4M,NOTIFY=&SYSUID |//****************************************************** |//* submit iwhetrig |//****************************************************** |//BRADS EXEC PGM=BPXBATCH, |// PARM=('sh cd /usr/lpp/DWC/; java XTClient 9.317.171.133 1100x |// 9 drummond pw bvmvs2nt 1 1 100') |//STDOUT DD PATH='/tmp/xtclient.stdout', |// PATHOPTS=(OWRONLY,OCREAT), |// PATHMODE=SIRWXU |//STDERR DD PATH='/tmp/xtclient.stderr', |// PATHOPTS=(OWRONLY,OCREAT), |// PATHMODE=SIRWXU |// |Nota: O JCL de amostra anterior mostra como continuar os parâmetros em uma nova |linha. Para fazer isso, digite os parâmetros até a coluna 71, coloque |um 'X' na coluna 72 e continue a coluna 16 na próxima linha. | |A primeira parte do parâmetro é uma instrução (cd |/usr/lpp/DWC/;) que altera o diretório no qual o agente do OS/390 |está instalado. A segunda parte do parâmetro inicia o XTClient e passa |os 8 parâmetros a seguir: | * |O nome do host ou o endereço do servidor do Centro de Data Warehouse * |A porta do servidor do Centro de Data Warehouse (normalmente, 11009) * |O ID do usuário do Centro de Data Warehouse * |A senha do Centro de Data Warehouse * |O nome da etapa a ser executada * |O comando do servidor do Centro de Data Warehouse, no qual: | o |1 = preenche a etapa o |2 = promove a etapa para o modo de teste o |3 = promove a etapa para o modo de produção o |4 = rebaixa a etapa para o modo de teste o |5 = rebaixa a etapa para o modo de desenvolvimento | * |A opção de aguardar ou não a conclusão da etapa, na qual 1= sim e 0 = não * |O número máximo de linhas (utilize 0 ou espaço em branco para buscar todas |as linhas) | |42.27.5 Transformadores |Introdução |Estes 12 transformadores são procedimentos armazenados Java que fornecem |algumas transformações de dados básicas. A fim de executar esses |transformadores, primeiramente configure procedimentos armazenados Java no |subsistema DB2. Informações adicionais sobre esses transformadores |estão disponíveis no Manual de Administração do IBM DB2 Universal |Database Data Warehouse Center Versão 7, SC26-9993-00. |IWH.CLEAN |IWH.PERIODTABLE |IWH.KEYTABLE |IWH.CHISQUARE |IWH.CORRELATION |IWH.STATISTICS |IWH.INVERTDATA |IWH.PIVOTDATA |IWH.REGRESSION |IWH.ANOVA |IWH.SUBTOTAL |IWH.MOVINGAVERAGE |Configurando Procedimentos armazenados Java |Estas instruções são uma breve versão das instruções completas sobre como |configurar procedimentos armazenados Java, encontradas no Application |Programming Guide and Reference for Java(TM), SC26-9018 | 1. |Aplique as PTFs UQ46170 no UQ46114 subsistema do DB2. 2. |Instale o Visual Age for Java 2.0 ou posterior no sistema |OS/390. 3. |Instale JDBC no DB2 e ligue os pacotes JDBC no subsistema do DB2. 4. |Configure os procedimentos armazenados WLM do RRS e do DB2 para o |subsistema do DB2. 5. |Configure procedimentos armazenados Java para o DB2. Isto inclui a |criação de um procedimentos de inicialização Java WLM para o espaço de |endereçamento dos procedimentos armazenados Java. 6. |No WLM, associe o procedimentos de inicialização Java WLM com um nome de |ambiente do WLM. utilize o painel de ambiente do aplicativo WLM |intitulado "Create an Application Environment" para associar o nome do |ambiente ao procedimento JCL. 7. |Especifique o nome do ambiente do aplicativo WLM para a opção |WLM_ENVIRONMENT em CREATE ou ALTER PROCEDURE para associar um procedimento |armazenado ou uma função definida pelo usuário a um ambiente do |aplicativo. 8. |Verifique se o proprietário das tarefas iniciadas do DB2 tem acesso às |bibliotecas no procedimento de inicialização Java WLM. | |Etapas de configuração de transformadores do Warehouse |Estas instruções são uma breve versão das instruções completas, encontradas |no IBM DB2 Universal Database Data Warehouse Center Administration Guide |Versão 7, SC26-9993-00 | 1. |Ambas aplicam o Fixpack 3 no DB2 Universal Database para NT versão 7, ou |atualizam o Banco de dados de controle do Warehouse para TRANSREGISTERED |= 1 e TRANSFENCED=1. |Para atualizar o Banco de dados de controle do Warehouse, digite o seguinte |SQL em um processador da linha de comandos do DB2 Universal Database: |CONNECT TO your_vw_control_database |UPDATE IWH.INFORESOURCE SET TRANSREGISTERED = '1' WHERE SUBDBTYPE = 'DB2 MVS' |UPDATE IWH.INFORESOURCE SET TRANSFENCED = '1' WHERE SUBDBTYPE = 'DB2 MVS' 2. |Defina os transformadores do DB2 | o |Se você tiver o DB2 para OS/390 Versão 7, utilize as instruções SQL em |/usr/lpp/DWC/createXfSQLV7. o |Se você tiver o DB2 para OS/390 Versão 6, utilize as instruções SQL em |/usr/lpp/DWC/createXfSQLV7. o |Se você tiver o DB2 para OS/390 Versão 5, utilize as instruções SQL |comentadas em /usr/lpp/DWC/createXfSQLV7. Comente todas as |instruções CREATE PROCEDURE. Em seguida, remova o comentário e utilize |as instruções INSERT INTO SYSIBM.SYSPROCEDURES para definir os |transformadores do DB2 para OS/390 Versão 5. | |Ao configurar procedimentos armazenados Java, utilize o WLM para associar |o procedimento de inicialização Java WLM a um nome de ambiente WLM. O |nome do ambiente é especificado na opção WLM ENVIRONMENT da instrução CREATE |PROCEDURE. DSNWLMJ é o nome do ambiente WLM incluído nas definições de |transformador descritas acima. Você pode incluir um nome de associação |WLM do DSNWLMJ, ou alterar a opção WLM ENVIRONMENT de cada definição de |transformador para um nome já associado ao procedimento de |inicialização. 3. |Configure links do UNIX Systems Services para os módulos de carregamento |do transformador no IWH710.SIWHLOAD. | o |Execute Telnet para o UNIX Systems Services no sistema host OS/390. o |Vá para o diretório de instalação do agente OS/390. O diretório de |instalação padrão é /usr/lpp/DWC. o |Se estiver utilizando o DB2 V7, vá para a etapa 4. Se estiver |utilizando o DB2 V5 ou V6, edite o conjunto de dados trlinks no diretório |instalado. Comente essa linha colocando um sinal de libra (#) na coluna |1: |ln -e IWHXFV7 xf.jll; |Remova o comentário dessa linha removendo o sinal de libra (#) da coluna |1: |#ln -e IWHXF xf.jll; |Salve as alterações. o |Digite trlinks e pressione Enter. Essa ação cria um link |xf.jll no diretório que vai direcionar o agente ao |carregamento dos módulos IWHXF ou IWHXFV7. | 4. |Autorize IWH710.SIWHPDSE através do APF e inclua-o na concatenação |STEPLIB do procedimento de inicialização dos procedimentos armazenados Java do |DB2. 5. |Inclua o diretório no qual o link xf.jll está |(padrão: /usr/lpp/DWC) nas variáveis de ambiente CLASSPATH e |LIBPATH no conjunto de dados do ambiente WLM. | o |Se você não tiver certeza da localização do conjunto de dados do ambiente |WLM, procure nos procedimento de inicialização dos procedimentos armazenados |Java do DB2. O conjunto de dados do ambiente WLM é aquele para o qual a |placa JAVAENV DD. | 6. |Inicie os procedimentos armazenados e crie e execute as etapas do |warehouse. | |Restrições para procedimentos armazenados Java |Os objetos Java na assinatura de um procedimento armazenado são suportados |somente no DB2 para OS/390 Versão 7. Por isso, os transformadores não |suportam valores nulos em seus parâmetros no DB2 para OS/390 Versões 5 ou |6. Nessas versões, se você passar um parâmetro nulo, ele se comporta |como zero. Os transformadores das versões 5 e 6 tratam parâmetros zero |como cadeias nulas. |O DB2 suporta a instrução SQL COMMIT em procedimentos armazenados somente |no DB2 para OS/390 Versão 7. O procedimento armazenado INVERTDATA |elimina e recria uma tabela dentro do procedimento armazenado e portanto |requer uma instrução commit. Por isso, IWH.INVERTDATA não é |suportado no DB2 para OS/390 Versão 5 ou Versão 6. |O DB2 para OS/390 não suporta funções definidas pelo usuário Java, portanto |IWH.FORMATDATE não é suportado na plataforma 390. |Amostra de procedimento de inicialização para procedimentos |armazenados Java |(descrito no "DB2 for OS/390 Application Programming Guide and Reference |for Java"): |//DSNWLMJ PROC DB2SSN=DSN,NUMTCB=5,APPLENV=DSNWLMJ <-- WLM ENVIRONMENT | value in CREATE PROC |//******************************************************************* |//* THIS PROC IS USED TO START THE WLM-ESTABLISHED SPAS * |//* ADDRESS SPACE FOR THE DSNWLMJ APPLICATION ENVIRONMENT * |//* V WLM,APPLENV=DSNWLMJ,RESUME * |//******************************************************************* |//DSNWLMJ EXEC PGM=DSNX9WLM,TIME=1440,REGION=0M, |// PARM='&DB2SSN, &NUMTCB, &APPLENV' |//STEPLIB DD DSN=DSN.TESTLIB,DISP=SHR |// DD DSN=IWH710.SIWHPDSE,DISP=SHR <-- This has the trans. in it |// DD DSN=DSN.HPJSP.PDSE.JDBC,DISP=SHR <--HPJ DLLs from HPJ setup |// DD DSN=SYS1.PP.PDSELINK,DISP=SHR <-- HPJ runtime libraries |// DD DSN=DSN710.SDSNEXIT,DISP=SHR |// DD DSN=DSN710.SDSNLOAD,DISP=SHR |// DD DSN=SYS1.SCEERUN,DISP=SHR |// DD DSN=DSN.PDSE,DISP=SHR <-- HPJ setup info |//JAVAENV DD DSN=DSN.WLMENVJ.JSPENV,DISP=SHR<-- Env. var, see below |//CEEDUMP DD SYSOUT=A |//DSSPRINT DD SYSOUT=A |//JSPDEBUG DD SYSOUT=A |//SYSABEND DD SYSOUT=A |//SYSPRINT DD SYSOUT=A | |Amostra de conjunto de dados de variáveis de ambiente |(descrito no "DB2 for OS/390 Application Programming Guide and Reference |for Java"): |ENVAR("TZ=PST07", |"DB2SQLJPROPERTIES=/usr/lpp/db2/jdbc/db2710/classes/db2sqljjdbc.properties", |"LIBPATH=/usr/lpp/DWC", |"VWSPATH=/usr/lpp/DWC", |"CLASSPATH=/usr/lpp/db2/jdbc/db2710/classes:/usr/lpp/DWC:/usr/lpp/hpj/lib"), |MSGFILE(JSPDEBUG) |Suporte ao idioma nacional nos transformadores |A maior parte das mensagens produzidas pelo agente do OS/390 são enviadas |para interpretação na plataforma NT, portanto, na maior parte dos casos, o |idioma da mensagem depende de como o UDB para NT foi instalado. Os |transformadores são uma exceção. O agente do OS/390 envia os seguintes |arquivos de mensagens para os transformadores: |Nome do arquivo: Para o idioma: |Xf.properties_Fi_FI finlandês na Finlândia |Xf.properties_No_NO norueguês na Noruega |Xf.properties_Ru_RU russo na Rússia |Xf.properties_Zh_CN chinês na China (República Popular da China) |Xf.properties_Zh_TW chinês em Taiwan |Xf.properties_Da_DK dinamarquês na Dinamarca |Xf.properties_De_DE alemão na Alemanha |Xf.properties_En_US inglês nos EUA |Xf.properties_Es_ES espanhol na Espanha |Xf.properties_Fr_FR francês na França |Xf.properties_It_IT italiano na Itália |Xf.properties_Ja_JP japonês no Japão |Xf.properties_Ko_KR coreano na Coréia |Xf.properties_Pt_BR português no Brasil |Xf.properties_Sv_SE sueco na Suécia |Se as mensagens do transformador devem estar em um idioma diferente do |inglês, selecione um dos arquivos acima e copie seu conteúdo para |Xf.properties. |42.27.6 Acessando os bancos de dados fora da família DB2 |Para acessar sistemas que não sejam DB2 Universal Database, o agente do |OS/390 utiliza o DataJoiner. O DataJoiner permite que o agente utilize |um fluxo DRDA normal, como se ele fosse um banco de dados UDB. Se um |pedido ODBC for direcionado para um banco de dados que não seja da família |UDB, o DataJoiner chamará uma camada adicional do código para acessar bancos |de dados externos. |O DataJoiner pode acessar bancos de dados Oracle, Sybase, Informix, |Microsoft SQL Server, Teradata e qualquer outro que tenha um driver ODBC que |execute no Windows NT, AIX ou Sun Solaris Operating Environment. O |agente do OS/390 pode acessar o DataJoiner como uma origem, não como um |destino. O DataJoiner não suporta consolidação de duas fases. |Apesar de o DataJoiner suportar TCP/IP como solicitador de aplicativos nas |Versões 2.1 e 2.1.1, ele não possui um servidor de |aplicativos. Como o agente do OS/390 requer um servidor de aplicativos |para utilizar TCP/IP, utilize uma conexão SNA em vez de acessar o DataJoiner a |partir do OS/390. |Acessando IMS e VSAM no OS/390 |O Classic Connect é adquirido e instalado separadamente do agente do |warehouse. O agente do OS/390 pode acessar IMS e VSAM através do driver |ODBC do Classic Connect. Com o Classic Connect, você pode configurar |uma definição semelhante ao DB2 para os conjuntos de dados IMS e VSAM e depois |acessá-los utilizando o ODBC. |O agente do OS/390 carrega o driver ODBC correto, baseando-se na |solicitação estar direcionada ao Classic Connect ou ao DB2. Se você |estiver acessando uma fonte do DB2, o agente carregará o driver ODBC do |DB2. Se estiver acessando uma origem VSAM ou IMS, o agente carrega o |driver ODBC Classic Connect. Em seguida, o pedido do agente é |processado. |Configuração do driver ODBC Classic Connect e do acesso ao |warehouse |O Classic Connect é adquirido e instalado separadamente do agente do |OS/390. O Classic Connect pode exibir um único arquivo ou uma parte de |um arquivo como uma ou mais tabelas relacionais. É necessário mapear os |dados IMS e VSAM para que o Classic Connect os acesse. Você pode mapear |os dados manualmente ou utilizando o mapeador de dados não relacional |Microsoft Windows Classic Connect. | 1. |Instale o Servidor de dados do Classic Connect no OS/390. 2. |Opcional: Instale o produto Mapeador de dados do Classic Connect no |NT. 3. |Faça definições de tabela lógica do Classic Connect para que ele possa |acessar dados de forma relacional. Utilize o mapeador de dados para |criar as definições para estruturas IMS e VSAM ou criar as definições |manualmente. 4. |Depois de configurar o Classic Connect, você poderá configurar o acesso ao |warehouse: | a. |Crie um arquivo .ini do Classic Connect. |Um arquivo de configuração cxa.ini de amostra do |aplicativo Classic Connect está no diretório /usr/lpp/DWC/ e é |reproduzido aqui: |* idioma das mensagens |NL = inglês americano |* arquivo-mestre do recurso |NL CAT = usr/lpp/DWC/v4r1m00/msg/engcat |FETCH BUFFER SIZE = 32000 |DEFLOC = CXASAMP |USERID = uid |USERPASSWORD = pwd |DATASOURCE = DJX4DWC tcp/9.112.46.200/1035 |MESSAGE POOL SIZE = 1000000 b. |Atualize a linha DATASOURCE no arquivo .ini. Esta |linha contém um nome da fonte de dados e um endereço do protocolo. O |nome da fonte de dados deve corresponder a um nome do Processador de consultas |definido no Servidor de Dados do Classic Connect, localizado em QUERY |PROCESSOR SERVICE INFO ENTRY no arquivo de configuração do servidor de |dados. O endereço do protocolo pode ser encontrado no mesmo arquivo na |entrada TCP/IP SERVICE INFO. O USERID e a USERPASSWORD neste arquivo |são utilizados na definição de uma origem de dados do warehouse. c. |Exporte a variável de ambiente CXA_CONFIG para os arquivos de programas do |Classic Connect, que normalmente estão no mesmo diretório do arquivo |.ini. d. |Atualize a variável de ambiente LIBPATH para que inclua o caminho para os |arquivos de programas do Classic Connect, que normalmente estão no mesmo |diretório do arquivo .ini. e. |Opcional: Verifique a instalação com o programa de teste |cxasamp: Digite cxasamp a partir do diretório que contém o |arquivo .ini. O location/uid/pwd é o |data source name/userid/userpassword definido no arquivo |.ini. f. |Defina uma origem de dados para o warehouse como faria com qualquer origem |de dados do DB2. | | |Não é necessário atualizar o arquivo dsnaoini, porque o DB2 para |OS/390 não possui um gerenciador de driver. O gerenciador de driver do |Classic Connect está incorporado ao agente do OS/390. |42.27.7 Executando utilitários do DB2 para OS/390 |Aplique o apar PQ44904 ao agente do OS/390 a fim de utilizar o agente para |executar utilitários. |DSNUTILS é um procedimento armazenado do DB2 para OS/390 executado em um |ambiente WLM e RRS. Você pode utilizá-lo para executar qualquer |utilitário do DB2 instalado utilizando a interface do procedimento armazenado |definido pelo usuário. Os utilitários LOAD, REORG e RUNSTATS do DB2 |para OS/390 têm páginas de propriedades que podem ser utilizadas para alterar |a forma de execução do utilitário. Para alterar as propriedades do |utilitário, clique com o botão direito do mouse no utilitário, na janela |Modelador de processos e clique em Propriedades. |O Gerenciador do Warehouse também fornece uma interface para DSNUTILs, que |permite a inclusão de utilitários do DB2 nas etapas do Gerenciador do |Warehouse. |Para configurar o procedimento armazenado DSNUTILS: | 1. |Execute o job DSNTIJSG ao instalar o DB2 para configurar e ligar o |procedimento armazenado DSNUTILS. Verifique se a definição do DSNUTILS |tem PARAMETER STYLE GENERAL. 2. |Ative os procedimentos armazenados gerenciados pelo WLM. 3. |Configure os ambientes RRS e WLM. 4. |Execute os programas em batch de amostra do DSNUTILS fornecidos pelo |DB2. (Essa etapa é recomendada, mas não exigida.) 5. |Ligue o plano DSNUTILS com o plano DSNCLI, para que o CLI possa chamar o |procedimento armazenado: | BIND PLAN(DSNAOCLI) PKLIST(*.DSNAOCLI.*, *.DSNUTILS.*) 6. |Configure uma etapa utilizando o Gerenciador do Warehouse e |execute-a. O tipo de preenchimento deve ser APPEND. Caso |contrário, o Gerenciador do Warehouse excluirá tudo o que está na tabela antes |de executar o utilitário. | |Cópia de dados entre tabelas do DB2 para OS/390 utilizando o |utilitário LOAD |Suponha que você deseja copiar uma tabela descarregando-a em um arquivo |simples e depois carregando esse arquivo para uma tabela diferente. |Para isto, normalmente é necessário descarregar os dados, editar as instruções |de controle de carregamento que descarregam procedimentos e depois carregar os |dados. Utilizando o warehouse, especifique que você deseja recarregar |para uma tabela diferente sem a necessidade de parar entre as etapas e editar |manualmente as instruções de controle. Proceda da seguinte forma: |Utilize a interface Reorg/Generic para criar uma etapa de descarrega um |arquivo com o utilitário UNLOAD ou o utilitário REORG TABLESPACE. Esses |dois utilitários criam dois conjuntos de dados de saída, um com os dados da |tabela e outro com a instrução de controle do utilitário, que pode ser entrada |para LOAD. Na instrução de controle gerada pelo utilitário, o nome da |tabela INTO TABLE é o nome da tabela descarregada. Este é um exemplo |dos parâmetros DSNUTILS que você pode utilizar para a etapa Reorganizar |descarregamento: | |Tabela 33. Propriedades da etapa Reorganizar descarregamento UTILITY_ID REORGULX RESTART NO UTSTMT REORG TABLESPACE DBVW.USAINENT UNLOAD EXTERNAL UTILITY_NAME REORG TABLESPACE RECDSN DBVW.DSNURELD.RECDSN RECDEVT SYSDA RECSPACE 50 PNCHDSN DBVW.DSNURELD.PNCHDSN PNCHDEVT SYSDA PNCHSPACE 3 |Utilize a interface Reorg/Generic DSNUTILS para criar uma etapa de |carregamento. Normalmente, o parâmetro da instrução do utilitário |DSNUTILS especifica uma instrução de controle do utilitário. A |interface do utilitário de warehouse também permite um nome de arquivo no |campo de instrução do utilitário. Você pode especificar o arquivo que |contém a instrução de controle válida utilizando a palavra-chave |:FILE: e o nome da tabela que deseja carregar, utilizando a |palavra-chave :TABLE:. Para usar o utilitário LOAD a fim de |trabalhar com a saída do exemplo anterior, aplique os seguintes valores de |parâmetros nas propriedades de LOAD: |Nota: No campo UTSTMT, digite uma instrução de carregamento ou o nome do arquivo de |saída do utilitário REORG com a opção UNLOAD EXTERNAL. | | |Tabela 34. Propriedades da etapa LOAD UTILITY_ID LOADREORG RESTART NO UTSTMT :FILE:DBVW.DSNURELD.PNCHDSN: TABLE:[DBVW].INVENTORY UTILITY_NAME LOAD RECDSN DBVW.DSNURELD.RECDSN RECDEVT SYSDA |Isto funciona para qualquer origem e destino do DB2 para OS/390 no mesmo |subsistema do DB2 em em subsistemas diferentes. O arquivo simples da |instrução de controle pode ser HFS ou arquivos nativos MVS. |Para obter informações mais detalhadas sobre o DSNUTILS e os utilitários do |DB2 disponíveis para OS/390, consulte DB2 for OS/390 Utility Guide and |Reference. |42.27.8 Replicação |Você pode utilizar o agente do OS/390 para automatizar as etapas do |aplicativo da replicação do Propagador de Dados. A replicação requer um |banco de dados de origem, um banco de dados de controle e um banco de dados de |destino. Esses bancos de dados podem ser diferentes ou iguais. |Um job de captura lê o log do DB2 para determinar qual das linhas no banco de |dados de origem foi incluída, atualizada ou alterada. Em seguida, o job |grava as alterações em uma tabela alterar dados. Um job de aplicativo é |então executado para aplicar as alterações em um banco de dados de |destino. O pacote DB2 do Gerenciador do Warehouse pode automatizar o |job de aplicativo criando uma etapa de replicação. Utilize o |Gerenciador do Warehouse para definir o tipo de job de aplicativo e ser |executado e quando executá-lo. É necessário exportar a biblioteca |SASNLINK para a variável de ambiente steplib. |Inclusão de suporte ao aplicativo no modelo do Centro de Data |Warehouse |O Centro de Data Warehouse inclui um modelo JCL para suporte à |replicação. Se você pretende utilizar esse agente do OS/390 para |executar o programa aplicativo, será necessário modificar as informações da |conta e do conjunto de dados nesse modelo para o sistema OS/390. Para |alterar o modelo: | 1. |Efetue logon com uma ID que tenha autoridade para copiar e atualizar |arquivos no diretório /usr/lpp/DWC/. 2. |Localize apply.jcl e copie esse arquivo como |systemname.apply.jcl, onde systemname é o |nome do sistema MVS. Por exemplo, no STLMVS1, crie uma cópia do arquivo |chamada STLMVS1.apply.jcl. 3. |Use um editor de textos para personalizar JCL, a fim de que atenda aos |requisitos do site. Altere as informações da conta para que |correspondam às informações da conta padrão e modifique o conjunto de dados |para STEPLIB DD e MSGS DD para seu sistema MVS. 4. |Se necessário, altere o nome do programa no cartão EXEC. Para obter |detalhes sobre alteração de nomes de programas, consulte o Manual de |Referência e Replicação do DB2. Não altere parâmetros entre |colchetes, tais como [USERID] e [APPLY_PARMS]. Os |colchetes são os caracteres hexadecimais x'AD' e x'BD', |respectivamente. Se o tipo de terminal TSO não estiver definido como |3278A na opção 0 do SPF, esses valores podem aparecer como caracteres |especiais em vez de colchetes. Isto não será um problema se você não |alterar x'AD' ou x'BD', ou quaisquer dos dados entre os |caracteres. 5. |Atualize a variável de ambiente VWS_TEMPLATES para que aponte para o |diretório do arquivo de modelo copiado. | |O seguinte exemplo mostra o modelo JCL incluído no Centro de Data |Warehouse: |Aplique o modelo da JCL: |//[USERID]A JOB ,MSGCLASS=H,MSGLEVEL=(1,1), |// REGION=2M,TIME=1440,NOTIFY=&SYSUID |//* NÃO ALTERE A PRIMEIRA LINHA DESTE MODELO. |//* A JCL RESTANTE DEVE SER MODIFICADA PARA SEU SITE. |//********************************************** |//* EXECUTAR APPLY/MVS NO OS/390 DB2 6.1 * |//********************************************** |//ASNARUN EXEC PGM=ASNAPV66,REGION=10M, |// [APPLY_PARMS] |//STEPLIB DD DISP=SHR,DSN=DPROPR.V6R1M0.SASNLINK |// DD DISP=SHR,DSN=DSN610.SDSNLOAD |//MSGS DD DSN=DPROPR.V2R1M0A.MSGS,DISP=SHR |//ASNASPL DD DSN=&&ASNASPL,DISP=(NEW,DELETE,DELETE), |// UNIT=SYSDA,SPACE=(CYL,(10,1)), |// DCB=(RECFM=VB,BLKSIZE=6404) |//SYSTERM DD SYSOUT=* |//SYSTSPRT DD SYSOUT=* |//SYSPRINT DD SYSOUT=* |// | |42.27.9 Log de agente |Muitos componentes do DB2 Warehouse Manager, tais como o servidor, o |registrador, os agentes e alguns programas do Centro de Data Warehouse gravam |logs no diretório de logs, especificado na variável de ambiente |VWS_LOGGING. Esses arquivos de log são texto corrido. |Você pode iniciar o log do agente a partir do Centro de Data |Warehouse. No painel esquerdo, clique com o botão direito do mouse em |Warehouse e clique em Propriedades. Na guia Nível |de rastreio, altere as definições para o nível de rastreio desejado. O |rastreamento do agente suporta os níveis 0 a 4: | * |Nível 1 - rastreamento de entrada/saída * |Nível 2 - nível 1 mais rastreamento de depuração * |Nível 3 - nível 2 mais rastreamento de dados * |Nível 4 - rastreamento do buffer interno | |Quando o rastreamento for definido para maior que o nível 1, o desempenho |ficará mais lento. Ative o rastreio somente para depuração. As |informações sobre rastreio são armazenadas no arquivo |AGNTxxx.LOG. As informações sobre o ambiente são |armazenadas no arquivo AGNTxxx.SET. ------------------------------------------------------------------------ |42.28 Armazenamento em Cache no Lado Cliente no Windows NT |Se um usuário tentar acessar um arquivo READ PERM DB que está localizado em |uma máquina Windows NT Server, na qual os DB2 Datalinks estão instalados |através de uma unidade compartilhada que usa um token válido, o arquivo abrirá |conforme o esperado. No entanto, após isso, solicitações de abertura |subseqüentes que usam o mesmo token não alcançarão realmente o servidor, mas |receberão serviço a partir do cache no cliente. Mesmo após o token |expirar, o conteúdo do arquivo continuará a ser visível para o usuário, desde |que a entrada ainda esteja no cache. No entanto, esse problema não |ocorrerá se o arquivo se localizar em uma estação de trabalho Windows |NT. |Uma solução seria definir a entrada de registro |\\HKEY_LOCAL_MACHINE\SYSTEM |\CurrentControlSet\Services\Lanmanserver\Parameters\EnableOpLocks como |zero no Windows NT server. Com essa definição de registro, sempre que |um arquivo localizado no servidor for acessado a partir de uma estação de |trabalho do cliente através de uma unidade compartilhada, a solicitação |alcançará o servidor, em vez de receber o serviço a partir do cache do |cliente. Portanto, o token será revalidado para todas as |solicitações. |O impacto negativo dessa solução é que ela afeta o desempenho global de |todo o acesso aos arquivos do servidor através das unidades |compartilhadas. Mesmo com essa definição, se o arquivo for acessado |através de um mapeamento da unidade compartilhada no próprio servidor, em |oposição a uma máquina cliente diferente, parecerá que a solicitação ainda |recebe serviço do cache. Portanto, a expiração do token não tem |efeito. |Nota: Em todos os casos, se o acesso ao arquivo for um acesso local e não através |de uma unidade compartilhada, a validação do token e da expiração subseqüente |do token ocorrerá conforme o esperado. | ------------------------------------------------------------------------ |42.29 Produtos para teste em CD-ROMs UNIX Enterprise Edition |Os CD-ROMs do DB2 Universal Database (UDB) Enterprise Edition (EE) para |plataformas UNIX Versão 6 e 7 contêm uma versão de teste do DB2 Connect |Enterprise Edition (CEE), para 90 dias. Como a funcionalidade do DB2 |Connect é interna ao produto DB2 UDB EE, não é necessário instalar o produto |DB2 CEE em sistemas nos quais o DB2 UDB EE esteja instalado a fim de utilizar |a funcionalidade do DB2 Connect. Se você instalar a versão de teste de |90 dias do DB2 CEE e decidir atualizar para uma versão licenciada, compre o |produto DB2 CEE e instale sua chave de licença. Não é necessário |reinstalar o produto. As instruções para instalar a chave de licença |são fornecidas no manual de Introdução do DB2 EE ou do DB2 CEE para |UNIX. |Se você tiver instalado o produto CEE para teste juntamente com a |instalação do EE e não deseja instalar o CEE permanentemente, pode remover a |versão de teste do CEE seguindo estas instruções. Se a versão de teste |do Connect EE for removida, você ainda terá a funcionalidade do DB2 Connect |disponível com o DB2 EE. |Para remover o DB2 Connect Versão 7, remova a instalação dos seguintes |conjuntos de arquivos das respectivas plataformas: | * |No AIX, remova a instalação do conjunto de arquivos |db2_07_01.clic. * |No NUMA-Q e no ambiente operacional Solaris, remova a instalação do pacote |db2clic71. * |No Linux, remova a instalação do RPM |db2clic71-7.1.0-x. * |No HP-UX, remova a instalação do conjunto de arquivos |DB2V7CONN.clic. | |Para remover o DB2 Connect Versão 6, remova a instalação dos seguintes |conjuntos de arquivos das respectivas plataformas: | * |No AIX, remova a instalação do conjunto de arquivos |db2_06_01.clic. * |No NUMA-Q e no ambiente operacional Solaris, remova a instalação do pacote |db2cplic61. * |No Linux, remova a instalação do RPM |db2cplic61-6.1.0-x. * |No HP-UX, remova a instalação do conjunto de arquivos |DB2V6CONN.clic. | ------------------------------------------------------------------------ |42.30 Produtos para teste em CD-ROMs UNIX do DB2 Connect Enterprise Edition |Os CD-ROMs do DB2 Connect Enterprise Edition (EE) para plataformas UNIX |Versão 6 e 7 contêm uma versão de teste do DB2 Universal Database (UDB) |Enterprise Edition (EE), para 90 dias. A versão de teste do DB2 UDB EE |para 90 dias é fornecida para avaliação, mas não é obrigatória para o |funcionamento do DB2 Connect. |Se você instalar a versão de teste de 90 dias do DB2 UDB EE e decidir |atualizar para uma versão licenciada, compre o produto DB2 UDB EE e instale |sua chave de licença. Não é necessário reinstalar o produto. As |instruções para instalar a chave de licença são fornecidas no manual de |Introdução do DB2 EE ou do DB2 CEE para UNIX. Se você tiver instalado o |produto UDB EE para teste juntamente com a instalação do Connect EE e não |deseja instalar o UDB EE permanentemente, pode remover a versão de teste do EE |seguindo estas instruções. A remoção da versão de teste do DB2 UDB EE |não afeta a funcionalidade do DB2 Connect EE. |Para remover o DB2 UDB EE Versão 7, remova a instalação dos seguintes |conjuntos de arquivos das respectivas plataformas: | * |No AIX, remova a instalação do conjunto de arquivos |db2_07_01.elic. * |No NUMA-Q e no ambiente operacional Solaris, remova a instalação do pacote |db2elic71. * |No Linux, remova a instalação do RPM |db2elic71-7.1.0-x. * |No HP-UX, remova a instalação do conjunto de arquivos |DB2V7ENTP.elic. | |Para remover o DB2 UDB EE Versão 6, remova a instalação dos seguintes |conjuntos de arquivos das respectivas plataformas: | * |No AIX, remova a instalação do conjunto de arquivos |db2_06_01.elic. * |No NUMA-Q e no ambiente operacional Solaris, remova a instalação do pacote |db2elic61. * |No Linux, remova a instalação do RPM |db2elic61-6.1.0-x. * |No HP-UX, remova a instalação do conjunto de arquivos |DB2V6ENTP.elic. | ------------------------------------------------------------------------ |42.31 Eliminar o Data Links Manager |Agora é possível eliminar um DB2 Data Links Manager de um determinado banco |de dados. O processamento de alguns pedidos SQL relacionados ao Data |Links, além de utilitários, tais como backup/restauração, envolvem a |comunicação com todos os DLMs configurados para um banco de dados. |Anteriormente, o DB2 não tinha a capacidade de eliminar um DLM configurado, |mesmo que não estivesse operacional. Isso resultava em excesso no |processamento do SQL e dos utilitários. Quando um DLM era incluído, o |mecanismo comunicava-se com ele no processamento de pedidos, o que podia |resultar na falha de alguns pedidos SQL (por exemplo, eliminar |tabela/tablespace/banco de dados). ------------------------------------------------------------------------ |42.32 Desinstalar Componentes do DLFM Usando o SMIT pode Remover Conjuntos de Arquivos Adicionais |Antes de remover a instalação do DB2 (Versões 5, 6 ou 7) de uma máquina AIX |na qual o Data Links Manager está instalado, execute estas etapas: | 1. |Como raiz, faça uma cópia de /etc/vfs utilizando o comando: | cp -p /etc/vfs /etc/vfs.bak 2. |Desinstale o DB2. 3. |Como raiz, substitua /etc/vfs pela cópia de backup criada na etapa |1: | cp -p /etc/vfs.bak /etc/vfs | ------------------------------------------------------------------------ |42.33 Erro SQL1035N ao utilizar CLP no Windows 2000 |Se o DB2 estiver instalado em um diretório ao qual alguns usuários (por |exemplo, administradores) têm acesso de gravação, o usuário comum pode receber |o erro SQL1035N ao tentar utilizar o DB2 Command Line Processor. |Para resolver esse problema, o DB2 deve ser instalado em um diretório ao |qual todos os usuários têm acesso de gravação. ------------------------------------------------------------------------ |42.34 Melhorias no SQL Assist |A ferramenta SQL Assist agora permite que o usuário especifique um operador |de junção diferente de "=" para junções de tabelas. O diálogo Tipo de |junção, que é iniciado clicando no botão Tipo de junção na página Junções da |ferramenta SQL Assist, foi melhorado para incluir uma lista drop down de |operadores de junção. |Os operadores disponíveis são "=", "<>", "<", ">", "<=" e |">=". O SQL Assist é uma ferramenta que ajuda o usuário a criar |instruções SQL simples. Ela está disponível no Centro de comandos (guia |Interativo), no Centro de controle (diálogos Criar exibição e Criar disparo), |no Stored Procedure Builder (assistente "Inserção de SQL Stored Procedure") e |no Centro de Data Warehouse (etapa Processo SQL). ------------------------------------------------------------------------ |42.35 Integração do Desktop Gnome e KDE para DB2 no Linux |O DB2 inclui um conjunto de utilitários para a criação de pastas e ícones |do desktop DB2, para lançar a maioria das ferramentas do DB2 comumentemente |utilizadas nos desktops Gnome e KDE para distribuições Linux baseadas na Intel |suportadas. Essas ferramentas são instaladas pelo DB2 Versão 7.2 |por padrão e podem ser utilizadas após a instalação para criar e remover |ícones do desktop para um ou mais servidores selecionados. |Para incluir um conjunto de ícones do desktop para um ou mais servdiores, |utilize o seguinte comando: |db2icons [ ...] |Nota: Observe que se os ícones forem gerados enquanto um ambioente de desktop Gnome |ou KDE estiver sendo executado, o usuário poderá precisar forçar uma |atualização do desktop manual para ver os novos ícones. | |Para remover um conjunto de ícones do desktop para um ou mais usuários, |utilize o seguinte comando: |db2rmicons [ ...] |Nota: Você deve ter autoridade suficiente para gerar ou remover ícones de outros |usuários. Tipicamente, db2icons e db2rmicons |podem ser utilizados para criar ou remover ícones para você mesmo se for um |usuário normal e para terceiros se for principal, ou outros usuários com |autoridade para gravar para os diretórios pessoais de usuários |especificados. | ------------------------------------------------------------------------ |42.36 Executando o DB2 no Servidor Terminal do Windows 2000, Nó de Administração |Para DB2 UDB Versão 7.1, FixPak 3 e posterior, o DB2 pode ser |executado no Servidor Terminal do Windows 2000 , Nó de Administração. |Antes disso, você não pode executar o DB2 na sessão Cliente de um Servidor |Terminal do Windows 2000, Modo de Administração. ------------------------------------------------------------------------ |42.37 Auxílio Online para Comandos de Backup e de Restauração |As informaçõe sincorretas aparecem quando você digita db2 ? |backup. A saída correta é: |BACKUP DATABASE database-alias [USER username [USING password]] |[TABLESPACE (tblspace-name [ {,tblspace-name} ... ])] [ONLINE] |[INCREMENTAL [DELTA]] [USE TSM [OPEN num-sess SESSIONS]] | |TO dir/dev [ {,dir/dev} ... ] | LOAD lib-name [OPEN num-sess SESSIONS]] |[WITH num-buff BUFFERS] [BUFFER buffer-size] [PARALLELISM n] |[WITHOUT PROMPTING] |As informaçõe sincorretas aparecem quando você digita db2 ? |restore. A saída correta é: |RESTORE DATABASE source-database-alias { restore-options | CONTINUE | ABORT }"; | |restore-options:"; | [USER username [USING password]] [{TABLESPACE [ONLINE] |"; | TABLESPACE (tblspace-name [ {,tblspace-name} ... ]) [ONLINE] |"; | HISTORY FILE [ONLINE]}] [INCREMENTAL [ABORT]]"; | [{USE TSM [OPEN num-sess SESSIONS] |"; | FROM dir/dev [ {,dir/dev} ... ] | LOAD shared-lib"; | [OPEN num-sess SESSIONS]}] [TAKEN AT date-time] [TO target-directory]"; | [INTO target-database-alias] [NEWLOGPATH directory]"; | [WITH num-buff BUFFERS] [BUFFER buffer-size]"; | [DLREPORT file-name] [REPLACE EXISTING] [REDIRECT] [PARALLELISM n]"; | [WITHOUT ROLLING FORWARD] [WITHOUT DATALINK] [WITHOUT PROMPTING]"; ------------------------------------------------------------------------ 42.38 O "Warehouse Manager" Deveria Ser "DB2 Warehouse Manager" Todas as instâncias da frase "Warehouse Manager" nas telas do produto e na sua documentação deveriam estar como "DB2 Warehouse Manager". ------------------------------------------------------------------------ Outras Informações ------------------------------------------------------------------------ Outras Informações ------------------------------------------------------------------------ 43.1 Suporte Online ao DB2 Universal Database e ao DB2 Connect Para obter uma fonte de informações completa e atualizada do DB2, incluindo informações sobre assuntos descobertos depois da publicação deste documento, use o site do Suporte Online ao DB2 Universal Database & DB2 Connect, localizado no endereço http://www.ibm.com/software/data/db2/udb/winos2unix/support. ------------------------------------------------------------------------ 43.2 Revista do DB2 Para obter as últimas informações sobre a família de produtos do DB2, faça uma assinatura gratuita da "Revista do DB2". A edição online da revista está disponível no endereço http://www.db2mag.com; as instruções para o pedido de uma assinatura também serão divulgados neste site. ------------------------------------------------------------------------ Apêndices ------------------------------------------------------------------------ Apêndice A. Avisos A IBM pode não oferecer os produtos, serviços ou recursos discutidos neste documento em todos os países. Consulte o representante local da IBM para obter informações sobre os produtos e serviços disponíveis atualmente em sua área. Nenhuma referência a produto, programa ou serviço da IBM tem por intenção afirmar ou subentender que apenas tal produto, programa ou serviço da IBM possa ser usado. Qualquer produto, programa ou serviço que não infrinja os direitos de propriedade intelectual da IBM pode ser usado como substituto. No entanto, é responsabilidade do usuário avaliar e verificar a operação de qualquer produto, programa ou serviço não-IBM. A IBM pode ter patentes ou solicitações de patentes pendentes relativas aos assuntos tratados neste documento. O fornecimento desta publicação não lhe garante direito algum sobre tais patentes. Consultas por escrito a respeito de licenças podem ser encaminhadas para Gerência de Relações Comerciais e Industriais da IBM Brasil Centro de Atendimento a Clientes IBM: Av. Pasteur 138/146 - Botafogo, Rio de Janeiro - RJ Cep: 22240-290 - Brasil. O parágrafo seguinte não se aplica ao Reino Unido nem a qualquer outro país onde tais cláusulas são inconsistentes com a legislação local: A INTERNATIONAL BUSINESS MACHINES CORPORATION FORNECE ESTA PUBLICAÇÃO "NO ESTADO EM QUE SE ENCONTRA" SEM GARANTIAS DE QUALQUER TIPO, EXPRESSAS OU IMPLÍCITAS, INCLUINDO, AS GARANTIAS IMPLÍCITAS DE NÃO INFRAÇÃO, MERCADO OU ADEQUAÇÃO A UM PROPÓSITO EM PARTICULAR, MAS NÃO LIMITADA A ESSAS GARANTIAS. Alguns estados não permitem a negação de garantias expressas ou implícitas em determinadas transações; consequentemente, esta instrução pode não se aplicar ao seu caso. Estas informações podem incluir imprecisões técnicas ou erros tipográficos. Periodicamente, são feitas alterações nas informações aqui contidas; essas alterações serão incorporadas em novas edições da publicação. A IBM pode aperfeiçoar e/ou alterar os produtos e/ou os programas descritos nesta publicação a qualquer hora sem aviso prévio. Quaisquer referências nestas informações a sites Web não-IBM são fornecidas apenas por conveniência e de maneira alguma serve como endosso daqueles sites Web. Os materiais naqueles sites Web não são parte dos materiais para este produto e a utilização daqueles sites web são do seu próprio risco. A IBM pode usar ou distribuir qualquer informação fornecida por você de qualquer forma considerada apropriada sem que isso incorra em nenhuma obrigação para com você. Licenciados deste programa que desejarem ter informações sobre ele para: (i) a troca de informações entre programas criados independentemente e outros programas (inclusive este), e (ii) o uso mútuo de informações intercambiadas, devem entrar em contato com: IBM Canada Limited Office of the Lab Director 1150 Eglinton Ave. East North York, Ontario M3C 1H7 CANADA Estas informações podem estar disponíveis, observadas as condições e os termos apropriados, incluindo, em alguns casos, o pagamento de uma taxa. O programa licenciado descrito nesta informação e todo o material licenciado disponível para ela são fornecidos pela IBM sob os termos dos IBM Customer Agreement, IBM International Program License Agreement, ou de qualquer acordo equivalente entre as partes. Todos os dados de desempenho aqui contidos foram determinados em um ambiente controlado. Portanto, os resultados obtidos em outros ambientes operacionais pode variar significativamente. Algumas medidas podem ter sido feitas em sistemas em nível de desenvolvimentos e não há garantia de que estas medidas serão as mesmas nos sistemas disponíveis em geral. Mais, algumas medidas podem ter sido estimadas através de extrapolação. Os resultados reais podem variar. Os usuários deste documento devem verificar os dados aplicáveis para os seus ambientes específicos. Informações relativas a produtos não-IBM foram obtidas dos fornecedores dos mesmos, de seus anúncios publicados ou de outras fontes de publicação disponíveis. A IBM não testou esses produtos e não pode confirmar a precisão de seu desempenho e compatibilidade ou qualquer outra reclamação relacionada aos produtos que não foram fabricados por ela. Perguntas sobre a capacidade de produtos não-IBM devem ser endereçadas aos fornecedores dos mesmos. Todas as instruções referentes à direção futura da IBM ou intenções estão sujeitas a alterações ou remoções sem qualquer aviso e representam apenas metas e objetivos. Estas informações podem conter exemplos de dados e relatórios utilizados em operações comerciais diárias. Para ilustrá-las o mais completamente possível, os exemplos incluem nomes de pessoas, empresas, marcas e produtos. Todos esses nomes são fictícios e qualquer semelhança com nomes e endereços utilizados por uma empresa comercial real é mera coincidência. LICENÇA DE COPYRIGHT: Esta informação pode conter programas de aplicativos de amostra em linguagem fonte, que ilustram técnicas de programação em várias plataformas operacionais. Você pode copiar, modificar e distribuir estes programas de amostra de qualquer maneira sem qualquer pagamento à IBM, para propósitos de desenvolvimento, uso, marketing ou distribuição dos programas aplicativo de acordo coma a interface de programação de aplicativo para a plataforma operacional para a qual os programas de amostra estão escritos. Estas amostras não foram minuciosamente testadas sob todas as condições. A IBM, portanto, não pode garantir ou subentender confiabilidade, aproveitamento ou funcionamento destes programas. Cada cópia ou porção destes programas de amostra ou qualquer trabalho derivativo deve incluir um aviso de copyright como a seguir: (C) (nome de sua empresa) (ano). Partes deste código são derivados dos Programas de amostra da IBM Corp. (C) Copyright IBM Corp. _digite o ano ou anos_. Todos os direitos reservados. ------------------------------------------------------------------------ A.1 Marcas Os seguintes termos, que podem ser identificados por um asterisco(*), são marcas da International Business Machines Corporation nos Estados Unidos e/ou outros países. ACF/VTAM IBM AISPO IMS AIX IMS/ESA AIX/6000 LAN DistanceMVS AIXwindows MVS/ESA AnyNet MVS/XA APPN Net.Data AS/400 OS/2 BookManager OS/390 CICS OS/400 C Set++ PowerPC C/370 QBIC DATABASE 2 QMF DataHub RACF DataJoiner RISC System/6000 DataPropagator RS/6000 DataRefresher S/370 DB2 SP DB2 Connect SQL/DS DB2 Extenders SQL/400 DB2 OLAP Server System/370 DB2 Universal Database System/390 Distributed Relational SystemView Database Architecture VisualAge DRDA VM/ESA eNetwork VSE/ESA Extended Services VTAM FFST WebExplorer First Failure Support TechnologyWIN-OS/2 Os seguintes termos são marcas ou marcas registras de outras empresas: Microsoft, Windows e Windows NT são marcas ou marcas registradas da Microsoft Corporation. Java ou todas as marcas e logotipos baseados em Java e Solaris são marcas da Sun Microsystems, Inc. nos Estados Unidos e/ou outros países. Tivoli e NetView são marcas da Tivoli Systems Inc. nos Estados Unidos e/ou outros países. UNIX é uma marca registrada nos Estados Unidos e/ou outros países e é licenciada exclusivamente através da X/Open Company Limited. Outros nomes de empresas, produtos ou serviços, que podem ser identificados por um duplo asterisco (**) podem ser marcas ou serviços de terceiros. ------------------------------------------------------------------------ Índice A B C D E F G H I J L M N O P Q R S T U V W ------------------------------------------------------------------------ A * acessibilidade (1392) * acesso a índices múltiplos (1060) * acesso ao cliente remoto o configuração do Communication Server para NT (1385) * Address Windowing Extensions (AWE) (1062) * Adobe Acrobat Reader o acesso com locales diferentes do inglês (926) * AIX 4.3.3 o interrupção do AutoLoader após bifurcação (1382) * alta disponibilidade (1021) * Alta Disponibilidade no Solaris (970) * ambiente de satélite o administrando com a Versão 6 Centro de Administração do Satélite (1106) o considerações de instalação (1095) o instalação do arquivo de resposta do satélite (1098) o instalação interativa do satélite (1101) o pré-requisitos (1089) o satélite do DB2 Personal Edition (1087) o satélite do DB2 Workgroup Edition (1088) * ambiente operacional Solaris o pesquisa de informações online no (924) * Analisador de replicação (1116) * APIs de serviços de backup o suporte no DB2 (1404) * aplicativos Unicode ODBC (1365) * app_ctl_heap_sz (1073) * archive de logs por pedido (1035) * Archive Log (1107) * arquivamento e recuperação o programa de saída do usuário (1045) * arquivo de configuração do Governor (1065) * arquivo de linguagem de código, DWC, ICM, arquivo ERwin, arquivo ER1 (1167) * AS/400 o capture and apply para (1117) * assistente Criar banco de dados o definindo a extensão no (1158) * assistente MQSeries Assist (1160) * assistente OLE DB Assist (1162) * Assistentes o Assistente OLE DB (1163) o Criar Banco de Dados (1159) o MQSeries Assist (1161) * atribuição de cadeias a colunas, regras de (1351) * atribuições o cadeias, regras básicas para (1349) * autenticação o por domínio utilizando DB2DOMAINLIST (1380) * AutoLoader o interrupção durante bifurcação (1381) * autorização o conceder criação na seqüência (1323) o criação pública na seqüência (1324) B * backup o incremental (1027) o offline + da imagem espelhada dividida (1034) o para canais nomeados (1032) * bancos de dados distribuídos o configuração para atualização (965) * bancos de dados particionados o erros ao incluir nós (905) * bloqueio, otimista (1235) * buscas iniciais o criação e extensão do contêiner DMS em paralelo (990) C * cadeia o expressão (1359) o operando (1361) * cadeia de caracteres o atribuição, visão geral (1348) * canais nomeados o backup para (1033) * capture and apply o iniciar a partir de um aplicativo (1122) o mensagens de erro (1121) o no AS/400 (1118) * Centro de Administração do Satélite o Versão 6, utilizando para administrar o ambiente de satélite (1105) * centro de alerta (992) * Centro de Controle o bloco de notas Definições da ferramenta (1151) o correção necessária para OS/390 (1145) o detecção de problemas (1146) o detecção de problemas em plataformas UNIX (1147) o erros com o Internet Explorer (916) o execução de versões traduzidas (981) o na plataforma OS/390 (1144) o problema de exibição infopops no OS/2 (1148) o problemas no centro de script no Windows 95 (1153) o restrições em applets simultâneos (1152) o suporte bidirecional + no Windows NT (1136) o utilizando para administrar bancos de dados VM e VSE (1135) o Versão 6, utilizando para administrar o ambiente de satélite (1104) * Centro de Data Warehouse o sintaxe do comando iwh2exp2 (1401) o Suporte ao OLE DB (1176) o utilização de procedimentos armazenados (1399) * chaves de índice o maiores (1055) * chaves de particionamento o atualização (963) * Chinês Simplificado o definição de locale no Linux (915) * cláusula SWITCH ONLINE (1007) * CLI o escrita de um aplicativo Unicode (1364) * clientes o ambiente em três camadas (1222) o download (927) * clientes Unicode o limitação de movimento de dados (1368) * clonar banco de dados o criação (1024) * coluna o atribuição de cadeia, regras básicas para (1350) * coluna de identidade o alterando (1004) * colunas IDENTITY (999) * comando db2iupdt, execução após atualizar o DB2 (936) * comando iwh2exp2 o nova opção (1402) * Common Warehouse Metamodel o suporte XML (1185) * concatenação o operador (1358) * conjuntos de buffer o AWE (1061) * consolidação incremental com substituição (1177) * contêineres o inclusão em um table space SMS (1003) * contêineres DMS o criação e extensão em paralelo (991) * conteúdo da amostra, exibindo (1155) * convenções de nomenclatura o limites de caracteres (971) * conversão de caracteres o regras para comparar cadeias (1354) o regras para operações que combinam cadeias (1352) * criptografia o dados (1013) * criptografia de dados (1014) * cursor ambíguo (1318) * cursores o atributos, padrão (1226) o atualizável (1229) o concorrência (1230) o concorrência de valores (1234) o deslocável (1231) + detectando problemas em aplicativos (1236) + estático (1220) + guiado por conjunto de teclas (1221) + lado do servidor (1219) + OS/390 (1218) o guiado por conjunto de teclas + atualização (1233) o sensibilidade (1228) o tipo (1227) * CWM o suporte XML (1183) D * daemon de cópia (1376) * DataJoiner o restrições (1387) * DATALINK o problemas ao restaurar (1383) o replicação (1112) * db2_all (1046) * DB2 Connect o pré-requisitos do Sun Cluster 2.2 (967) * DB2 Enterprise Edition o configurando como satélite (1084) + pré-requisitos (1091) o Versão 6, utilizando como servidor de controle DB2 (1102) * DB2_INDEX_2BYTEVARLEN (1001) * DB2 Personal Edition o configurando como satélite (1083) + pré-requisitos (1090) * DB2 Relational Connect o instalação do Windows NT (943) o instalação no AIX, Solaris e Linux (944) * DB2 Server para VM e VSE o administrando o banco de dados a partir do Centro de controle (1134) * db2ArchiveLog (1210) * db2expln o execução (1081) * db2start o no Windows 95, 98 e ME (1123) * DECLARE CURSOR (1317) * definições de locale o em aplicativos utilizando CLI (985) * DFS Client Enabler o remoção da instalação (1378) * disparos o inoperantes (1313) o mensagens de erro (1315) * disparos inoperantes o descrição detalhada (1314) * dividir espelhamento o como banco de dados standby (1025) * dlfm client_conf o motivos de falhas (1375) * DWC o Suporte ao OLE DB (1175) o suporte XML do CWM (1184) * dynexpln o execução (1082) E * enable_MQFunctions (1130), (1132) * erro de acesso ao arquivo negado (1141) * erro de atalho inválido (1138) * ERwin, meta-dados, extração, importação (1164) * espelhamento o logs (1039) * esperas de travas (1126) * estatísticas de catálogo do sistema o estatísticas de distribuição de coleta (1056) * estruturas de tabelas (1119) * exibições o indisponível após a migração (931) * exibições do catálogo o SEQUENCES (1343) * expressão o cadeia (1357) o operador de concatenação (1356) * expressão nextval (1255) * expressão prevval (1254) * expressions o sequences (1252) * expressões o NEXTVAL (996) o PREVVAL (995) F * fazendo o bind dos utilitários do banco de dados utilizando Cliente de Tempo de execução (1214) * ferramenta db2inidb (1019) * ferramentas gui o erros de ligação (1371) * fontes de dados do Microsoft SQL Server o biblioteca MERANT (955) o controlador ODBC (954) o link ao DB2 (957) o melhorando o desempenho (958) o nome do DSN (960) o páginas de códigos (962) o rastreios do ODBC (961) o variáveis de ambiente (956) o wrappers MERANT (959) * Fontes de dados Oracle o variáveis de ambiente (947) o wrapper do Linux (946) o wrapper do Solaris (945) * fontes de dados Sybase (948) o link ao DB2 (951) o melhorando o desempenho (952) o páginas de códigos (953) o variáveis de ambiente (950) * função de E/S suspensa o suporte a disponibilidade contínua (1020) * função DECRYPT o descrição detalhada (1256) o valores e argumentos (1257) * função ENCRYPT o descrição detalhada (1260) o valores e argumentos (1261) * função escalar DAYOFWEEK_ISO (1247) * função escalar WEEK_ISO (1248) * função GETHINT o descrição detalhada (1264) o valores e argumentos (1265) * função IDENTITY_VAL_LOCAL o descrição detalhada (1268) o valores e argumentos (1269) * função MQPUBLISH o descrição detalhada (1273) o valores e argumentos (1274) * função MQREAD o descrição detalhada (1276) o valores e argumentos (1277) * função MQREADALL o descrição detalhada (1294) o valores e argumentos (1295) * função MQRECEIVE o descrição detalhada (1279) o valores e argumentos (1280) * função MQRECEIVEALL o descrição detalhada (1297) o valores e argumentos (1298) * função MQSEND o descrição detalhada (1282) o valores e argumentos (1283) * função MQSUBSCRIBE o descrição detalhada (1285) o valores e argumentos (1286) * função MQUNSUBSCRIBE o descrição detalhada (1288) o valores e argumentos (1289) * função REC2XML o descrição detalhada (1290) o valores e argumentos (1291) * função SQLBindFileToParam CLI, correção (1241) * função SQLNextResult (1243) * funções o DECRYPT (1016) o ENCRYPT (1015) o escalar + DECRYPT (1258) + ENCRYPT (1262) + GETHINT (1266) + IDENTITY_VAL_LOCAL (1270) + MQPUBLISH (1272) + MQREAD (1275) + MQRECEIVE (1278) + MQSEND (1281) + MQSUBSCRIBE (1284) + MQUNSUBSCRIBE (1287) + REC2XML (1292) o GETHINT (1017) o no banco de dados Unicode (1362) o procedimentos (1299) o tabela + MQREADALL (1293) + MQRECEIVEALL (1296) * funções do CLI o SQLBindFileToParam (1242) o SQLNextResult (1244) * Funções do MQ (1131), (1133) * funções escalares o DAYOFWEEK_ISO (1245) o WEEK_ISO (1246) G * gateways o ambiente em três camadas (1223) * Gerenciador do Catálogo de Informações o em hebraico (1388) o programa utilitário (1209) * Gerenciador do Data Links do DB2 o interações com recuperação (1043) * GRANT o CREATE ON SEQUENCE (1322) H * HP e Sun Solaris o suporte a backup e restauração (1042) * HP-UX o sem suporte para Query Enabler (1397) * HP-UX 11 o janelas de memória (1374) I * idiomas da orla báltica o suporte à página de códigos (983) * IDs do usuário o limites de caracteres (973) * importar, arquivo de linguagem de código, ICM, Information Catalog Manager (1169) * importar, importando, arquivo de linguagem de código, DWC (1168) * índices o acesso a múltiplos (1059) o chaves maiores (1054) * informações de criptografia o função ENCRYPT (1263) o função GETHINT (1267) * informações de decriptografia o função DECRYPT (1259) * início do DB2 o utilizando db2start no Windows 95, 98 e ME (1124) * instalação o conta de serviços necessária no Windows (1393) o interrompendo processos do DB2 durante (934) o travamento ao utilizar unidade removível (911) * instalação do arquivo de resposta o palavras-chave do servidor de controle do DB2 (1094) o palavras-chave específicas do satélite (1099) * instalar, instalação, migração, executável (1166) * instrução ALTER SEQUENCE o descrição detalhada (1302) * Instrução composta (dinâmica) o variáveis (1307) * instrução composta dinâmica (1305) * instrução CREATE PROCEDURE o instrução composta dinâmica (1304) o instrução do procedimento SQL (1333) o instrução FOR (1334) o instrução RETURN (1337) o instrução SIGNAL (1340) * instrução CREATE SEQUENCE o descrição detalhada (1311) * instrução da variável SET o descrição detalhada (1329) * instrução FOR (1335) * instrução GRANT (privilégios de seqüência) o descrição detalhada (1320) * instrução RETURN (1338) * instrução SET CONSTRAINTS o substituída por SET INTEGRITY (977) * instrução SET ENCRYPTION PASSWORD o descrição detalhada (1327) * instrução SET INTEGRITY o substituição por SET CONSTRAINTS (978) * instrução SIGNAL (1341) * instruções compostas o dinâmicas (1052) * instruções compostas dinâmicas (1053) * instruções SQL o ALTER SEQUENCE (1303) o CREATE SEQUENCE (1312) o GRANT (privilégios de seqüência) (1321) o SET ENCRYPTION PASSWORD (1328) o variável SET (1330) * instruções SQL disparadas o instrução da variável SET (1331) * interbloqueios (1125) * interface CLI o definições de página de códigos (987) * Internet Explorer o erros com o Centro de Controle (917) * invocação da seqüência (1253) * isolamento no nível da instrução (1051) J * janelas de memória o no HP-UX 11 (1373) * Japonês o definição de locale no Linux (914) * JDBC o cursores deslocáveis, acesso (1225) * JDK 1.1 o caminho de instalação (1149) L * limite do sort heap (1067) * Limpeza de dados, limpeza de nome e de endereço (1170) * Limpeza do nome e do endereço, Trillium (1171) * Linux o definição do ambiente para o Centro de Controle (938) o definições de locale para japonês e chinês simplificado (913) * lista de bloqueios o parâmetro de configuração maxlocks (1068) * locale o compatibilidade entre Servidor de administração e instância (982), (1391) o japonês e chinês simplificado no Linux (912) * locales o Chinês simplificado no Red Flag Linux (909) o versões no idioma nacional (979) * log o espelhamento (1038) * log duplo (1040) * logs o archive por pedido (1037) M * maxappls (1077) * mensagens o para capture and apply (1120) * mensagens de erro o acesso ao arquivo negado (1142) o ao incluir nós em bancos de dados particionados (906) o arquivos de ligação não encontrados (1370) o atalho inválido (1139) o durante a migração (907) o execução de disparos (1316) o SQL10012N (1150) * métodos o em CREATE PROCEDURE ou CREATE FUNCTION (1213) * migração o erros durante (908) o execução do db2iupdt para atualizar instâncias (937) o no Windows 2000 (929) o problemas com exibições (930) * modelador de Esquema o Centro de Data Warehouse (1188) * modelador de Processos o Centro de Data Warehouse (1187) * modelo o Commit.tag + exemplo de valores (1192) + símbolo (1190) o ForeignKey.tag + exemplo de valores (1196) + símbolos (1194) o ForeignKeyAdditional.tag + exemplo de valores (1200) + símbolos (1198) o PrimaryKey.tag + exemplo de valores (1204) + símbolos (1202) o PrimaryKeyAdditional.tag + exemplo de valores (1208) + símbolos (1206) * modelo Commit.tag o exemplo de valores (1191) o símbolos (1189) * modelo ForeignKey.tag o exemplo de valores (1195) o símbolos (1193) * modelo ForeignKeyAdditional.tag o exemplo de valores (1199) o símbolos (1197) * modelo PrimaryKey.tag o exemplo de valores (1203) o símbolos (1201) * modelo PrimaryKeyAdditional.tag o exemplo de valores (1207) o símbolos (1205) * mon_heap_sz (1075) * monitor de desempenho (993) * Movimento de dados o limites de clientes Unicode (1367) N * navegadores da web o recomendações para Windows 2000 (920) * Netscape o mensagens de erro (925), (1156) o utilização para acessar informações online (921) * NEXTVAL (998) * níveis de correção o no Solaris versão 2.6 (903) * níveis de isolamento o na instrução DELETE (1319) o na instrução INSERT (1325) o na instrução SELECT (1301) o na instrução SELECT INTO (1326) o na instrução UPDATE (1332) o nível da instrução (1050) * nomes de arquivos de dados de rastreio do componente (1178) * nomes de esquemas o limites de caracteres (972) * Norton Utilities o incompatível com Sistema de arquivos de ligações de dados (975) * NUMA-Q o sem suporte para Query Enabler ou Tracker (1398) O * ODBC o cursores deslocáveis, acesso (1224) o orientações de busca (1232) * Open Client, origens do warehouse do não-DB2 e (1181) * operando o cadeia (1360) * origem do não-db2, entrada de amostra para Sybase (1182) * origens do warehouse do não-DB2, AIX (1179) * origens do warehouse do não-DB2, Ambiente Operacional Solaris (1180) * OS/2 o instalando o Centro de Controle (1140) o nível do JDK necessário para mensagens (1211) P * páginas de códigos o em aplicativos utilizando CLI (986) o idiomas da orla báltica (984) o mapeamento para locales (980) * parâmetro de configuração o MIN_DEC_DIV_3 (1071) * parâmetros de configuração o app_ctl_heap_sz (1072) o maxappls (1076) o maxlocks (1069) o mon_heap_sz (1074) o softmax (1078) * pesquisa de descoberta (1372) * pesquisa de informações online o ambiente operacional no Solaris (923) * por pedido, archive de logs (1036) * positivas do subelemento (1057) * pré-requisitos de instalação o para UDB EE e CEE no Linux para OS/390 (939) * PREVVAL (997) * privilégio USAGE (1012) * privilégios o USAGE (1011) * procedimento SQL o instrução composta dinâmica (1306) o instrução DECLARE (1310) o instrução FOR (1336) o instrução RETURN (1339) o instrução SIGNAL (1342) o variáveis (1309) * procedimentos armazenados o no Centro de Data Warehouse (1400) * procedimentos armazenados CLI o ligação automática (1240) o limitações (1239) * processos, interrompendo antes da instalação (935) * próximo bloqueio da chave (1127) Q * Query Enabler o não suportado no HP-UX e NUMA-Q (1396) * Query Patroller o perda de privilégios de usuário após a migração (1394) * Query Patroller Tracker o não suportado no NUMA-Q (1395) R * recomendação de definição dl_expint (1070) * recuperação o incremental (1029) o interação com Gerenciador do Data Links do DB2 (1044) o paralela (1031) * recuperação de problemas o uso da ferramenta db2inidb (1022) * recuperação e backup incremental (1026) * recuperação paralela (1030) * recursos de acessibilidade (901) * Red Flag Linux o locale chinês simplificado (910) * regras de conversão o para comparações de cadeias (1355) o para operações que combinam cadeias (1353) * regras de nomenclatura (974) * remoção da instalação o DB2 DFS Client Enabler (1377) * replicação o cenários para (1109) o com servidores não IBM (1108) o DATALINK (1111) o determinação de problemas na (1115) o planejamento (1113) o pré-requisito update-anywhere (1114) o restrições de nomes de colunas e tabela (1110) * requisitos de software, arquivo de linguagem de código ERwin, Centro de Data Warehouse, DWC, Information Catalog Manager, ICM (1165) * restauração o problemas com colunas DATALINK (1384) * restaurar o incremental (1028) * resultados de consultas, exibindo (1154) * retornar valor da coluna de identidade o função IDENTITY_VAL_LOCAL (1271) * rotinas o procedimentos (1300) S * satélites o considerações de instalação (1096) o DB2 Personal Edition (1085) o DB2 Workgroup Edition (1086) o instalação do arquivo de resposta (1097) o instalação interativa (1100) * sequences o expressão nextval (1251) o expressão prevval (1250) o invocação (1249) * seqüência, descrição (1212) * seqüências (1000) o alterando (1005) o criando (994) o eliminando (1006) o privilégios (1010) * servidor de controle do DB2 o instalação do arquivo de resposta (1093) o requisitos mínimos (1092) o Versão 6, atualizando (1103) * SET ENCRYPTION PASSWORD (1018) * SIGTTIN (1047) * Sistema de arquivos de ligações de dados o incompatibilidade com o Norton Utilities (976) * sistema de mensagens, MQ Series (1172), (1173) * sistema operacional Solaris o 64 bits + configuração (1128) + restrições (1129) * sistemas federados o apelidos (941) o restrições (942) o wrappers (940) * Sistemas Federados, restrições (1386) * SNA Server o acesso ao UDB de aplicativos do host ou do AS/400 (1389) * SNA SPM o verificação do início após inicialização (1390) * softmax (1079) * Solaris o falta de suporte para versões anteriores ao UltraSparc (904) o nível de correção necessário na V2.6 (902) * SQL, composto (1238) * SQL composto, utilização (1237) * stdin (1048) * Sun Cluster 2.2 o pré-requisitos do DB2 Connect (968) * Sun Solaris e HP o suporte a backup e restauração (1041) * suporte a NLV o Unicode (1345) * suporte ao idioma nacional (989) * Suporte ao OLE DB (1174) * suporte ao protocolo IPX/SPX, no Windows 2000 (933) * suporte bidirecional ao idioma o com o Centro de Controle no Windows NT (1137) * suporte XML o para Common Warehouse Metamodel (CWM) (1186) * Sybase o incompatibilidade com ICM no Windows (918) * Sybase Open Client (949) T * tabelas de resumo replicadas (964), (1058) * table spaces DMS o criação em paralelo e redimensionamento (1009) * table spaces SMS o inclusão de contêineres (1002) * tablespaces o definição no estado ONLINE (1008) * tamanho da extensão o definindo no assistente de criação do banco de dados (1157) * tamanho do sort heap (1066) * teste de conexão de atualização multisite o incompatibilidade com a versão da instância (1143) * tipos de dados o promoção em um banco de dados Unicode (1347) * tour rápido (1369) * traçado de perfil estático em aplicativos JDBC/ODBC/CLI (1216) * traçado de perfil estático JDBC/ODBC/CLI, limitações (1215) * transformações ADT (1217) * tratamento de espelhamento dividido o online (1023) U * Unicode o atualizações na documentação (1346) o banco de dados e aplicativos (1344) o em aplicativos ODBC (1366) o funções no (1363) * utilitário DB2MSCS, reinicialização da máquina para definir PATH (966) V * variáveis de registro o DB2_AWE (1063) o DB2DOMAINLIST (1379) o novas e alteradas (1080) o para suportar APIs de serviços de backup (1403) * variáveis SQL (1308) * variável de registro DB2_AWE (1064) * variável de registro DB2CODEPAGE o em aplicativos utilizando CLI (988) * Veritas o alta disponibilidade no Solaris (969) * VI o configuração para uso com o DB2 (1049) W * Windows o incompatibilidade entre Sybase e ICM (919) * Windows 2000 o migração no (928) o navegadores da Web recomendados no (922) o suporte ao protocolo IPXX/SPX (932) 1 Um novo nível é iniciado sempre que um disparo, função ou procedimento armazenado é invocado 2 A não ser que a consolidação automática esteja desativada, as interfaces que consolidam automaticamente após cada instrução retornam um valor nulo quando a função é invocada em instruções separadas. 3 Isto é válido para FOR EACH ROW e FOR EACH STATEMENT após os disparadores de inserção. 4 Um Service Policy define um conjunto de qualidade de opções de serviço que deve ser aplicado a essa operação de mensagens. Essas opções incluem a prioridade e a persistência da mensagem. Consulte o manual MQSeries Application Messaging Interface para obter detalhes adicionais. 5 Uma cadeia de caracteres com um subtipo BIT DATA não é permitido. 6 Uma expressão de tabela comum pode preceder a seleção completa 7 Uma expressão de tabela comum pode preceder a seleção completa. 8 Não há distribuição do valor anterior para o tipo de origem antes do cálculo.