Notas sobre o Release IBM(R) DB2(R) Universal Database Notas sobre o Release Versão 7 (C) Copyright International Business Machines Corporation 2000 - 2003. Todos os direitos reservados. ------------------------------------------------------------------------ Índice * Prefácio ------------------------------------------------------------------------ Leia-me Primeiro * Notas sobre o Release da Versão 7 * Notas sobre o Produto o 2.1 CPUs Suportadas no DB2 Versão 7 para o Solaris Operating Environment o 2.2 Correção do Locale do Chinês no Linux Red Flag o 2.3 Definição de Locale Adicional do DB2 para Linux em um Ambiente Linux em Japonês e Chinês Simplificado o 2.4 Limitações para Japonês em PTX o 2.5 Problema do Centro de Controle no Microsoft Internet Explorer o 2.6 Perda de Função do Centro de Controle o 2.7 CD do Netscape Não-fornecido com o DB2 UDB o 2.8 Erros nos Arquivos Leia-Me em XML o 2.9 Novas Melhorias de Inteligência de Negócios no DB2 Versão 7.2 o 2.10 Problemas no IBM DB2 OLAP Server Causados pelo FixPak 2A e Posterior o 2.11 Violação de Segmentação ao Utilizar o WebSphere 3.5.5 o 2.12 Suporte a Veritas AIX Volume Manager o 2.13 Correção Obrigatória para Aplicativos Java no AIX V4 o 2.14 O db2stop Trava nos Sistemas Operacionais AIX 5 em Decorrência de um Problema do NFS * Notas sobre a Documentação On-line (HTML, PDF e Pesquisa) o 3.1 Navegadores da Web Suportados no Sistema Operacional Windows 2000 o 3.2 Pesquisando Informações On-line do DB2 no Solaris Operating Environment o 3.3 Comutando o NetQuestion pelo OS/2 para Utilizar TCP/IP o 3.4 Mensagens de Erro na Tentativa de Lançar o Netscape o 3.5 Requisitos de Configuração para o Adobe Acrobat Reader nos Sistemas Baseados em UNIX o 3.6 Referência a SQL É Fornecida em um Arquivo PDF ------------------------------------------------------------------------ Instalação e Configuração * Informações Gerais sobre Instalação, Migração e Configuração o 4.1 Fazendo Download dos Pacotes de Instalação para Todos os Clientes DB2 Suportados o 4.2 Tornando o DB2 EE ou o DB2 Connect EE Install Image Acessível no Linux no S/390 o 4.3 DB2 Connect - Informações sobre Apêndice Não-requeridas o 4.4 Instalando o DB2 no SuSE Linux o 4.5 Nível de Correção Adicional Requerido do Solaris Operating Environment o 4.6 Instalando o DB2 Enterprise-Extended Edition no AIX o 4.7 Etapas Adicionais de Instalação para Usuários AIX CICS o 4.8 Suporte ao Diretório LDAP no Netscape + 4.8.1 Estendendo o Esquema do LDAP no Netscape o 4.9 Suporte para Plataformas Windows ME, Windows XP e Windows 2000 Datacenter Edition + 4.9.1 Windows XP + 4.9.1.1 Limitações + 4.9.2 Windows ME + 4.9.2.1 Limitações + 4.9.3 Windows 2000 Datacenter Server o 4.10 Instalando o DB2 no Windows 95 o 4.11 Instalando o DB2 no Windows 2000 o 4.12 Executando o DB2 no Windows 2000 Terminal Server, Modo de Administração o 4.13 Suporte de Atualização do Microsoft SNA Server e SNA Multisite (Commit de Duas Fases) o 4.14 Definir o ID do Usuário e a Senha no IBM Communications Server para Windows NT (CS/NT) + 4.14.1 Definição do Nó o 4.15 A Instalação do DB2 Pode Ser Interrompida se uma Unidade Removível Não Estiver Conectada o 4.16 Erro SQL1035N ao Utilizar CLP no Windows 2000 o 4.17 Problema de Migração com Respeito às Exibições Definidas com os Registros Especiais o 4.18 Suporte ao Protocolo IPX/SPX no Windows 2000 o 4.19 Parando Processos do DB2 Antes de Fazer o Upgrade de uma Versão Anterior do DB2 o 4.20 Execução do db2iupdt Após a Instalação do DB2 se Outro Produto do DB2 Já Estiver Instalado o 4.21 Configurando o Ambiente Linux para Executar o Centro de Controle do DB2 o 4.22 DB2 Universal Database Enterprise Edition e DB2 Connect Enterprise Edition para Linux no S/390 o 4.23 Possível Perda de Dados no Linux para S/390 o 4.24 Integração do Desktop Gnome e KDE para DB2 no Linux o 4.25 Parâmetros de Configuração do Kernel do Solaris (Valores Recomendados) o 4.26 DB2 Universal Database Enterprise - Extended Edition para UNIX - Iniciação Rápida o 4.27 Parâmetro do Kernel shmseg para HP-UX o 4.28 Migrando Bancos de Dados de Controle do IBM Visual Warehouse o 4.29 Migrando Índices Exclusivos Utilizando o Comando db2uiddl o 4.30 Erro de Instalação da Versão AIX de 64 Bits + 4.30.1 Utilizando o SMIT o 4.31 Erros que Ocorreram Durante a Migração o 4.32 Ativação da Licença do IBM(R) DB2(R) Connect + 4.32.1 Instalando Sua Chave de Licença e Definindo o Tipo de Licença Utilizando o Centro de Licenças + 4.32.2 Instalando Sua Chave de Licença e Definindo o Tipo de Licença Utilizando o Comando db2licm + 4.32.3 Considerações sobre Licença para Instalações Distribuídas o 4.33 Acessando Bancos de Dados de Controle do Armazém o 4.34 IBM e-server p690 e DB2 UDB Versão 7 com AIX 5 o 4.35 Produtos para Teste em CD-ROMs UNIX Enterprise Edition o 4.36 Produtos para Teste em CD-ROMs UNIX do DB2 Connect Enterprise Edition o 4.37 Merant Driver Manager e o Driver ODBC do DB2 UDB Versão 7 no UNIX o 4.38 Configuração Adicional Necessária Antes da Instalação do Centro de Catálogos de Informações para a Web o 4.39 Informações de Suporte à Página de Códigos e Idioma - Correção * Iniciação Rápida do DB2 Data Links Manager o 5.1 Suporte no AIX 5.1 o 5.2 Dlfm Start Falha com a Mensagem: "Erro ao obter o afsfid para o prefixo" o 5.3 Definindo a Classe do Tivoli Storage Manager para Arquivos Archive o 5.4 Requisitos de Espaço em Disco para DFS Client Enabler o 5.5 Monitorando o Processo de Backend do Gerenciador de Arquivo do Data Links no AIX o 5.6 Instalando e Configurando o DB2 Data Links Manager para AIX: Considerações Adicionais sobre a Instalação em Ambientes DCE-DFS o 5.7 Falha do Comando "dlfm add_prefix" o 5.8 No Evento Raro em que o Daemon de Cópia Não Pára no dlfm stop o 5.9 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando o DB2 Data Links Manager no AIX Utilizando o Utilitário db2setup o 5.10 Instalando e Configurando o DB2 Data Links Manager para AIX: Tarefa de Pós-Instalação no DCE-DFS o 5.11 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando Manualmente o DB2 Data Links Manager Utilizando o Smit o 5.12 Instalando e Configurando o DB2 Data Links DFS Client Enabler o 5.13 Instalando e Configurando o DB2 Data Links Manager para Sistemas Operacionais Solaris o 5.14 Privilégios do Grupo de Administradores do Data Links no Windows NT o 5.15 Minimizar o Log para Instalação do DLFF (Data Links File System Filter) + 5.15.1 Registrando Mensagens Após a Instalação + 5.15.2 Minimizando o Registro em Sistemas Sun Solaris o 5.16 Restauração de DATALINK o 5.17 Eliminar o Data Links Manager o 5.18 Desinstalar os Componentes do DLFM Utilizando o SMIT Pode Remover Conjuntos de Arquivos Adicionais o 5.19 Antes de Iniciar/Determinar o Nome do Host o 5.20 Trabalhando com o DB2 Data Links File Manager: Limpando Após a Eliminação de um DB2 Data Links Manager de um Banco de Dados DB2 o 5.21 Ação do Usuário para a Falha do dlfm Client_conf o 5.22 DLFM1001E (Nova Mensagem de Erro) o 5.23 Opção do Arquivo de Configuração DLFM o 5.24 Problema Potencial ao Restaurar Arquivos o 5.25 Erro ao Executar o Script dmapp_prestart de Data Links/DFS no AIX o 5.26 Integração do Tivoli Space Manager com o Data Links + 5.26.1 Restrições e Limitações o 5.27 Capítulo 4. Instalando e Configurando o DB2 Data Links Manager para AIX + 5.27.1 Considerações Comuns de Instalação + 5.27.1.1 Migrando do DB2 File Manager Versão 5.2 para o DB2 Data Links Manager Versão 7 o 5.28 Capítulo 6. Verificando a Instalação no AIX + 5.28.1 Soluções Alternativas em Ambientes NFS * Suplemento de Instalação e Configuração o 6.1 Capítulo 5. Instalando os Clientes DB2 em Sistemas Operacionais UNIX + 6.1.1 Parâmetros de Configuração do Kernel do HP-UX o 6.2 Capítulo 12. Executando Seus Próprios Aplicativos + 6.2.1 Efetuando a Vinculação dos Utilitários de Banco de Dados Utilizando o Run-Time Client + 6.2.2 Acesso de Clientes UNIX ao DB2 Utilizando ODBC o 6.3 Capítulo 24. Configurando um Sistema Federado para Acessar Várias Fontes de Dados + 6.3.1 Sistemas Federados + 6.3.2 FixPak 8 ou Superior Requerido se Estiver Utilizando as Origens de Dados do DB2 Versão 8 + 6.3.3 Restrição + 6.3.4 Instalando o DB2 Relational Connect + 6.3.4.1 Instalando o DB2 Relational Connect em Servidores Windows NT + 6.3.4.2 Instalando o DB2 Relational Connect em Servidores UNIX + 6.3.5 Capítulo 24. Configurando um Sistema Federado para Acessar Várias Fontes de Dados + 6.3.5.1 Compreendendo o Esquema Utilizado com Pseudônimos + 6.3.5.2 Problemas ao Restaurar um Banco de Dados Federado em um Servidor Federado Diferente o 6.4 Capítulo 26. Acessando Origens de Dados do Oracle + 6.4.1 Erros da Documentação o 6.5 Evitando Problemas ao Trabalhar com LOBs Remotos o 6.6 Acessando Origens de Dados do Sybase + 6.6.1 Incluindo Origens de Dados do Sybase em um Servidor Federado + 6.6.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil (apenas AIX e Solaris) + 6.6.1.2 Etapa 2: Ligar DB2 ao Software do Cliente Sybase (Apenas AIX e Solaris Operating Environment) + 6.6.1.3 Etapa 3: Reciclar a Instância do DB2 (Apenas AIX e Solaris Operating Environment) + 6.6.1.4 Etapa 4: Criar e Configurar um Arquivo de Interfaces + 6.6.1.5 Etapa 5: Criar o Wrapper + 6.6.1.6 Etapa 6: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM + 6.6.1.7 Etapa 7: Criar o Servidor + 6.6.1.8 Etapa 8: Opcional: Definir a Opção do Servidor CONNECTSTRING + 6.6.1.9 Etapa 9: Criar um Mapeamento do Usuário + 6.6.1.10 Etapa 10: Criar Pseudônimos para Tabelas e Exibições + 6.6.2 Especificando as Páginas de Códigos do Sybase o 6.7 Acessando as Origens de Dados do Microsoft SQL Server Utilizando ODBC (Novo Capítulo) + 6.7.1 Incluindo Origens de Dados do Microsoft SQL Server em um Servidor Federado + 6.7.1.1 Etapa 1: Definir as Variáveis de Ambiente (apenas AIX) + 6.7.1.2 Etapa 2: Executar o Script de Shell (apenas AIX) + 6.7.1.3 Etapa 3: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM (apenas AIX) + 6.7.1.4 Etapa 4: Reciclar a Instância do DB2 (apenas AIX) + 6.7.1.5 Etapa 5: Criar o Wrapper + 6.7.1.6 Etapa 6: Criar o Servidor + 6.7.1.7 Etapa 7: Criar um Mapeamento do Usuário + 6.7.1.8 Etapa 8: Criar Pseudônimos para Tabelas e Exibições + 6.7.1.9 Etapa 9: Opcional: Obter Rastreios do ODBC + 6.7.2 Revendo Páginas de Código do Microsoft SQL Server (apenas Windows NT) o 6.8 Acessando Origens de Dados do Informix (Novo Capítulo) + 6.8.1 Incluindo Origens de Dados do Informix em um Servidor Federado + 6.8.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil + 6.8.1.2 Etapa 2: Ligar o DB2 ao Software Informix Client + 6.8.1.3 Etapa 3: Reciclar a Instância do DB2 + 6.8.1.4 Etapa 4: Criar o Arquivo sqlhosts do Informix + 6.8.1.5 Etapa 5: Criar o Wrapper + 6.8.1.6 Etapa 6: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM + 6.8.1.7 Etapa 7: Criar o Servidor + 6.8.1.8 Etapa 8: Criar um Mapeamento do Usuário + 6.8.1.9 Etapa 9: Criar Pseudônimos para Tabelas, Exibições e Sinônimos do Informix ------------------------------------------------------------------------ Administração * Guia de Administração o 7.1 Atualização Disponível * Guia de Administração: Planejamento o 8.1 Capítulo 8. Design do Banco de Dados Físico + 8.1.1 Considerações sobre o Design da Área de Tabela + 8.1.1.1 Otimizando o Desempenho da Área de Tabela Quando os Dados São Colocados no Raid + 8.1.2 Chaves de Partição o 8.2 Apêndice D. Incompatibilidade entre Releases + 8.2.1 Erro SQL30081N Não-retornado Quando Conexão Perdida É Detectada + 8.2.2 Utilitário de Exportação Requer FixPak 7 ou Posterior para Lidar Corretamente com Atributos de Identidade o 8.3 Apêndice E. NLS (Suporte a Idioma Nacional) + 8.3.1 Código de País/Região e Suporte à Página de Códigos + 8.3.2 Considerações sobre Importação/Exportação/Carregamento -- Restrições para as Páginas de Códigos 1394 e 5488 + 8.3.3 Valores de Data e Hora + 8.3.3.1 Representações de Cadeia de Valores de Data e Hora + 8.3.3.2 Cadeias de Data + 8.3.3.3 Cadeias de Hora + 8.3.3.4 Cadeias de Data e Hora + 8.3.3.5 Considerações do Conjunto de Caracteres + 8.3.3.6 Formatos de Data e Hora * Guia de Administração: Implementação o 9.1 Novo Método para Especificar Contêineres DMS no Windows 2000 e em Sistemas Posteriores o 9.2 Exemplo para Estender o Centro de Controle * Guia de Administração: Desempenho o 10.1 Esquemas de Tabelas Temporárias do Sistema o 10.2 Capítulo 8. Desempenho Operacional + 10.2.1 Conjunto de Buffers com Base em Bloco + 10.2.1.1 Exemplos de Conjuntos de Buffers Com Base em Blocos o 10.3 Capítulo 10. Ajustando a Escala de Configuração Através da Inclusão de Processadores + 10.3.1 Problemas ao Incluir Nós em um Banco de Dados Particionado o 10.4 Capítulo 13. Configurando o DB2 + 10.4.1 Conclusão do Archive de Log Agora Verificada Mais Freqüentemente + 10.4.2 Correção Feita na Seção Informações de Ordenação (collate_info) o 10.5 Variáveis de Ambiente e Registro do DB2 + 10.5.1 Correções de Variáveis de Desempenho + 10.5.2 Novos Parâmetros para Variável de Registro DB2BPVARS + 10.5.3 Correções e Inclusões nas Variáveis de Registro Diversas + 10.5.4 Correções e Inclusões nas Variáveis de Registro Gerais * Guia e Referência de Administração de Satélites o 11.1 Configurando o DB2 Personal Edition Versão 7.2 e o DB2 Workgroup Edition como Satélites + 11.1.1 Pré-Requisitos + 11.1.1.1 Considerações de Instalação + 11.1.2 Configurando o Sistema Versão 7.2 para Sincronização + 11.1.3 Instalando o FixPak 2 ou Superior em um Sistema Enterprise Edition Versão 6 + 11.1.3.1 Fazendo o Upgrade do DB2 Enterprise Edition Versão 6 para Uso como o DB2 Control Server + 11.1.4 Fazendo o Upgrade de uma Versão 6 do Centro de Controle e do Centro de Administração do Satélite * Referência de Comandos o 12.1 Atualização Disponível o 12.2 db2updv7 - Atualizar o Banco de Dados para o Nível de Correção Atual da Versão 7 o 12.3 Contexto Adicional para Nota de Utilização do ARCHIVE LOG o 12.4 REBIND + Missing value o 12.5 RUNSTATS o 12.6 db2inidb - Inicializar um Banco de Dados Espelhado + 12.6.1 Informações de Utilização o 12.7 db2relocatedb (Novo Comando) + db2relocatedb - Realocar Banco de Dados o 12.8 db2move + Ferramenta de Movimentação de Banco de Dados o 12.9 Opção Adicional no Comando GET ROUTINE + GET ROUTINE o 12.10 CREATE DATABASE * Guia e Referência de Recuperação de Dados e Alta Disponibilidade o 13.1 Guia e Referência de Recuperação de Dados e Alta Disponibilidade Disponível On-line o 13.2 Novo Comportamento de Log de Archive o 13.3 Como Utilizar E/S Suspensa para Recuperação do Banco de Dados o 13.4 Novo Backup e Comportamento de Restauração Quando LOGRETAIN=CAPTURE o 13.5 Backup Incremental e Recuperação - Informações Adicionais o 13.6 NEWLOGPATH2 Agora Chamado de DB2_NEWLOGPATH2 o 13.7 Escolhendo um Método de Backup para o DB2 Data Links Manager no AIX ou no Solaris Operating Environment o 13.8 Tivoli Storage Manager -- LAN Free Data Transfer * Guia e Referência de Utilitários do Data Movement o 14.1 Valores de Identidade Estendidos Agora Completamente Suportados pelo Utilitário de Exportação o 14.2 Alterar para Tratamento de Arquivo LOB por Exportação, Importação e Carregamento + 14.2.1 Considerações sobre IXF o 14.3 Suporte à Página de Códigos para Utilitários de Importação, Exportação e Carregamento o 14.4 Capítulo 2. Importar + 14.4.1 Utilizando Importação com Inserções em Buffer o 14.5 Capítulo 3. Carregar + 14.5.1 Estados Pendentes Após uma Operação de Carregamento + 14.5.2 Restrições e Limitações de Carregamento + 14.5.3 Modificador de Tipo do Arquivo totalfreespace o 14.6 Capítulo 4. AutoLoader + 14.6.1 Restrições e Limitações do AutoLoader + 14.6.2 Utilizando o AutoLoader + 14.6.3 rexecd Obrigatório para Executar o AutoLoader Quando a Autenticação Estiver Definida como YES + 14.6.4 O AutoLoader Pode Travar Durante uma Bifurcação nos Sistemas AIX Anteriores a 4.3.3 o 14.7 Apêndice C. Formatos de Arquivo do Utilitário de Exportação/Importação/Carregamento * Guia e Referência do Replication o 15.1 Relicação e Servidores Não-IBM o 15.2 Réplica no Windows 2000 o 15.3 Erro Conhecido ao Salvar os Arquivos SQL o 15.4 Programa Aply e Aliases do Centro de Controle o 15.5 Manutenção do DB2 o 15.6 Utilitário de Diferença de Dados na Web o 15.7 Capítulo 3. Cenário de Réplica de Dados + 15.7.1 Cenários de Réplica o 15.8 Capítulo 5. Planejando para Réplica + 15.8.1 Nomes de Tabelas e Colunas + 15.8.2 Replicando o DATALINK + 15.8.3 Restrições LOB + 15.8.4 Planejando para Réplica o 15.9 Capítulo 6. Configurando o Ambiente de Réplica + 15.9.1 Pré-requisito Update-anywhere + 15.9.2 Configurando Seu Ambiente de Réplica o 15.10 Capítulo 8. Determinação de Problemas o 15.11 Capítulo 9. Capture e Apply para AS/400 o 15.12 Capítulo 10. Capture e Apply para OS/390 + 15.12.1 Pré-requisitos para DB2 DataPropagator para OS/390 + 15.12.2 Esquemas de Codificação do UNICODE e ASCII no OS/390 + 15.12.2.1 Escolhendo um Esquema de Codificação + 15.12.2.2 Definindo Esquemas de Codificação o 15.13 Capítulo 11. Capture e Apply para Plataformas UNIX + 15.13.1 Definindo Variáveis de Ambiente para Capture e Apply no UNIX e Windows o 15.14 Capítulo 14. Estruturas de Tabelas o 15.15 Capítulo 15. Mensagens de Capture e Apply o 15.16 Apêndice A. Iniciando os Programas Capture e Apply de Dentro de um Aplicativo * Guia e Referência do System Monitor o 16.1 db2ConvMonStream o 16.2 Número Máximo de Heaps Alocados do Banco de Dados (db_heap_top) * Guia de Resolução de Problemas o 17.1 Iniciando o DB2 no Windows 95, Windows 98 e Windows ME Quando o Usuário Não Efetuou Logon o 17.2 Capítulo 1. Práticas Recomendáveis para Resolução de Problemas + 17.2.1 Ferramenta de Análise de Problemas e Coleta de Ambiente + 17.2.1.1 Saídas de Coleta + 17.2.1.2 Exibindo o detailed_system_info.html + 17.2.1.3 Exibindo a Sintaxe da Ferramenta de Suporte ao DB2, Uma Página por Vez o 17.3 Capítulo 2. Resolução de Problemas no DB2 Universal Database Server o 17.4 Capítulo 8. Resolução de Problemas no DB2 Data Links Manager o 17.5 Capítulo 15. Informações de Log + 17.5.1 Coletando Informações de Rastreio Anterior de Pilhas em Sistemas Baseados em UNIX * Utilizando o DB2 Universal Database em Plataformas de 64 bits o 18.1 Capítulo 5. Configuração + 18.1.1 LOCKLIST + 18.1.2 shmsys:shminfo_shmmax o 18.2 Capítulo 6. Restrições * Programação e Administração do XML Extender * MQSeries o 20.1 Instalação e Configuração das Funções do DB2 MQSeries + 20.1.1 Instalar o MQSeries + 20.1.2 Instalar o MQSeries AMI + 20.1.3 Ativar as Funções do DB2 MQSeries o 20.2 Estilos de Mensagens do MQSeries o 20.3 Estrutura da Mensagem o 20.4 Visão Geral Funcional do MQSeries + 20.4.1 Limitações + 20.4.2 Códigos de Erros o 20.5 Cenários de Utilização + 20.5.1 Mensagens Básicas + 20.5.2 Enviando Mensagens + 20.5.3 Recuperando Mensagens + 20.5.4 Conectividade de Aplicativo a Aplicativo + 20.5.4.1 Comunicações de Pedido/Resposta + 20.5.4.2 Publicar/Associar o 20.6 enable_MQFunctions + enable_MQFunctions o 20.7 disable_MQFunctions + disable_MQFunctions ------------------------------------------------------------------------ Ferramentas Administrativas * Configuração Adicional Antes de Executar as Ferramentas o 21.1 Desativando a Pilha de Ponto Flutuante no Linux o 21.2 Nível de Java Específico Requerido em um Ambiente Linux em Japonês * Centro de Controle o 22.1 A Seleção da Restauração Redirecionada Exige a Restauração do Banco de Dados o 22.2 Capacidade de Administrar o Servidor DB2 para Servidores VSE e VM o 22.3 Suporte a Java 1.2 para o Centro de Controle o 22.4 Erro "Atalho inválido" ao Usar a Ajuda On-line no Sistema Operacional Windows o 22.5 Atalhos do Teclado que Não Funcionam o 22.6 Centro de Controle Java no OS/2 o 22.7 Erro "Acesso negado ao arquivo" ao Tentar Exibir um Job Concluído no Diário no Sistema Operacional Windows o 22.8 Teste de Conexão de Atualização Multisites o 22.9 DB2 Control Centerpara OS/390 o 22.10 Correção Exigida do Centro de Controle para OS/390 o 22.11 Alteração no Diálogo Criar Camada Espacial o 22.12 Informações de Resolução de Problemas para o DB2 Control Center o 22.13 Resolução de Problemas do Centro de Controle em Sistemas Baseados em UNIX o 22.14 Possíveis Problemas com Infopops no OS/2 o 22.15 Ajuda do Parâmetro de Configuração jdk11_path o 22.16 Erro do Sistema Solaris (SQL10012N) na Utilização do Centro de Scripts ou do Diário o 22.17 Ajuda ao Arquivo DPREPL.DFT o 22.18 Lançando Mais de um Applet do Centro de Controle o 22.19 Ajuda On-line do Centro de Controle em Execução como um Applet o 22.20 Executando o Centro de Controle no Modo Applet (Windows 95) o 22.21 Trabalhando com Resultados de Consulta Grande * Centro de Comandos o 23.1 Página Interativa do Centro de Comandos Agora Reconhece o Finalizador de Instrução * Centro de Informações o 24.1 Correções do Documento de Amostras Java o 24.2 Erro "Atalho inválido" no Sistema Operacional Windows o 24.3 Abrindo Links da Web Externos no Netscape Navigator Quando o Netscape Já Está Aberto (Sistemas Baseados em UNIX) o 24.4 Problemas ao Iniciar o Centro de Informações * Construtor de Procedimento Armazenado o 25.1 Suporte para Procedimentos Armazenados Java para z/OS ou OS/390 o 25.2 Suporte para Procedimentos Armazenados SQL para z/OS ou OS/390 o 25.3 Atualização de Referência do Construtor de Procedimento Armazenamento para Documentação no z/OS ou OS/390 o 25.4 Suporte para Definição de Propriedades do Conjunto de Resultados o 25.5 Eliminando Procedimentos de um Banco de Dados DB2 no Windows NT * Assistentes o 26.1 Definindo o Tamanho Estendido no Assistente para Criar Banco de Dados o 26.2 Assistente para Ajuda do MQSeries o 26.3 Assistente para Ajuda do OLE DB ------------------------------------------------------------------------ Inteligência de Negócios * Tutorial do Inteligência de Negócios o 27.1 Tutorial Revisado do Inteligência de Negócios * Apresentação do DB2 Universal Database * Data Warehouse Center Guia de Administração o 29.1 Atualização Disponível o 29.2 Melhorias do Servidor de Armazenamento o 29.3 Utilizando o Agente do OS/390 para Executar um Trillium Batch System JCL o 29.4 Dois Novos Programas de Amostra no Data Warehouse Center o 29.5 Managing ETI.Extract(R) Conversion Programs com o DB2 Warehouse Manager Atualizada o 29.6 Importando e Exportando Metadados Utilizando a CWMI (Common Warehouse Metadata Interchange) + 29.6.1 Introdução + 29.6.2 Importando Metadados + 29.6.3 Atualizando os Metadados Após Executar o Utilitário de Importação + 29.6.4 Exportando Metadados o 29.7 Utilitário de Importação/Exportação de Metadados da Linguagem de Marcação + 29.7.1 Definições de Chaves + 29.7.2 Planejamentos de Etapas e Processos o 29.8 Informações da Etapa SAP + 29.8.1 Possibilidade de Criar Tabela Logicamente Inconsistente o 29.9 Informações do Conector SAP + 29.9.1 Restrições à Instalação do Conector SAP + 29.9.2 Desempenho de GetDetail BAPI o 29.10 Informações do Conector Web + 29.10.1 Versões Suportadas do WebSphere Site Analyzer * DB2 OLAP Starter Kit o 30.1 Web Site do OLAP Server o 30.2 Níveis de Serviços do Sistema Operacional Suportados o 30.3 Concluindo a Configuração do DB2 OLAP Starter Kit no UNIX o 30.4 Configuração Adicional para o Solaris Operating Environment o 30.5 Configuração Adicional para Todos os Sistemas Operacionais o 30.6 Configurando o ODBC para o OLAP Starter Kit + 30.6.1 Configurando Origens de Dados em Sistemas UNIX + 30.6.1.1 Configurando as Variáveis de Ambiente ODBC + 30.6.1.2 Editando o Arquivo odbc.ini + 30.6.1.3 Incluindo uma Origem de Dados em um Arquivo odbc.ini + 30.6.1.4 Exemplo de Definições ODBC para DB2 + 30.6.1.5 Exemplo de Definições ODBC para Oracle + 30.6.2 Configurando o OLAP Metadata Catalog em Sistemas UNIX + 30.6.3 Configurando as Origens de Dados em Sistemas Windows + 30.6.4 Configurando o OLAP Metadata Catalog em Sistemas Windows + 30.6.5 Após Configurar uma Origem de Dados o 30.7 Efetuando Login no OLAP Starter Kit Desktop + 30.7.1 Exemplo de Login do Starter Kit o 30.8 Criando e Configurando Manualmente os Bancos de Dados de Amostra para OLAP Starter Kit o 30.9 Migrando Aplicativos para OLAP Starter Kit Versão 7.2 o 30.10 Problemas e Limitações Conhecidos o 30.11 Arquivos EQD do Complemento da Planilha OLAP Ausente * Guia de Administração do Information Catalog Manager o 31.1 Utilitário de Inicialização do Information Catalog Manager + 31.1.1 + 31.1.2 Questões de Licenciamento + 31.1.3 Questões de Instalação o 31.2 Melhorias para o Information Catalog Manager o 31.3 Incompatibilidade entre o Information Catalog Manager e o Sybase no Ambiente Windows o 31.4 Acessando os DB2 Information Catalogs Versão 5 com o DB2 Information Catalog Manager Versão 7 o 31.5 Configurando um Catálogo de Informações o 31.6 Trocando Metadados com Outros Produtos o 31.7 Trocando Metadados Utilizando o Comando flgnxoln o 31.8 Trocando Metadados Utilizando o Comando MDISDGC o 31.9 Chamando Programas * Guia e Referência de Programação do Information Catalog Manager o 32.1 Códigos de Razão do Information Catalog Manager * Guia do Usuário do Information Catalog Manager * Information Catalog Manager: Mensagens On-line o 34.1 Correções nas Mensagens FLG + 34.1.1 Mensagem FLG0260E + 34.1.2 Mensagem FLG0051E + 34.1.3 Mensagem FLG0003E + 34.1.4 Mensagem FLG0372E + 34.1.5 Mensagem FLG0615E * Information Catalog Manager: Ajuda On-line o 35.1 Information Catalog Manager para a Web * DB2 Warehouse Manager - Guia de Instalação o 36.1 Atualização Disponível do DB2 Warehouse Manager - Guia de Instalação o 36.2 Requisitos de Software para Transformadores do Armazém o 36.3 Conector para SAP R/3 + 36.3.1 Pré-requisitos de Instalação o 36.4 Conector para a Web + 36.4.1 Pré-requisitos de Instalação o 36.5 Considerações Pós-instalação para o Agente iSeries o 36.6 Antes de Utilizar Transformadores com o Agente de Armazém do iSeries * Query Patroller - Guia de Administração o 37.1 O DB2 Query Patroller Client É um Componente Separado o 37.2 Alterando o Status do Nó o 37.3 Migrando da Versão 6 do DB2 Query Patroller Utilizando dqpmigrate o 37.4 Ativando o Query Management o 37.5 Localização da Área de Tabela para Tabelas de Controle o 37.6 Novos Parâmetros para o Comando dqpstart o 37.7 Novo Parâmetro para o Comando iwm_cmd o 37.8 Nova Variável de Registro: DQP_RECOVERY_INTERVAL o 37.9 Iniciando o Query Administrator o 37.10 Administração do Usuário o 37.11 Administração da Origem de Dados o 37.12 Criando uma Fila de Jobs o 37.13 Tabela de Contabilização do Job o 37.14 Utilizando a Interface da Linha de Comandos o 37.15 Notas do Query Enabler o 37.16 O Rastreador do DB2 Query Patroller pode Retornar uma Página de Coluna em Branco o 37.17 Informações Adicionais para a Ferramenta da GUI do Tracker do DB2 Query Patroller o 37.18 Query Patroller e Ferramentas de Réplica o 37.19 Melhorando o Desempenho do Query Patroller o 37.20 O Privilégio EXECUTE para Usuários do Query Patroller Criados na Versão 6 não está Implementado o 37.21 Restrições do Query Patroller o 37.22 Apêndice B. Resolução de Problemas em Clientes DB2 Query Patroller ------------------------------------------------------------------------ Desenvolvimento de Aplicativos * Referência Administrativa da API o 38.1 db2ArchiveLog (Nova API) + db2ArchiveLog o 38.2 db2ConvMonStream o 38.3 db2DatabasePing (Nova API) + db2DatabasePing - Banco de Dados para Execução de Ping o 38.4 db2HistData o 38.5 db2HistoryOpenScan o 38.6 db2Runstats o 38.7 db2GetSnapshot - Obter Instantâneo o 38.8 db2XaGetInfo (Nova API) + db2XaGetInfo - Obter Informações para o Gerenciador de Recursos o 38.9 db2XaListIndTrans (nova API que Sobrepõe sqlxphqr) + db2XaListIndTrans - Lista de Transações Duvidosas o 38.10 Registro de Log Esquecido o 38.11 sqlaintp - Obter Mensagem de Erro o 38.12 sqlbctcq - Fechar Consulta do Contêiner da Área da Tabela o 38.13 sqleseti - Definir Informações do Cliente o 38.14 sqlubkp - Backup do Banco de Dados o 38.15 sqlureot - Reorganizar Tabela o 38.16 sqlurestore - Restaurar Banco de Dados o 38.17 Erro na Documentação com Relação ao Suporte de Memória Compartilhada Estendida (EXTSHM) do AIX o 38.18 SQLFUPD + 38.18.1 locklist o 38.19 SQLEDBDESC * Guia de Compilação de Aplicativos o 39.1 Atualização Disponível o 39.2 Linux em S/390 e Suporte a zSeries o 39.3 Suporte a Linux Rexx o 39.4 Notas Adicionais para Distribuição de Procedimentos SQL Compilados * Guia de Desenvolvimento de Aplicativos o 40.1 Atualização Disponível o 40.2 Cuidados ao Registrar as Rotinas C/C++ (UDFs, Procedimentos Armazenados ou Métodos) no Windows o 40.3 Correção a "Depurando Procedimentos Armazenados em Java" o 40.4 Novos Requisitos para executeQuery e executeUpdate o 40.5 Suporte ao Driver JDBC para Métodos Adicionais o 40.6 Sistemas JDBC e 64 bits o 40.7 Provedor IBM OLE DB para DB2 UDB * Guia e Referência do CLI o 41.1 Efetuando a Vinculação dos Utilitários de Banco de Dados Utilizando o Run-Time Client o 41.2 Utilizando SQL Estático em Aplicativos CLI o 41.3 Limitações do Perfilamento Estático JDBC/ODBC/CLI o 41.4 Transformações ADT o 41.5 Capítulo 1. Introdução à CLI + 41.5.1 Diferenças entre a CLI do DB2 e a SQL Incorporada o 41.6 Capítulo 3. Utilizando Recursos Avançados + 41.6.1 Escrevendo Aplicativos Multi-encadeados + 41.6.2 Escrevendo um Aplicativo Unicode da CLI do DB2 + 41.6.2.1 Funções Unicode + 41.6.2.2 Novos Tipos de Dados e Conversões Válidas + 41.6.2.3 Palavra-chave Obsoleta/Valor de Correção + 41.6.2.4 Literais em Bancos de Dados Unicode + 41.6.2.5 Configuração das Palavras-chave CLI Nova + 41.6.3 MTS (Microsoft Transaction Server) como Transaction Monitor + 41.6.4 Cursores Deslocáveis + 41.6.4.1 Suporte ao Cursor Deslocável no Lado do Servidor para OS/390 + 41.6.5 Utilizando o SQL Composto + 41.6.6 Utilizando os Procedimentos Armazenados + 41.6.6.1 Privilégios para Construir e Depurar Procedimentos SQL e Java Armazenados + 41.6.6.2 Gravando um Procedimento Armazenado em CLI + 41.6.6.3 Procedimentos Armazenados e Vinculação Automática da CLI o 41.7 Capítulo 4. Configurando CLI/ODBC e Executando Amostras de Aplicativos + 41.7.1 Palavras-chave de Configuração + 41.7.1.1 CURRENTFUNCTIONPATH + 41.7.1.2 SKIPTRACE o 41.8 Capítulo 5. Funções da CLI do DB2 + 41.8.1 SQLBindFileToParam - Ligar Referência do Arquivo do LOB ao Parâmetro do LOB + 41.8.2 SQLColAttribute -- Retornar um Atributo de Coluna + 41.8.3 SQLGetData - Obter Dados de uma Coluna + 41.8.4 SQLGetInfo - Obter Informações Gerais + 41.8.5 SQLGetLength - Recuperar Comprimento de um Valor de Cadeia + 41.8.6 SQLNextResult - Associar o Próximo Conjunto de Resultados a Outra Manipulação de Instrução + 41.8.6.1 Objetivo + 41.8.6.2 Sintaxe + 41.8.6.3 Argumentos de Função + 41.8.6.4 Uso + 41.8.6.5 Códigos de Retorno + 41.8.6.6 Diagnósticos + 41.8.6.7 Restrições + 41.8.6.8 Referências + 41.8.7 SQLSetEnvAttr - Definir Atributo de Ambiente + 41.8.8 SQLSetStmtAttr -- Definir Opções Relacionadas a uma Instrução o 41.9 Apêndice C. CLI e ODBC do DB2 + 41.9.1 Aplicativos Unicode do ODBC + 41.9.1.1 Aplicativos Unicode Versus Não-unicode do ODBC o 41.10 Apêndice D. Funções Escalares Estendidas + 41.10.1 Funções de Data e Hora o 41.11 Apêndice K. Utilizando o Recurso de Rastreio do DB2 CLI/ODBC/JDBC * Referência de Mensagens o 42.1 Atualização Disponível o 42.2 Atualizações de Mensagens o 42.3 Lendo Texto de Mensagens On-line * SQL Reference o 43.1 Atualização Disponível da SQL Reference o 43.2 Ativando as Novas Funções e os Procedimentos o 43.3 SET SERVER OPTION - Erro da Documentação o 43.4 Correções das Informações de Cadeia e Cláusula para Contêiner CREATE TABLESPACE o 43.5 Correções das Informações CREATE TABLESPACE EXTENTSIZE o 43.6 GRANT (Privilégios de Tabela, Exibição ou Pseudônimo) - Erro da Documentação o 43.7 Informações do MQSeries + 43.7.1 Funções Escalares + 43.7.1.1 MQPUBLISH + 43.7.1.2 MQREADCLOB + 43.7.1.3 MQRECEIVECLOB + 43.7.1.4 MQSEND + 43.7.2 Funções da Tabela + 43.7.2.1 MQREADALLCLOB + 43.7.2.2 MQRECEIVEALLCLOB + 43.7.3 Dados CLOB Agora São Suportados nas Funções do MQSeries o 43.8 Informações de Tipos de Dados + 43.8.1 Promoção de Tipos de Dados + 43.8.2 Conversão entre Tipos de Dados + 43.8.3 Atribuições e Comparações + 43.8.3.1 Atribuições de Cadeia + 43.8.3.2 Comparações de Cadeias + 43.8.4 Regras para Tipos de Dados de Resultado + 43.8.4.1 Cadeias de Caracteres e Gráficas em um Banco de Dados Unicode + 43.8.5 Regras para Conversões de Cadeias + 43.8.6 Expressões + 43.8.6.1 Com o Operador de Concatenação + 43.8.7 Predicados o 43.9 Informações de Unicode + 43.9.1 Funções Escalares e Unicode o 43.10 Tipo GRAPHIC e Compatibilidade de DATE/TIME/TIMESTAMP + 43.10.1 Representações de Cadeia de Valores de Data e Hora + 43.10.1.1 Cadeias de Data, Cadeias de Hora e Cadeias de Data e Hora + 43.10.2 Conversão entre Tipos de Dados + 43.10.3 Atribuições e Comparações + 43.10.4 Atribuições de Data e Hora + 43.10.5 DATE + 43.10.6 GRAPHIC + 43.10.7 TIME + 43.10.8 TIMESTAMP + 43.10.9 VARGRAPHIC o 43.11 Chaves de Índice Maiores para Bancos de Dados Unicode + 43.11.1 ALTER TABLE + 43.11.2 CREATE INDEX + 43.11.3 CREATE TABLE o 43.12 Seção Notas da Instrução ALLOCATE CURSOR Incorreta o 43.13 Opções Adicionais na Instrução GET DIAGNOSTICS + Instrução GET DIAGNOSTICS o 43.14 ORDER BY em Sub-seleções + 43.14.1 fullselect + 43.14.2 subselect + 43.14.3 order-by-clause + 43.14.4 select-statement + instrução SELECT INTO + 43.14.5 Funções OLAP (window-order-clause) * Novo Argumento de Entrada para o Procedimento GET_ROUTINE_SAR * Autorização Obrigatória para a Instrução SET INTEGRITY * Apêndice N. Tabelas de Exceção * Atualizações do Unicode o 47.1 Introdução + 47.1.1 Bancos de Dados e Aplicativos do DB2 Unicode + 47.1.2 Atualizações de Documentação ------------------------------------------------------------------------ Conectando aos Sistemas Host * Guia do Usuário do DB2 Connect o 48.1 Aumentando Taxas de Transferência de Dados do DB2 Connect + 48.1.1 Blocos de Consulta Extra + 48.1.2 RFC-1323 Window Scaling o 48.2 Suporte do DB2 Connect para Transações Acopladas Soltas o 48.3 Suporte a Kerberos * Suplemento de Conectividade o 49.1 Configurando o Servidor de Aplicativos em um Ambiente VM o 49.2 Configuração do CLI/ODBC/JDBC e Definições do PATCH1 e PATCH2 ------------------------------------------------------------------------ Informações Adicionais * Informações Adicionais o 50.1 O DB2 Everywhere Agora É DB2 Everyplace o 50.2 Recursos de Acessibilidade do DB2 UDB Versão 7 + 50.2.1 Entrada de Dados e Navegação através do Teclado + 50.2.1.1 Entrada de Dados Através do Teclado + 50.2.1.2 Foco do Teclado + 50.2.2 Recursos para Exibição Acessível + 50.2.2.1 Modo Alto Contraste + 50.2.2.2 Definições das Fontes + 50.2.2.3 Não É Dependente de Cor + 50.2.3 Sugestões sobre Alertas Alternativos + 50.2.4 Compatibilidade com Tecnologias de Apoio + 50.2.5 Documentação de Fácil Acesso o 50.3 Exigências de Mouse o 50.4 Tentativa para Fazer a Vinculação a partir do DB2 Run-time Client Results em um Erro "Arquivos de vinculação não-encontrados" o 50.5 Pesquisa de Descoberta o 50.6 Janelas de Memória do HP-UX 11 o 50.7 Desinstalando o DB2 DFS Client Enabler o 50.8 Autenticação de Cliente no Windows NT o 50.9 Restrições de Sistemas Federados o 50.10 Limitações Federadas com Tabelas Particionadas MPP o 50.11 Restrição do DataJoiner o 50.12 Information Catalog Manager em Hebraico para Windows NT o 50.13 SNA SPM do DB2 Falhou ao Iniciar Após a Inicialização do Windows o 50.14 Requisitos da Conta de Serviço para DB2 no Windows NT e Windows 2000 o 50.15 É Necessário Fazer o Commit de Todos os Programas Definidos pelo Usuário que Serão Usados no DWC (Data Warehouse Center) o 50.16 Armazenamento em Cache do Cliente no Windows NT o 50.17 Life Sciences Data Connect + 50.17.1 Novos Wrappers + 50.17.2 Avisos- o 50.18 Melhorias no SQL Assist o 50.19 Ajuda para Comandos de Backup e de Restauração o 50.20 O "Warehouse Manager" Deveria Ser "DB2 Warehouse Manager" ------------------------------------------------------------------------ Apêndices * Apêndice A. Avisos o A.1 Marcas Comerciais * Índice remissivo ------------------------------------------------------------------------ Prefácio Bem-vindo às Notas sobre o Release do DB2 Universal Database Versão 7 FixPak! Nota: Ao exibir como texto, defina a fonte para espaçamento uniforme para uma melhor exibição destas Notas sobre o Release. O site do DB2 Universal Database e do DB2 Connect Support é atualizado regularmente. Verifique as últimas informações em: http://www.ibm.com/software/data/db2/udb/winos2unix/support. 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 IBM DB2 Connect Personal Edition, Versão 7.2 IBM DB2 Connect Enterprise Edition, Versão 7.2 Um arquivo adicional de Notas sobre o Release, 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 A documentação do produto DB2 Life Sciences Data Connect está disponível para download no site de software da IBM: www.ibm.com/software/data/db2/lifesciencesdataconnect/library.html. Informações sobre esse produto estão disponíveis on-line em http://www.ibm.com/software/data/db2/lifesciencesdataconnect. Os manuais a seguir foram atualizados para o FixPak 4 e os PDFs mais atuais estão disponíveis para download on-line em http://www.ibm.com/software/data/db2/udb/winos2unix/support: Guia de Administração Guia de Compilação de Aplicativos Guia de Desenvolvimento de Aplicativos Referência de Comandos Guia e Referência de Recuperação de Dados e Alta Disponibilidade Data Warehouse Center Guia de Administração Referência de Mensagens SQL Reference DB2 Warehouse Manager Installation Guide As informações nestas notas são um complemento às referências atualizadas. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis em http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. A publicação 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 da publicação O que Há de Novo, poderá exibir e fazer download dessa versão em http://www.ibm.com/software/data/db2/udb/winos2unix/support. Para obter as informações mais atuais sobre a família de produtos DB2, obtenha uma assinatura gratuita da "Revista do DB2". A edição on-line da revista está disponível no endereço http://www.db2mag.com; as instruções para o pedido de uma assinatura também estão divulgados nesse site. Nota: Nestas Notas sobre o Release, qualquer referência ao Windows NT inclui também o Windows 2000. A referência inclui Windows XP no contexto dos produtos listados em 4.9, Suporte para Plataformas Windows ME, Windows XP e Windows 2000 Datacenter Edition, a não ser que esteja especificado de outro modo. Nota: Uma barra de revisão (|) à esquerda de uma página indica que a linha foi incluída ou modificada desde a primeira publicação das Notas sobre o Release. ------------------------------------------------------------------------ Leia-me Primeiro ------------------------------------------------------------------------ Notas sobre o Release da Versão 7 Estas Notas sobre o Release foram atualizadas para o FixPak 8. As informações contidas nelas ainda são válidas para usuários de FixPaks posteriores. Esta lista não é completa, mas destaca as principais alterações na documentação. Certifique-se de verificar quaisquer seções das notas sobre o release que se relacionem ao seu ambiente de trabalho para ter certeza de estar a par de todas as atualizações pertinentes. Consulte os Leia-mes do FixPak para obter informações sobre qualquer função nova, incluída na Versão 7 após o FixPak 8. * 2.14, O db2stop Trava nos Sistemas Operacionais AIX 5 em Decorrência de um Problema do NFS * 4.2, Tornando o DB2 EE ou o DB2 Connect EE Install Image Acessível no Linux no S/390 * 4.3, DB2 Connect - Informações sobre Apêndice Não-requeridas * 4.4, Instalando o DB2 no SuSE Linux * 4.34, IBM e-server p690 e DB2 UDB Versão 7 com AIX 5 * 6.3.2, FixPak 8 ou Superior Requerido se Estiver Utilizando as Origens de Dados do DB2 Versão 8 * 6.8.1.1, Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil * 10.4.2, Correção Feita na Seção Informações de Ordenação (collate_info) * 12.2, db2updv7 - Atualizar o Banco de Dados para o Nível de Correção Atual da Versão 7 * 12.5, RUNSTATS * 14.6.1, Restrições e Limitações do AutoLoader * 14.6.2, Utilizando o AutoLoader * 15.4, Programa Aply e Aliases do Centro de Controle * 16.2, Número Máximo de Heaps Alocados do Banco de Dados (db_heap_top) * 29.10, Informações do Conector Web * 38.6, db2Runstats * 40.2, Cuidados ao Registrar as Rotinas C/C++ (UDFs, Procedimentos Armazenados ou Métodos) no Windows * 40.6, Sistemas JDBC e 64 bits * 43.4, Correções das Informações de Cadeia e Cláusula para Contêiner CREATE TABLESPACE * 43.5, Correções das Informações CREATE TABLESPACE EXTENTSIZE ------------------------------------------------------------------------ Notas sobre o Produto ------------------------------------------------------------------------ 2.1 CPUs Suportadas no DB2 Versão 7 para o Solaris Operating Environment Versões de CPU anteriores ao UltraSparc não são suportadas. ------------------------------------------------------------------------ 2.2 Correção do Locale do Chinês no Linux Red Flag Se você estiver utilizando 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. ------------------------------------------------------------------------ 2.3 Definição de Locale Adicional do DB2 para Linux em um 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 ------------------------------------------------------------------------ 2.4 Limitações para Japonês em PTX Se você estiver executando o DB2 UDB em japonês em um sistema PTX, é possível que alguns dos processos utilizados pelo DB2 não herdem as informações de locale corretas. Para evitar isso, defina manualmente as variáveis de registro DB2CODEPAGE e DB2COUNTRY para corresponder a seu locale. ------------------------------------------------------------------------ 2.5 Problema do Centro de Controle no Microsoft Internet Explorer Existe um problema causado pelas definições das opções de segurança do IE (Internet Explorer). 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 esse 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, selecione Zona de sites confiáveis. 3. Clique em Adicionar Sites.... 4. Inclua o servidor Web do Centro de Controle na lista de sites seguros. 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 Nota: Ao digitar o URL, você deve utilizar o prefixo https:// ou desmarcar a opção Exigir verificação do servidor (https:) para todos os sites desta zona para incluir o site 5. Dê um clique em OK. 6. Clique em Configurações... (IE4) ou em Nível Personalizado... (IE5).. 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. ------------------------------------------------------------------------ 2.6 Perda de Função do Centro de Controle No DB2 versão 7.2, clientes do Centro de Controle Versão 6 anteriores ao FixPak 6 e clientes versão 7 anteriores ao FixPak 2 perdem praticamente toda a funcionalidade ao serem utilizados com o DB2 versão 7.2. Para corrigir isso, atualize seus clientes Versão 6 para o FixPak 6 ou posterior e seus clientes Versão 7 para o FixPak 2 ou posterior. Não devem ser apresentados problemas contra os clientes do Centro de Controle do nível inferior, aplicando FixPak 2 em um servidor DB2. ------------------------------------------------------------------------ 2.7 CD do Netscape Não-fornecido com o DB2 UDB O CD do Netscape não é mais fornecido com o DB2 UDB. Os produtos Netscape estão disponíveis a partir de http://www.netscape.com. ------------------------------------------------------------------------ 2.8 Erros nos Arquivos Leia-Me em XML 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 é o DB2 UDB Versão 7.1. Se você desejar utilizar o DB2 UDB Versão 6.1 em sistemas AIX e Solaris, assegure-se de que esteja executando com a instância DB2 UDB V6.1 e com as bibliotecas DB2 UDB V6.1. Isso 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) Isso está incorreto. O DB2 XML Extender requer DB2 Versão 7.1 ou 7.2. ------------------------------------------------------------------------ 2.9 Novas Melhorias de Inteligência de Negócios no DB2 Versão 7.2 Na publicação O que Há de Novo na Versão 7.2 e em alguma outra documentação a referência é feita para novas melhorias de Inteligência de Negócios que foram incluídas na Versão 7.2. Essas melhorias serão disponibilizadas em uma data posterior. ------------------------------------------------------------------------ 2.10 Problemas no IBM DB2 OLAP Server Causados pelo FixPak 2A e Posterior Se você utiliza o IBM DB2 OLAP Server no UNIX, pode encontrar problemas no DB2 OLAP Server após a instalação do FixPak 2A do DB2 Universal Database V7. O FixPak 2A e os FixPaks posteriores instalam novos drivers ODBC que suportam UNICODE, mas o DB2 OLAP Server não suporta esses novos drivers. A solução alternativa para o DB2 OLAP Server é comutar seus arquivos ODBC para apontarem para os drivers ODBC não-UNICODE. Os drivers não-UNICODE foram renomeados para incluir "_36" em seus nomes. Por exemplo, para o Solaris Operating Environment, o driver libdb2.so foi renomeado para libdb2_36.so. Para obter mais informações sobre alteração de drivers ODBC, consulte "Loading and Configuring ODBC for the SQL Interface" no Capítulo 4, "Installing on AIX, Solaris Operating Environment, and HP-UX," da publicação OLAP Setup and User's Guide. ------------------------------------------------------------------------ 2.11 Violação de Segmentação ao Utilizar o WebSphere 3.5.5 Se estiver executando a amostra de perfil de usuário do WebSphere 3.5.5 com DB2 V7.2 FixPak 4 ou superior em Linux390, você pode receber uma violação de segmentação SIGSEGV 11 (*). Esse problema relaciona-se a um defeito no JDK e ocorrerá tanto com o JDK 1.2.2 quanto com o JDK 1.3. Esse problema pode afetar também outros aplicativos JDBC. O release de serviço de novembro do JDK 1.2.2 corrige esse problema. O JDK 1.3 será corrigido em seu release de serviço de janeiro. Uma solução alternativa para esse problema é desativar o JIT com o seguinte comando: export JAVA_COMPILER=NONE ------------------------------------------------------------------------ 2.12 Suporte a Veritas AIX Volume Manager O DB2 UDB Enterprise Edition, FixPak 7 ou posterior, pode ser utilizado com o Veritas AIX Volume Manager Versão 3.2 no AIX 5.1 ML 2 ou posterior. O uso do Veritas AIX Volume Manager com quaisquer outras versões do DB2 UDB, incluindo o Enterprise Extended Edition, não é suportado neste momento. ------------------------------------------------------------------------ 2.13 Correção Obrigatória para Aplicativos Java no AIX V4 Aplicativos Java sendo executados no AIX 4.3.3 podem ser interrompidos inesperadamente se o conjunto de arquivos de kernel bos.mp ou bos.up estiverem no nível 4.3.3.77. Execute o comando lslpp -l bos.ip bos.mp para determinar o nível de correção do kernel. Recomenda-se que todos os clientes Java sendo executados no AIX 4.3.3 façam o upgrade para 4.3.3.78. Há uma correção disponível que fará o upgrade do kernel para o nível sugerido. Será necessário obter a correção para o APAR (Authorized Problem Analysis Report) IY25282. Instalar a correção para IY25282 corrigirá a condição de interrupção de Java. Uma outra correção será liberada no primeiro trimestre de 2002, utilizando o APAR número IY26149. Observe que o AIX 5.1C é fornecido com IY25377, que contém a mesma correção. Para obter mais informações e dicas, entre em contato com o Suporte do AIX. ------------------------------------------------------------------------ 2.14 O db2stop Trava nos Sistemas Operacionais AIX 5 em Decorrência de um Problema do NFS Se você estiver utilizando o AIX 5, o comando db2stop poderá travar se seu sistema possuir um grande número de partições de bancos de dados. Uma alternativa para esse problema é parar cada partição separadamente com a opção NODENUM do comando db2stop. O problema é corrigido pelo AIX APAR IY32512. ------------------------------------------------------------------------ Notas sobre a Documentação On-line (HTML, PDF e Pesquisa) ------------------------------------------------------------------------ 3.1 Navegadores da Web Suportados no Sistema Operacional Windows 2000 Recomendamos a utilização do Microsoft Internet Explorer no Windows 2000. Caso você utilize o Netscape, atente para o seguinte: * A conclusão das pesquisas de informações on-line do DB2 pode demorar no Windows 2000 utilizando 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 você altere o foco clicando em outra janela após enviar a pesquisa. Os resultados da pesquisa, então, retornarão em um período razoável de tempo. * Você poderá observar que a ajuda on-line será exibida de forma correta inicialmente em uma janela do navegador Netscape, mas não aparecerá se você tentar acessá-la de uma parte diferente do Centro de Controle sem antes fechar a janela do navegador. Se você fechar a janela do navegador e solicitar ajuda novamente, a ajuda correta surgirá. Você pode resolver esse problema seguindo essas etapas em 3.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 3.4, Mensagens de Erro na Tentativa de Lançar o Netscape. ------------------------------------------------------------------------ 3.2 Pesquisando Informações On-line do DB2 no Solaris Operating Environment Se você estiver tendo problemas ao pesquisar informações on-line do DB2 nos ambientes operacionais Solaris, verifique os parâmetros de kernel do seu 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. ------------------------------------------------------------------------ 3.3 Comutando o NetQuestion pelo OS/2 para Utilizar 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 ------------------------------------------------------------------------ 3.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 de 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 "Abrir" 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 utilizado 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 você 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 "abrir" 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 utilizado 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. Dê um 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. ------------------------------------------------------------------------ 3.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. Esses 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 Essa 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 comandos para definir o ambiente de aplicativo do Acrobat Reader. Para informações adicionais, contacte a Adobe Systems (http://www.Adobe.com). ------------------------------------------------------------------------ 3.6 Referência a SQL É Fornecida em um Arquivo PDF O apêndice "Utilizando a Biblioteca do DB2" em cada publicação indica que a SQL Reference está disponível no formato PDF como dois volumes separados. Isso está incorreto. Embora a publicação impressa 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, Migração e Configuração o 4.1 Fazendo Download dos Pacotes de Instalação para Todos os Clientes DB2 Suportados o 4.2 Tornando o DB2 EE ou o DB2 Connect EE Install Image Acessível no Linux no S/390 o 4.3 DB2 Connect - Informações sobre Apêndice Não-requeridas o 4.4 Instalando o DB2 no SuSE Linux o 4.5 Nível de Correção Adicional Requerido do Solaris Operating Environment o 4.6 Instalando o DB2 Enterprise-Extended Edition no AIX o 4.7 Etapas Adicionais de Instalação para Usuários AIX CICS o 4.8 Suporte ao Diretório LDAP no Netscape + 4.8.1 Estendendo o Esquema do LDAP no Netscape o 4.9 Suporte para Plataformas Windows ME, Windows XP e Windows 2000 Datacenter Edition + 4.9.1 Windows XP + 4.9.1.1 Limitações + 4.9.2 Windows ME + 4.9.2.1 Limitações + 4.9.3 Windows 2000 Datacenter Server o 4.10 Instalando o DB2 no Windows 95 o 4.11 Instalando o DB2 no Windows 2000 o 4.12 Executando o DB2 no Windows 2000 Terminal Server, Modo de Administração o 4.13 Suporte de Atualização do Microsoft SNA Server e SNA Multisite (Commit de Duas Fases) o 4.14 Definir o ID do Usuário e a Senha no IBM Communications Server para Windows NT (CS/NT) + 4.14.1 Definição do Nó o 4.15 A Instalação do DB2 Pode Ser Interrompida se uma Unidade Removível Não Estiver Conectada o 4.16 Erro SQL1035N ao Utilizar CLP no Windows 2000 o 4.17 Problema de Migração com Respeito às Exibições Definidas com os Registros Especiais o 4.18 Suporte ao Protocolo IPX/SPX no Windows 2000 o 4.19 Parando Processos do DB2 Antes de Fazer o Upgrade de uma Versão Anterior do DB2 o 4.20 Execução do db2iupdt Após a Instalação do DB2 se Outro Produto do DB2 Já Estiver Instalado o 4.21 Configurando o Ambiente Linux para Executar o Centro de Controle do DB2 o 4.22 DB2 Universal Database Enterprise Edition e DB2 Connect Enterprise Edition para Linux no S/390 o 4.23 Possível Perda de Dados no Linux para S/390 o 4.24 Integração do Desktop Gnome e KDE para DB2 no Linux o 4.25 Parâmetros de Configuração do Kernel do Solaris (Valores Recomendados) o 4.26 DB2 Universal Database Enterprise - Extended Edition para UNIX - Iniciação Rápida o 4.27 Parâmetro do Kernel shmseg para HP-UX o 4.28 Migrando Bancos de Dados de Controle do IBM Visual Warehouse o 4.29 Migrando Índices Exclusivos Utilizando o Comando db2uiddl o 4.30 Erro de Instalação da Versão AIX de 64 Bits + 4.30.1 Utilizando o SMIT o 4.31 Erros que Ocorreram Durante a Migração o 4.32 Ativação da Licença do IBM(R) DB2(R) Connect + 4.32.1 Instalando Sua Chave de Licença e Definindo o Tipo de Licença Utilizando o Centro de Licenças + 4.32.2 Instalando Sua Chave de Licença e Definindo o Tipo de Licença Utilizando o Comando db2licm + 4.32.3 Considerações sobre Licença para Instalações Distribuídas o 4.33 Acessando Bancos de Dados de Controle do Armazém o 4.34 IBM e-server p690 e DB2 UDB Versão 7 com AIX 5 o 4.35 Produtos para Teste em CD-ROMs UNIX Enterprise Edition o 4.36 Produtos para Teste em CD-ROMs UNIX do DB2 Connect Enterprise Edition o 4.37 Merant Driver Manager e o Driver ODBC do DB2 UDB Versão 7 no UNIX o 4.38 Configuração Adicional Necessária Antes da Instalação do Centro de Catálogos de Informações para a Web o 4.39 Informações de Suporte à Página de Códigos e Idioma - Correção * Iniciação Rápida do DB2 Data Links Manager o 5.1 Suporte no AIX 5.1 o 5.2 Dlfm Start Falha com a Mensagem: "Erro ao obter o afsfid para o prefixo" o 5.3 Definindo a Classe do Tivoli Storage Manager para Arquivos Archive o 5.4 Requisitos de Espaço em Disco para DFS Client Enabler o 5.5 Monitorando o Processo de Backend do Gerenciador de Arquivo do Data Links no AIX o 5.6 Instalando e Configurando o DB2 Data Links Manager para AIX: Considerações Adicionais sobre a Instalação em Ambientes DCE-DFS o 5.7 Falha do Comando "dlfm add_prefix" o 5.8 No Evento Raro em que o Daemon de Cópia Não Pára no dlfm stop o 5.9 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando o DB2 Data Links Manager no AIX Utilizando o Utilitário db2setup o 5.10 Instalando e Configurando o DB2 Data Links Manager para AIX: Tarefa de Pós-Instalação no DCE-DFS o 5.11 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando Manualmente o DB2 Data Links Manager Utilizando o Smit o 5.12 Instalando e Configurando o DB2 Data Links DFS Client Enabler o 5.13 Instalando e Configurando o DB2 Data Links Manager para Sistemas Operacionais Solaris o 5.14 Privilégios do Grupo de Administradores do Data Links no Windows NT o 5.15 Minimizar o Log para Instalação do DLFF (Data Links File System Filter) + 5.15.1 Registrando Mensagens Após a Instalação + 5.15.2 Minimizando o Registro em Sistemas Sun Solaris o 5.16 Restauração de DATALINK o 5.17 Eliminar o Data Links Manager o 5.18 Desinstalar os Componentes do DLFM Utilizando o SMIT Pode Remover Conjuntos de Arquivos Adicionais o 5.19 Antes de Iniciar/Determinar o Nome do Host o 5.20 Trabalhando com o DB2 Data Links File Manager: Limpando Após a Eliminação de um DB2 Data Links Manager de um Banco de Dados DB2 o 5.21 Ação do Usuário para a Falha do dlfm Client_conf o 5.22 DLFM1001E (Nova Mensagem de Erro) o 5.23 Opção do Arquivo de Configuração DLFM o 5.24 Problema Potencial ao Restaurar Arquivos o 5.25 Erro ao Executar o Script dmapp_prestart de Data Links/DFS no AIX o 5.26 Integração do Tivoli Space Manager com o Data Links + 5.26.1 Restrições e Limitações o 5.27 Capítulo 4. Instalando e Configurando o DB2 Data Links Manager para AIX + 5.27.1 Considerações Comuns de Instalação + 5.27.1.1 Migrando do DB2 File Manager Versão 5.2 para o DB2 Data Links Manager Versão 7 o 5.28 Capítulo 6. Verificando a Instalação no AIX + 5.28.1 Soluções Alternativas em Ambientes NFS * Suplemento de Instalação e Configuração o 6.1 Capítulo 5. Instalando os Clientes DB2 em Sistemas Operacionais UNIX + 6.1.1 Parâmetros de Configuração do Kernel do HP-UX o 6.2 Capítulo 12. Executando Seus Próprios Aplicativos + 6.2.1 Efetuando a Vinculação dos Utilitários de Banco de Dados Utilizando o Run-Time Client + 6.2.2 Acesso de Clientes UNIX ao DB2 Utilizando ODBC o 6.3 Capítulo 24. Configurando um Sistema Federado para Acessar Várias Fontes de Dados + 6.3.1 Sistemas Federados + 6.3.2 FixPak 8 ou Superior Requerido se Estiver Utilizando as Origens de Dados do DB2 Versão 8 + 6.3.3 Restrição + 6.3.4 Instalando o DB2 Relational Connect + 6.3.4.1 Instalando o DB2 Relational Connect em Servidores Windows NT + 6.3.4.2 Instalando o DB2 Relational Connect em Servidores UNIX + 6.3.5 Capítulo 24. Configurando um Sistema Federado para Acessar Várias Fontes de Dados + 6.3.5.1 Compreendendo o Esquema Utilizado com Pseudônimos + 6.3.5.2 Problemas ao Restaurar um Banco de Dados Federado em um Servidor Federado Diferente o 6.4 Capítulo 26. Acessando Origens de Dados do Oracle + 6.4.1 Erros da Documentação o 6.5 Evitando Problemas ao Trabalhar com LOBs Remotos o 6.6 Acessando Origens de Dados do Sybase + 6.6.1 Incluindo Origens de Dados do Sybase em um Servidor Federado + 6.6.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil (apenas AIX e Solaris) + 6.6.1.2 Etapa 2: Ligar DB2 ao Software do Cliente Sybase (Apenas AIX e Solaris Operating Environment) + 6.6.1.3 Etapa 3: Reciclar a Instância do DB2 (Apenas AIX e Solaris Operating Environment) + 6.6.1.4 Etapa 4: Criar e Configurar um Arquivo de Interfaces + 6.6.1.5 Etapa 5: Criar o Wrapper + 6.6.1.6 Etapa 6: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM + 6.6.1.7 Etapa 7: Criar o Servidor + 6.6.1.8 Etapa 8: Opcional: Definir a Opção do Servidor CONNECTSTRING + 6.6.1.9 Etapa 9: Criar um Mapeamento do Usuário + 6.6.1.10 Etapa 10: Criar Pseudônimos para Tabelas e Exibições + 6.6.2 Especificando as Páginas de Códigos do Sybase o 6.7 Acessando as Origens de Dados do Microsoft SQL Server Utilizando ODBC (Novo Capítulo) + 6.7.1 Incluindo Origens de Dados do Microsoft SQL Server em um Servidor Federado + 6.7.1.1 Etapa 1: Definir as Variáveis de Ambiente (apenas AIX) + 6.7.1.2 Etapa 2: Executar o Script de Shell (apenas AIX) + 6.7.1.3 Etapa 3: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM (apenas AIX) + 6.7.1.4 Etapa 4: Reciclar a Instância do DB2 (apenas AIX) + 6.7.1.5 Etapa 5: Criar o Wrapper + 6.7.1.6 Etapa 6: Criar o Servidor + 6.7.1.7 Etapa 7: Criar um Mapeamento do Usuário + 6.7.1.8 Etapa 8: Criar Pseudônimos para Tabelas e Exibições + 6.7.1.9 Etapa 9: Opcional: Obter Rastreios do ODBC + 6.7.2 Revendo Páginas de Código do Microsoft SQL Server (apenas Windows NT) o 6.8 Acessando Origens de Dados do Informix (Novo Capítulo) + 6.8.1 Incluindo Origens de Dados do Informix em um Servidor Federado + 6.8.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil + 6.8.1.2 Etapa 2: Ligar o DB2 ao Software Informix Client + 6.8.1.3 Etapa 3: Reciclar a Instância do DB2 + 6.8.1.4 Etapa 4: Criar o Arquivo sqlhosts do Informix + 6.8.1.5 Etapa 5: Criar o Wrapper + 6.8.1.6 Etapa 6: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM + 6.8.1.7 Etapa 7: Criar o Servidor + 6.8.1.8 Etapa 8: Criar um Mapeamento do Usuário + 6.8.1.9 Etapa 9: Criar Pseudônimos para Tabelas, Exibições e Sinônimos do Informix ------------------------------------------------------------------------ Informações Gerais sobre Instalação, Migração e Configuração ------------------------------------------------------------------------ 4.1 Fazendo Download dos Pacotes de Instalação para Todos os Clientes DB2 Suportados Para fazer download de pacotes de instalação de todos os clientes DB2 suportados, que incluem todos os clientes anteriores à Versão 7, conecte-se ao Web site IBM DB2 FixPaks and Clients em http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/download.d2w/report. ------------------------------------------------------------------------ 4.2 Tornando o DB2 EE ou o DB2 Connect EE Install Image Acessível no Linux no S/390 Antes de prosseguir com as instruções relativas a essa instalação, conforme abordado nos manuais de Iniciação Rápida, crie um arquivo tar a partir do conteúdo do CD utilizando o comando tar -cvf e coloque-o em uma máquina que seja acessível a partir da máquina S/390. ------------------------------------------------------------------------ 4.3 DB2 Connect - Informações sobre Apêndice Não-requeridas Os valores Y de mapeamento da lista para plataformas no apêndice do manual Iniciação Rápida do DB2 Connect "Arquivos da Lista, Arquivos de Ligação e Pacotes" não são necessários e devem ser desconsiderados. ------------------------------------------------------------------------ 4.4 Instalando o DB2 no SuSE Linux Desconsidere a seção "Instalando o DB2 no SuSE Linux" do Capítulo 4 do DB2 Universal Database para UNIX-Iniciação Rápida. O pré-requisito descrito nessa seção não é mais necessário. ------------------------------------------------------------------------ 4.5 Nível de Correção Adicional Requerido do Solaris Operating Environment O DB2 Universal Database Versão 7 para Solaris Operating Environment Versão 2.6 requer a correção 106285-02 ou superior, em complemento às correções relacionadas na publicação DB2 para UNIX Iniciação Rápida. ------------------------------------------------------------------------ 4.6 Instalando o DB2 Enterprise-Extended Edition no AIX A Etapa 4 da seção Executando a Instalação do manual do DB2 Enterprise-Extended Edition Iniciação Rápida para UNIX afirma que você deve alocar um sistema de arquivos de CD-ROM digitando o seguinte comando: crfs -v cdrfs -p ro -d cd0 Para que esse comando seja concluído com êxito, você também deve especificar o ponto de montagem, utilizando o comando --m. crfs -v cdrfs -p ro -d cd0 -m /cdrom Há também uma etapa faltando na seção Executando a Instalação. Depois da Etapa 5, montagem do sistema de arquivos de CD-ROM na estação de trabalho de controle, cada nó que participará de seu sistema de banco de dados particionado deverá montar remotamente o sistema de arquivos de CD-ROM. Supondo que /cdrom ainda não existe nos nós participantes, utilize os seguintes comandos para exportar e montar remotamente o sistema de arquivos /cdrom na estação de trabalho de controle: exportfs -i -o ro /cdrom dsh mkdir /cdrom dsh mount cws_hostname: /cdrom /cdrom em que cws_hostname é o nome do host da estação de trabalho de controle. ------------------------------------------------------------------------ 4.7 Etapas Adicionais de Instalação para Usuários AIX CICS Se você estiver instalando o DB2 UDB ou qualquer FixPak do DB2 UDB em um sistema AIX CICS, você deve executar as seguintes etapas adicionais após a instalação. Essas etapas estão detalhadas no CICS/6000 Administration Guide, na seção "Configuration steps for Database 2": 1. Criar um objeto compartilhado do DB2 UDB para AIX da biblioteca libdb2.a. 2. Construir um arquivo switchload do DB2 e colocá-lo no diretório especificado pela definição XA para o banco de dados. 3. Se você estiver utilizando o COBOL em seu ambiente, então execute novamente a ferramenta cocsmkcobol. ------------------------------------------------------------------------ 4.8 Suporte ao Diretório LDAP no Netscape O DB2 suporta a utilização de um diretório LDAP para a administração central e consolidação de diretórios de banco de dados e nós. Em releases anteriores do DB2, apenas o Microsoft Active Directory e o IBM SecureWay Directory eram suportados. Agora, o DB2 também suporta os seguintes Servidores LDAP: Netscape Directory Server v4.12 ou posterior, iPlanet(TM) Directory Server 5.0 ou posterior. 4.8.1 Estendendo o Esquema do LDAP no Netscape As instruções a seguir são para o Netscape Directory Server 4.1: O Netscape Directory Server permite que aplicativos estendam o esquema incluindo definições de classe de objeto e de atributo nos dois arquivos a seguir: slapd.user_oc.conf e slapd.user_at.conf. Esses dois arquivos estão localizados no diretório \slapd-\config. Os atributos do DB2 devem ser incluídos em slapd.user_at.conf da seguinte forma Nota: Nesse contexto, bin, cis, ces e dn correspondem a binário, cadeia sem distinção entre maiúsculas e minúsculas, cadeia com distinção entre maiúsculas e minúsculas e nome distinto, respectivamente. : ############################################################################ # # IBM DB2 Universal Database V7.2 # Attribute Definitions # ############################################################################ attribute binProperty 1.3.18.0.2.4.305 bin attribute binPropertyType 1.3.18.0.2.4.306 cis attribute cesProperty 1.3.18.0.2.4.307 ces attribute cesPropertyType 1.3.18.0.2.4.308 cis attribute cisProperty 1.3.18.0.2.4.309 cis attribute cisPropertyType 1.3.18.0.2.4.310 cis attribute propertyType 1.3.18.0.2.4.320 cis attribute systemName 1.3.18.0.2.4.329 cis attribute db2nodeName 1.3.18.0.2.4.419 cis attribute db2nodeAlias 1.3.18.0.2.4.420 cis attribute db2instanceName 1.3.18.0.2.4.428 cis attribute db2Type 1.3.18.0.2.4.418 cis attribute db2databaseName 1.3.18.0.2.4.421 cis attribute db2databaseAlias 1.3.18.0.2.4.422 cis attribute db2nodePtr 1.3.18.0.2.4.423 dn attribute db2gwPtr 1.3.18.0.2.4.424 dn attribute db2additionalParameters 1.3.18.0.2.4.426 cis attribute db2ARLibrary 1.3.18.0.2.4.427 cis attribute db2authenticationLocation 1.3.18.0.2.4.425 cis attribute db2databaseRelease 1.3.18.0.2.4.429 cis attribute DCEPrincipalName 1.3.18.0.2.4.443 cis As classes de objeto do DB2 devem ser incluídas no arquivo slapd.user_oc.conf da seguinte forma: ############################################################################ # # IBM DB2 Universal Database V7.2 # Object Class Definitions # ############################################################################ objectclass eProperty oid 1.3.18.0.2.6.90 requires objectClass allows cn, propertyType, binProperty, binPropertyType, cesProperty, cesPropertyType, cisProperty, cisPropertyType objectclass eApplicationSystem oid 1.3.18.0.2.6.8 requires objectClass, systemName objectclass DB2Node oid 1.3.18.0.2.6.116 requires objectClass, db2nodeName allows db2nodeAlias, host, db2instanceName, db2Type, description, protocolInformation objectclass DB2Database oid 1.3.18.0.2.6.117 requires objectClass, db2databaseName, db2nodePtr allows db2databaseAlias, description, db2gwPtr, db2additionalParameters, db2authenticationLocation, DCEPrincipalName, db2databaseRelease, db2ARLibrary Depois de incluir a definição de esquema do DB2, o Directory Server deverá ser iniciado novamente para ativar todas as alterações. ------------------------------------------------------------------------ 4.9 Suporte para Plataformas Windows ME, Windows XP e Windows 2000 Datacenter Edition O DB2 agora suporta plataformas Microsoft Windows ME, Windows XP e Windows 2000 Datacenter Edition. A seguir, informações adicionais por plataforma específica. 4.9.1 Windows XP Os seguintes produtos e versões suportam Windows XP de 32 bits quando instalado com FixPak 4 ou posterior: * IBM DB2 UDB Personal Edition 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 Connect Personal Edition Versão 7.2 * IBM DB2 Connect Enterprise Edition Versão 7.2 * IBM DB2 UDB Workgroup Edition Versão 7.2 * IBM DB2 UDB Enterprise Edition Versão 7.2 * IBM DB2 Run-Time Client Versão 7.2 * IBM DB2 Administration Client Versão 7.2 * IBM DB2 Application Development Client Versão 7.2 O DB2 suporta os mesmos idiomas nacionais em sistemas Windows XP e em outras versões. 4.9.1.1 Limitações Ao inserir IDs de usuários e senhas durante a instalação, você pode receber uma mensagem indicando que uma conta de usuário inserida no painel de instalação não é válida, mesmo que seja válida. Isso somente ocorrerá com IDs de usuários que existam na máquina. Você não deve ter esse problema se digitar nomes de usuários que não existam ainda. Se você optar por instalar o DB2 sob qualquer outra conta de usuário que não seja db2admin, você deve assegurar-se de que o nome de conta esteja de acordo com as regras de nomenclatura do DB2. É da máxima importância que o nome não contenha quaisquer espaços em branco. Por exemplo meu_nome é aceitável, mas meu nome não é. Se você receber o erro 1052 durante a instalação do produto, faça o seguinte: 1. Deixe a janela de erro aberta. 2. Abra uma janela de comandos. 3. Execute o comando db2start.exe. 4. Execute o comando especificado na janela de erro, utilizando a senha especificada para o usuário mostrada na linha de comandos. 5. Retorne à janela de erro e clique em OK. A instalação continuará agora. Se você estiver utilizando chinês simplificado e verificar que fontes no Centro de Controle não são exibidas corretamente, modifique o sqllib\java\java12\jdk\jre\lib\font.properties.zh substituindo a entrada filename.\u5b8b\u4f53=simsun.ttf por filename.\u5b8b\u4f53=simsun.ttc. 4.9.2 Windows ME Os seguintes produtos e versões suportam Windows ME quando instalado com FixPak 2 ou posterior: * IBM DB2 UDB Personal Edition Versão 7.1 * IBM DB2 Personal Developer's Edition Versão 7.1 * IBM DB2 Universal Developer's Edition Versão 7.1 * IBM DB2 Connect Personal Edition Versão 7.1 * IBM DB2 Run-Time Client Versão 7.1 * IBM DB2 Administration Client Versão 7.1 * IBM DB2 Application Development Client Versão 7.1 4.9.2.1 Limitações A capacidade do HTML Search Server não é suportada no Window ME neste momento Ao desinstalar o DB2, você pode receber uma mensagem de erro indicando que o arquivo MFC42U.DLL não pode ser encontrado. Para desinstalar o DB2 completamente, exclua manualmente o diretório sqllib depois que a atividade de desinstalação for concluída. 4.9.3 Windows 2000 Datacenter Server Os seguintes produtos DB2 são certificados para Windows 2000 Datacenter Server, Windows 2000 Advanced Server e Windows 2000 Server: * IBM DB2 Universal Database Enterprise - Extended Edition Versão 7.2 * IBM DB2 Universal Database Enterprise Edition 7.2 * IBM DB2 Database Workgroup Edition Versão 7.2 * IBM DB2 Connect Enterprise Edition Versão 7.2 ------------------------------------------------------------------------ 4.10 Instalando o DB2 no Windows 95 Se você estiver instalando o DB2 em um sistema Windows 95 que não seja em inglês, será necessário atualizar manualmente sua versão do Winsock para Winsock 2 antes de instalar o DB2 UDB. O utilitário de upgrade Winsock 2 está disponível na Microsoft. ------------------------------------------------------------------------ 4.11 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". ------------------------------------------------------------------------ 4.12 Executando o DB2 no Windows 2000 Terminal Server, Modo de Administração Para DB2 UDB Versão 7.1, FixPak 3 e posterior, o DB2 pode ser executado no Windows 2000 Terminal Server, Modo de Administração. Antes disso, o DB2 suportava apenas o modo Servidor de Aplicativos do Servidor de Terminal Windows 2000. ------------------------------------------------------------------------ 4.13 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 utilizando aconsolidação 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 utilizando o DB2 UDB para Windows podem usar a consolidação de duas fases SNA através do Microsoft SNA Server Versão 4 Service Pack 3 ou posterior. ------------------------------------------------------------------------ 4.14 Definir o ID do Usuário e a Senha no IBM Communications Server para Windows NT (CS/NT) Se você estiver utilizando o APPC como o protocolo de comunicação para que os clientes do DB2 remoto possam se conectar ao servidor do DB2 e estiver utilizando o CS/NT como o produto SNA, verifique se as palavras-chave a seguir foram definidas corretamente no arquivo de configuração CS/NT. Esse arquivo é comumente encontrado no diretório x:\ibmcs\private. 4.14.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 um ID do Usuário e uma senha no CS/NT. VERIFY_EVEN_IF_NOT_DEFINED Este 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 o ID do Usuário e a senha no CS/NT. Para definir o ID do Usuário e a senha CS/NT, execute as seguintes etapas: 1. Iniciar --> Programas --> Servidor de Comunicações IBM --> Configuração de nó SNA. A janela Bem-vindo à 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. Clique em Finalizar. A Janela Nó SNA do Servidor de Comunicações é aberta. 4. Clique em [+] junto ao CPI-C e APPC. 5. Clique em [+] junto ao LU6.2 Security. 6. Clique com o botão direito do mouse em Senhas de Usuários e selecione Criar. A janela Definir uma Senha de ID do Usuário é aberta. 7. Preencha o ID do usuário e a senha. Clique em OK. Clique em Concluir para aceitar as alterações. ------------------------------------------------------------------------ 4.15 A Instalação do DB2 Pode Ser Interrompida 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 esse problema, execute a configuração, especificando a opção -a: setup.exe -a ------------------------------------------------------------------------ 4.16 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. ------------------------------------------------------------------------ 4.17 Problema 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 utilizado 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 dados CHAR(8) mas, a partir da Versão 6, eles foram definidos como VARCHAR(128). Nesse 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 run-time, 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='<>' ------------------------------------------------------------------------ 4.18 Suporte ao Protocolo IPX/SPX no Windows 2000 Estas informações se referem ao capítulo Planejando para Instalação na publicação Iniciação Rápida, 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 utilizando IPX/SPX não é suportado. O mesmo ocorre para qualquer cliente baseado em OS/2 ou UNIX conectado a um servidor Windows utilizando IPX/SPX. ------------------------------------------------------------------------ 4.19 Parando Processos do DB2 Antes de Fazer o Upgrade de uma Versão Anterior do DB2 Estas informações se refem às informações de migração na publicação Iniciação Rápida do DB2 para Windows. Se você estiver fazendo o upgrade de 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 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 a publicação Iniciação Rápida adequada para obter informações adicionais sobre a migração a partir de versões anteriores do DB2. ------------------------------------------------------------------------ 4.20 Execução do 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 manual Iniciação Rápida. 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 fazer o upgrade dessas 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. ------------------------------------------------------------------------ 4.21 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" na publicação Iniciação Rápida. 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 Centro de Controle do DB2: 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 em que você está conectado como o ID de proprietário da instância e digite o comando: db2cc para iniciar o Centro de Controle. ------------------------------------------------------------------------ 4.22 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, esteja ciente dos requisitos de software e hardware: Hardware S/390 9672 Geração 5 ou posterior, Multiprise 3000. Software * SuSE SLES-7 com as correções relacionadas a seguir ou Turbolinux Server 6 * kernel nível 2.2.16, com correções para S/390 (veja a seguir) * glibc 2.1.3 * libstdc++ 6.1 (incluído no pacote compat.rpm) As seguintes correções serão necessárias para o Linux no S/390: * SLES-7-PatchCD-1-s390-20020522.iso Para obter as últimas atualizações sobre softwares suportados para sistemas S/390 Linux, visite o Web site http://www.ibm.com/db2/linux/validate. 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 para Linux/390 no DB2 Versão 7: o DB2 UDB Enterprise - Extended Edition o DB2 Extenders o DB2 Data Links Manager o DB2 Administrative Client o Suporte de Alteração da Senha o Suporte LDAP o TSM o Utilização de dispositivos simples ------------------------------------------------------------------------ 4.23 Possível Perda de Dados no Linux para S/390 Ao 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. Limitar 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 o Linux no Intel. Uma correção de kernel estará disponível no site IBM developerworks, depois da qual será possível utilizar mais de um 1 GB de RAM. ------------------------------------------------------------------------ 4.24 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 as ferramentas do DB2 mais comumente utilizadas nos desktops Gnome e KDE para distribuições Linux baseadas em Intel suportadas. Esses utilitários são instalados, por padrão, pelo DB2 Versão 7.2 e podem ser utilizados após a instalação para criar e remover ícones do desktop de um ou mais usuários selecionados. Para incluir um conjunto de ícones do desktop para um ou mais usuários, utilize o seguinte comando: db2icons [ ...] Nota: Observe que, se os ícones forem gerados enquanto um ambiente de desktop Gnome ou KDE estiver sendo executado, o usuário poderá precisar forçar um upgrade 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 apenas se for usuário root ou outro usuário com autoridade para gravar nos diretórios principais de usuários especificados. ------------------------------------------------------------------------ 4.25 Parâmetros de Configuração do Kernel do Solaris (Valores Recomendados) A seção Antes de Começar no capítulo sistema Solaris do DB2 para UNIX - Iniciação Rápida e DB2 Enterprise - Extended Edition para UNIX - Iniciação Rápida fornece parâmetros recomendados de configuração do kernel do Solaris. A seguinte tabela fornece recomendações adicionais de parâmetro de configuração do kernel para sistemas com mais de 512 MB de memória real. Tabela 1. Parâmetros de Configuração do Kernel do Solaris (Valores Recomendados) Parâmetro Kernel 512 MB-1 GB 1 GB-4 GB 4 GB+ msgsys:msginfo_msgmax 65.535 65.535 65.535 msgsys:msginfo_msgmnb 65.535 65.535 65.535 msgsys:msginfo_msgmap 514 1.026 2.050 msgsys:msginfo_msgmni 512 1.024 2.048 msgsys:msginfo_msgssz 16 32 64 msgsys:msginfo_msgtql 1.024 2.048 4.096 msgsys:msginfo_msgseg 32.767 32.767 32.767 shmsys:shminfo_shmmax 483.183.820 - 966.367.641 - 3.865.470.566 - 966.367.641 3.865.470.566 4.294.967.296 shmsys:shminfo_shmseg 50 100 200 shmsys:shminfo_shmmni 300 1.024 2.048 semsys:seminfo_semmni 1.024 2.048 4.198 semsys:seminfo_semmap 1.026 2.050 4.096 semsys:seminfo_semmns 2.048 4.096 8.192 semsys:seminfo_semmnu 2.048 4.096 8.192 semsys:seminfo_semume 50 50 50 Notas: 1. O limite do parâmetro shmsys:shminfo_shmmax é de 4 GB para sistemas de 32 bits. 2. Os parâmetros msgsys:msginfo_msgmnb e msgsys:msginfo_msgmax devem ser definidos para 65.535 ou mais. 3. O parâmetro msgsys:msginfo_msgseg não deve ser definido com valor superior a 32.767. 4. Os parâmetros shmsys:shminfo_shmmax devem ser definidos com o valor sugerido na tabela acima ou com valor igual a 90% da memória física (em bytes), o que for mais alto. Por exemplo, se você tiver 196 MB de memória física em seu sistema, defina o parâmetro shmsys:shminfo_shmmax para 184.968.806 (196*1024*1024*0,9). ------------------------------------------------------------------------ 4.26 DB2 Universal Database Enterprise - Extended Edition para UNIX - Iniciação Rápida O 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 a partir doseguinte Web site: http://www6.software.ibm.com/dl/db2udbdl/db2udbdl-p ------------------------------------------------------------------------ 4.27 Parâmetro do Kernel shmseg para HP-UX As informações sobre a atualização dos parâmetros de configuração do kernel do HP-UX fornecidas na publicação Iniciação Rápida estão incorretas. O valor recomendado para o parâmetro de kernel shmseg para HP-UX deve ser ignorado. Em vez dele, o valor padrão do HP-UX (120) deve ser utilizado. ------------------------------------------------------------------------ 4.28 Migrando Bancos de Dados de Controle do IBM Visual Warehouse A publicação, DB2 Universal Databasepara Windows - Iniciação Rápida fornece informações sobre como o banco de dados de controle do armazém 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 armazém, deverá usar a janela Gerenciamento do Banco de Dados de Controle do Armazém para fazer a migração dos bancos de dados adicionais. Somente um banco de dados de controle do armazém 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 Data Warehouse Center, utilize a janela Gerenciamento do Banco de Dados de Controle do Armazém para registrar o banco de dados que pretende usar. ------------------------------------------------------------------------ 4.29 Migrando Índices Exclusivos Utilizando o Comando db2uiddl No capítulo Tarefas de Migração de Pós-Instalação do DB2 das publicações do DB2 - Iniciação Rápida, em Tarefas Opcionais de Pós-Migração, encontra-se a afirmação de que é necessário utilizar o comando db2uiddl para migrar índices exclusivos do DB2 versão 5.x e DB2 versão 6. Isso não está correto. A migração de índices exclusivos utilizando o comando db2uiddl é requerida apenas se você estiver migrando de uma versão de DB2 anterior à versão 5. ------------------------------------------------------------------------ 4.30 Erro de Instalação da Versão AIX de 64 Bits Ao utilizar db2setup para instalar uma imagem do DB2 no AIX de 64 bits em um sistema operacional AIX existente, assegure-se de que você esteja utilizando versões compatíveis do AIX ou a instalação falhará. Imagens do DB2 no AIX Versão 5 não podem ser instaladas em um sistema operacional AIX Versão 4 existente. De forma semelhante, a instalação de uma imagem do DB2 no AIX Versão 4 de 64 bits em um sistema operacional AIX Versão 5 existente também resultará em um erro de instalação. Durante a tentativa de instalar versões incompatíveis do AIX de 64 bits, o utilitário db2setup encontrará a incompatibilidade de versões em uma verificação de pré-requisitos, resultando em uma mensagem de erro como a seguinte: DBI1009E Incompatibilidade entre a mídia de instalação e a versão do AIX. Para evitar esse erro, assegure-se de que esteja instalando a versão correta do AIX de 64 bits. 4.30.1 Utilizando o SMIT Se você utilizar o SMIT, receberá um erro indicando que o DB2 do AIX Versão 4 está sendo substituído pelo DB2 do AIX Versão 5, entretanto, o inverso não ocorrerá. Portanto, os usuários do AIX Versão 5 de 64 bits devem assegurar-se de que estejam instalando a versão correta. Se o db2setup puder ser lançado sem uma mensagem de erro, a verificação de compatibilidade da versão do AIX será bem-sucedida. Nota: Esse erro de incompatibilidade não se aplica a versões do AIX de 32 bits. ------------------------------------------------------------------------ 4.31 Erros que Ocorreram Durante a Migração Durante a migração, entradas de erros no arquivo db2diag.log (banco de dados não-migrado) aparecem mesmo quando a migração tem êxito e podem ser ignoradas. Ao utilizar o Gerenciamento de Banco de Dados de Controle de Armazém, os erros são registrados no diretório SQLLIB\LOGGING. Os arquivos IWH2RGn.LOG contêm todas as informações sobre erros. Se ocorrer um erro, corrija o erro, exclua o banco de dados de controle e inicie novamente. No caso de um banco de dados de controle existente, isso significa que você precisa utilizar a cópia de backup. ------------------------------------------------------------------------ 4.32 Ativação da Licença do IBM(R) DB2(R) Connect Os programas de instalação para o DB2 Connect Enterprise Edition, DB2 Connect Unlimited Edition e DB2 Connect Web Starter Kit não instalam as licenças do produto. Após a instalação, esses produtos operarão no Modo de Avaliação por um período de 90 dias, já que eles não possuem os arquivos de licença. Depois do prazo de 90 dias, o produto instalado não funcionará mais, a menos que você ative a licença adequada. Para ativar a licença para o seu produto você pode utilizar o Centro de Licenças do DB2 ou o comando db2licm. 4.32.1 Instalando Sua Chave de Licença e Definindo o Tipo de Licença Utilizando o Centro de Licenças 1. Inicie o DB2 Control Centere selecione Centro de Licenças no menu Ferramentas. 2. Selecione o sistema para o qual você está instalando uma licença. O campo Produtos Instalados exibirá o nome do produto que você instalou. 3. Selecione Incluir no menu Licença. 4. Na janela Incluir Licença, selecione o botão de opção A partir de um arquivo e selecione um arquivo de licença: o Em servidores Windows: x:\db2\license\connect\license_filename em que x: representa a unidade de CD-ROM contendo o CD do produto DB2 Connect. o Em servidores UNIX: /db2/license/connect/license_filename em que o license_filename para DB2 Connect Enterprise Edition e DB2 Connect Unlimited Edition é db2conee.lic e para o DB2 Connect Web Starter Kit é db2consk.lic. 5. Clique em Aplicar para incluir a chave de licença. 6. Definindo o tipo de licença. o Para o DB2 Connect Unlimited Edition e o DB2 Connect Web Starter Kit: No Centro de Licenças, selecione Alterar no menu Licença. Na janela Alterar Licença, selecione a caixa de opções Utilização controlada. Clique em OK para fechar a janela Alterar Licença e retornar para o Centro de Licenças. Nota: Para o DB2 Connect Web Starter Kit, assegure-se de que a data de expiração esteja definida para 270 dias a partir do dia em que você instalou o produto. o Para o DB2 Connect Enterprise Edition: No Centro de Licenças, selecione Alterar no menu Licença. Na janela Alterar Licença, selecione o tipo de licença comprado. + Se você comprou uma licença de Usuários Simultâneos, selecione Usuários simultâneos do DB2 Connect e digite o número de licenças de usuário que você comprou. Nota: O DB2 Connect Enterprise Edition oferece uma licença para um usuário. Licenças de usuário adicionais do DB2 Connect devem ser adquiridas separadamente. + Se você comprou uma licença de Usuários Registrados, selecione Usuários registrados do DB2 Connect e clique em OK para fechar a janela Alterar Licença e retornar para o Centro de Licenças. Clique na guia Usuários e inclua todos os IDs de usuário para os quais você comprou uma licença. 4.32.2 Instalando Sua Chave de Licença e Definindo o Tipo de Licença Utilizando o Comando db2licm Você pode utilizar o comando db2licm para incluir a chave de licença ao invés de utilizar o Centro de Licenças. Para incluir sua chave de licença utilizando o comando db2licm: 1. Em servidores Windows, insira o seguinte comando: db2licm -a x:\db2\license\connect\license_filename em que x: representa a unidade de CD-ROM que contém o CD do produto DB2 Connect. Em servidores UNIX, insira o seguinte comando: db2licm -a db2/license/connect/license_filename em que license_filename para o DB2 Connect Enterprise Edition e o DB2 Connect Unlimited Edition é db2conee.lic e para o DB2 Connect Web Starter Kit é db2consk.lic. Nota: Para o DB2 Connect Web Starter Kit, assegure-se de que a data de expiração esteja definida para 270 dias a partir do dia em que você instalou o produto. 2. Definindo o tipo de licença: o Para o DB2 Connect Unlimited Edition e o DB2 Connect Web Starter Kit: Digite o seguinte comando: db2licm -p db2conee measured o Para o DB2 Connect Enterprise Edition: Se você comprou as licenças de Usuário Atual, digite os seguintes comandos: db2licm -p db2conee concurrent db2licm -u N em que N representa o número de licenças de usuário simultâneas que foram compradas. Se você comprou licenças de Usuário Registrado, digite o comando a seguir: db2licm -p db2conee registered 4.32.3 Considerações sobre Licença para Instalações Distribuídas Se estiver criando uma imagem para uma instalação distribuída, você precisará fazer disposições especiais para instalar a licença após a instalação. Inclua os comandos db2licm descritos acima em seus scripts de instalação distribuída. ------------------------------------------------------------------------ 4.33 Acessando Bancos de Dados de Controle do Armazém Em uma instalação típica do DB2 Versão 7 no Windows NT, um banco de dados de controle do armazém do DB2 Versão 7 é criado juntamente com o servidor do armazém. Se você tiver um banco de dados de controle do armazém do Visual Warehouse, deverá atualizar o servidor do DB2 que contém o banco de dados de controle do armazém para o DB2 Versão 7 antes que os metadados do banco de dados de controle do armazém possam ser migrados para uso pelo Data Warehouse Center do DB2 Versão 7.1. Você deve migrar quaisquer bancos de dados de controle de armazém que deseja continuar utilizando para a Versão 7. Os metadados do banco de dados de controle do armazém ativo são migrados para a Versão 7 durante o processo de instalação do DB2 Versão 7. Para migrar os metadados de todos os bancos de dados adicionais de controle do armazém, utilize o utilitário Migração do Banco de Dados de Controle do Armazém, que você inicia com a seleção de Iniciar --> Programas --> DB2 IBM --> Gerenciamento do Banco de Dados de Controle do Armazém no Windows NT. Para obter informações sobre a migração dos bancos de dados de controle do armazém, consulte a publicação DB2 Universal Database para Windows - Iniciação Rápida. ------------------------------------------------------------------------ 4.34 IBM e-server p690 e DB2 UDB Versão 7 com AIX 5 FixPak 6 no nível mínimo do DB2 UDB Versão 7 requerido para uso com o IBM e-server p690 em um sistema operacional AIX 5. ------------------------------------------------------------------------ 4.35 Produtos para Teste em CD-ROMs UNIX Enterprise Edition Os CD-ROMs do DB2 UDB (Universal Database), EE (Enterprise Edition) para plataformas UNIX Versão 6 e 7 contêm uma versão de teste do DB2 CEE (Connect Enterprise Edition), 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 fazer o upgrade 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 na publicação DB2 EE ou DB2 CEE para UNIX - Iniciação Rápida. Se você tiver instalado o produto CEE para teste juntamente com a instalação do EE e não desejar 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 Solaris Operating Environment, 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 Solaris Operating Environment, 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. ------------------------------------------------------------------------ 4.36 Produtos para Teste em CD-ROMs UNIX do DB2 Connect Enterprise Edition Os CD-ROMs do DB2 Connect EE (Enterprise Edition) para plataformas UNIX Versão 6 e 7 contêm uma versão de teste do DB2 UDB (Universal Database) EE (Enterprise Edition), 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 fazer o upgrade 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 na publicação 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 desejar 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 Solaris Operating Environment, 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 Solaris Operating Environment, 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. ------------------------------------------------------------------------ 4.37 Merant Driver Manager e o Driver ODBC do DB2 UDB Versão 7 no UNIX Foram encontradas incompatibilidades com o suporte ao Unicode quando o Merant Driver Manager acessa o driver de ODBC do DB2 no UNIX. Essas incompatibilidades resultaram no uso do Unicode pelo Merant Driver Manager independente do aplicativo solicitar seu uso. Isso pode acarretar problemas em produtos como o Data Warehouse Center, Information Catalog Manager e MQSI que requerem que o Merant Driver Manager suporte origens de dados não-IBM. Você pode utilizar uma biblioteca do driver ODBC do DB2 alternativa sem suporte Unicode ativado até que uma solução permanente esteja disponível. As versões afetadas do DB2 UDB incluem a Versão 7.1 com FixPak 2 ou posterior e Versão 7.2 em qualquer nível de FixPak. Uma biblioteca do driver DB2 ODBC alternativa sem suporte Unicode ativado foi enviada com o DB2 Versões 7.1 e 7.2 para AIX, HP-UX e Solaris Operating Environment. Para utilizar essa biblioteca alternativa, você deve criar uma cópia dela e dar à cópia o nome da biblioteca de drivers ODBC do DB2 original. Nota: A clibrary (_36) alternativa contém as funções de Unicode requeridas pelo cdriver de JDBC do DB2. A utilização dessa biblioteca ainda permitirá que aplicativos JDBC, incluindo o WebSphere Application Server, funcionem corretamente com o DB2. Para mudar para a biblioteca ODBC não-Unicode no AIX, HP-UX ou Solaris Operating Environment, consulte as seguintes instruções. Como esse é um processo manual, você deverá executá-lo sempre que fizer o upgrade de seu produto, incluindo a pós-aplicação de FixPaks sucessivos. AIX Para criar a biblioteca necessária no AIX: 1. Como o proprietário da instância, encerre todas as instâncias do banco de dados utilizando db2stop force. 2. Como o ID da instância admin, encerre a instância do servidor de administração utilizando db2admin stop force. 3. Faça backup do db2.o original em /usr/lpp/db2__/lib. 4. Como root, emita slibclean. 5. Copie db2_36.o para db2.o, assegurando-se de que a propriedade e as permissões permaneçam consistentes. Utilize os seguintes comandos: cp db2_36.o db2.o -r--r--r-- bin:bin for db2.o Para voltar ao objeto original, siga o mesmo procedimento utilizando o arquivo de backup em vez de db2_36.o. Solaris Operating Environment Para criar a biblioteca necessária: 1. Como o proprietário da instância, encerre todas as instâncias do banco de dados utilizando db2stop force. 2. Como o ID da instância admin, encerre a instância do servidor de administração utilizando db2admin stop force. 3. Faça backup do libdb2.so.1 original em /opt/IBMdb2/V./lib. 4. Copie libdb2_36.so.1 para libdb2.so.1, assegurando-se de que a propriedade e as permissões permaneçam consistentes. Utilize os seguintes comandos: cp libdb2_36.so.1 libdb2.so.1 -r-xr-xr-x bin:bin libdb2.so.1 5. Emita db2iupdt para cada instância do banco de dados e dasiupt para a instância DAS. Para voltar ao objeto original, siga o mesmo procedimento utilizando o arquivo de backup em vez de libdb2_36.so.1. HP-UX - Disponível Apenas para o FixPak 4 ou Posterior. Você deve instalar o FixPak 4 ou posterior antes de tentar essa solução alternativa. Para criar a biblioteca necessária no HP-UX: 1. Encerre todas as instâncias do banco de dados utilizando db2stop force. 2. Encerre a instância do servidor de administração utilizando db2admin stop force. 3. Faça backup do libdb2.sl original em /opt/IBMdb2/V./lib. 4. Copie o libdb2_36.sl para libdb2.sl, verificando se a propriedade e as permissões permanecem consistentes. Utilize o seguinte comando para garantir a consistência: -r-xr-xr-x bin:bin for libdb2.sl 5. Emita db2iupdt para cada instância do banco de dados e dasiupdt para a instância DAS. Para mudar novamente para o objeto original, siga o mesmo procedimento utilizando o arquivo de backup em vez do libdb2_36.sl. Outros Sistemas Operacionais UNIX Se você precisar de assistência com o DB2 e o Merant Driver Manager em outros sistemas operacionais UNIX, entre em contado com o Suporte IBM. ------------------------------------------------------------------------ 4.38 Configuração Adicional Necessária Antes da Instalação do Centro de Catálogos de Informações para a Web Antes de instalar o Centro de Catálogos de Informações para a Web, você deve copiar o arquivo dg_strings.hti para o idioma que está sendo instalado no diretório /sqllib/icuweb/macro. Você pode encontrar o arquivo dg_strings.hti no diretório do idioma correspondente. Uma lista de códigos de idiomas pode ser encontrada no apêndice NLS dos Manuais de Iniciação Rápida e na maioria das demais documentações do DB2. ------------------------------------------------------------------------ 4.39 Informações de Suporte à Página de Códigos e Idioma - Correção A tabela de Suporte à Página de Códigos e Idioma no apêndice NLS (Suporte a Idioma Nacional) dos manuais de Iniciação Rápida contém os seguintes erros: * O título da coluna, "Código de País", deve ser "Código de País/Região" * O título da coluna, "Idioma", deve ser "Idioma/Script" * O código para Eslovênia é "sl" e não "si", conforme indicado na tabela ------------------------------------------------------------------------ Iniciação Rápida do DB2 Data Links Manager ------------------------------------------------------------------------ 5.1 Suporte no AIX 5.1 Os componentes do DB2 Data Links File Manager e File Filter agora são completamente suportados no AIX 5.1. Todas as ferramentas e instruções associadas ao Data Links e anteriormente suportadas em releases anteriores do AIX agora são totalmente suportadas e aplicáveis no AIX 5.1. ------------------------------------------------------------------------ 5.2 Dlfm Start 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. ------------------------------------------------------------------------ 5.3 Definindo a Classe do Tivoli Storage Manager para Arquivos 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. ------------------------------------------------------------------------ 5.4 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 do espaço em disco obrigatório de 2 MB 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 Run-Time Client 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 informações adicionais sobre os requisitos de espaço em disco para os produtos DB2 Universal Database, consulte a publicação DB2 para UNIX Iniciação Rápida. ------------------------------------------------------------------------ 5.5 Monitorando o Processo de Backend do Gerenciador de Arquivo do Data Links no AIX Existe uma alteração feita à saída do comando dlfm see. Quando esse comando é emitido para monitorar os processos de backend 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, nesse caso "dlfm". ------------------------------------------------------------------------ 5.6 Instalando e Configurando o DB2 Data Links Manager para AIX: Considerações Adicionais sobre a 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 é utilizado 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 quaisquer 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, esse 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. ------------------------------------------------------------------------ 5.7 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 isso 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 root 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. ------------------------------------------------------------------------ 5.8 No Evento Raro em que o Daemon de Cópia Não Pára no dlfm stop Isso 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 isso ocorrer, emita o encerramento dlfm antes de tentar reiniciar o dlfm. ------------------------------------------------------------------------ 5.9 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando o DB2 Data Links Manager no AIX Utilizando 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. Isso 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 do seguinte modo: 2. Comandos são incluídos para /opt/dcelocal/tcl/user_cmd.tcl, para garantir que o DMAPP seja iniciado quando o DFS é inicializado. ------------------------------------------------------------------------ 5.10 Instalando e Configurando o 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 "Instalando e Configurando o DB2 Data Links Manager para AIX". 2. Como root, digite os seguintes comandos para iniciar o DMAPP: stop.dfs all start.dfs all 3. Execute "dlfm setup" utilizando credenciais root do dce, como a seguir: a. Efetue login como administrador do Gerenciador de Data Links, DLMADMIN. b. Como root, emita dce_login. c. Digite o comando: dlfm setup. No cliente Data Links Manager, 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 "Instalando e Configurando o DB2 Data Links Manager para AIX". 2. Como root, digite os seguintes comandos para iniciar o DMAPP: stop.dfs all start.dfs all ------------------------------------------------------------------------ 5.11 Instalando e Configurando o DB2 Data Links Manager para AIX: Instalando Manualmente o DB2 Data Links Manager Utilizando 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. Essa 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 "Instalando e Configurando o DB2 Data Links Manager para AIX". 2. Como root, digite os seguintes comandos para iniciar o DMAPP: stop.dfs all start.dfs all ------------------------------------------------------------------------ 5.12 Instalando e Configurando o DB2 Data Links DFS Client Enabler Na seção "Configurando o 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 de PERMISSÃO DE LEITURA DB, reinicialize a máquina na qual o DB2 DFS Client Enabler acabou de ser instalado. ------------------------------------------------------------------------ 5.13 Instalando e Configurando o DB2 Data Links Manager para Sistemas Operacionais Solaris As seguintes ações devem ser executadas após a instalação do DB2 Data Links Manager para Sistemas Operacionais 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 o ID do usuário do id dlfm. 2. Reinicialize a máquina para ativar as alterações. ------------------------------------------------------------------------ 5.14 Privilégios do Grupo de Administradores do Data Links no Windows NT No Windows NT, o usuário dlmadmin possui os mesmos privilégios com relação aos arquivos ligados utilizando DataLinks, que um usuário root no UNIX para a maioria das funções. A seguinte tabela compara ambos. Operação Unix (root) Windows NT (dlmadmin) Renomear Sim Sim Acessar arquivo sem token Sim 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 leitura. O usuário dlmadmin pode tornar essas operações bem-sucedidas ativando a permissão de gravação para o arquivo. ------------------------------------------------------------------------ 5.15 Minimizar o Log para Instalação do DLFF (Data Links File System Filter) Você pode minimizar o log para a Instalação do DLFF (Data Links File System Filter) 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 - 0 1 em que: 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 Este é um parâmetro configurável no driver DLFS. Ele define a lista das categorias de mensagens que serão registradas no arquivo de log do sistema. global module priority Este é um parâmetro configurável no driver DLFS. Ele define a lista de rotinas do driver, operações VFS e operações Vnode que serão registradas no arquivo de log do sistema. 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 você precisar de mensagens de emergência e de 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 você 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 você 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 5.15.1 Registrando Mensagens Após a Instalação Se você precisar registrar mensagens de emergência, de erro e de resoluçã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 resoluçã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. 5.15.2 Minimizando o Registro em Sistemas Sun Solaris O arquivo dlfs_cfg não existe em sistemas Sun(TM) Solaris(TM). Em vez disso, o arquivo de sistema /etc/syslog.conf contém as informações utilizadas pelo daemon de registro no sistema (syslogd) para enviar uma mensagem de sistema aos arquivos de registro apropriados. Você pode minimizar o registro à Instalação do DLFF desabilitando as entradas para kern.notice e kern.debug em /etc/syslog.conf. Você deve, então, parar e iniciar syslogd para fazer com que suas alterações tenham efeito. Para reativar o registro de todos os avisos e erros do kernel, você deve reabilitar as entradas para kern.notice e kern.debug em /etc/syslog.conf e, então, parar e iniciar syslogd novamente. ------------------------------------------------------------------------ 5.16 Restauração de DATALINK A restauração de qualquer backup off-line que foi tomado após uma restauração de banco de dados, com ou sem extensão, 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 DRP (Datalink Reconcile Pending). ------------------------------------------------------------------------ 5.17 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/espaço de tabela/banco de dados). ------------------------------------------------------------------------ 5.18 Desinstalar os Componentes do DLFM Utilizando 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 root, faça uma cópia de /etc/vfs utilizando o comando: cp -p /etc/vfs /etc/vfs.bak 2. Desinstale o DB2. 3. Como root, substitua /etc/vfs pela cópia de backup feita na etapa 1: cp -p /etc/vfs.bak /etc/vfs ------------------------------------------------------------------------ 5.19 Antes de Iniciar/Determinar o Nome do Host Você deve determinar os nomes de cada um dos servidores DB2 e Data Links. Será necessário saber esses nomes de host para verificar a instalação. Ao conectar-se com um DB2 Data Links File Manager, o servidor DB2 UDB envia internamente as seguintes informações para o DLFM: * Nome do banco de dados * Nome da instância * Palavra-chave HOSTNAME Em seguida, o DLFM compara essas informações com suas tabelas internas para determinar se a conexão deve ser permitida. Ele permitirá 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 de host utilizado no comando dlfm add_db deve corresponder exatamente ao nome de host enviado internamente pelo servidor DB2 UDB. Utilize o nome de host exato obtido como a seguir: 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, em que 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, em que 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 Sistema Operacional 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 Data Links é 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 Data Links. Qualquer alias válido do servidor Data Links pode ser utilizado nesse comando. Os valores de DATALINK que são referências para esse servidor Data Links devem especificar o nome do host no valor do URL, isso é, 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 causará a falha da instrução SQL. ------------------------------------------------------------------------ 5.20 Trabalhando com o DB2 Data Links File Manager: Limpando Após a Eliminação de 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. Isso 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 sendo 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. Efetue logon no sistema como administrador do DB2 Data Links Manager. 2. Emita o seguinte comando: dlfm drop_dlm database instance hostname em que: database é o nome do banco de dados UDB DB2 remoto; instance é a instância na qual o banco de dados reside e hostname é o nome do host do servidor UDB DB2 no qual o banco de dados reside. 3. Efetue logoff. Para obter uma situação de uso completa que mostra o conteúdo no qual esse comando deve ser utilizado, consulte a publicação Referência de Comandos. Foi criado um novo código de erro para esse comando (consulte a seção 5.22, DLFM1001E (Nova Mensagem de Erro)). ------------------------------------------------------------------------ 5.21 Ação do Usuário para a Falha do dlfm Client_conf Se, em 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. ------------------------------------------------------------------------ 5.22 DLFM1001E (Nova Mensagem de Erro) DLFM1001E: Erro no processamento de drop_dlm. Motivo: O DB2 Data Links Manager não pôde iniciar o processo de remoção de link e coleta de lixo para o banco de dados especificado. Isso pode ocorrer devido a um dos seguintes motivos: * O DB2 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 do DB2 Data Links Manager. Ação: Execute as seguintes etapas: 1. Assegure-se de que o DB2 Data Links Manager esteja executando. Inicie o DB2 Data Links Manager se ele não estiver executando ainda. 2. Verifique se a combinação de banco de dados, instância e nome do host identifica um banco de dados registrado. Você pode fazer isso utilizando o comando "dlfm list registered databases" no DB2 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. ------------------------------------------------------------------------ 5.23 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. ------------------------------------------------------------------------ 5.24 Problema Potencial ao Restaurar Arquivos Problema: Quando diferentes versões do mesmo arquivo estão ligadas a um banco de dados em momentos diferentes, o daemon Retrieve do DLFM (Data Links File Manager) não recupera a versão correta do arquivo de um archive quando o banco de dados é restaurado. Background: Quando um banco de dados é restaurado a partir de uma imagem de backup, os arquivos que estavam ligados àquela imagem de backup também são restaurados no sistema de arquivos DLFS (Data Links Manager) a partir do archive. Aqui está um exemplo de como funciona o processo de recuperação e restauração do DB2 Data Links Manager. * Se os atributos de horário e de tamanho da última modificação e de tamanho da versão atual de um arquivo em disco são diferentes dos atributos do arquivo a ser restaurado do archive, o arquivo atual em disco é tratado como uma versão diferente do arquivo. O arquivo atual em disco é salvo como filename.MOD e a versão original do arquivo a partir do archive DLFM é restaurada. Por exemplo, se o nome do arquivo atual for abc, então abc é copiado para abc.MOD. * Se os atributos de horário e de tamanho da última modificação do arquivo atual em disco forem iguais àqueles do arquivo a ser restaurado do archive, o daemon Retrieve do Data Links assume que o arquivo não foi modificado e não restaurará a versão do arquivo a partir do archive. Importante: É possível modificar um arquivo e não alterar os atributos de horário e de tamanho da última modificação. Essas "modificações ocultas" são feitas ao se fazer uma alteração que não afete o tamanho do arquivo e, então, redefinir-se o atributo de horário da última modificação para aquele do arquivo original. Exemplo: Suponha que você tenha um banco de dados chamado DBTEST e ele contenha uma tabela com uma coluna DATALINK. Você, então, executará as seguintes tarefas, na ordem listada: 1. Crie um arquivo chamado fileA em um volume montado em DLFS. Essa é a primeira versão do arquivo. 2. Insira a referência fileA (um URL) no banco de dados DBTEST. 3. Faça backup do banco de dados DBTEST. 4. Exclua a referência fileA do banco de dados DBTEST. 5. Exclua fileA do volume montado em DLFS. 6. Crie outro arquivo chamado fileA no volume montado em DLFS. Essa é a segunda versão do arquivo. 7. Insira a referência fileA (um URL) no banco de dados DBTEST. 8. Restaure o banco de dados DBTEST a partir da imagem de backup. O Daemon DLFM Retrieve copia a segunda versão do fileA para fileA.MOD, em seguida copia a primeira versão do fileA do archive no volume montado em DLFS como a versão de funcionamento do fileA. No entanto, se ambas as versões de fileA tiverem os mesmos atributos de horário e de tamanho da última modificação, o Daemon Retrieve do DLFM não faz nada, porque ele assume que os arquivos têm, na verdade, a mesma versão. O resultado é que a segunda versão do arquivo -- em vez da primeira versão -- permanece no volume montado em DLFS. Você não restaurou verdadeiramente o sistema de arquivos no mesmo estado em que estava no momento do backup. Solução: Assegure-se de que seu aplicativo não substitua um arquivo por uma nova versão daquele arquivo com os mesmo atributos (horário e tamanho da última modificação). ------------------------------------------------------------------------ 5.25 Erro ao Executar o Script dmapp_prestart de Data Links/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. ------------------------------------------------------------------------ 5.26 Integração do Tivoli Space Manager com o Data Links O DB2 Data Links Manager conseguirá agora aproveitar a funcionalidade do Tivoli Space Manager. O programa cliente do HSM (Hierarchical Storage Manager) 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 efetua automaticamente nova chamada de arquivos migrados quando eles são acessados e permite que usuários migrem e chamem de volta arquivos específicos. O pré-requisito para essa funcionalidade é o Tivoli Space Manager Versão 4.2. 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 do 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 ambos os suportes, Data Links e HSM, em um sistema de arquivos Quando você registrar um sistema de arquivos com o HSM (Hierarchical Storage Management), 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 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 o suporte Data Links em um sistema de arquivos HSM existente Registre com o DLM, utilizando o comando "dlfmfsmd /fs". Incluindo o suporte HSM em um sistema de arquivos 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 Data Links-HSM Remova o suporte Data Links, utilizando o comando "dlfmfsmd -j /fs". Removendo o suporte HSM de um sistema de arquivos Data Links-HSM 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 os suportes Data Links e HSM de um sistema de arquivos Data Links-HSM 1. Remova o suporte HSM, utilizando o comando "dsmmigfs remove /fs". 2. Remova o suporte Data Links, utilizando o comando "dlfmfsmd -j /fs". 5.26.1 Restrições e Limitações Essa função é atualmente suportada apenas no AIX. A migração seletiva (dsmmigrate) e a chamada de volta de um arquivo ligado ao FC (DB com permissão de leitura) devem ser feitas apenas por um usuário root. 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 DataLink Manager Administrator (dlfm). Para acessar esses arquivos, é necessário um token do lado do banco de dados do host. O único usuário que não requer um token é o usuário "root". Será mais fácil para um usuário "root" executar a migração seletiva e a chamada de volta em arquivos DB de Permissão de Leitura. O usuário dlfm pode migrar um arquivo FC utilizando um token válido apenas na primeira vez. A segunda migração é tentada (após uma chamada de volta), a operação falhará com a mensagem de erro "ANS1028S Erro de programa interno. Consulte o representante de serviço". Não será bem-sucedido executar o dsmmigrate em um arquivo FC através de um usuário não-root. Essa limitação é secundária, à medida que os administradores acessarão 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 esteja 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 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. ------------------------------------------------------------------------ 5.27 Capítulo 4. Instalando e Configurando o DB2 Data Links Manager para AIX 5.27.1 Considerações Comuns de Instalação 5.27.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 administrador DLFM, execute o comando /usr/lpp/db2_07_01/adm/db2dlmmg. ------------------------------------------------------------------------ 5.28 Capítulo 6. Verificando a Instalação no AIX 5.28.1 Soluções Alternativas em Ambientes NFS Esta seção descreve as soluções alternativas para problemas conhecidos ao executar o DB2 Data Links Manager para AIX em ambientes NFS que não aparecem na documentação atual. Esses problemas são específicos do NFS e não têm nada a ver com o DB2 Data Links Manager ou DB2 Universal Database. Problemas adicionais de armazenamento em cache do NFS Dois caches diferentes são mantidos no cliente NFS para AIX. O cliente NFS mantém um cache com atributos de arquivos e diretórios acessados recentemente. O cliente também suporta, opcionalmente, um cache de dados para armazenamento em cache do conteúdo dos arquivos no cliente. Às vezes, o processo de armazenamento em cache do atributo produz uma condição incomum em um cliente NFS depois do estabelecimento de link de um arquivo READ PERMISSION DB. Às vezes, os usuários podem acessar um arquivo de PERMISSÃO DE LEITURA DB sem um token de controle de acesso se esses usuários estavam conectados à máquina antes do arquivo ter sido ligado. Utilize um dos seguintes métodos para reduzir a probabilidade de acesso não-autorizado ao arquivo: o Utilize o comando touch no arquivo antes de executar a instrução SQL INSERT para definir o link. o Utilize o comando touch no diretório que contém o arquivo. o Utilize o comando mount com um dos cinco parâmetros de configuração de cache do atributo (actimeo, acregmin, acregmax, acdirmin, acdirmax) para minimizar o tempo que os atributos armazenados em cache ficam retidos depois que um arquivo ou diretório é modificado. Provavelmente, você observará acesso não-autorizado de arquivos READ PERMISSION DB durante o teste de funcionamento do Data Links, uma vez que apenas um arquivo foi estabelecido com link e há pouca atividade do NFS. É menos provável que você encontre esse cenário em um ambiente de produção, uma vez que a atividade do NFS é intensa e o cache de atributos do NFS normalmente não retém os atributos para todos os arquivos com link estabelecido. ------------------------------------------------------------------------ Suplemento de Instalação e Configuração ------------------------------------------------------------------------ 6.1 Capítulo 5. Instalando os Clientes DB2 em Sistemas Operacionais UNIX 6.1.1 Parâmetros de Configuração do Kernel do HP-UX A recomendação para definição de parâmetros do kernel do 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. ------------------------------------------------------------------------ 6.2 Capítulo 12. Executando Seus Próprios Aplicativos 6.2.1 Efetuando a Vinculação dos Utilitários de Banco de Dados Utilizando o Run-Time Client O Run-Time Client não pode ser utilizado para fazer a vinculação dos utilitários de banco de dados (importar, exportar, reorganizar, o processador da linha de comandos) e o DB2 CLI faz a vinculação 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 de preferência. Você deve fazer a vinculação desses utilitários de banco de dados e dos arquivos de vinculação 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 utilizando múltiplos clientes que executam em diferentes sistemas operacionais, em diferentes versões ou níveis de serviço do DB2, você deve fazer a vinculação dos utilitários uma vez para cada sistema operacional e para a combinação da versão do DB2. 6.2.2 Acesso de Clientes UNIX ao DB2 Utilizando 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. Isso está parcialmente incorreto. Você não precisará atualizar o odbcinst.ini se instalar um produto Merant ODBC Driver Manager. ------------------------------------------------------------------------ 6.3 Capítulo 24. Configurando um Sistema Federado para Acessar Várias Fontes de Dados 6.3.1 Sistemas Federados Um sistema federado do DB2 é um tipo especial de DBMS (Distributed Database Management System). Um sistema federado permite que você consulte e recupere os dados localizados em outros DBMSs. Uma única instrução SQL pode referir-se a vários DBMSs ou banco de dados individuais. 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. Um sistema federado DB2 consiste em um servidor com instância do DB2, um banco de dados que servirá como banco de dados federado e uma ou mais origens de dados. O banco de dados federado contém entradas de catálogos que identificam as origens de dados e suas características. Uma origem de dados consiste em um DBMS e em dados. As origens de dados suportadas incluem: * Oracle * Sybase * Microsoft SQL Server * Informix * Membros da família do DB2 Universal Database (como DB2 para OS/390, DB2 para AS/4000 e DB2 para Windows) Os servidores federados DB2 Universal Database comunicam-se e recuperam dados das origens de dados utilizando protocolos chamados wrappers. O wrapper que você utiliza depende do sistema operacional no qual a instância do DB2 está sendo executada. Pseudônimos são utilizados para identificar as tabelas e exibições localizadas nas origens de dados. Os aplicativos podem conectar-se ao banco de dados federado exatamente como qualquer outro banco de dados DB2 e consultar as origens de dados utilizando pseudônimos como se fossem tabelas ou exibições no banco de dados federado. Após a configuração de um sistema federado, as informações nas origens de dados podem ser acessadas como se os dados estivessem em um único banco de dados local. Os usuários e aplicativos enviam consultas para o banco de dados federado, que recupera dados das origens de dados. Um sistema federado do DB2 opera sob 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 enviar as instruções DDL e DML diretamente aos DBMSs, utilizando o dialeto do SQL associado a essa origem de dados. 6.3.2 FixPak 8 ou Superior Requerido se Estiver Utilizando as Origens de Dados do DB2 Versão 8 Para criar pseudônimos com êxito para as tabelas e exibições do DB2 para UNIX e Windows Versão 8, você deverá aplicar o Fixpak 8 do DB2 para UNIX e Windows Versão 7.2 ao banco de dados federado do DB2 para UNIX e Windows Versão 7.2. Se você não aplicar o Fixpak 8 ao banco de dados federado do DB2 para UNIX e Windows Versão 7.2, ocorrerá um erro quando os pseudônimos forem acessados. 6.3.3 Restrição Os novos wrappers na Versão 7.2 (como Informix no AIX, HP e Solaris; Oracle no Linux, HP e Solaris Operating Environment; Sybase no AIX e Sistemas Operacionais Solaris; e Microsoft SQL Server no AIX e NT) não estão disponíveis neste FixPak; você deve adquirir o DB2 Relational Connect Versão 7.2. 6.3.4 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. O Relational Connect é obrigatório para acessar as origens de dados do Oracle, Sybase, Microsoft SQL Server e Informix. O DB2 Relational Connect não é obrigatório para acessar membros da família do DB2 Universal Database. Antes de Instalar o DB2 Relational Connect: * Certifique-se de ter o DB2 Universal Database Enterprise Edition ou o DB2 Universal Database Enterprise -- Extended Edition instalado no servidor federado. No DB2 para servidores UNIX: Se você pretende incluir os bancos de dados da família do DB2 nos pedidos distribuídos, deverá ter selecionado a opção de origens 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 que o software cliente da origem de dados esteja instalado no servidor federado. 6.3.4.1 Instalando o DB2 Relational Connect em Servidores Windows NT 1. Efetue logon no servidor federado com a conta de usuário que você criou para executar a instalação do DB2 Universal Database. 2. Encerre todos os programas que estão em execução para que o programa de configuração possa atualizar os arquivos conforme necessário. 3. Solicite o programa de configuração. Você pode chamar 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, chame o programa de configuração manualmente. o Para chamar automaticamente o programa de configuração: a. Insira o CD do DB2 Relational Connect na unidade. b. O recurso de execução automática inicia automaticamente o programa de configuração. O idioma do sistema é determinado e o programa de configuração para esse idioma é lançado. o Para chamar 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 em que: x Representa a unidade de CD-ROM. language Representa o código de país/região de seu idioma (por exemplo, EN para inglês). c. 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 avisos no programa de configuração. Quando a instalação estiver concluída, o DB2 Relational Connect será instalado no diretório juntamente com os outros produtos do DB2. Por exemplo, a biblioteca wrapper para o software cliente Oracle NET8 (net8.dll) será instalada no diretório c:\Program Files\SQLLIB\bin. 6.3.4.2 Instalando o DB2 Relational Connect em Servidores UNIX Para instalar o DB2 Relational Connect no servidor federado UNIX, utilize o utilitário db2setup. Nota: As telas que aparecem quando você usa o utilitário db2setup dependem do que já está instalado no servidor federado. Estas etapas pressupõem que o Relational Connect não esteja instalado. 1. Efetue login como um usuário com autoridade root. 2. Insira e instale o CD-ROM do produto do DB2. Para obter informações sobre como instalar um CD-ROM, consulte DB2 para UNIX - Iniciação Rápida. 3. Mude para o diretório em que o CD-ROM está montado, digitando o comando cd /cdrom, em que cdrom é o ponto de montagem do CD-ROM do produto. 4. Digite o comando ./db2setup. Após alguns instantes, a janela Instalar DB2 V7 é aberta. Essa janela lista os itens atualmente instalados e os itens que estão disponíveis para instalação. 5. Navegue até a junção distribuída que você deseja instalar, como Junção Distribuída para Origens de Dados Informix e pressione a barra de espaço para selecioná-la. Aparece um asterisco perto da opção, quando ela for selecionada. 6. Selecione OK. A janela Criar o DB2 Services é aberta. 7. Como o servidor federado já contém uma instância do DB2, escolha a opção Não criar uma instância do DB2 e selecione OK. 8. Aparecerá um aviso se você tiver escolhido não criar um Servidor de Administração. Selecione OK. A janela Utilitário de Configuração do DB2 exibe um Relatório de Resumo do que será instalado. Como você não instalou o Relational Connect antes, deverá haver dois itens listados: o a assinatura do produto para o DB2 Relational Connect o a junção distribuída para a origem de dados selecionada 9. Escolha Continuar. Aparece uma janela para indicar que é a sua chance final para parar a configuração do Relational Connect. Escolha OK para continuar com a configuração. A conclusão da configuração pode levar alguns segundos. 10. A janela Utilitário de Configuração do DB2 exibe um Relatório de Status que indica quais componentes foram instalados com êxito. Escolha OK. A janela Utilitário de Configuração do DB2 é aberta. Escolha Fechar e, em seguida, OK para sair do utilitário. Quando a instalação estiver concluída, o DB2 Relational Connect será instalado no diretório juntamente com os outros produtos do DB2. o No DB2 para servidores AIX, o diretório é /usr/lpp/db2_07_01. o No DB2 para servidores Solaris Operating Environment, o diretório é /opt/IBMdb2/V7.1. o No DB2 para servidores HP-UX, o diretório é /opt/IBMdb2/V7.1. o No DB2 para servidores Linux, o diretório é /usr/IBMdb2/V7.1. 6.3.5 Capítulo 24. Configurando um Sistema Federado para Acessar Várias Fontes de Dados 6.3.5.1 Compreendendo o Esquema Utilizado com Pseudônimos O parâmetro do pseudônimo em uma instrução CREATE NICKNAME é um nome duplo--o esquema e o pseudônimo. Se você omitir o esquema ao criar o pseudônimo, o esquema do pseudônimo será authid do usuário que estiver criando o pseudônimo. Depois da criação de um pseudônimo, as informações sobre o pseudônimo são armazenadas nas exibições de catálogo SYSCAT.TABLES, SYSCAT.TABOPTIONS, SYSCAT.COLUMNS, SYSCAT.COLOPTIONS e SYSCAT.INDEXES. 6.3.5.2 Problemas ao Restaurar um Banco de Dados Federado em um Servidor Federado Diferente Ao restaurar o backup de um banco de dados federado em um servidor federado diferente, a imagem do banco de dados não contém as informações do novo banco de dados e do diretório dó nó necessárias para acessar as origens de dados da família do DB2. Você deve catalogar essas informações ao executar a restauração. ------------------------------------------------------------------------ 6.4 Capítulo 26. Acessando Origens de Dados do Oracle Além de suportar os wrappers no AIX e no Windows NT, o DB2 Universal Database agora suporta o wrapper do Oracle no Linux, no Solaris Operating Environment e no HP-UX. Esse suporte é limitado ao Oracle Versão 8. Para acessar os wrappers nessas plataformas, você precisa inserir o CD V7.2 DB2 Relational Connect e selecionar as origens de dados Distributed Join para Oracle. Quando você tiver instalado o DB2 Relational Connect, poderá incluir uma origem de dados do Oracle em um servidor federado: 1. Instale e configure o software do cliente Oracle no servidor federado do DB2. 2. Para servidores federados do DB2 em UNIX, execute o script djxlink para ligar e editar bibliotecas Oracle SQL*Net ou Net8 em seu servidor federado DB2 e criar a biblioteca wrapper federada do DB2 para utilização com o Oracle. 3. Crie (ou atualize) o arquivo db2dj.ini para incluir variáveis de ambiente para o Oracle. Esse arquivo deve conter uma definição para a variável de ambiente ORACLE_HOME. 4. (Opcional) Defina as variáveis de registro de perfil DB2_DJ_INI e DB2_DJ_COMM. 5. Verifique a localização e o conteúdo dos arquivos Oracle tnsnames.ora no servidor federado DB2 e teste as conexões ao servidor Oracle utilizando Oracle sqlplus. 6. Recicle a instância do DB2. 7. Crie o wrapper. 8. Crie uma definição de servidor. 9. Crie um mapeamento do usuário. 10. Teste a configuração utilizando Set Passthru. 11. Crie pseudônimos para tabelas e exibições. As instruções detalhadas para essas 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. Essas informações também estão disponíveis on-line em http://www.ibm.com/software/data/db2/relconnect/. 6.4.1 Erros da Documentação A seção "Incluindo origens de dados Oracle em um Sistema federado" tem os seguintes erros: * Uma etapa adicional é necessária entre as etapas 2 e 3 na publicação. As três primeiras etapas devem ser as seguintes: 1. Instale e configure o software do cliente Oracle no servidor federado do DB2 utilizando a documentação fornecida pela Oracle. 2. Defina a variável de ambiente ORACLE_HOME: export ORACLE_HOME=. 3. Para servidores federados do DB2 em execução nas plataformas UNIX, execute o script djxlink para link-edit 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 Operating Environment /opt/IBMdb2/V7.1/bin HP-UX /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. 4. Defina variáveis de ambiente da origem 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, Configurando um Sistema Federado para Acessar Origens de Dados Oracle Suplemento de Instalação e Configuração do DB2, contém instruções detalhadas para as variáveis de ambiente. 5. Continue com as etapas a partir da etapa 3, conforme descrito na publicação. * A publicação sugere a seguinte definição: DB2_DJ_INI = sqllib/cfg/db2dj.ini Isso está incorreto e deve ser definido da seguinte maneira: DB2_DJ_INI = $INSTHOME/sqllib/cfg/db2dj.ini ------------------------------------------------------------------------ 6.5 Evitando Problemas ao Trabalhar com LOBs Remotos Ao trabalhar com colunas LOB remotas, pode ser encontrado um problema de falta de memória. Por exemplo, suponhamos que seja executada uma consulta que selecione dados LONG em uma coluna Oracle e insira os dados em uma tabela DB2 como um CLOB. Se você não tiver aumentado o tamanho de heap do aplicativo de banco de dados, você receberá um erro SQL indicando "memória insuficiente". Para resolver esse erro: 1. Desconecte todos os aplicativos da instância do DB2. 2. Atualize o tamanho de heap do aplicativo utilizando este comando: db2 udpate db cfg for dbname using APPLHEAPSZ 1024 em que dbname é o nome do banco de dados federado e 1024 é o tamanho de heap recomendado. 3. Reinicialize o banco de dados. Para prevenir contra a ocorrência desse problema, aumente o tamanho de heap de seu aplicativo de banco de dados. Para que essa alteração tenha efeito, reinicialize o banco de dados. Por exemplo: 1. Atualize o tamanho de heap do aplicativo utilizando este comando: db2 udpate db cfg for dbname using APPLHEAPSZ 1024 em que dbname é o nome do banco de dados federado e 1024 é o tamanho de heap recomendado. 2. Desconecte todos os aplicativos da instância do DB2. 3. Reinicialize o banco de dados. ------------------------------------------------------------------------ 6.6 Acessando Origens de Dados do Sybase Antes de incluir as origens de dados do Sybase em um servidor federado, é preciso instalar e configurar o software Sybase Open Client no servidor federado do DB2. Consulte os procedimentos de instalação na documentação que é fornecida com o software do banco de dados Sybase para obter detalhes específicos sobre como instalar o software Open Client. Como parte da instalação, certifique-se de que os procedimentos armazenados do catálogo Sybase sejam instalados no servidor Sybase e as bibliotecas Sybase Open Client sejam instaladas no servidor federado DB2. Depois de configurar a conexão do software cliente ao servidor Sybase, teste a conexão utilizando uma das ferramentas Sybase. Utilize a ferramenta isql para UNIX e a ferramenta SQL Advantage para Windows. Para configurar o servidor federado para acessar os dados armazenados nas origens de dados do Sybase, você precisa: 1. Instalar o DB2 Relational Connect Versão 7.2. Consulte a seção 6.3.4, Instalando o DB2 Relational Connect. 2. Incluir as origens de dados do Sybase em seu servidor federado. 3. Especificar as páginas de códigos do Sybase. Este capítulo discute as etapas 2 e 3. As instruções neste capítulo aplicam-se ao Windows NT, AIX e Solaris Operating Environment As diferenças específicas da plataforma são observadas onde elas ocorrem. 6.6.1 Incluindo Origens de Dados do Sybase em um Servidor Federado Para incluir uma origem de dados do Sybase em um servidor federado, você precisa: 1. Definir as variáveis de ambiente e atualizar o registro do perfil (apenas AIX e Solaris). 2. Ligar o DB2 ao Software cliente do sybase (apenas AIX e Solaris). 3. Reciclar a instância do DB2 (apenas AIX e Solaris). 4. Criar e configurar um arquivo de interfaces. 5. Criar o wrapper. 6. Opcional: Definir a variável de ambiente DB2_DJ_COMM. 7. Criar o Servidor. 8. Opcional: Definir a opção de servidor CONNECTSTRING. 9. Criar um mapeamento do usuário. 10. Criar pseudônimos para tabelas e exibições. Essas etapas são explicadas com detalhes nesta seção. 6.6.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil (apenas AIX e Solaris) Defina variáveis de ambiente da origem de dados modificando o arquivo db2dj.ini e emitindo o comando db2set. O arquivo db2dj.ini contém informações de configuração sobre o software do cliente Sybase instalado no servidor federado. O comando db2set atualiza o registro de perfil do DB2 com suas definições. Em um sistema do banco de dados particionado, você pode utilizar um único arquivo db2dj.ini para todos os nós em uma instância específica ou pode utilizar um único arquivo db2dj.ini para um ou mais nós em uma instância específica. Um sistema de banco de dados não-particionado pode ter apenas um arquivo db2dj.ini por instância. Para definir as variáveis de ambiente: 1. Edite o arquivo db2dj.ini localizado em sqllib/cfg e defina a seguinte variável de ambiente: SYBASE="" em que é o diretório no qual o cliente Sybase está instalado. 2. Emita o comando db2set para atualizar o registro do perfil do DB2 com suas mudanças. A sintaxe desse comando, db2set, é dependente da estrutura do sistema do banco de dados. Essa etapa será necessária apenas se você estiver utilizando o arquivo db2dj.ini em qualquer uma das seguintes estruturas do sistema do banco de dados: Se você estiver utilizando o arquivo db2dj.ini em um sistema de banco de dados não-particionado ou se você quiser que o arquivo db2dj.ini se aplique ao nó atual somente, emita: db2set DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini Se você estiver utilizando o arquivo db2dj.ini em um sistema do banco de dados particionado e se quiser que os valores no arquivo db2dj.ini se apliquem a todos os nós dentro dessa instância, emita: db2set -g DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini Se você estiver utilizando o arquivo db2dj.ini em um sistema do banco de dados particionado e se quiser que os valores no arquivo db2dj.ini se apliquem a um nó específico, emita: db2set -i INSTANCEX 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini em que: INSTANCEX É o nome da instância. 3 É o número do nó conforme listado no arquivo db2nodes.cfg. node3.ini É a versão modificada e renomeada do arquivo db2dj.ini. 6.6.1.2 Etapa 2: Ligar DB2 ao Software do Cliente Sybase (Apenas AIX e Solaris Operating Environment) Para permitir acesso às origens de dados do Sybase, o servidor federado do DB2 deve ser editado por link às bibliotecas do cliente. O processo de edição por link cria um wrapper para cada origem de dados com a qual o servidor federado irá se comunicar. Quando você executar o script djxlink, crie a biblioteca de wrappers. Para emitir o script djxlink, digite: djxlink 6.6.1.3 Etapa 3: Reciclar a Instância do DB2 (Apenas AIX e Solaris Operating Environment) Para assegurar-se de que as variáveis de ambiente estejam definidas no programa, recicle a instância do DB2. Quando você reciclar a instância, atualize a instância do DB2 para aceitar as alterações feitas. Emita os comandos a seguir, para reciclar a instância do DB2: No DB2 para servidores Windows NT: NET STOP instance_name NET START instance_name No DB2 para servidores AIX e Solaris: db2stop db2start 6.6.1.4 Etapa 4: Criar e Configurar um Arquivo de Interfaces Para criar e configurar um arquivo de interfaces, você deve criar o arquivo e torná-lo acessível. 1. Use o utilitário fornecido pelo Sybase para criar um arquivo de interfaces que inclui os dados para todos os Sybase Open Servers que você deseja acessar. Consulte a documentação da instalação do Sybase para obter mais informações sobre o uso desse utilitário. Tipicamente, o Windows NT nomeia esse arquivo como sql.ini. Renomeie o arquivo que você 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 como /sqllib/interfaces. 2. Torne o arquivo de interfaces acessível para DB2. No DB2 para servidores Windows NT: Coloque o arquivo no diretório %DB2PATH% da instância do DB2. No DB2 para servidores AIX e Solaris: Coloque o arquivo no diretório $HOME/sqllib da instância do DB2. Utilize o comando ln para ligar-se ao arquivo do diretório $HOME/sqllib da instância do DB2. Por exemplo: ln -s -f /home/sybase/interfaces /home/db2djinst1/sqllib 6.6.1.5 Etapa 5: Criar o Wrapper Use a instrução CREATE WRAPPER para especificar o wrapper que será utilizado para acessar as origens de dados do Sybase. Wrappers são mecanismos que os servidores federados utilizam para se comunicar com as origens de dados e recuperar dados delas. O DB2 inclui dois wrappers para Sybase, CTLIB e DBLIB. O exemplo a seguir mostra uma instrução CREATE WRAPPER: CREATE WRAPPER CTLIB em que CTLIB é o nome do wrapper padrão utilizado com o software Open Client do Sysbase. O wrapper CTLIB pode ser utilizado em servidores Windows NT, AIX e Solaris. Você pode substituir o nome do wrapper padrão por um nome de sua escolha. Entretanto, se isso acontecer, será necessário também incluir o parâmetro LIBRARY e o nome da biblioteca wrapper para seu servidor federado na instrução CREATE WRAPPER. Consulte a instrução CREATE WRAPPER na publicação DB2 SQL Reference para obter mais informações sobre os nomes de bibliotecas do wrapper. 6.6.1.6 Etapa 6: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM Para melhorar o desempenho quando a origem de dados do Sybase é acessada, defina a variável de ambiente DB2_DJ_COMM. Essa variável determina se um wrapper é carregado quando o servidor federado é inicializado. Defina a variável de ambiente DB2_DJ_COMM para incluir a biblioteca wrapper que corresponde ao wrapper especificado na etapa anterior; por exemplo: No DB2 para servidores AIX: db2set DB2_DJ_COMM='libctlib.a' No DB2 para servidores Solaris: db2set DB2_DJ_COMM='libctlib.so' Verifique se não existem espaços em nenhum lado do sinal de igual (=). Consulte a publicação DB2 SQL Reference para obter mais informações sobre os nomes de bibliotecas do wrapper. Consulte a publicação Guia de Administração para obter informações sobre a variável de ambiente DB2_DJ_COMM. 6.6.1.7 Etapa 7: Criar o Servidor Utilize a instrução CREATE SERVER para definir cada servidor Sybase cujas origens de dados você deseja acessar; por exemplo: CREATE SERVER SYBSERVER TYPE SYBASE VERSION 12.0 WRAPPER CTLIB OPTIONS (NODE 'sybnode', DBNAME'sybdb') em que: SYBSERVER É um nome atribuído ao servidor Sybase. Esse nome deve ser exclusivo. SYBASE É o tipo de origem de dados para o qual você está configurando acesso. Sybase é a única origem de dados que é suportada. 12.0 É a versão do Sybase que você está acessando. As versões suportadas são 10.0, 11.0, 11.1, 11.5, 11.9 e 12.0. CTLIB É o nome do wrapper especificado na instrução CREATE WRAPPER. 'sybnode' É o nome do nó onde SYBSERVER reside. Obtenha o valor do nó do arquivo de interfaces. Esse valor faz distinção entre maiúsculas e minúsculas. Embora o nome do nó seja especificado como uma opção, ele é requerido para as origens de dados do Sybase. Consulte a publicação DB2 SQL Reference para obter informações sobre as opções adicionais. 'sybdb' É o nome do banco de dados do Sybase que você deseja acessar. Obtenha esse nome do servidor Sybase. Você pode utilizar a opção IGNORE_UDT do servidor com os protocolos CTLIB e DBLIB para especificar se o servidor federado deverá determinar o tipo interno sujeito a um UDT sem um tipo forte. Essa opção aplica-se apenas a origens de dados acessadas através dos protocolos CTLIB e DBLIB. Os valores válidos são: 'Y' Ignora o fato de que UDTs são definidos pelo usuário e determina quais tipos internos estão sujeitos a eles. 'N' Não ignora as especificações definidas pelo usuário de UDTs. Essa é a definição padrão. Quando o DB2 cria pseudônimos, procura e cataloga informações sobre os objetos (tabelas, exibições, procedimentos armazenados) aos quais os pseudônimos apontam. Conforme ele procura pelas informações, pode achar que alguns objetos possuem tipos de dados que ele não reconhece (ou seja, tipos de dados que não mapeiam contrapartes no banco de dados federado). Tais tipos não reconhecidos podem incluir: * Novos tipos internos * UDTs com impressão intensa * UDTs sem impressão intensa. Esses são tipos internos que o usuário simplesmente renomeou. Esses tipos são suportados apenas por certas origens de dados, como Sybase e Servidor Microsoft SQL. Quando o servidor federado encontra tipos de dados que ele não reconhece, retorna a mensagem de erro SQL3324N. Entretanto, ele pode fazer uma exceção a essa prática. Para origens de dados acessíveis através de protocolos CTLIB ou DBLIB, é possível definir a opção IGNORE_UDT do servidor de modo que o banco de dados federado encontre um UDT não-reconhecido sem impressão intensa, o banco de dados federado determina qual é o tipo interno do UDT. Em seguida, se o banco de dados federado reconhece esse tipo interno, o banco de dados federado retorna informações sobre o tipo interno para o catálogo. Para que o banco de dados determine os tipos de UDT que não possuem impressão intensa, defina IGNORE_UDT como 'Y'. 6.6.1.8 Etapa 8: Opcional: Definir a Opção do Servidor CONNECTSTRING Especifique os limites de tempo, 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 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 login. * Caminho e nome do arquivo de interfaces. * Tamanho do pacote. .-;-------------------------------. V | >>---+-----------------------------+-+------------------------->< +-TIMEOUT-- = --seconds-------+ +-LOGIN_TIMEOUT-- = --seconds-+ +-IFILE-- = --"strings"-------+ +-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 login. Os valores padrão são os mesmos que para TIMEOUT. IFILE Especifica o caminho e o nome do arquivo de interfaces do Sybase Open Client. O caminho que é identificado na cadeia deve ser colocado entre aspas duplas ("). Em servidores Windows NT, o padrão é %DB2PATH%. Em servidores AIX e Solaris, o valor padrão é sqllib/interfaces no diretório pessoal da instância do DB2 Universal Database. PACKET_SIZE Especifica o tamanho do pacote do arquivo de interfaces em bytes. Se a origem de dados não suportar o tamanho do pacote especificado, a conexão falhará. Aumentar o tamanho do pacote quando cada registro é muito grande (por exemplo, quando inserir linhas em tabelas grandes), aumenta significativamente o desempenho. O tamanho do byte é um valor numérico. Consulte as publicações de referência do Sybase para obter mais informações. Exemplos: Em servidores Windows NT, para definir o valor de 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, para definir 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"' 6.6.1.9 Etapa 9: Criar um Mapeamento do Usuário Se um ID do usuário ou uma senha no servidor federado for diferente de um ID do usuário ou senha da origem de dados do Sybase, utilize a instrução CREATE USER MAPPING para mapear o ID do usuário local para o ID do usuário e a senha definidos na origem de dados do Sybase; por exemplo: CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER OPTIONS ( REMOTE_AUTHID 'sybuser', REMOTE_PASSWORD 'day2night') em que: DB2USER É o ID do usuário local que você está mapeando para um ID do usuário definido em uma origem de dados do Sybase. SYBSERVER É o nome da origem de dados do Sybase definido na instrução CREATE SERVER. 'sybuser' É o ID do usuário na origem de dados do Sybase para o qual você está mapeando DB2USER. Esse valor faz distinção entre letras maiúsculas e minúsculas. 'day2night' É a senha associada ao 'sybuser'. Esse valor faz distinção entre letras maiúsculas e minúsculas. Consulte a publicação DB2 SQL Reference para obter mais informações sobre opções adicionais. 6.6.1.10 Etapa 10: Criar Pseudônimos para Tabelas e Exibições Atribua um pseudônimo para cada exibição ou tabela localizadas em sua origem de dados do Sybase. Você utilizará esses pseudônimos quando consultar a origem de dados do Sybase. Os pseudônimos do Sybase fazem 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" em que: SYBSALES É um pseudônimo único para a tabela ou a exibição Sybase. SYBSERVER."salesdata"."europe" É um identificador de três partes que segue este formato: data_source_name."remote_schema_name"."remote_table_name" Repita essa etapa para cada tabela ou exibição, para a qual você deseja criar pseudônimos. Quando você cria o pseudônimo, o DB2 utilizará a conexão para consultar o catálogo de origens de dados. Essa consulta testa sua conexão à origem de dados. Se a conexão não funcionar, você receberá uma mensagem de erro. Consulte a publicação DB2 SQL Reference para obter mais informações sobre a instrução CREATE NICKNAME. Para obter mais informações sobre os pseudônimos em geral e para verificar os mapeamentos de tipos de dados, consulte a publicação Guia de Administração do DB2. 6.6.2 Especificando as Páginas de Códigos do Sybase Esta etapa é necessária apenas quando o servidor federado do DB2 e o servidor Sybase estão executando diferentes páginas de códigos. As origens de dados que estão utilizando o mesmo conjunto de códigos que o DB2 não requerem conversão. A tabela a seguir fornece opções equivalentes do Sybase para páginas de códigos do NLS (Suporte a Idioma Nacional). As origens de dados do Sybase devem ser configuradas para corresponder a esses equivalentes ou o código do cliente deve conseguir detectar a inconsistência e sinalizá-la como um erro ou mapear os dados utilizando suas próprias semânticas. Se nenhuma tabela de conversão puder ser encontrada da página de códigos de origem para a página de códigos de destino, o DB2 emitirá uma mensagem de erro. Consulte a documentação do Sybase para obter mais informações. Tabela 2. Opções da Página de Códigos Sybase Página de 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 ------------------------------------------------------------------------ 6.7 Acessando as Origens de Dados do Microsoft SQL Server Utilizando ODBC (Novo Capítulo) Antes de incluir as origens 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 origens de dados do servidor Microsoft SQL, você precisa: 1. 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. No DB2 para servidores Windows NT: Configure um DSN do sistema, utilizando o gerenciador de dispositivo ODBC. No Windows ODBC Data Source Administrator, especifique o driver do SQL Server e prossiga através do diálogo para incluir um novo DSN de Sistema. Especifique "Autenticação de SQL Server utilizando ID de Login e senha fornecidos pelo usuário." No DB2 para servidores 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. 2. Instalar o DB2 Relational Connect Versão 7.2. Consulte a seção 6.3.4, Instalando o DB2 Relational Connect. 3. Incluir as origens de dados do Microsoft SQL Server em seu servidor federado. 4. Especificar as páginas de códigos do Microsoft SQL Server. (Windows NT somente) 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. 6.7.1 Incluindo Origens de Dados do Microsoft SQL Server em um Servidor Federado Após instalar o driver ODBC e o DB2 Relational Connect, inclua as origens de dados do Microsoft SQL Server em seu servidor federado utilizando estas etapas: 1. Definir as variáveis de ambiente (apenas AIX). 2. Executar o script de shell (apenas AIX). 3. Opcional: Definir a variável de ambiente DB2_DJ_COMM. (apenas AIX) 4. Reciclar a instância do DB2 (apenas AIX). 5. Criar o wrapper. 6. Criar o servidor. 7. Criar um mapeamento do usuário. 8. Criar pseudônimos para tabelas e exibições. 9. Opcional: Obter os rastreios do ODBC. Essas etapas são explicadas com detalhes nas seções a seguir. 6.7.1.1 Etapa 1: Definir as Variáveis de Ambiente (apenas AIX) Defina variáveis de ambiente da origem de dados modificando o arquivo db2dj.ini e emitindo o comando db2set. O arquivo db2dj.ini contém informações de configuração para conectar-se às origens 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 pode utilizar um único arquivo db2dj.ini para um ou mais nós em uma instância específica. Um sistema de banco de dados não-particionado pode ter apenas um arquivo db2dj.ini por instância. Para definir as variáveis de ambiente: 1. Edite o arquivo db2dj.ini localizado em $HOME/sqllib/cfg/ e defina as seguintes variáveis de ambiente: ODBCINI=$HOME/.odbc.ini DJX_ODBC_LIBRARY_PATH=/lib DB2ENVLIST=LIBPATH Emita o comando db2set para atualizar o registro do perfil do DB2 com suas mudanças. A sintaxe de db2set é dependente da estrutura do sistema do banco de dados: * Se você estiver utilizando o arquivo db2dj.ini em um sistema de banco de dados não-particionado ou se você estiver utilizando o arquivo db2dj.ini em um sistema de banco de dados particionado e quiser que os valores no arquivo db2dj.ini apliquem-se ao nó atual somente, 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 apliquem a um nó específico, emita este comando: db2set -i INSTANCEX 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini em que: 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. Para definir o caminho à biblioteca cliente, emita estes comandos: db2set DB2LIBPATH= db2set DB2ENVLIST=LIBPATH 6.7.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 6.7.1.3 Etapa 3: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM (apenas AIX) Se achar que o período de tempo necessário para acessar a origem de dados do Microsoft SQL Server tem sido irregular, você 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 origem 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: No DB2 para servidores Windows NT: db2set DB2_DJ_COMM=djxmssql3.dll No DB2 para servidores AIX: db2set DB2_DJ_COMM=libmssql3.a Verifique se não existem espaços em nenhum lado do sinal de igual (=). Consulte a publicação DB2 SQL Reference para obter mais informações sobre os nomes da biblioteca wrapper. 6.7.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 DB2, emitindo os seguintes comandos: db2stop db2start 6.7.1.5 Etapa 5: Criar o Wrapper O DB2 Universal Database possui dois protocolos diferentes, chamados wrappers, que você pode utilizar para acessar as origens de dados do Microsoft SQL Server. Wrappers são mecanismos que os servidores federados utilizam para comunicar-se com as origens de dados e recuperar dados dessas fontes. O wrapper que você utiliza depende da platarfoma na qual o DB2 Universal Database está sendo executado. Utilize a Tabela 3 como um guia, para selecionar o wrapper apropriado. Tabela 3. drivers ODBC Drivers ODBC Plataforma Nome do Wrapper Driver ODBC 3.0 (ou superior) Windows NT DJXMSSQL3 Driver MERANT DataDirect Connect ODBC AIX MSSQLODBC3 3.6 Utilize a instrução CREATE WRAPPER para especificar o wrapper que será utilizado para acessar as origens de dados do Microsoft SQL Server. O exemplo a seguir mostra uma instrução CREATE WRAPPER: CREATE WRAPPER DJXMSSQL3 em que 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, poderá 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: No DB2 para servidores Windows NT: CREATE WRAPPER wrapper_name LIBRARY 'djxmssql3.dll' em que wrapper_name é o nome que você deseja fornecer ao wrapper e 'djxmssql3.dll' é o nome da biblioteca. No DB2 para servidores AIX: CREATE WRAPPER wrapper_name LIBRARY 'libmssql3.a' em que wrapper_name é o nome que você deseja fornecer ao wrapper e 'libdjxmssql.a' é o nome da biblioteca. Consulte a instrução CREATE WRAPPER na publicação DB2 SQL Reference para obter mais informações sobre os nomes de bibliotecas do wrapper. 6.7.1.6 Etapa 6: Criar o Servidor Utilize a instrução CREATE SERVER para definir cada origem 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') em que: sqlserver É o nome atribuído ao servidor do Microsoft SQL Server. Esse nome deve ser único. MSSQLSERVER É o tipo de origem 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 DSN do sistema que faz referência à versão do Microsoft SQL Server que você está acessando. Esse valor faz distinção entre letras maiúsculas e minúsculas. 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 origens de dados do Microsoft SQL Server. No Windows, obtenha o DSN na guia DSN do Sistema da ferramenta Windows ODBC Data Source Administrator. No AIX, obtenha o DSN do arquivo .odbc.ini no diretório inicial de proprietários de instância do DB2. Consulte DB2 SQL Reference para 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 origens de dados do Microsoft SQL Server. 6.7.1.7 Etapa 7: Criar um Mapeamento do Usuário Se um ID do usuário ou senha no servidor federado for diferente de um ID do usuário ou senha de uma origem 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 origem de dados do Microsoft SQL Server; por exemplo: CREATE USER MAPPING FOR db2user SERVER server_name OPTIONS (REMOTE_AUTHID 'mssqluser', REMOTE_PASSWORD 'day2night') em que: db2user É o ID do usuário local que você está mapeando para um ID do usuário definido na origem de dados do Microsoft SQL Server. server_name É o nome do servidor definido na instrução CREATE SERVER. 'mssqluser' É o ID de login na origem de dados do Microsoft SQL Server para o qual você está mapeando db2user. Esse valor faz distinção entre letras maiúsculas e minúsculas. 'day2night' É a senha associada ao 'mssqluser'. Esse valor faz distinção entre letras maiúsculas e minúsculas. Consulte a publicação DB2 SQL Reference para obter as opções adicionais que você pode utilizar com a instrução CREATE USER MAPPING. 6.7.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 origem de dados do Microsoft SQL Server que você deseja acessar. Você utilizará esses pseudônimos quando consultar a origem de dados do Microsoft SQL Server. Utilize a instrução CREATE NICKNAME para atribuir um pseudônimo. Os pseudônimos fazem 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 em que: 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 origens de dados (o Microsoft SQL Server refere-se a esas como tabelas do sistema). Isso testa a conexão à origem de dados. Se a conexão falhar, você receberá uma mensagem de erro. Repita essa 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 a publicaçã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 a publicação Guia de Administração do DB2. 6.7.1.9 Etapa 9: Opcional: Obter Rastreios do ODBC Se você estiver tendo problemas ao acessar a origem de dados, poderá obter as informações de rastreio do ODBC para analisar e resolver esses problemas. Para garantir que o rastreio do ODBC funcione 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. 6.7.2 Revendo Páginas de Código do Microsoft SQL Server (apenas Windows NT) O Microsoft SQL Server suporta muitas opções comuns da página de códigos do NLS (Suporte a Idioma Nacional) que o UDB do DB2 suporta. As origens 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 4. Opções da Página de Códigos do DB2 UDB e do Microsoft SQL Server Página de Idioma suportado código 1252 Conjunto de caracteres ISO 850 Multilíngüe 437 Inglês Norte-americano 874 Tai 932 Japonês 936 Chinês (simplificado) 949 Coreano 950 Chinês (tradicional) 1250 Centro-europeu 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 NLS (Suporte a Idioma Nacional), as origens de dados do servidor Microsoft SQL devem ser configuradas para corresponderem a esses 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. ------------------------------------------------------------------------ 6.8 Acessando Origens de Dados do Informix (Novo Capítulo) Antes de incluir origens de dados do Informix em um servidor federado DB2, você precisa instalar e configurar o software Informix Client SDK no servidor federado. Consulte os procedimentos de instalação na documentação fornecida com o software de banco de dados Informix para obter detalhes específicos sobre como instalar o software Client SDK. Como parte da instalação, certifique-se de incluir as bibliotecas do Informix Client SDK. Para configurar o servidor federado para acessar os dados armazenados nas origens de dados do Informix, você precisa: 1. Instalar o DB2 Relational Connect. Consulte a seção 6.3.4, Instalando o DB2 Relational Connect. 2. Aplicar o FixPak mais recente do DB2. 3. Incluir origens de dados do Informix no servidor federado. Este capítulo descreve a etapa 3. As instruções neste capítulo aplicam-se aos sistemas operacionais AIX, Solaris Operating Environment e HP-UX. Diferenças específicas dos sistemas operacionais serão indicadas quando ocorrerem. 6.8.1 Incluindo Origens de Dados do Informix em um Servidor Federado Para incluir uma origem de dados do Informix em um servidor federado, você precisa: 1. Definir as variáveis de ambiente e atualizar o registro do perfil. 2. Ligar o DB2 ao software Informix Client. 3. Reciclar a instância do DB2. 4. Criar o arquivo sqlhosts do Informix. 5. Criar o wrapper. 6. Opcional: Definir a variável de ambiente DB2_DJ_COMM. 7. Criar um servidor. 8. Criar um mapeamento do usuário. 9. Criar pseudônimos para tabelas, exibições e sinônimos do Informix. Essas etapas são explicadas com detalhes nesta seção. 6.8.1.1 Etapa 1: Definir as Variáveis de Ambiente e Atualizar o Registro do Perfil Defina variáveis de ambiente da origem de dados modificando o arquivo db2dj.ini e emitindo o comando db2set. O arquivo db2dj.ini contém informações de configuração sobre o software Informix Client instalado no servidor federado. O comando db2set atualiza o registro de perfil do DB2 com suas definições. Em um sistema do banco de dados particionado, você pode utilizar um único arquivo db2dj.ini para todos os nós em uma instância específica ou você pode utilizar um único arquivo db2dj.ini para um ou mais nós em uma instância específica. Um sistema de banco de dados não-particionado pode ter apenas um arquivo db2dj.ini por instância. Para definir as variáveis de ambiente: 1. Edite o arquivo db2dj.ini localizado no diretório sqllib/cfg e defina as seguintes variáveis de ambiente: Nota: Você mesmo pode criar esse arquivo se ele ainda não estiver no sistema. INFORMIXDIR Defina a variável de ambiente INFORMIXDIR para o caminho do diretório no qual o software Informix Client SDK está instalado; por exemplo: INFORMIXDIR=/informix/csdk INFORMIXSERVER Esta variável identifica o nome do servidor padrão Informix. INFORMIXSERVER=inf93 Nota: Embora o wrapper do Informix não utilize o valor desta variável, o Informix Client requer a definição dessa variável. O wrapper utiliza o valor da opção de servidor node, que especifica o servidor de banco de dados Informix que você deseja acessar. INFORMIXSQLHOSTS Se você estiver utilizando o caminho padrão para o arquivo sqlhosts do Informix ($INFORMIXDIR/etc/sqlhosts), não será necessário definir essa variável. No entanto, se você estiver utilizando um caminho para o arquivo sqlhosts do Informix que seja diferente do padrão, será necessário definir essa variável para o nome completo do caminho do arquivo sqlhosts do Informix. Por exemplo: INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts 2. Atualize o arquivo .profile da instância do DB2 com as variáveis de ambiente do Informix. Você pode fazer isso emitindo os seguintes comandos para definir e exportar cada variável: PATH=$INFORMIXDIR/bin:$PATH export PATH INFORMIXDIR= export INFORMIXDIR em que informix_client_path é o caminho no servidor federado para o diretório no qual o Informix Client está instalado. Utilize aspas duplas (") em torno do caminho se um nome no caminho tiver um espaço em branco. 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ças. A sintaxe desse comando, db2set, é dependente da estrutura do sistema do banco de dados. Essa etapa será necessária apenas se você estiver utilizando o arquivo db2dj.ini em qualquer uma das seguintes estruturas do sistema do banco de dados: Se você estiver utilizando o arquivo db2dj.ini em um sistema de banco de dados não-particionado ou se desejar que o arquivo db2dj.ini se aplique somente ao nó atual, emita: db2set DB2_DJ_INI=/sqllib/cfg/db2dj.ini Nota: Os nomes dos caminhos desta seção devem ser completos. Por exemplo, my_home/my_instance/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 apliquem a um nó específico, emita: db2set -i INSTANCEX 3 DB2_DJ_INI=sqllib/cfg/node3.ini em que: INSTANCEX É o nome da instância. 3 É o número do nó conforme listado no arquivo db2nodes.cfg. node3.ini É a versão modificada e renomeada do arquivo db2dj.ini. 6.8.1.2 Etapa 2: Ligar o DB2 ao Software Informix Client Para permitir acesso às origens de dados do Informix, o servidor federado DB2 deverá ser editado por link para as bibliotecas do cliente. O processo de edição por link cria uma biblioteca de wrapper para cada origem de dados com a qual o servidor federado se comunicará. Ao executar o script djxlinkInformix, você cria a biblioteca de wrapper do Informix. Para emitir o script djxlinkInformix, digite: djxlinkInformix Nota: O script djxlinkInformix cria somente a biblioteca wrapper do Informix. Há um outro script, o script djxlink, que tenta criar uma biblioteca wrapper para cada origem de dados que o DB2 Universal Database suporta (Oracle, Microsoft SQL Server, etc.). Se você tiver somente o software cliente para algumas das origens de dados instaladas, você receberá uma mensagem de erro para cada uma das origens de dados que estiverem faltando, quando emitir o script djxlink. Você precisa de autorização do UNIX Systems Administrator (root) para executar os scripts djxlinkInformix e djxlink. Os scripts djxlinkInformix e djxlink gravam mensagens de aviso e de erro detalhadas em um arquivo específico, dependendo do sistema operacional. Por exemplo, no AIX, o script djxlinkInformix grava em /usr/lpp/db2_07_01/lib/djxlinkInformix.out e o script djxlink grava em /usr/lpp/db2_07_01/lib/djxlink.out. Os scripts djxlinkInformix e djxlink criam a biblioteca wrapper em um diretório específico, dependendo do sistema operacional. Por exemplo, no AIX, a biblioteca wrappers libinformix.a é criada no diretório /usr/lpp/db2_07_01/lib. Verifique as permissões na biblioteca wrappers libinformix.a depois que ela for criada para certificar-se de que ela pode ser lida e executada por proprietários de instância de DB2. Se os proprietários de instância não estiverem no grupo do Sistema, permissões na biblioteca wrapper libinformix.a precisarão ser -rwxr-xr-x root system...libinformix.a. 6.8.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 AIX, Solaris Operating Environment e HP-UX: db2stop db2start 6.8.1.4 Etapa 4: Criar o Arquivo sqlhosts do Informix O arquivo especifica a localização de cada servidor de banco de dados Informix e o tipo de conexão (protocolo) para o servidor de banco de dados. Há várias formas de criar esse arquivo. Você pode copiá-lo de outro sistema que tenha Informix Connect ou Informix Client SDK conectado a um servidor Informix. Você pode também configurar o Informix Client SDK no servidor do DB2 para conectar a um servidor Informix, que cria o arquivo sqlhosts. Depois que o arquivo sqlhosts for copiado ou criado, o proprietário de instância do DB2 deve utilizar Informix dbaccess (se ele estiver no servidor DB2) para conectar e consultar o servidor Informix. Isso estabelecerá que o Informix Client SDK é capaz de conectar-se ao servidor Informix, antes que você tente configurar o DB2 Relational Connect para trabalhar com o Informix Client SDK. Para maiores informações sobre como configurar esse arquivo, consulte o manual do Informix Administrators Guide for Informix Dynamic Server. Aviso: Se você não definir o nome do servidor de banco de dados Informix no arquivo sqlhosts, receberá um erro ao executar uma operação que exija conexão com o servidor de banco de dados Informix. 6.8.1.5 Etapa 5: Criar o Wrapper Utilize a instrução CREATE WRAPPER para especificar o wrapper que será utilizado para acessar origens de dados do Informix. Wrappers são mecanismos que os servidores federados utilizam para se comunicar com as origens de dados e recuperar dados delas. O exemplo a seguir mostra uma instrução CREATE WRAPPER: CREATE WRAPPER informix em que informix é o wrapper_name; informix é o nome padrão do wrapper utilizado com o software Informix Client SDK. Você pode substituir o nome do wrapper padrão por um nome de sua escolha. Entretanto, se isso acontecer, será necessário também incluir o parâmetro LIBRARY e o nome da biblioteca wrapper para seu servidor federado na instrução CREATE WRAPPER. Consulte a instrução CREATE WRAPPER na publicação DB2 SQL Reference para obter mais informações sobre os nomes de biblioteca do wrapper. Os nomes de biblioteca do wrapper para o Informix são: * libinformix.a (AIX) * libinformix.so (Solaris Operating Environment) * libinformix.sl (HP-UX) 6.8.1.6 Etapa 6: Opcional: Definir a Variável de Ambiente DB2_DJ_COMM Para melhorar o desempenho quando a origem de dados do Informix for acessada, defina a variável de ambiente DB2_DJ_COMM no servidor federado. 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 do wrapper que corresponde ao wrapper especificado na etapa anterior. Se você estiver utilizando as interfaces de linha de comandos Korn shell ou Bourne shell, utilize estes comandos de exportação: No DB2 para servidores AIX: DB2_DJ_COMM='libinformix.a' export DB2_DJ_COMM No DB2 para servidores Solaris Operating Environment: DB2_DJ_COMM='libinformix.so' export DB2_DJ_COMM No DB2 para servidores HP-UX: DB2_DJ_COMM='libinformix.sl' export DB2_DJ_COMM Verifique se não existem espaços em nenhum lado do sinal de igual (=). Se você estiver utilizando a interface de linha de comandos da shell C, defina as variáveis de ambiente utilizando estes comandos: setenv DB2_DJ_COMM 'libinformix.a' (servidores DB2 para AIX) setenv DB2_DJ_COMM 'libinformix.so' (DB2 p/ servidores Solaris OE) setenv DB2_DJ_COMM 'libinformix.sl' (servidores DB2 para HP--UX) Consulte a publicação DB2 SQL Reference para obter mais informações sobre os nomes de biblioteca do wrapper e a variável de ambiente DB2_DJ_COMM. 6.8.1.7 Etapa 7: Criar o Servidor Utilize a instrução CREATE SERVER para definir cada servidor Informix cujas origens de dados você deseja acessar. A sintaxe para essa instrução é: CREATE SERVER server_name TYPE server_type VERSION server_version WRAPPER wrapper_name OPTIONS (NODE 'node_name', DBNAME 'database_name') em que: server_name É um nome que você atribui ao servidor de banco de dados Informix. Esse nome deve ser único e não duplicar nenhum outro server_name definido no banco de dados federado. O server_name não pode ser igual ao de qualquer espaço de tabelas no banco de dados federado. TYPE server_type Especifica o tipo de origem de dados para o qual você está configurando o acesso. Nota: Para o wrapper do Informix, o server_type deve ser informix. VERSION server_version É a versão do servidor de banco de dados Informix que você deseja acessar. As versões do Informix suportadas são 5, 7, 8 e 9. WRAPPER wrapper_name É o nome especificado na instrução CREATE WRAPPER. NODE 'node_name' É o nome do nó no qual o server_name reside. O node_name deve ser definido no arquivo sqlhosts do Informix (consulte a etapa 4). Embora o node_name esteja especificado como uma opção na instrução CREATE SERVER SQL, ele é obrigatório para origens de dados do Informix. Esse valor faz distinção entre maiúsculas e minúsculas. Consulte a publicação DB2 SQL Reference para obter informações sobre as opções adicionais. DBNAME 'database_name' É o nome do banco de dados Informix que você deseja acessar. Segue um exemplo da instrução CREATE SERVER: CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales') As opções FOLD_ID e FOLD_PW do servidor afetam se o wrapper deverá transformar o ID de usuário e a senha em letras maiúsculas ou minúsculas antes de enviá-los para o Informix. Um exemplo da instrução CREATE SERVER com as opções FOLD_ID e FOLD_PW do servidor é: CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales', FOLD_ID 'U', FOLD_PW 'U') 6.8.1.8 Etapa 8: Criar um Mapeamento do Usuário Se um ID de usuário ou senha no servidor federado DB2 for diferente de um ID de usuário ou senha em uma origem de dados do Informix, utilize a instrução CREATE USER MAPPING para mapear o ID de usuário local para o ID de usuário e senha definidos na origem de dados do Informix; por exemplo: CREATE USER MAPPING FOR local_userid SERVER server_name OPTIONS (REMOTE_AUTHID 'remode_userid', REMOTE_PASSWORD 'remote_password') em que: local_userid É o ID de usuário local que você está mapeamento para um ID de usuário definido em uma origem de dados do Informix. SERVER server_name É o nome da origem de dados do Informix que você definiu na instrução CREATE SERVER. REMOTE_AUTHID 'remote_userid' É o ID de usuário no servidor de banco de dados Informix para o qual você está mapeando o local_userid. Esse valor faz distinção entre maiúsculas e minúsculas, a menos que você defina a opção FOLD_ID do servidor para 'U' ou 'L' na instrução CREATE SERVER. REMOTE_PASSWORD 'remote_password' É a senha associada ao remote_userid. Esse valor faz distinção entre maiúsculas e minúsculas, a menos que você defina a opção FOLD_PW do servidor para 'U' ou 'L' na instrução CREATE SERVER. Segue um exemplo da instrução CREATE USER MAPPING: CREATE USER MAPPING FOR robert SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night') Você pode utilizar o registro especial USER do DB2 para mapear o ID de autorização da pessoa que está emitindo a instrução CREATE USER MAPPING para o ID de autorização da origem de dados especificado na opção REMOTE_AUTHID do usuário. Segue um exemplo da instrução CREATE USER MAPPING que inclui o registro especial USER: CREATE USER MAPPING FOR USER SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night') Consulte a publicação DB2 SQL Reference para obter mais informações sobre opções adicionais. 6.8.1.9 Etapa 9: Criar Pseudônimos para Tabelas, Exibições e Sinônimos do Informix Atribua um pseudônimo para cada tabela, exibição ou sinônimo do Informix localizado na origem de dados do Informix. Os pseudônimos podem conter 128 caracteres. Você utilizará esses pseudônimos quando consultar a origem de dados do Informix. O DB2 transformará os nomes de servidor, esquema e tabela em letras maiúsculas, a menos que você os coloque entre aspas duplas ("). O exemplo a seguir mostra uma instrução CREATE NICKNAME: CREATE NICKNAME nickname FOR server_name."remote_schema_name"."remote_table_name" em que: nickname É um pseudônimo exclusivo utilizado para identificar a tabela, exibição ou sinônimo do Informix. server_name."remote_schema_name"."remote_table_name" É um identificador de três partes do objeto remoto. o server_name é o nome atribuído ao servidor de banco de dados Informix na instrução CREATE SERVER. o remote_schema_name é o nome do esquema remoto ao qual a tabela, exibição ou sinônimo pertence. o remote_table_name é o nome da tabela, exibição ou sinônimo remoto que você deseja acessar. Segue um exemplo da instrução CREATE NICKNAME: CREATE NICKNAME salesjapan FOR asia."salesdata"."japan" Repita essa etapa para cada tabela ou exibição para a qual você deseja criar um pseudônimo. Quando você criar o pseudônimo, o DB2 utilizará a conexão para consultar o catálogo de origens de dados. Essa consulta testa sua conexão à origem de dados. Se a conexão não funcionar, você receberá uma mensagem de erro. Consulte a publicação DB2 SQL Reference para obter mais informações sobre a instrução CREATE NICKNAME. Para obter mais informações sobre os pseudônimos em geral e para verificar os mapeamentos de tipos de dados, consulte a publicação Guia de Administração do DB2. ------------------------------------------------------------------------ Administração Índice Parcial * Guia de Administração o 7.1 Atualização Disponível * Guia de Administração: Planejamento o 8.1 Capítulo 8. Design do Banco de Dados Físico + 8.1.1 Considerações sobre o Design da Área de Tabela + 8.1.1.1 Otimizando o Desempenho da Área de Tabela Quando os Dados São Colocados no Raid + 8.1.2 Chaves de Partição o 8.2 Apêndice D. Incompatibilidade entre Releases + 8.2.1 Erro SQL30081N Não-retornado Quando Conexão Perdida É Detectada + 8.2.2 Utilitário de Exportação Requer FixPak 7 ou Posterior para Lidar Corretamente com Atributos de Identidade o 8.3 Apêndice E. NLS (Suporte a Idioma Nacional) + 8.3.1 Código de País/Região e Suporte à Página de Códigos + 8.3.2 Considerações sobre Importação/Exportação/Carregamento -- Restrições para as Páginas de Códigos 1394 e 5488 + 8.3.3 Valores de Data e Hora + 8.3.3.1 Representações de Cadeia de Valores de Data e Hora + 8.3.3.2 Cadeias de Data + 8.3.3.3 Cadeias de Hora + 8.3.3.4 Cadeias de Data e Hora + 8.3.3.5 Considerações do Conjunto de Caracteres + 8.3.3.6 Formatos de Data e Hora * Guia de Administração: Implementação o 9.1 Novo Método para Especificar Contêineres DMS no Windows 2000 e em Sistemas Posteriores o 9.2 Exemplo para Estender o Centro de Controle * Guia de Administração: Desempenho o 10.1 Esquemas de Tabelas Temporárias do Sistema o 10.2 Capítulo 8. Desempenho Operacional + 10.2.1 Conjunto de Buffers com Base em Bloco + 10.2.1.1 Exemplos de Conjuntos de Buffers Com Base em Blocos o 10.3 Capítulo 10. Ajustando a Escala de Configuração Através da Inclusão de Processadores + 10.3.1 Problemas ao Incluir Nós em um Banco de Dados Particionado o 10.4 Capítulo 13. Configurando o DB2 + 10.4.1 Conclusão do Archive de Log Agora Verificada Mais Freqüentemente + 10.4.2 Correção Feita na Seção Informações de Ordenação (collate_info) o 10.5 Variáveis de Ambiente e Registro do DB2 + 10.5.1 Correções de Variáveis de Desempenho + 10.5.2 Novos Parâmetros para Variável de Registro DB2BPVARS + 10.5.3 Correções e Inclusões nas Variáveis de Registro Diversas + 10.5.4 Correções e Inclusões nas Variáveis de Registro Gerais * Guia e Referência de Administração de Satélites o 11.1 Configurando o DB2 Personal Edition Versão 7.2 e o DB2 Workgroup Edition como Satélites + 11.1.1 Pré-Requisitos + 11.1.1.1 Considerações de Instalação + 11.1.2 Configurando o Sistema Versão 7.2 para Sincronização + 11.1.3 Instalando o FixPak 2 ou Superior em um Sistema Enterprise Edition Versão 6 + 11.1.3.1 Fazendo o Upgrade do DB2 Enterprise Edition Versão 6 para Uso como o DB2 Control Server + 11.1.4 Fazendo o Upgrade de uma Versão 6 do Centro de Controle e do Centro de Administração do Satélite * Referência de Comandos o 12.1 Atualização Disponível o 12.2 db2updv7 - Atualizar o Banco de Dados para o Nível de Correção Atual da Versão 7 o 12.3 Contexto Adicional para Nota de Utilização do ARCHIVE LOG o 12.4 REBIND + Missing value o 12.5 RUNSTATS o 12.6 db2inidb - Inicializar um Banco de Dados Espelhado + 12.6.1 Informações de Utilização o 12.7 db2relocatedb (Novo Comando) + db2relocatedb - Realocar Banco de Dados o 12.8 db2move + Ferramenta de Movimentação de Banco de Dados o 12.9 Opção Adicional no Comando GET ROUTINE + GET ROUTINE o 12.10 CREATE DATABASE * Guia e Referência de Recuperação de Dados e Alta Disponibilidade o 13.1 Guia e Referência de Recuperação de Dados e Alta Disponibilidade Disponível On-line o 13.2 Novo Comportamento de Log de Archive o 13.3 Como Utilizar E/S Suspensa para Recuperação do Banco de Dados o 13.4 Novo Backup e Comportamento de Restauração Quando LOGRETAIN=CAPTURE o 13.5 Backup Incremental e Recuperação - Informações Adicionais o 13.6 NEWLOGPATH2 Agora Chamado de DB2_NEWLOGPATH2 o 13.7 Escolhendo um Método de Backup para o DB2 Data Links Manager no AIX ou no Solaris Operating Environment o 13.8 Tivoli Storage Manager -- LAN Free Data Transfer * Guia e Referência de Utilitários do Data Movement o 14.1 Valores de Identidade Estendidos Agora Completamente Suportados pelo Utilitário de Exportação o 14.2 Alterar para Tratamento de Arquivo LOB por Exportação, Importação e Carregamento + 14.2.1 Considerações sobre IXF o 14.3 Suporte à Página de Códigos para Utilitários de Importação, Exportação e Carregamento o 14.4 Capítulo 2. Importar + 14.4.1 Utilizando Importação com Inserções em Buffer o 14.5 Capítulo 3. Carregar + 14.5.1 Estados Pendentes Após uma Operação de Carregamento + 14.5.2 Restrições e Limitações de Carregamento + 14.5.3 Modificador de Tipo do Arquivo totalfreespace o 14.6 Capítulo 4. AutoLoader + 14.6.1 Restrições e Limitações do AutoLoader + 14.6.2 Utilizando o AutoLoader + 14.6.3 rexecd Obrigatório para Executar o AutoLoader Quando a Autenticação Estiver Definida como YES + 14.6.4 O AutoLoader Pode Travar Durante uma Bifurcação nos Sistemas AIX Anteriores a 4.3.3 o 14.7 Apêndice C. Formatos de Arquivo do Utilitário de Exportação/Importação/Carregamento * Guia e Referência do Replication o 15.1 Relicação e Servidores Não-IBM o 15.2 Réplica no Windows 2000 o 15.3 Erro Conhecido ao Salvar os Arquivos SQL o 15.4 Programa Aply e Aliases do Centro de Controle o 15.5 Manutenção do DB2 o 15.6 Utilitário de Diferença de Dados na Web o 15.7 Capítulo 3. Cenário de Réplica de Dados + 15.7.1 Cenários de Réplica o 15.8 Capítulo 5. Planejando para Réplica + 15.8.1 Nomes de Tabelas e Colunas + 15.8.2 Replicando o DATALINK + 15.8.3 Restrições LOB + 15.8.4 Planejando para Réplica o 15.9 Capítulo 6. Configurando o Ambiente de Réplica + 15.9.1 Pré-requisito Update-anywhere + 15.9.2 Configurando Seu Ambiente de Réplica o 15.10 Capítulo 8. Determinação de Problemas o 15.11 Capítulo 9. Capture e Apply para AS/400 o 15.12 Capítulo 10. Capture e Apply para OS/390 + 15.12.1 Pré-requisitos para DB2 DataPropagator para OS/390 + 15.12.2 Esquemas de Codificação do UNICODE e ASCII no OS/390 + 15.12.2.1 Escolhendo um Esquema de Codificação + 15.12.2.2 Definindo Esquemas de Codificação o 15.13 Capítulo 11. Capture e Apply para Plataformas UNIX + 15.13.1 Definindo Variáveis de Ambiente para Capture e Apply no UNIX e Windows o 15.14 Capítulo 14. Estruturas de Tabelas o 15.15 Capítulo 15. Mensagens de Capture e Apply o 15.16 Apêndice A. Iniciando os Programas Capture e Apply de Dentro de um Aplicativo * Guia e Referência do System Monitor o 16.1 db2ConvMonStream o 16.2 Número Máximo de Heaps Alocados do Banco de Dados (db_heap_top) * Guia de Resolução de Problemas o 17.1 Iniciando o DB2 no Windows 95, Windows 98 e Windows ME Quando o Usuário Não Efetuou Logon o 17.2 Capítulo 1. Práticas Recomendáveis para Resolução de Problemas + 17.2.1 Ferramenta de Análise de Problemas e Coleta de Ambiente + 17.2.1.1 Saídas de Coleta + 17.2.1.2 Exibindo o detailed_system_info.html + 17.2.1.3 Exibindo a Sintaxe da Ferramenta de Suporte ao DB2, Uma Página por Vez o 17.3 Capítulo 2. Resolução de Problemas no DB2 Universal Database Server o 17.4 Capítulo 8. Resolução de Problemas no DB2 Data Links Manager o 17.5 Capítulo 15. Informações de Log + 17.5.1 Coletando Informações de Rastreio Anterior de Pilhas em Sistemas Baseados em UNIX * Utilizando o DB2 Universal Database em Plataformas de 64 bits o 18.1 Capítulo 5. Configuração + 18.1.1 LOCKLIST + 18.1.2 shmsys:shminfo_shmmax o 18.2 Capítulo 6. Restrições * Programação e Administração do XML Extender * MQSeries o 20.1 Instalação e Configuração das Funções do DB2 MQSeries + 20.1.1 Instalar o MQSeries + 20.1.2 Instalar o MQSeries AMI + 20.1.3 Ativar as Funções do DB2 MQSeries o 20.2 Estilos de Mensagens do MQSeries o 20.3 Estrutura da Mensagem o 20.4 Visão Geral Funcional do MQSeries + 20.4.1 Limitações + 20.4.2 Códigos de Erros o 20.5 Cenários de Utilização + 20.5.1 Mensagens Básicas + 20.5.2 Enviando Mensagens + 20.5.3 Recuperando Mensagens + 20.5.4 Conectividade de Aplicativo a Aplicativo + 20.5.4.1 Comunicações de Pedido/Resposta + 20.5.4.2 Publicar/Associar o 20.6 enable_MQFunctions + enable_MQFunctions o 20.7 disable_MQFunctions + disable_MQFunctions ------------------------------------------------------------------------ Guia de Administração ------------------------------------------------------------------------ 7.1 Atualização Disponível O Guia de Administração foi atualizado como parte do FixPak 4. O PDF mais recente está disponível para download on-line em http://www.ibm.com/software/data/db2/udb/winos2unix/support. As informações nessas notas são complementares à referência atualizada. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis no endereço http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. ------------------------------------------------------------------------ Guia de Administração: Planejamento ------------------------------------------------------------------------ 8.1 Capítulo 8. Design do Banco de Dados Físico 8.1.1 Considerações sobre o Design da Área de Tabela 8.1.1.1 Otimizando o Desempenho da Área de Tabela Quando os Dados São Colocados no Raid DB2_PARALLEL_IO O DB2_PARALLEL_IO também afeta espaços de tabelas com mais de um contêiner definido. Se você não definir a variável de registro, o paralelismo de E/S será igual ao número de contêineres no espaço de tabelas. Se você definir a variável de registro, o paralelismo de E/S será igual ao resultado do tamanho da pré-busca dividido pelo tamanho da extensão. Você pode optar por definir a variável de registro se os contêineres individuais no espaço de tabelas forem demarcados em vários discos físicos. Por exemplo, um espaço de tabelas tem dois contêineres e o tamanho da pré-busca é quatro vezes o tamanho da extensão. Se a variável de registro não for definida, um pedido de pré-busca para esse espaço de tabelas será dividido em dois pedidos (cada um será para duas extensões). Contanto que os pré-buscadores estejam disponíveis para trabalhar, dois pré-buscadores poderão estar trabalhando nesses pedidos em paralelo. No caso da variável de registro estar definida, um pedido de pré-busca para esse espaço de tabelas será dividido em quatro pedidos (uma extensão por pedido) com uma possibilidade de quatro pré-buscadores atendendo aos pedidos em paralelo. Nesse exemplo, se cada um dos dois contêineres tinha um único disco dedicado a ele, definir a variável de registro para esse espaço de tabelas poderá resultar na contenção nesses discos, uma vez que dois pré-buscadores estarão acessando cada um dos dois discos de uma vez. Entretanto, se cada um dos dois contêineres tivesse sido demarcado em vários discos, definir a variável de registro permitiria potencialmente o acesso a quatro discos diferentes de uma vez. 8.1.2 Chaves de Partição Na subseção "Considerações de Design do Grupo de Nós" da seção "Projetando Grupos de Nós", o texto a seguir da sub subseção "Chaves de Partição" que indica os pontos a serem considerados para definir as chaves de partição devem ser excluídos apenas se DB2_UPDATE_PART_KEY=ON: Nota: Se DB2_UPDATE_PART_KEY=OFF, então as restrições ainda se aplicam. Nota: Nos FixPaks 3 e posteriores, o valor padrão é OFF. * Não é possível atualizar o valor da coluna-chave de partição para uma linha da tabela. * Só é possível excluir ou inserir valores na coluna-chave de partição. ------------------------------------------------------------------------ 8.2 Apêndice D. Incompatibilidade entre Releases 8.2.1 Erro SQL30081N Não-retornado Quando Conexão Perdida É Detectada Os aplicativos que detectam uma perda de conexão com o servidor de banco de dados verificando o erro SQL30081N não mais detectarão perdas de conexões na migração do DB2 Universal Database Versão 6 ou acima. 8.2.2 Utilitário de Exportação Requer FixPak 7 ou Posterior para Lidar Corretamente com Atributos de Identidade Para que o utilitário de exportação suporte todos os atributos de identidade (por exemplo, minvalue, maxvalue, cycle, order, remarks), será necessário executar seu cliente e seu servidor com nível mínimo de FixPak 7. Se o cliente ou o servidor não estiverem nesse nível, o utilitário de exportação ainda irá funcionar, mas ele não conseguirá interpretar os atributos. ------------------------------------------------------------------------ 8.3 Apêndice E. NLS (Suporte a Idioma Nacional) 8.3.1 Código de País/Região e Suporte à Página de Códigos Na tabela de Idiomas Suportados e Conjuntos de Códigos, a página de códigos 5488 também é conhecida como GB 18030 e a página de códigos 1394 também é conhecida como ShiftJIS X0213. Não é suportada a conexão de um cliente UTF-8 (código de página 1208) para um banco de dados não-Unicode. 8.3.2 Considerações sobre Importação/Exportação/Carregamento -- Restrições para as Páginas de Códigos 1394 e 5488 Os dados das páginas de códigos 1394 (ShiftJIS X0213) e 5488 (GB 18030) podem ser movidos para um banco de dados Unicode através dos utilitários de carregamento ou de importação. O utilitário de exportação pode ser utilizado para mover dados de um banco de dados Unicode para um arquivo de dados nas páginas de códigos 1394 e 5488. Somente conexões entre um cliente Unicode e um servidor Unicode são suportadas, portanto, é necessário utilizar um cliente Unicode ou definir a variável de registro do DB2 DB2CODEPAGE para 1208 antes de usar os utilitários de carregamento, importação ou exportação. A conversão da página de códigos 1394 ou 5488 para o Unicode pode resultar em expansão. Por exemplo, um caractere de 2 bytes pode ser armazenado como dois caracteres Unicode de 16 bits nas colunas GRAPHIC. É necessário assegurar-se de que as colunas de destino no banco de dados Unicode sejam grandes o suficiente para conter qualquer byte Unicode expandido. 8.3.3 Valores de Data e Hora 8.3.3.1 Representações de Cadeia de Valores de Data e Hora Valores cujos tipos de dados são DATE, TIME ou TIMESTAMP são representados em um formato interno que é transparente para o usuário de SQL. Datas, horas e datas e horas podem também, no entanto, ser representadas por cadeias e essas representações envolvem diretamente o usuário de SQL, porque não há constantes ou variáveis cujos tipos de dados são DATE, TIME ou TIMESTAMP. Assim, para ser recuperado, um valor de data e hora deve ser atribuído a uma variável de cadeia. A representação da cadeia é geralmente o formato padrão dos valores de data e hora associados ao código do país/região do cliente, a não ser que substituído por especificação da opção do formato DATETIME quando o programa é pré-compilado ou ligado ao banco de dados. Quando uma representação de cadeia válida de um valor de data e hora for utilizado em uma operação com um valor de data e hora interno, a representação da cadeia é convertida para o formato interno da data, da hora ou da data e hora antes da operação ser executada. Representações de cadeia válidas de valores de data e hora são definidas nas seções a seguir. Nota: Representações de cadeia gráfica de valores de data e hora são suportadas apenas em bancos de dados Unicode. 8.3.3.2 Cadeias de Data Uma representação de cadeia de uma data é uma cadeia que começa com um dígito e tem um comprimento de pelo menos 8 caracteres. Espaços em branco finais podem ser incluídos; zeros à esquerda podem ser omitidos da parte do mês e da parte do dia da data. A tabela "Formatos para Representações de Cadeias de Datas" permanece inalterada. 8.3.3.3 Cadeias de Hora Uma representação de cadeia de uma hora é uma cadeia que começa com um dígito e tem um comprimento de pelo menos 4 caracteres. Espaços em branco finais podem ser incluídos; um zero à esquerda pode ser omitido da parte da hora e os segundos podem ser completamente omitidos. Se você optar por omitir os segundos, uma especificação implícita de 0 segundos é assumida. Assim, 13:30 é equivalente a 13:30:00. A tabela "Formatos para Representações de Cadeias de Horas" permanece inalterada. 8.3.3.4 Cadeias de Data e Hora Uma representação de cadeia de data e hora é uma cadeia que começa com um dígito e tem um comprimento de pelo menos 16 caracteres. A representação de cadeia completa de data e hora tem o formato aaaa-mm-dd-hh.mm.ss.nnnnnn. Espaços em branco finais podem ser incluídos; zeros à esquerda podem ser omitidos da parte do mês, do dia ou da hora da data e hora e os microssegundos podem ser truncados ou completamente omitidos. Se você optar por omitir qualquer dígito da parte de microssegundos, uma especificação implícita de 0 segundos é assumida. Assim, 1991-3-2-8.30.00 é equivalente a 1991-03-02-08.30.00.000000. 8.3.3.5 Considerações do Conjunto de Caracteres Cadeias de data e hora devem conter apenas dígitos e símbolos delimitadores. 8.3.3.6 Formatos de Data e Hora A representação de cadeia dos formatos de data e hora é o formato padrão dos valores de data e hora associado ao código do país/região do aplicativo. Esse formato padrão pode ser substituído especificando-se a opção do formato DATETIME quando o programa é pré-compilado ou ligado ao banco de dados. ------------------------------------------------------------------------ Guia de Administração: Implementação ------------------------------------------------------------------------ 9.1 Novo Método para Especificar Contêineres DMS no Windows 2000 e em Sistemas Posteriores O DB2 agora utiliza um novo método para especificar contêineres DMS de espaço de tabelas simples no Windows 2000 e em sistemas posteriores. A cada partição de disco básica ou volume dinâmico é atribuído um GUID (Globally Unique Identifier) na hora da criação. Esse GUID pode ser utilizado como um identificador de dispositivo ao especificar contêineres em uma definição de espaço de tabelas. Como os GUIDs são exclusivos em todo o sistema, uma configuração para vários nós tem GUID exclusivo para cada nó, mesmo se as definições de partição de disco forem as mesmas. Uma ferramenta chamada db2listvolumes.exe foi fornecida para ajudar a exibir os GUIDs de todos os volumes de disco definidos em um sistema Windows. A ferramenta cria dois arquivos no diretório atual no qual ela é executada. Um arquivo, volumes.xml, contém as informações sobre cada volume de disco. Ele foi desenvolvido para ser exibido facilmente em um navegador com XML ativado. O outro arquivo, tablespace.ddl, contém a sintaxe requerida para especificar os contêineres do espaço de tabelas. Antes de utilizar tablespace.ddl, você deve atualizá-lo para incluir as demais informações necessárias para uma definição de espaço de tabelas. A ferramenta db2listvolumes não requer nenhum argumento de linha de comandos. ------------------------------------------------------------------------ 9.2 Exemplo para Estender o Centro de Controle O exemplo mostrado no apêndice Estendendo o Centro de Controle não está correto e não funcionará. Utilize as informações a seguir para trabalhar com o exemplo Java: O programa de exemplo PluginEx.java está localizado no subdiretório samples/java. PluginEx.java é instalado com o DB2 Application Development Client. Para compilar o PluginEx.java, o seguinte deve ser incluído em seu classpath: * Em plataformas Windows utilize: o DRIVE: \sqllib\java\swingall.jar o DRIVE: \sqllib\cc\com.jar o DRIVE: \sqllib\cc em que DRIVE representa a unidade na qual o DB2 está instalado. * Em plataformas UNIX utilize: o /u/db2inst1/sqllib/java/swingall.jar o /u/db2inst1/sqllib/cc em que /u/db2inst1 representa o diretório no qual o DB2 está instalado. Crie o db2plug.zip para incluir todas as classes geradas da compilação do PluginEx.java. O arquivo não deve ser compactado. Por exemplo, emita o seguinte: zip -r0 db2plug.zip PluginEx*.class Esse comando coloca todos os arquivos de classe no arquivo db2plug.zip e preserva as informações do caminho relativo. Siga as instruções do arquivo PluginEx.java para compilar e executar o exemplo. A interface CCObject inclui mais constantes estáticas do que as que estão listadas no apêndice Estendendo o Centro de Controle do Guia de Administração. Abaixo estão as interfaces Java para estender o Centro de Controle (CCExtension, CCObject, CCM enuAction, CCToolBarAction). Essas interfaces estão listadas aqui apenas para referência. CCExtension: // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; /** * The CCExtension interface allows users to extend the Control Center user * interface by adding new toolbar buttons, new menu items and * remove some predefined set of existing menu actions. * * To do so, create a java file which imports the * com.ibm.db2.tools.cc.navigator package and implements this interface. * The new file provides the implementation of the getObjects() and * getToolbarActions() function. * * The getObjects() function returns an array of CCObjects which defines * the existing * objects which the user would like to add new menu actions or remove * the alter or configure menu actions. * * The getToolbarActions() function returns an array of CCToolbarActions * which is added to the Control Center main toolbar. * * A single CCExtension subclass file or multiple CCExtension subclass * files can be used to define the Control Center extensions. In order * for the Control Center to make use of these extensions, use the * following setup procedures: * (1) Create a "db2plug.zip" file which contains all the CCExtension * subclass files. The files should not be compressed. For example, * if the CCExtension files are in the plugin package and they are * located in the plugin directory, issue * zip -r0 db2plug.zip plugin\*.class * This command will put all the plugin package class files into the * db2plug.zip file and preserve their relative path information. * (2) To run WEBCC as an applet, put the db2plug.zip file in where the * tag points to in the WEBCC html file. * To run the Control Center as an application, put * the db2plug.zip in a directory pointed to by the CLASSPATH * envirnoment variable and where the Control Center is run. * * For browsers that support multiple archives, just add "db2plug.zip" * to the archive list of the WEBCC html page. Otherwise, all the * CCExtension, CCObject, CCToolbarAction, CCMenuAction subclass files * will have to be in their relative path depending on which package * they belong to. */ public interface CCExtension { /** * Get an array of CCObject subclass objects which define * a list of objects to be overrided in the * Control Center * @return CCObject[] CCObject subclass objects array */ public CCObject[] getObjects(); /** * Get an array of CCToolbarAction subclass objects which represent * a list of buttons to be added to the Control Center * main toolbar. * @return CCToolbarAction[] CCToolbarAction subclass objects array */ public CCToolbarAction[] getToolbarActions(); } CCObject CCObject: // // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; /** * The CCObject interface allows users to define a new object to be * inserted into the Control Center tree or changing the behavior of the * menu actions of an existing object. */ public interface CCObject { /** * The following static constants defines a list of object type * available to be added to the Control Center tree. */ public static final int UDB_SYSTEMS_FOLDER = 0; public static final int UDB_SYSTEM = 1; public static final int UDB_INSTANCES_FOLDER = 2; public static final int UDB_INSTANCE = 3; public static final int UDB_DATABASES_FOLDER = 4; public static final int UDB_DATABASE = 5; public static final int UDB_TABLES_FOLDER = 6; public static final int UDB_TABLE = 7; public static final int UDB_TABLESPACES_FOLDER = 8; public static final int UDB_TABLESPACE = 9; public static final int UDB_VIEWS_FOLDER = 10; public static final int UDB_VIEW = 11; public static final int UDB_ALIASES_FOLDER = 12; public static final int UDB_ALIAS = 13; public static final int UDB_TRIGGERS_FOLDER = 14; public static final int UDB_TRIGGER = 15; public static final int UDB_SCHEMAS_FOLDER = 16; public static final int UDB_SCHEMA = 17; public static final int UDB_INDEXES_FOLDER = 18; public static final int UDB_INDEX = 19; public static final int UDB_CONNECTIONS_FOLDER = 20; public static final int UDB_CONNECTION = 21; public static final int UDB_REPLICATION_SOURCES_FOLDER = 22; public static final int UDB_REPLICATION_SOURCE = 23; public static final int UDB_REPLICATION_SUBSCRIPTIONS_FOLDER = 24; public static final int UDB_REPLICATION_SUBSCRIPTION = 25; public static final int UDB_BUFFERPOOLS_FOLDER = 26; public static final int UDB_BUFFERPOOL = 27; public static final int UDB_APPLICATION_OBJECTS_FOLDER = 28; public static final int UDB_USER_DEFINED_DISTINCT_DATATYPES_FOLDER = 29; public static final int UDB_USER_DEFINED_DISTINCT_DATATYPE = 30; public static final int UDB_USER_DEFINED_DISTINCT_FUNCTIONS_FOLDER = 31; public static final int UDB_USER_DEFINED_DISTINCT_FUNCTION = 32; public static final int UDB_PACKAGES_FOLDER = 33; public static final int UDB_PACKAGE = 34; public static final int UDB_STORE_PROCEDURES_FOLDER = 35; public static final int UDB_STORE_PROCEDURE = 36; public static final int UDB_USER_AND_GROUP_OBJECTS_FOLDER = 37; public static final int UDB_DB_USERS_FOLDER = 38; public static final int UDB_DB_USER = 39; public static final int UDB_DB_GROUPS_FOLDER = 40; public static final int UDB_DB_GROUP = 41; public static final int UDB_DRDA_TABLES_FOLDER = 42; public static final int UDB_DRDA_TABLE = 43; public static final int UDB_NODEGROUPS_FOLDER = 44; public static final int UDB_NODEGROUP = 45; public static final int S390_SUBSYSTEMS_FOLDER = 46; public static final int S390_SUBSYSTEM = 47; public static final int S390_BUFFERPOOLS_FOLDER = 48; public static final int S390_BUFFERPOOL = 49; public static final int S390_VIEWS_FOLDER = 50; public static final int S390_VIEW = 51; public static final int S390_DATABASES_FOLDER = 52; public static final int S390_DATABASE = 53; public static final int S390_TABLESPACES_FOLDER = 54; public static final int S390_TABLESPACE = 55; public static final int S390_TABLES_FOLDER = 56; public static final int S390_TABLE = 57; public static final int S390_INDEXS_FOLDER = 58; public static final int S390_INDEX = 59; public static final int S390_STORAGE_GROUPS_FOLDER = 60; public static final int S390_STORAGE_GROUP = 61; public static final int S390_ALIASES_FOLDER = 62; public static final int S390_ALIAS = 63; public static final int S390_SYNONYMS_FOLDER = 64; public static final int S390_SYNONYM = 65; public static final int S390_APPLICATION_OBJECTS_FOLDER = 66; public static final int S390_COLLECTIONS_FOLDER = 67; public static final int S390_COLLECTION = 68; public static final int S390_PACKAGES_FOLDER = 69; public static final int S390_PACKAGE = 70; public static final int S390_PLANS_FOLDER = 71; public static final int S390_PLAN = 72; public static final int S390_PROCEDURES_FOLDER = 73; public static final int S390_PROCEDURE = 74; public static final int S390_DB_USERS_FOLDER = 75; public static final int S390_DB_USER = 76; public static final int S390_LOCATIONS_FOLDER = 77; public static final int S390_LOCATION = 78; public static final int S390_DISTINCT_TYPES_FOLDER = 79; public static final int S390_DISTINCT_TYPE = 80; public static final int S390_USER_DEFINED_FUNCTIONS_FOLDER = 81; public static final int S390_USER_DEFINED_FUNCTION = 82; public static final int S390_TRIGGERS_FOLDER = 83; public static final int S390_TRIGGER = 84; public static final int S390_SCHEMAS_FOLDER = 85; public static final int S390_SCHEMA = 86; public static final int S390_CATALOG_TABLES_FOLDER = 87; public static final int S390_CATALOG_TABLE = 88; public static final int DCS_GATEWAY_CONNECTIONS_FOLDER = 89; public static final int DCS_GATEWAY_CONNECTION = 90; public static final int S390_UTILITY_OBJECTS_FOLDER = 91; public static final int S390_DATASET_TEMPLATES_FOLDER = 92; public static final int S390_DATASET_TEMPLATE = 93; public static final int S390_UTILITY_LISTS_FOLDER = 94; public static final int S390_UTILITY_LIST = 95; public static final int S390_UTILITY_PROCEDURES_FOLDER = 96; public static final int S390_UTILITY_PROCEDURE = 97; /** * Total number of object types */ public static final int NUM_OBJECT_TYPES = 98; /** * Get the name of these object * * The function returns the name of this object. This name * can be of three types: * (1) Fully qualified name * Syntax: xxxxx-yyyyy-zzzzz * where xxxxx-yyyyy is the fully quality name of the parent * object and zzzzz is the name of the new object. * Note: Parent and child object name is separated by '-' character. * If a schema name is required to identify object, the fully * qualified name is represented by xxxxx-yyyyy-wwwww.zzzzz * where wwwww is the schema name. * Only the behavior of the object that match this fully * quality name will be affected. * (2) Parent fully qualified name * Syntax: xxxxx-yyyyy * where xxxxx-yyyyy is the fully qualified name of the * parent object. * When the object type is folder (ie. DATABASES_FOLDER), the * getName() should only return the fully qualified name of the * folder's parent. * Only the behavior of the object that match this name * and the specific type return by the getType() function will be * affected. * (3) null * Syntax: null * If null is return, the CCMenuActions returns by the * getMenuActions() call will be applied to all objects of type * returns by the getType() call. * @return String object name */ public String getName(); /** * Get the type of this object * @return int return one of the static type constants defined in this * interface */ public int getType(); /** * Get the CCMenu Action array which defines the list of menu actions * to be created for object * return CCMenuAction[] CCMenuAction array */ public CCMenuAction[] getMenuActions(); /** * Check if this object is editable. If not, the Alter related menu * items will be removed from the object's popup menu * return boolean If false, the Alter menu item will be remove from the * object's popup menu. * Return true if you do not wish to modify current Alter menu item * behaviour. */ public boolean isEditable(); /** * Check if this object is configurable. If not, the configuration * related menu items will be removed from the object's popup menu * return boolean If false, the Configuration related menu item will be * removed from the object's popup menu. * Return true if you do not wish to modify current Configuration * behaviour. */ public boolean isConfigurable(); } CCMenuAction: // // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; import java.awt.event.*; import javax.swing.*; /** * The CCMenuAction class allows users to define a new menu item to be added * to a Control Center object. The new menu item will be added at the end of * an object's popup menu. * * Note: If the object has a Control Center Refresh and/or * Filter menu item, the new menu item will be inserted before the Refresh * and Filter menu. The Control Center Refresh and Filter menu items are * always at the end of the popup menu. */ public interface CCMenuAction { /** * Get the name of this action * @return String Name text on the menu item */ public String getMenuText(); /** * Invoked when an action occurs. * @param e Action event */ public void actionPerformed(ActionEvent e); } CCToolBarAction // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1999. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // package com.ibm.db2.tools.cc.navigator; import java.awt.event.*; import javax.swing.*; /** * The CCToolbarAction interface class allows users to define a new action * to be added to the Control Center toolbar. */ public interface CCToolbarAction { /** * Get the name of this action * @return String Name text on the menu item, or toolbar button hover help */ public String getHoverHelpText(); /** * Get the icon for the toolbar button * Any toolbar CCAction should override this function and return * a valid ImageIcon object. Otherwise, the button will have no icon. * @return ImageIcon Icon to be displayed */ public ImageIcon getIcon(); /** * Invoked when an action occurs. * @param e Action event */ public void actionPerformed(ActionEvent e); } ------------------------------------------------------------------------ Guia de Administração: Desempenho ------------------------------------------------------------------------ 10.1 Esquemas de Tabelas Temporárias do Sistema O esquema para uma tabela temporária do sistema é determinado pelo ID do aplicativo e de autorização que o criou. Quando esses dados ficam disponíveis, o esquema no qual a tabela é criada é . Sob algumas circunstâncias, as tabelas são criadas utilizando somente um desses IDs para determinar o esquema e, às vezes, nenhum. Isso pode resultar em tabelas tais como AUTHID.TEMPTABLENAME ou .TEMPTABLENAME. Você pode exibir as informações de esquema dessas tabelas utilizando o comando GET SNAPSHOT. Para obter informações sobre esse comando, consulte a seção Referência de Comandos ------------------------------------------------------------------------ 10.2 Capítulo 8. Desempenho Operacional 10.2.1 Conjunto de Buffers com Base em Bloco Esse recurso é suportado somente no Sun Solaris Operating Environment. Devido à sobrecarga de E/S, a pré-busca de páginas no disco é uma operação cara. A pré-busca do DB2 melhora significativamente o rendimento quando o processamento pode ser sobreposto com E/S. A maioria das plataformas fornece primitivas de alto desempenho para ler páginas contíguas do disco em partes não-contíguas de memória. Essas primitivas são chamadas geralmente de "leitura dispersa" ou "E/S em vetor". Em algumas plataformas, o desempenho dessas primitivas não pode competir com a execução de E/S em blocos grandes. Por padrão, os conjuntos de buffers baseiam-se em páginas. Isso é, páginas contíguas no disco são pré-buscadas em páginas não-contíguas na memória. Posteriormente, o desempenho da pré-busca poderá ser aperfeiçoado nessas plataformas se as páginas puderem ser lidas do disco em páginas contíguas em um conjunto de buffers. Uma variável de registro, DB2_BLOCK_BASED_BP, permite a criação de uma seção no conjunto de buffers que contenha conjuntos de páginas contíguas. Esses conjuntos de páginas contíguas são chamados de "blocos". Definindo essa variável de registro, uma pré-busca seqüencial lerá as páginas do disco diretamente nesses blocos, em vez de ler cada uma individualmente. Isso melhorará o desempenho de E/S. Para obter mais informações sobre essa variável de registro, consulte a seção 'Variáveis de Registro e de Ambiente' do Guia de Administração. Vários espaços de tabelas com tamanhos de extensão diferentes podem ser ligados a um conjunto de buffers com o mesmo tamanho de bloco. Há uma relação muito próxima entre tamanhos de extensão e tamanhos de bloco apesar de lidarem com conceitos distintos. Uma extensão é a granularidade na qual os espaços de tabelas são demarcadas em vários contêineres. Um bloco é a única granularidade em que servidores de E/S executando pedidos de pré-busca em seqüência considerarão a realização de E/S baseada em bloco. Os pedidos de pré-busca em seqüência individual utilizam páginas do tamanho da extensão. Quando esse pedido de pré-busca é recebido, o servidor de E/S determina o custo e benefício de se fazer cada pedido como uma E/S baseada em bloco (se houver uma área baseada em bloco no conjunto de buffers) em vez da E/S baseada em página utilizando o método de leitura dispersa. O benefício de se fazer qualquer E/S como E/S baseada em bloco é o benefício de desempenho da leitura do disco contíguo na memória contígua. O custo é a quantidade de memória desperdiçada no conjunto de buffers que pode resultar da utilização desse método. A memória do conjunto de buffers pode ser desperdiçada por dois motivos ao executar E/S baseada em bloco: * O número de páginas no pedido de pré-busca contém menos páginas do que o número de páginas de um bloco. Isso é, o tamanho da extensão é menor que o tamanho do bloco. * Algumas das páginas solicitadas como parte do pedido de pré-busca já estão na área de páginas do conjunto de buffers. Nota: Cada bloco na área baseada em bloco de um conjunto de buffers não pode ser subdividido. As páginas no bloco devem ser todas contíguas. Como resultado, há uma possibilidade de desperdício de espaço. O servidor de E/S permite algumas páginas desperdiçadas em cada bloco para obter o benefício de execução de E/S baseada em bloco. Entretanto, quando houver muito desperdício de um bloco, o servidor de E/S reverterá para a utilização de pré-busca baseada em página na área de páginas do conjunto de buffers. Como resultado, alguma E/S feita durante a pré-busca não será baseada em bloco. Essa condição não é a ideal. Para obter um ótimo desempenho, é necessário ter vários espaços de tabelas com o mesmo tamanho de extensão ligadas a um conjunto de buffers com o mesmo tamanho de bloco. Ainda será possível obter um bom desempenho se o tamanho de extensão de alguns espaços de tabelas for maior do que o tamanho do bloco do conjunto de buffers ao qual estiverem ligados. Não é aconselhável efetuar vinculação de espaços de tabelas a um conjunto de buffers quando o tamanho da extensão é menor do que o tamanho do bloco. Nota: A área de blocos de um conjunto de buffers é utilizada somente para pré-busca em seqüência. Se houver pouca ou nenhuma pré-busca em seqüência envolvida no sistema, a área de blocos será uma parte desperdiçada do conjunto de buffers. Ambos os suportes, ao AWE e com base em bloco, não podem ser configurados para um conjunto de buffers ao mesmo tempo. Se as variáveis de registro DB2_AWE e DB2_BLOCK_BASED_BP referirem-se ao mesmo conjunto de buffers, o AWE obterá precedência. O suporte com base em bloco será desativado nesse caso e será reativado somente quando o AWE estiver desativado. Um conjunto de buffers que estiver utilizando armazenamento estendido não suporta E/S baseada em bloco. 10.2.1.1 Exemplos de Conjuntos de Buffers Com Base em Blocos Antes de trabalhar com qualquer um dos exemplos, será necessário que você conheça os identificadores dos conjuntos de buffers em seu sistema. O ID do conjunto de buffers pode ser visto na coluna BUFFERPOOLID da exibição do catálogo de sistema SYSCAT.BUFFERPOOLS. Cenário 1 Você tem um conjunto de buffers com um ID de 4 que tem 1000 páginas. Você deseja criar uma área de blocos composta de 700 páginas nas quais cada bloco contém 32 páginas. É necessário executar o seguinte: db2set DB2_BLOCK_BASED_BP=4,700,32 Quando o banco de dados for iniciado, o conjunto de buffers com ID 4 será criado com uma área de blocos de 672 páginas e uma área de páginas de 328 páginas. Nesse exemplo, 32 não pode ser dividido igualmente em 700. Isso significa que o tamanho da área de blocos especificado teve que ser reduzido para o limite de tamanho de bloco mais próximo utilizando a seguinte fórmula: ((block area size)) FLOOR(-----------------) X block size ( (block size) ) ( 700 ) = FLOOR(------------------) X 32 ( 32 ) = 21 x 32 = 672 Cenário 2 Você tem um conjunto de buffers com um ID de 11 que tem 3000 páginas. Você deseja criar uma área de blocos composta de 2700 páginas. É necessário executar o seguinte: db2set DB2_BLOCK_BASED_BP=11,2700 Quando o banco de dados for iniciado, o conjunto de buffers com ID de 11 será criado com uma área de blocos de 2688 páginas e uma área de páginas de 312 páginas. Sem um valor fornecido explicitamente para o tamanho do bloco, será utilizado o valor padrão de 32. Nesse exemplo, 32 não pode ser dividido igualmente em 2700. Isso significa que o tamanho da área de blocos especificado teve que ser reduzido para o limite de tamanho de bloco mais próximo utilizando a seguinte fórmula: ((block area size)) FLOOR(-----------------) X block size ( (block size) ) ( 2700 ) = FLOOR(------------------) X 32 ( 32 ) = 84 x 32 = 2688 ------------------------------------------------------------------------ 10.3 Capítulo 10. Ajustando a Escala de Configuração Através da Inclusão de Processadores 10.3.1 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 espaços de tabelas de tipo temporário 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. Isso 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 espaços de tabelas 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 espaços de tabelas 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 espaços de tabelas 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 espaços de tabelas 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. Essa 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. Isso ativa a operação ADD NODE para o sucesso completo. Outra maneira de impedir esses problemas é especificar a cláusula WITHOUT TABLESPACES no comando ADD NODE ou db2start. Feito isso, você terá de criar os pools de buffer utilizando a instrução CREATE BUFFERPOOL e associar os espaços de tabelas 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 um ou mais espaços de tabelas com um tamanho de página que é diferente do tamanho de página padrão (4 KB), você pode encontrar a mensagem de erro: "SQL0647N Bufferpool "" não está ativo atualmente.". Isso 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 espaços de tabela. 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 espaços de tabelas 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 espaços de tabelas 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 esse 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 espaço de tabelas 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) Essa série de comandos e instruções gera a mensagem de erro SQL0647N (e não a mensagem esperada SQL1759W). Para concluir essa 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. ------------------------------------------------------------------------ 10.4 Capítulo 13. Configurando o DB2 10.4.1 Conclusão do Archive de Log Agora Verificada Mais Freqüentemente Para melhorar o tempo de recuperação evitando pedidos de archive de log desnecessários, o servidor do banco de dados agora verifica a conclusão do archive de log quando um novo arquivo de log é criado e quando o primeiro log ativo é alterado. 10.4.2 Correção Feita na Seção Informações de Ordenação (collate_info) A documentação para informações de ordenação informa incorretamente que o parâmetro collate_info pode ser exibido somente por meio da API GET DATABASE CONFIGURATION. Isso está incorreto. Não é possível utilizar a API GET DATABASE CONFIGURATION para exibir o parâmetro collate_info. Em vez disso, você deve utilizar db2CfgGetAPI. ------------------------------------------------------------------------ 10.5 Variáveis de Ambiente e Registro do DB2 10.5.1 Correções de Variáveis de Desempenho Tabela 5. Variáveis de Desempenho Nome da Variável Sistema Valores Operacional Descrição DB2_BINSORT Todos Padrão=YES Valores: YES ou NO Permite um novo algoritmo de ordenação que reduz o tempo da CPU e o tempo decorrido de ordenações. Esse novo algoritmo estende a técnica de ordenação de números inteiros extremamente eficiente do DB2 UDB para todas ordenações de tipos de dados, como BIGINT, CHAR, VARCHAR, FLOAT e DECIMAL, assim como combinações desses tipos de dados. Para ativar esse novo algoritmo, utilize o seguinte comando: db2set DB2_BINSORT = yes DB2_BLOCK_BASED_BP Solaris Padrão=Nenhum Operating Environment Valores: dependente de parâmetros Especifica os valores necessários para criar uma área de blocos em um conjunto de buffers. O ID do conjunto de buffers é necessário e pode ser visto na coluna BUFFERPOOLID da exibição de catálogo do sistema SYSCAT.BUFFERPOOLS. O número de páginas a serem alocadas no conjunto de buffers para a E/S baseada em bloco deve ser fornecido. O número de páginas a serem incluídas em um bloco é opcional, com um valor padrão de 32. O formato para a utilização dessa variável de registro é: DB2_BLOCK_BASED_BP=BUFFER POOL ID,BLOCK AREA SIZE,[BLOCK SIZE];... Vários conjuntos de buffers podem ser definidos para "com base em bloco" utilizando-se a mesma variável com ponto-e-vírgula separando as entradas. O valor para BLOCK SIZE pode variar de 2 a 256. Se o BLOCK SIZE não for fornecido, o padrão utilizado é 32. Se o BLOCK AREA SIZE especificado for maior que 98% do tamanho total do conjunto de buffers, o conjunto de buffers não se baseará em bloco. É interessante que sempre se tenha alguma parte do conjunto de buffers na área baseada em página do conjunto de buffers, porque há a possibilidade de que páginas individuais sejam requeridas mesmo se a maior parte da E/S no sistema for de pré-busca em seqüência. Se o valor especificado para BLOCK AREA SIZE não for um múltiplo de BLOCK SIZE, ele será reduzido para o limite mais próximo do tamanho do bloco. Para obter mais informações sobre E/S baseada em bloco, consulte a seção 10.2.1, Conjunto de Buffers com Base em Bloco. DB2_NO_FORK_CHECK UNIX Padrão=OFF Valores: ON ou OFF Quando essa variável está ativada como "ON", o processo cliente não se protegerá contra um aplicativo que faça cópia do processo a ser executado (chamado bifurcação). Quando a bifurcação ocorre, os resultados são imprevisíveis. Os resultados podem variar de nenhum efeito a alguns maus resultados, a algum código de erro sendo retornado, a um trap no aplicativo. Se você está certo de que seu aplicativo não bifurca e quer desempenho melhor, você deve mudar o valor dessa variável para "ON". DB2_MINIMIZE_LIST_PREFETCH Todos Padrão=NO Valores: YES ou NO Pré-captura da lista é um método especial de acesso à tabela que envolve recuperar os RIDS qualificados do índice, ordenando-os por número de página e, em seguida, fazendo uma pré-captura das páginas de dados. Às vezes o otimizador não tem informações precisas para determinar se a pré-captura da lista é um bom método de acesso. Isso pode ocorrer quando seletividades de predicados contêm marcadores de parâmetros ou de variáveis de host que impedem o otimizador de utilizar estatísticas de catálogo para determinar a seletividade. Essa variável de registro impedirá que o otimizador considere pré-captura de lista nessas situações. DB2_INLIST_TO_NLJN Todos Padrão=NO Valores: YES ou NO Em algumas situações, o compilador de SQL pode reescrever um predicado de lista IN para uma junção. Por exemplo, a seguinte consulta: SELECT * FROM EMPLOYEE WHERE DEPTNO IN ('D11', 'D21', 'E21') pode ser escrita como: SELECT * FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO) WHERE DEPTNO = V.DNO Essa versão pode fornecer melhor desempenho se houver um índice em DEPTNO. A lista de valores seria acessada primeiro e juntada a EMPLOYEE com um loop aninhado, utilizando o índice para aplicar o predicado de junção. Às vezes o otimizador não tem informações precisas para determinar o melhor método de junção para a versão reescrita da consulta. Isso pode ocorrer se a lista IN contiver marcadores de parâmetros ou variáveis do host, que impeçam o otimizador de utilizar estatísticas para determinar a seletividade. Essa variável de registro fará com que o otimizador favoreça junções de loop aninhado para juntar a lista de valores, utilizando a tabela que contribui com a lista IN como a tabela interna da junção. 10.5.2 Novos Parâmetros para Variável de Registro DB2BPVARS A variável de registro DB2BPVARS suporta dois novos parâmetros: NUMPREFETCHQUEUES e PREFETCHQUEUESIZE. Esses parâmetros são aplicáveis a todas as plataformas e podem ser utilizados para melhorar a pré-busca de dados de conjunto de buffer. Por exemplo, considere a pré-busca sequencial em que o PREFETCHSIZE desejado é dividido em pedidos de pré-busca PREFETCHSIZE/EXTENTSIZE. Nesse caso, pedidos são colocados em filas de pré-busca a partir das quais servidores de E/S são despachados para executar E/S assíncrona. Por padrão, o DB2 mantém uma fila de tamanho máximo ( 100 , 2*NUM_IOSERVERS ) para cada partição de banco de dados. Em alguns ambientes, o desempenho melhora com mais filas, filas de tamanhos diferentes ou ambos. O número de filas de pré-busca deve ter pelo menos metade do número de servidores E/S. Ao definir esses parâmetros, considere outros parâmetros, como, por exemplo, PREFETCHSIZE, EXTENTSIZE, NUM_IOSERVERS, tamanho do conjunto de buffers e DB2_BLOCK_BASED_BP, bem como as características da carga de trabalho, como o número de usuários atuais. Se você achar que os valores padrão são muito pequenos para o seu ambiente, primeiramente, aumente os valores aos poucos. Por exemplo, você pode definir NUMPREFETCHQUEUES=4 e PREFETCHQUEUESIZE=200. Altere esses parâmetros de forma controlada, para que você possa monitorar e avaliar os resultados das alterações. Tabela 6. Resumo dos Novos Parâmetros Nome do parâmetro Valor padrão Intervalo válido NUMPREFETCHQUEUES 1 1 para NUM_IOSERVERS se for definido como inferior a 1, ajuste para 1 se for definido como superior a NUM_IOSERVERS, ajuste para NUM_IOSERVERS PREFETCHQUEUESIZE máx.(100,2*NUM_IOSERVERS) 1 para 32767 se for definido como inferior a 1, ajuste ao padrão se for definido como superior a 32767, ajuste a 32767 10.5.3 Correções e Inclusões nas Variáveis de Registro Diversas A variável de registro DB2_NEWLOGPATH2 está disponível para todos os sistemas operacionais. Uma nova variável, DB2_ROLLFORWARD_NORETRIEVE, foi introduzida. As informações corretas para as duas variáveis aparecem abaixo. Tabela 7. Variáveis Diversas Nome da Variável Sistema Valores Operacional Descrição DB2_NEWLOGPATH2 TODOS Padrão=NO Valores: YES ou NO Esse parâmetro permite que você especifique se um caminho secundário deve ser utilizado para implementar o registro duplo. O caminho utilizado é gerado anexando-se um "2" ao valor atual do parâmetro de configuração de banco de dados logpath. DB2_ROLLFORWARD_NORETRIEVE TODOS Padrão=(não definido) Valores: YES ou NO Se o parâmetro de configuração de banco de dados USEREXIT for ativado, arquivos de registro são automaticamente recuperados do archive durante as operações de avanço. A variável DB2_ROLLFORWARD_NORETRIEVE permite que você especifique se as operações de avanço não devem recuperar arquivos de registro do archive. Essa variável é desativada por padrão. Defina essa variável como YES se você não deseja que o avanço recupere arquivos de registro automaticamente. Por exemplo, defina a variável como YES em uma configuração espera automática quando desejar evitar que arquivos de registro criados por um aplicativo ruim corrompam o sistema de backup. 10.5.4 Correções e Inclusões nas Variáveis de Registro Gerais Uma nova variável, DB2_REDUCED_OPTIMIZATION, foi introduzida. Tabela 8. Variável de Registro Geral Nome da Variável Sistema Valores Operacional Descrição DB2_REDUCED_OPTIMIZATION TODOS Padrão=NO Valores: YES, NO ou qualquer número inteiro Essa variável de registro permite que você desative algumas das técnicas de otimização utilizadas em níveis de otimização específicos. Se você reduzir o número de técnicas de otimização utilizadas, reduzem-se tempo e recursos utilizados durante a otimização. Nota: Embora o uso de recursos e tempo de otimização possa ser reduzido, o risco de produzir um plano de acesso de dados abaixo do ideal aumenta. * Se definido como NO O otimizador não altera suas técnicas de otimização. * Se definido como YES Se o nível de otimização for 5 (o padrão) ou inferior, o otimizador desativa algumas técnicas de otimização que podem consumir tempo de preparo e recursos significantes, mas que geralmente não produzem um melhor plano de acesso. Se o nível de otimização for exatamente 5, o otimizador recua ou desativa algumas técnicas adicionais, o que pode mais adiante reduzir a utilização de recursos e tempo de otimização, mas também aumentar o risco de um plano de acesso abaixo do ideal. Para níveis de otimização inferiores a 5, algumas dessas técnicas podem não estar em efeito de qualquer modo. Se estiverem, porém, elas permanecem em efeito. * Se definido como qualquer número inteiro O efeito é o mesmo de quando o valor é definido como YES, com o seguinte comportamento adicional para consultas dinamicamente otimizadas no nível 5: se o número total de junções em qualquer bloco de consultas exceder o definido, então, o otimizador vai para enumeração "greedy join" em vez de desativar técnicas de otimização adicionais como descrito acima para o nível de otimização 5, o que implica que a consulta será otimizada em um nível similar ao nível de otimização 2. Para obter informações adicionais sobre enumerações "greedy" e "dynamic join", veja "SearchStrategies para Seleção de Junção Ideal" em Guia de Administração: Performance. Observe que a redução de otimização dinâmica no nível de otimização 5, como descrito em "Ajustando a Classe de Otimização", em Guia de Administração: Desempenho, tem precedência sobre o comportamento descrito para o nível de otimização de exatamente 5 quando DB2_REDUCED_OPTIMIZATION é definido como YES, bem como sobre o comportamento descrito para a definição como inteiro. ------------------------------------------------------------------------ Guia e Referência de Administração de Satélites ------------------------------------------------------------------------ 11.1 Configurando o DB2 Personal Edition Versão 7.2 e o DB2 Workgroup Edition como Satélites As seções que seguem descrevem como configurar os sistemas DB2 Personal Edition Versão 7.2 e DB2 Workgroup Edition 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 a publicação Administrando o Guia e Referência de Satélites. Você pode encontrar esse manual no seguinte URL: http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v6pubs.d2w/en_main Para obter Technotes que complementam as informações do Administrando o Guia e Referência de Satélites, consulte o seguinte URL: http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/index.d2w/report 11.1.1 Pré-Requisitos Para configurar o DB2 Personal Edition ou o DB2 Workgroup Edition como satélites, é necessário 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 Control Server 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 a seção 11.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 Control Server 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 a publicação Administrando o Guia e Referência de Satélites 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 Control Server. Se você instalar o DB2 no AIX, consulte a publicação Administrando o Guia e Referência de Satélites 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 a partir 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 a publicação Administrando o Guia e Referência de Satélites e o auxílio on-line que está disponível no Centro de Administração do Satélite. Se você estiver executando um Centro de Controle Versão 6, consulte a seção 11.1.4, Fazendo o Upgrade de uma Versão 6 do Centro de Controle e do 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 na publicação Administrando o Guia e Referência de Satélites. 4. Um sistema Personal Edition ou Workgroup Edition Versão 7.2 que você deseja utilizar como um satélite. 11.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 a seçãoExecutando uma Instalação do Arquivo de Resposta para obter as palavras-chave que você 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 a seção 11.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 a seção 11.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 nessa 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 o ID 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 a publicação Administrando o Guia e Referência de Satélites. Notas: 1. Na Versão 7, os IDs de usuários e as senhas 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 na publicação Administrando o Guia e Referência de Satélites), não são suportadas: o db2.userdb_name o db2.userdb_recoverable o db2.userdb_rep_src 11.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, você não precisará executar essa etapa. Para obter informações sobre a definição do ID do satélite, consulte a publicação Administrando o Guia e Referência de Satélites. 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, você não precisará executar essa 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 a publicação Administrando o Guia e Referência de Satélites. 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 nessa janela. Você também será solicitado a 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, 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. 11.1.3 Instalando o FixPak 2 ou Superior em um Sistema Enterprise Edition Versão 6 Para que um sistema Enterprise Edition Versão 6 seja utilizado como um servidor de controle do DB2, o sistema deverá ter o FixPak 2 ou superior. As seções que seguem descrevem as tarefas que você deve executar para fazer o upgrade de 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 11.1.4, Fazendo o Upgrade de uma Versão 6 do Centro de Controle e do 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. 11.1.3.1 Fazendo o Upgrade do DB2 Enterprise Edition Versão 6 para Uso como o DB2 Control Server 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 Control Server e o DB2 Enterprise Edition deve estar no nível de serviço FixPak ou superior. Dependendo do componente do DB2 Control Server 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. * Faça o upgrade de um servidor de controle do DB2 já instalado para o nível FixPak 2 ou superior. Utilize as informações que se seguem para identificar quais das duas tarefas anteriores precisam ser executadas e as etapas que se aplicam à 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 Control Server 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 fazer o upgrade do DB2 Enterprise Edition. O servidor de controle do DB2 pode executar somente no DB2 Enterprise Edition para Windows NT e AIX. Continue com as instruções que são apropriadas para sua plataforma: * Fazendo o Upgrade do DB2 Enterprise Edition no Windows NT * Fazendo o Upgrade do DB2 Enterprise Edition no AIX Fazendo o Upgrade do 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 Control Server no Windows NT * Instalando o FixPak 2 ou Superior no Windows NT * Fazendo o Upgrade do 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 Control Server 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 Control Server 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-Chave na saída db2level Seu sistema DB2 Release Nível Tokens 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 ao 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 à 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. Verifique cada etapa conforme você a executa. Execute apenas as etapas que se aplicam à sua situação. Componente do Control Nível de Serviço do Etapas requeridas para Server Instalado Sistema DB2 Enterprise preparar o sistema DB2 Edition Enterprise Edition 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 Control Server no Windows NT 2. Instalando o FixPak 2 ou Superior no Windows NT 3. Fazendo o Upgrade do 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. Fazendo o Upgrade do SATCTLDB no Windows NT Sim Versão 6.1 mais FixPak 2 Execute as seguintes ou superior etapas: 1. Fazendo o Upgrade do SATCTLDB no Windows NT Instalando o Componente Control Server no Windows NT Para instalar o componente Control Server 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 esteja selecionado. 6. No painel Selecionar Tipo de Instalação, clique em Personalizar. 7. No painel Selecionar Componentes, assegure-se de que o componente Control Server 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 Control Server 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 arquivos estiver concluído, você terá a opção de reinicializar o sistema. Você deve reinicializar agora. As alterações feitas no sistema para o Control Server 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 Control Server 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 Comandos do DB2 selecionando Iniciar>Programas>DB2 para Windows NT>Janela de Comandos 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 Comandos 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 leia-me de acompanhamento. Pode ser feito download do FixPak, seguindo as instruções no URL: http://www.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. Fazendo o Upgrade do 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. Efetue logon com um ID do usuário que possui autoridade administrativa local no sistema Windows NT. b. Abra uma Janela de Comandos do DB2, selecionando Iniciar>Programas>DB2 para Windows NT>Janela de Comandos. 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. Nessa 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 Comandos do DB2: a. Vá para o diretório \misc, em que é 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. Efetue a vinculação do 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, em que é a unidade e o caminho de instalação, por exemplo c:\sqllib. c. Emita o comando de ligação, como se 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 Comandos do DB2. Fazendo o Upgrade do 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 Control Server no AIX * Instalando o FixPak 2 ou Superior no AIX * Fazendo o Upgrade do 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 Control Server está instalado. Digite o seguinte comando: lslpp -l | grep db2_06_01.ctsr Se nenhum dado for retornado, o componente Control Server não será instalado. 2. Determine o nível de serviço do DB2 Enterprise Edition. Efetue logon 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-Chave na saída db2level Seu sistema DB2 Release Nível Tokens 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 à 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. Verifique cada etapa conforme você a executa. Execute apenas as etapas que se aplicam à sua situação. Componente do Control Nível de Serviço do Etapas requeridas para Server Instalado Sistema DB2 Enterprise preparar o sistema DB2 Edition Enterprise Edition 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 Control Server no AIX 2. Instalando o FixPak 2 ou Superior no AIX 3. Fazendo o Upgrade do 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. Fazendo o Upgrade do Banco de Dados SATCTLDB no AIX Sim Versão 6.1 mais FixPak 2 Execute as seguintes ou superior etapas: 1. Fazendo o Upgrade do Banco de Dados SATCTLDB no AIX Instalando o Componente Control Server no AIX Para instalar o componente Control Server no AIX 1. Efetue logon como um usuário com autoridade root. 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 DB2 Control Server, 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 DB2 Control Server. 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 DB2 Control Server no AIX" no Capítulo 13 do Administrando o Guia e Referência de Satélites. 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 do DB2 Enterprise Edition para AIX V6.1 na Web, juntamente com o "Leia-me" fornecido com ele. Pode ser feito download do FixPak, seguindo as instruções no URL: http://www.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 para AIX Versão 6.1 que está no nível FixPak 2 ou superior e siga as instruções no arquivo leia-me no CD, para concluir a instalação. Assegure-se de que você tenha atualizado a instância DB2CTLSV executando o comando db2iupdt, conforme instruído no arquivo Readme do FixPak. Fazendo o Upgrade do 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. Efetue login como db2ctlsv. b. Assegure-se de que o servidor do banco de dados tenha sido 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. Nessa 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 Comandos 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. Efetuar a vinculação do 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 11.1.4 Fazendo o Upgrade de uma Versão 6 do Centro de Controle e do Centro de Administração do Satélite Para utilizar uma Versão 6 do Centro de Controle e Centro de Administração do Satélite com um servidor de controle do DB2 Versão 6 e o SATCTLDB (Satellite Control Database) que foram atualizados para FixPak 2 ou superior, as ferramentas também devem sofrer upgrade 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 sofreram upgrade quando o sistema DB2 Enterprise Edition sofreu upgrade para FixPak 2. Entretanto, se você executar essas ferramentas em outro sistema, deverá fazer o upgrade desse sistema para o nível FixPak 2 ou superior. Para fazer o upgrade desse 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 leia-me de acompanhamento. Pode ser feito download dos FixPaks seguindo as instruções no URL: http://www.ibm.com/software/data/db2/db2tech/version61.html Instale o FixPak seguindo as instruções no arquivo leia-me. * Utilize um DB2 Universal Database, o CD FixPak Versão 6.1 para o sistema operacional que você está executando que se encontra no nível FixPak 2 ou superior e siga as instruções no leia-me para concluir a instalação. ------------------------------------------------------------------------ Referência de Comandos ------------------------------------------------------------------------ 12.1 Atualização Disponível O Referência de Comandos foi atualizado como parte do FixPak 4. O PDF mais recente está disponível para download on-line em http://www.ibm.com/software/data/db2/udb/winos2unix/support. As informações nessas notas são complementares à referência atualizada. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis no endereço http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. ------------------------------------------------------------------------ 12.2 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 a utilização das novas funções incorporadas: ABS, DECRYPT_BIN, DECRYPT_CHAR, ENCRYPT, GETHINT, MULTIPLY_ALT e ROUND. * Permite a utilização das novas funções incorporadas para bancos de dados Unicode: DATE(vargraphic), TIME(vargraphic), TIMESTAMP(vargraphic), GRAPHIC(datetime-expression), GRAPHIC(date-expression), GRAPHIC(time-expression) e VARGRAPHIC(datetime-expression). * 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. * Cria os objetos do sistema necessários para utilizar um cliente do DB2 versão 8 para estabelecer conexão com um servidor DB2 versão 7. 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 informação 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 desconectados desse banco de dados e o banco de dados deve ser desativado, caso esteja ativado. ------------------------------------------------------------------------ 12.3 Contexto Adicional para Nota de Utilização do ARCHIVE LOG As notas de uso para ARCHIVE LOG atualmente indicam que a utilização desse comando irá fazer com que um banco de dados perca uma parte de seu LSN (número de seqüência de log) e, conseqüentemente, aumentando a velocidade com que os LSNs válidos são expirados. Para colocar esse uso de espaço no contexto, se você tiver um tamanho de arquivo de log de 100 MB e executar ARCHIVE LOG a cada cinco minutos, ele ainda vai demorar aproximadamente 40 anos para esgotar os LSNs válidos. Sob a maioria das condições de operação, não haverá nenhum impacto. ------------------------------------------------------------------------ 12.4 REBIND O diagrama de sintaxe para o comando REBIND deve aparecer assim: Missing value Sintaxe do Comando >>-REBIND--+---------+--package-name----------------------------> '-PACKAGE-' .-ANY----------. >--RESOLVE--+-CONSERVATIVE-+----------------------------------->< ------------------------------------------------------------------------ 12.5 RUNSTATS Na documentação do comando RUNSTATS, o último parágrafo de "Notas sobre Utilização" contém informações incorretas. O último parágrafo atualmente informa o que ocorre quando são encontradas incompatibilidades na execução do comando RUNSTATS com e sem as estatísticas de distribuição ou índice. As estatísticas eliminadas ou retidas não estão enunciadas corretamente. A seguir, as instruções corretas sobre o que ocorre. Se você emitir RUNSTATS em uma tabela, as estatísticas de distribuição coletadas anteriormente serão eliminadas. Se você emitir RUNSTATS somente em índices, as estatísticas de distribuição coletadas anteriormente serão retidas. ------------------------------------------------------------------------ 12.6 db2inidb - Inicializar um Banco de Dados Espelhado A descrição do parâmetro RELOCATE USING configfile deve aparecer assim: Especifica que os arquivos de banco de dados devem ser realocados nas informações listadas no arquivo de configuração antes da inicialização do banco de dados como um instantâneo, espera ou espelho. Nota: Para informações sobre o formato do arquivo de configuração, consulte a publicação Guia e Referência dos Utilitários de Movimentação dos Dados. 12.6.1 Informações de Utilização Se o parâmetro RELOCATE USING configfile estiver especificado e o banco de dados for realocado com êxito, o arquivo de configuração é copiado no diretório do banco de dados e renomeado db2path.cfg. Durante quaisquer recuperações de falha ou de avanço subseqüentes, esse arquivo de configuração é utilizado para renomear dinamicamente os caminhos de contêiner durante o processamento do arquivo de registro. Se você inicializar um banco de dados instantâneo ou espelhado, o arquivo de configuração é removido automaticamente depois que a recuperação for concluída. Se você inicializar um banco de dados de espera, o arquivo de configuração não apenas é removido depois que a recuperação for concluída, como também é removido se você cancelar o processo de recuperação. Se você estiver trabalhando com um banco de dados de espera que você está mantendo em estado pendente para que você possa avançá-lo continuamente e incluir novos contêineres no banco de dados original, você pode atualizar manualmente o arquivo db2path.cfg para indicar onde os contêineres devem ser armazenados para o banco de dados de espera. Se você não especificar uma localização para os novos contêineres, o DB2 tentará armazená-los na mesma localização dos originais. ------------------------------------------------------------------------ 12.7 db2relocatedb (Novo Comando) db2relocatedb - Realocar Banco de Dados Renomeia um banco de dados ou realoca um banco de dados ou parte dele (por ex., contêiner, diretório de log) conforme especificado no arquivo de configuração fornecido pelo usuário. Essa ferramenta faz as alterações necessárias na instância do DB2 e nos arquivos de suporte do banco de dados. Autorização Nenhuma Conexão Requerida Nenhuma Sintaxe do Comando >>-db2relocatedb---f--configFilename--------------------------->< Parâmetros do Comando -f configFilename Especifica o nome do arquivo que contém as informações de configuração necessárias para realocar o banco de dados. Esse nome de arquivo pode ser relativo ou absoluto. O formato do arquivo de configuração é: DB_NAME=oldName,newName DB_PATH=oldPath,newPath INSTANCE=oldInst,newInst NODENUM=nodeNumber LOG_DIR=oldDirPath,newDirPath CONT_PATH=oldContPath1,newContPath1 CONT_PATH=oldContPath2,newContPath2 ... Em que: DB_NAME Especifica o nome do banco de dados que está sendo realocado. Se o nome do banco de dados estiver sendo alterado, tanto o nome antigo quanto o novo nome deverão ser especificados. Esse campo é requerido. DB_PATH Especifica o caminho do banco de dados que está sendo realocado. Esse é o caminho no qual o banco de dados foi originalmente criado. Se o caminho do banco de dados estiver sendo alterado, tanto o caminho antigo quanto o caminho novo deverão ser especificados. Esse campo é requerido. INSTANCE Especifica a instância na qual o banco de dados existe. Se o banco de dados estiver sendo movido para uma nova instância, tanto a instância antiga quanto a instância nova deverão ser especificadas. Esse campo é requerido. NODENUM Especifica o número do nó para o nó do banco de dados que está sendo alterado. O padrão é 0. LOG_DIR Especifica uma alteração na localização do caminho do log. Se o caminho do registro estiver sendo mudado, tanto o caminho antigo quanto o novo devem ser especificados. Essa especificação é opcional se caminho do registro residir sob o caminho do banco de dados, caso em que o caminho é atualizado automaticamente. CONT_PATH Especifica uma alteração na localização dos contêineres de espaços de tabela. Os caminhos antigo e novo do contêiner deverão ser especificados. Várias linhas CONT_PATH poderão ser fornecidas se houver várias alterações no caminho do contêiner a serem feitas. Essa especificação é opcional se os caminhos de contêiner residirem sob o caminho do banco de dados, caso em que os caminhos serão atualizados automaticamente. Nota: Linhas em branco ou linhas que iniciem com um caractere que indique comentário (#) serão ignoradas. Exemplos Exemplo 1 Para alterar o nome do banco de dados TESTDB para PRODDB na instância DB2INST1 que reside no caminho /home/db2inst1, crie o seguinte arquivo de configuração: DB_NAME=TESTDB,PRODDB DB_PATH=/home/db2inst1 INSTANCE=db2inst1 NODENUM=0 Salve o arquivo de configuração como relocate.cfg e utilize o seguinte comando para fazer as alterações nos arquivos de banco de dados: db2relocatedb -f relocate.cfg Exemplo 2 Para mover o banco de dados DATAB1 da instância JSMITH no caminho /dbpath para a instância PRODINST, proceda da seguinte maneira: 1. Mova os arquivos do diretório /dbpath/jsmith para /dbpath/prodinst. 2. Utilize o seguinte arquivo de configuração com o comando db2relocatedb para fazer as alterações nos arquivos de banco de dados: DB_NAME=DATAB1 DB_PATH=/dbpath INSTANCE=jsmith,prodinst NODENUM=0 Exemplo 3 O banco de dados PRODDB existe na instância INST1 no caminho /databases/PRODDB. A localização de dois contêineres de tablespace precisa ser alterada da seguinte forma: * O contêiner do SMS /data/SMS1 precisa ser movido para /DATA/NewSMS1. * O contêiner do DMS /data/DMS1 precisa ser movido para /DATA/DMS1. Depois que os diretórios e arquivos físicos forem movidos para as novas localizações, o seguinte arquivo de configuração poderá ser utilizado com o comando db2relocatedb para fazer alterações nos arquivos de banco de dados para que eles reconheçam as novas localizações: DB_NAME=PRODDB DB_PATH=/databases/PRODDB INSTANCE=inst1 NODENUM=0 CONT_PATH=/data/SMS1,/DATA/NewSMS1 CONT_PATH=/data/DMS1,/DATA/DMS1 Exemplo 4 O banco de dados TESTDB existe na instância DB2INST1 e foi criado no caminho /databases/TESTDB. Espaços de Tabelas foram criadas com os seguintes contêineres: TS1 TS2_Cont0 TS2_Cont1 /databases/TESTDB/TS3_Cont0 /databases/TESTDB/TS4/Cont0 /Data/TS5_Cont0 /dev/rTS5_Cont1 TESTDB será movido para um novo sistema. A instância no novo sistema será NEWINST e a localização do banco de dados será /DB2. Quando o banco de dados for movido, todos os arquivos existentes no diretório /databases/TESTDB/db2inst1 deverão ser movidos para o diretório /DB2/newinst. Isso significa que os 5 primeiros contêineres serão realocados como parte dessa movimentação (os 3 primeiros são relativos ao diretório do banco de dados e os 2 seguintes são relativos ao caminho do banco de dados). Como esses contêineres estão localizados dentro do diretório do banco de dados ou caminho do banco de dados, eles não precisam ser listados no arquivo de configuração. Se os 2 contêineres restantes tiverem que ser movidos para localizações diferentes no novo sistema, eles deverão ser listados no arquivo de configuração. Depois que os diretórios e arquivos físicos forem movidos para as novas localizações, o seguinte arquivo de configuração poderá ser utilizado com db2relocatedb para fazer alterações nos arquivos de banco de dados para que eles reconheçam as novas localizações: DB_NAME=TESTDB DB_PATH=/databases/TESTDB,/DB2 INSTANCE=db2inst1,newinst NODENUM=0 CONT_PATH=/Data/TS5_Cont0,/DB2/TESTDB/TS5_Cont0 CONT_PATH=/dev/rTS5_Cont1,/dev/rTESTDB_TS5_Cont1 Exemplo 5 O banco de dados TESTDB possui 2 partições nos nós 10 e 20. A instância é SERVINST e o caminho do banco de dados é /home/servinst em ambos os nós. O nome do banco de dados está sendo alterado para SERVDB e o caminho do banco de dados está sendo alterado para /databases em ambos os nós. Além disso, o diretório de log está sendo alterado no nó 20 de /testdb_logdir para /servdb_logdir. Como as alterações estão sendo feitas em ambos os nós, um arquivo de configuração deverá ser criado para cada nó e db2relocatedb deverá ser executado em cada nó com o arquivo de configuração correspondente. No nó 10, o seguinte arquivo de configuração será utilizado: DB_NAME=TESTDB,SERVDB DB_PATH=/home/servinst,/databases INSTANCE=servinst NODE_NUM=10 No nó 20, o seguinte arquivo de configuração será utilizado: DB_NAME=TESTDB,SERVDB DB_PATH=/home/servinst,/databases INSTANCE=servinst NODE_NUM=20 LOG_DIR=/testdb_logdir,/servdb_logdir Notas de Uso Se a instância à qual um banco de dados pertence estiver sendo alterada, proceda da seguinte maneira antes de executar esse comando para assegurar que as alterações nos arquivos de suporte do banco de dados e da instância sejam feitas: * Se um banco de dados estiver sendo movido para uma outra instância, crie a nova instância. * Copie os arquivos/dispositivos pertencentes aos bancos de dados que estão sendo copiados para o sistema no qual reside a nova instância. Os nomes de caminhos devem ser alterados conforme necessário. * Altere a permissão dos arquivos/dispositivos que foram copiados para que pertençam ao proprietário da instância. Se a instância estiver sendo alterada, a ferramenta deverá ser executada pelo novo proprietário da instância. Em um ambiente EEE, essa ferramenta deve ser executada em cada nó que requeira alterações. Um arquivo de configuração separado deverá ser fornecido para cada nó, incluindo o valor NODENUM do nó que estiver sendo alterado. Por exemplo, se o nome de um banco de dados estiver sendo alterado, todos os nós serão afetados e o comando db2relocatedb deverá ser executado com um arquivo de configuração separado em cada nó. Se estiverem sendo movidos contêineres pertencentes a um único nó, o comando db2relocatedb precisará ser executado somente uma vez nesse nó. Consulte também Para obter mais informações, consulte o comando db2inidb - Inicializar um Banco de Dados Espelhado na seção Referência de Comando. ------------------------------------------------------------------------ 12.8 db2move A ferramenta db2move agora tem duas opções adicionais, --aw e --sn. A documentação integral para essa ferramenta é a seguinte: Ferramenta de Movimentação de Banco de Dados Essa ferramenta facilita a movimentação de grandes quantidades de tabelas entre bancos de dados DB2 localizados em estações de trabalho. A ferramenta consulta as tabelas de catálogo de sistema para um banco de dados específico e compila uma lista de todas as tabelas de usuários. Então, ela exporta essas tabelas em formato PC/IXF. Os arquivos PC/IXF podem ser importados ou carregados em outro banco de dados DB2 local no mesmo sistema ou podem ser transferidos para outra plataforma de estação de trabalho e importados ou carregados em um banco de dados DB2 naquela plataforma. Nota: Tabelas com colunas de tipo estruturado não são movidas quando essa ferramenta é utilizada. Autorização Essa ferramenta chama as APIs de exportar, importar e carregar do DB2, dependendo da ação solicitada pelo usuário. Portanto, o ID de usuário solicitante deve ter a autorização correta exigida por essas APIs ou a solicitação falhará. Sintaxe do Comando .-------------------------. V | >>-db2move--dbname--action----+---------------------+-+-------->< +--tc--table-creators-+ +--tn--table-names----+ +--sn--schema names---+ +--io--import-option--+ +--lo--load-option----+ +--l--lobpaths--------+ +--u--userid----------+ +--p--password--------+ '--aw-----------------' Parâmetros do Comando dbname Nome do banco de dados. action Deve ser uma das seguintes: EXPORT, IMPORT ou LOAD. -tc table-creators. O padrão é all creators. Essa é uma ação EXPORT somente. Se especificada, somente aquelas tabelas criadas pelos criadores listados com essa opção serão exportadas. Se não especificada, o padrão é utilizar todos os criadores. Ao especificar vários criadores, cada um deve ser separado por vírgulas; não são permitidos espaços em branco entre IDs de criadores. O número máximo de criadores que pode ser especificado é 10. Essa opção pode ser utilizada com as opções "-tn" e "-sn" para selecionar as tabelas para exportação. Um asterisco (*) pode ser utilizado como caractere curinga que pode ser colocado em qualquer lugar na cadeia. -tn table-names. O padrão é all user tables. Essa é uma ação EXPORT somente. Se especificado, somente as tabelas cujos nomes sejam exatamente iguais àqueles na cadeia específica são exportadas. Se não especificado, o padrão é utilizar todas as tabelas de usuários. Ao especificar vários nomes de tabelas, cada um deve ser separado por vírgulas; não são permitidos espaços em branco entre nomes de tabela. O número máximo de nomes de tabela que pode ser especificado é 10. Essa opção pode ser utilizada com as opções "-tc" e "-sn" para selecionar as tabelas para exportação. db2move somente exportará as tabelas cujos nomes sejam idênticos aos nomes de tabela especificados e cujos criadores combinem com as tabelas de criadores especificadas. Um asterisco (*) pode ser utilizado como caractere curinga que pode ser colocado em qualquer lugar na cadeia. -sn schema names. O padrão é ALL SCHEMAS. Essa é uma ação EXPORT somente. Se especificado, somente as tabelas cujos esquemas sejam idênticos àqueles na cadeia especificada são exportadas. Se não especificado, o padrão é utilizar todos os esquemas. Ao especificar vários nomes de esquema, cada um deve ser separado por vírgulas; não são permitidos espaços em branco entre nomes de esquema. O número máximo de nomes de esquema que pode ser especificado é 10. Essa opção pode ser utilizada com as opções "-tc" e "-tn" para selecionar as tabelas para exportação. db2move somente exportará as tabelas cujos nomes sejam idênticos aos nomes de tabela especificados, cujos esquemas sejam idênticos aos esquemas de tabela especificados e cujos criadores combinem com os criadores de tabela especificados. Um asterisco (*) pode ser utilizado como caractere curinga que pode ser colocado em qualquer lugar na cadeia. Nota: Nomes de esquema com menos de 8 caracteres terão caracteres adicionados até chegarem a 8 caracteres. Por exemplo, se você quiser incluir os esquemas "AUSER" e "BUSER" e usar o caractere curinga, você deve especificar -sn *USER*. -io import-option. O padrão é REPLACE_CREATE. Opções válidas são INSERT, INSERT_UPDATE, REPLACE, CREATE e REPLACE_CREATE. -lo load-option. O padrão é INSERT. Opções válidas são INSERT e REPLACE. -l lobpaths. O padrão é o diretório atual. Essa opção especifica os nomes de caminho absoluto onde arquivos LOB são criados (como parte de EXPORT) ou procurados (como parte de IMPORT ou LOAD). Ao especificar vários caminhos de LOB, cada um deve ser separado por vírgulas; não são permitidos espaços em branco entre caminhos de LOB. Se faltar espaço para o primeiro caminho (durante EXPORT) ou os arquivos não forem encontrados no caminho (durante IMPORT ou LOAD), o segundo caminho será utilizado e assim por diante. Se a ação é EXPORT e os caminhos de LOB forem especificados, todos os arquivos nos diretórios de caminho de LOB são excluídos, os diretórios são removidos e novos diretórios são criados. Se não especificado, o diretório atual é usado para o caminho de LOB. -u userid. O padrão é o ID de usuário registrado. Tanto o ID do usuário quanto a senha são opcionais. Entretanto, se um for especificado, o outro deve ser especificado. Se o comando for executado em um cliente conectando a um servidor remoto, o ID do usuário e a senha devem ser especificados. -p password. O padrão é a senha registrada. Tanto o ID do usuário quanto a senha são opcionais. Entretanto, se um for especificado, o outro deve ser especificado. Se o comando for executado em um cliente conectando a um servidor remoto, o ID do usuário e a senha devem ser especificados. -aw allow warnings. Utilizado para a ação EXPORT somente. Se essa opção for especificada, quaisquer tabelas que recebam avisos durante a exportação serão incluídas no arquivo db2move.lst. Se essa opção for omitida, quaisquer tabelas que causem avisos durante a exportação não serão incluídas no arquivo db2move.lst. Os arquivos .ixp e .msg de uma tabela serão gerados independente dessa opção ser ou não utilizada. Exemplos * db2move sample export Isso exportará todas as tabelas no banco de dados SAMPLE; valores padrão são utilizados para todas as opções. * db2move sample export -tc userid1,us*rid2 -tn tbname1,*tbname2 Isso exportará todas as tabelas criadas por "userid1" ou IDs de usuário COMO "us%rid2" e com o nome "tbname1" ou nomes de tabela COMO "%tbname2". * db2move sample import -l D:\LOBPATH1,C:\LOBPATH2 Esse exemplo é aplicável ao OS/2 ou ao sistema operacional Windows somente. O comando importará todas as tabelas no banco de dados SAMPLE; os caminhos LOB "D:\LOBPATH1" e "C:\LOBPATH2" devem ser pesquisados para arquivos LOB. * db2move sample load -l /home/userid/lobpath,/tmp Esse exemplo é aplicável somente a sistemas baseados em UNIX. O comando carregará todas as tabelas no banco de dados SAMPLE; tanto o subdiretório /home/userid/lobpath quanto o subdiretório tmp devem ser pesquisados para arquivos LOB. * db2move sample import -io replace -u userid -p password Isso importará todas as tabelas no banco de dados SAMPLE em modo REPLACE; o ID de usuário e a senha especificados poderão ser utilizados. Notas de Uso Essa ferramenta exporta, importa ou carrega tabelas criadas pelo usuário. Se um banco de dados deve ser duplicado de um sistema operacional para outro sistema operacional, db2move facilita a movimentação das tabelas. É também necessário mover todos os outros objetos associados às tabelas, tais como nomes alternativos, exibições, disparos, funções definidas pelo usuário e outros. db2look (Estatísticas de DB2 e Ferramentas de Extração de DDL; consulte Referência de Comandos) pode facilitar a movimentação de alguns desses objetos, extraindo a instrução DDL (Data Definition Language) do banco de dados. Quando as APIs de exportar, importar ou carregar são chamadas por db2move, o parâmetro FileTypeMod é definido como lobsinfile. Ou seja, dados de LOB são mantidos em arquivos separados dos arquivos PC/IXF. Há 26 000 nomes de arquivos disponíveis para arquivos LOB. A ação LOAD deve ser executada localmente na máquina onde o banco de dados e o arquivo de dados residem. Quando a API de carregar for chamada por db2move, o parâmetro CopyTargetList é definido como NULO, ou seja, nenhuma cópia é feita. Se logretain estiver ativo, a operação de carga não poderá ser avançada mais tarde. O espaço de tabelas onde as tabelas carregadas residem é colocada em estado de backup pendente e não fica acessível. Um backup integral de banco de dados ou um backup de espaço de tabelas é obrigatório para retirar o espaço de tabelas do estado de backup pendente. Quando emitida em um cliente Versão 5.2 contra um banco de dados Versão 6, essa ferramenta não suporta nomes de tabela e de coluna que tenham mais do que 18 caracteres. Arquivos Exigidos/Gerados ao Utilizar EXPORT: * Entrada: Nenhuma. * Saída: EXPORT.out O resultado resumido da ação EXPORT. db2move.lst A lista de nomes de tabela originais, seus nomes de arquivo PC/IXF correspondentes (tabnnn.ixf) e nomes de arquivos de mensagem (tabnnn.msg). Essa lista, os arquivos PC/IXF exportados e os arquivos LOB (tabnnnc.yyy) são utilizados como entrada para a ação db2move IMPORT ou LOAD. tabnnn.ixf O arquivo exportado PC/IXF de uma tabela específica. tabnnn.msg O arquivo de mensagem exportado da tabela correspondente. tabnnnc.yyy Os arquivos LOB exportados de uma tabela específica. "nnn" é o número da tabela, "c" é uma letra do alfabeto, "yyy" é um número variando de 001 a 999. Esses arquivos serão criados somente se a tabela sendo exportada contiver dados de LOB. Se criados, esses arquivos LOB são colocados nos diretórios de caminho de lob. Há um total de 26 000 possíveis nomes para arquivos LOB. system.msg O arquivo de mensagem contendo mensagens de sistema para criar ou excluir arquivos ou comandos de diretório. Isso somente é utilizado se a ação for EXPORT e um caminho de LOB for especificado. Arquivos Exigidos/Gerados ao Utilizar IMPORT: * Entrada: db2move.lst Um arquivo de saída da ação EXPORT. tabnnn.ixf Um arquivo de saída da ação EXPORT. tabnnnc.yyy Um arquivo de saída da ação EXPORT. * Saída: IMPORT.out O resultado resumido da ação IMPORT. tabnnn.msg O arquivo de mensagem importado da tabela correspondente. Arquivos Exigidos/Gerados ao Utilizar LOAD: * Entrada: db2move.lst Um arquivo de saída da ação EXPORT. tabnnn.ixf Um arquivo de saída da ação EXPORT. tabnnnc.yyy Um arquivo de saída da ação EXPORT. * Saída: LOAD.out O resultado resumido da ação LOAD. tabnnn.msg O arquivo de mensagem LOAD da tabela correspondente. ------------------------------------------------------------------------ 12.9 Opção Adicional no Comando GET ROUTINE Esse comando agora suporta o parâmetro HIDE BODY, que especifica que o corpo da rotina deve ser substituído por um corpo vazio quando o texto da rotina é extraído dos catálogos. Isso não afeta o código compilado; afeta somente o texto. GET ROUTINE Sintaxe do Comando >>-GET ROUTINE--INTO--file_name--FROM--+----------+-------------> '-SPECIFIC-' >----PROCEDURE----routine_name--+-----------+------------------>< '-HIDE BODY-' ------------------------------------------------------------------------ 12.10 CREATE DATABASE O DB2 agora suporta novas palavras-chave de intercalação, IDENTITY_16BIT e SQL_CS_IDENTITY_16BIT, para bancos de dados Unicode. Quando IDENTITY_16BIT for especificado para o comando CLP CREATE DATABASE ou SQLEDBDESC.SQLDBCSS for definido para SQL_CS_IDENTITY_16BIT em sqlecrea() -- Criar API do Banco de Dados, todos os dados do banco de dados Unicode serão intercalados utilizando a ordem do CESU-8. CESU-8 significa Esquema de Codificação de Compatibilidade para UTF-16: 8 Bits e, até o momento desta publicação, sua especificação está contida no Draft Unicode Technical Report #26 disponível no Web site Unicode Technical Consortium (www.unicode.org). CESU-8 é binário, como o UTF-8, exceto pelos caracteres suplementares Unicode, ou seja, os caracteres definidos fora do 16-bit Basic Multilingual Plane (BMP ou Plane 0). Na codificação UTF-8, um caractere suplementar é representado por uma seqüência de 4 bytes, mas o mesmo caractere em CESU-8 requer duas seqüências de 3 bytes. Em um banco de dados Unicode, dados CHAR, VARCHAR, LONG VARCHAR e CLOB são armazenados em UTF-8 e dados GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC e DBCLOB são armazenados em UCS-2. Para a intercalação IDENTITY ou SQL_CS_NONE, caracteres não-suplementares em UTF-8 e UCS-2 têm intercalação binária idêntica, mas caracteres suplementares em UTF-8 intercalam de forma diferente que os mesmos caracteres em UCS-2. IDENTITY_16BIT ou SQL_CS_IDENTITY_16BIT asseguram que todos os caracteres, suplementares ou não, em bancos de dados DB2 Unicode têm a mesma intercalação binária. ------------------------------------------------------------------------ Guia e Referência de Recuperação de Dados e Alta Disponibilidade ------------------------------------------------------------------------ 13.1 Guia e Referência de Recuperação de Dados e Alta Disponibilidade Disponível On-line O novo Guia e Referência de Recuperação de Dados e Alta Disponibilidade agora está disponível on-line tanto no formato HTML quanto PDF em http://www.ibm.com/software/data/db2/udb/winos2unix/support. Anteriormente essas informações eram apresentadas no Guia de Administração. As informações nessas notas são complementares à referência atualizada. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis no endereço http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. ------------------------------------------------------------------------ 13.2 Novo Comportamento de Log de Archive Antes do FixPak 4, o DB2 verificava a conclusão de archive apenas quando um novo arquivo de log era necessário. Agora, o DB2 verifica a conclusão de archive sempre que o primeiro log ativo é alterado. Conseqüentemente, as informações são registradas em disco com maior antecedência e mais freqüentemente. O benefício dessa alteração é que, se o sistema travar, as informações armazenadas em disco (relacionadas a quais arquivos de log foram arquivados corretamente) são mais exatas e o DB2 não precisa emitir o pedido de archive novamente para arquivos de log que já estão arquivados. Não há alterações no que o DB2 faz depois de detectar o archive correto de um arquivo de log específico. O DB2 agora detecta a conclusão de archives de log com mais antecedência e os renomeia com mais antecedência. Arquivos de log inativos truncados são excluídos. Como conseqüência, o número de arquivos de log que permanecem no caminho de log ativo pode ser menor que o valor de configuração no banco de dados LOGPRIMARY. Nesse caso, o DB2 criará novos arquivos de log quando necessário. Antes dessa alteração, a reinicialização do banco de dados reduzia o número de logs para corresponderem ao valor de LOGPRIMARY. Agora, quando o banco de dados é iniciado, primeiro o DB2 examina o diretório de log do banco de dados. Se o número de logs vazios for menor que o número de logs principais, o DB2 alocará novos logs para compensar a diferença. Se houver mais logs vazios disponíveis do que logs principais no diretório do banco de dados, o DB2 permitirá que o banco de dados seja reiniciado com todos os logs vazios disponíveis no diretório do banco de dados. Depois do encerramento do banco de dados, todos os arquivos de log secundários existentes permanecerão no caminho do log ativo no momento da reinicialização. Para limpar o caminho do log ativo, pode-se utilizar o comando DB2 ARCHIVE LOG. ------------------------------------------------------------------------ 13.3 Como Utilizar E/S Suspensa para Recuperação do Banco de Dados As informações abaixo sobre o utilitário db2inidb substituem as informações do manual O que Há de Novo na Versão 7.2. O db2inidb é uma ferramenta fornecida com o DB2 que pode executar recuperação de travamento ou colocar um banco de dados em estado pendente de atualização. E/S Suspensa suporta disponibilidade contínua de sistema por proporcionar implementação integral para tratamento de espelhamento dividido on-line, ou seja, dividir um espelhamento sem desligar o banco de dados. Se não for possível fazer backups off-line ou on-line em um grande banco de dados, você pode fazer backups ou cópias do sistema a partir de uma imagem espelhada utilizando E/S suspensa e uma imagem espelhada dividida. E/S suspensa evita gravações em disco enquanto a imagem espelhada dividida de um banco de dados está sendo feita. Todas as operações do banco de dados além de backup e restauração on-line devem funcionar normalmente enquanto um banco de dados está suspenso. No entanto, algumas operações podem esperar que as gravações de E/S sejam retomadas, caso páginas danificadas precisem ser eliminadas do conjunto de buffers ou buffers de log para os logs. Essas operações devem reiniciar normalmente assim que as E/S do banco de dados forem reiniciadas. É importante que as E/S do banco de dados sejam retomadas a partir da mesma conexão da qual foram originalmente suspensas e que nenhuma outra operação seja executada a partir dessa conexão até que a E/S do banco de dados retome. Caso contrário, uma tentativa subseqüente de conexão pode ser interrompida se exigir a limpeza de páginas danificadas do conjunto de buffers para o disco. As conexões seguintes serão concluídas quando a E/S for retomada. Se suas tentativas de conexão estiverem sendo interrompidas e se tornar impossível retomar a E/S da conexão utilizada para suspendê-la, será necessário executar o comando RESTART com a opção WRITE RESUME. Quando utilizado nessa circunstância, o comando RESTART retomará a E/S sem executar a recuperação após falha. O comando RESTART com a opção WRITE RESUME executará somente a recuperação após falha, quando você utilizá-lo após uma falha no banco de dados. Em um ambiente de banco de dados particionado, não é necessário suspender gravações de E/S em todas a partições de maneira simultânea. É possível suspender um subconjunto de uma ou mais partições para criar espelhamentos divididos para executar backups off-line. Se o nó do catálogo estiver incluído no subconjunto, ele deve ser a última partição a ser suspensa. O espelhamento de um banco de dados envolve principalmente a cópia de todo o conteúdo do diretório do banco de dados e do diretório do banco de dados local. O diretório do banco de dados local, sqldbdir está localizado no mesmo nível da estrutura de arquivos que o diretório do banco de dados principal. Além disso, se os contêineres do diretório de log e do espaço de tabelas não estiverem no diretório do banco de dados, eles também devem ser copiados. Como o banco de dados espelhado dividido é dependente desses caminhos de diretório, os caminhos para os quais esses diretórios são copiados devem ser idênticos aos do sistema principal. Isso significa que a instância deve também ser a mesma. Como resultado dessa dependência, não é possível criar um banco de dados espelhado no mesmo sistema do banco de dados principal, a não ser que a nova opção "relocate" da ferramenta db2inidb seja utilizada. O propósito da opção "relocate" é realocar um banco de dados em um determinado sistema, utilizando o arquivo de configuração especificado. Isso pode envolver alterar o diretório interno do banco de dados, o diretório do contêiner, o diretório de log, o nome da instância e os nomes do banco de dados. Assumindo-se que o diretório do banco de dados, diretórios de contêiner e diretório de registro foram espelhados com sucesso nos diferentes caminhos de diretório no mesmo sistema que o banco de dados principal, a ferramenta db2inidb pode ser utilizada juntamente com a opção "relocate" para atualizar os caminhos internos do banco de dados espelhado. Um cenário de utilização com essa opção pode ser encontrado abaixo. Dependendo de como os dispositivos de armazenamento estão sendo espelhados, as utilizações de db2inidb irão variar. As seguintes utilizações assumem que todo o banco de dados está espelhado consistentemente através do sistema de armazenamento. Em um ambiente com vários nós, a ferramenta db2inidb deve ser executada em cada partição antes que o espelhamento dividido possa ser utilizado a partir de qualquer uma das partições. A ferramenta db2inidb pode ser executada em todas as partições simultaneamente utilizando o comando db2_all. 1. Clonando um Banco de Dados O objetivo aqui é ter um clone do banco de dados principal para ser utilizado em outro sistema. O seguinte procedimento descreve como um banco de dados clone pode ser feito: a. Suspenda gravações de E/S no banco de dados principal, digitando o seguinte comando: db2 set write suspend for database b. Utilize comandos em nível de sistema operacional e de subsistema para dividir o espelhamento do banco de dados principal. Certifique-se de dividir os dados e os logs. c. Reinicie gravações de E/S no banco de dados principal, digitando o seguinte comando: db2 set write resume for database Após executar o comando, o banco de dados principal deve voltar ao estado normal. d. Monte o espelhamento dividido do banco de dados principal em outro sistema. e. Inicie a instância do banco de dados no outro sistema digitando o seguinte comando: db2start f. Inicie a recuperação de falha do DB2 digitando o seguinte comando: db2inidb database_name AS SNAPSHOT Nota: Esse comando removerá o estado de gravação suspensa e atualizará as alterações feitas por transações que estavam ocorrendo no momento da divisão. Você também pode utilizar esse processo para fazer um backup off-line mas, se restaurado no banco de dados principal, esse backup não poderá ser utilizado para atualização, porque a cadeia de logs não será igual. 2. Utilizando o Espelhamento Dividido como um Banco de Dados de Reserva Como o banco de dados espelhado (de reserva) é continuamente atualizado por meio de logs, novos logs que são criados pelo banco de dados principal são constantemente recuperados do sistema principal. O seguinte procedimento descreve como um espelhamento dividido pode ser utilizado como um banco de dados de espera: a. Suspenda gravações de E/S no banco de dados principal: db2 set write suspend for database b. Utilize comandos em nível de sistema operacional e de subsistema para dividir o espelhamento do banco de dados principal. Certifique-se de dividir apenas os dados e não os logs. c. Reinicie as gravações de E/S no banco de dados principal de modo que ele retorne ao processamento normal. db2 set write resume for database d. Monte o espelhamento dividido do banco de dados para outro sistema. e. Inicie instância do banco de dados principal utilizando o comando db2start. f. Posicione o espelhamento em avanço pendente: db2inidb nome_do_banco_de_dados AS STANDBY Nota: Esse comando removerá o estado de gravação suspensa e posicionará o banco de dados espelhado em estado de atualização pendente. g. Copie os logs configurando um programa de saída de usuário para recuperar arquivos de registro a partir de um sistema principal para assegurar que os registros mais recentes estejam disponíveis para esse banco de dados espelhado. h. Avance o banco de dados para o final dos logs. i. Retorne à etapa g e repita esse processo até que o banco de dados principal seja desativado. j. Atualize o banco de dados até o final dos logs, utilizando a opção AND STOP para que o banco de dados fique on-line novamente. Ele agora estará pronto para utilização. 3. Utilizando o Espelhamento Dividido como uma Imagem de Backup O seguinte procedimento descreve como utilizar o banco de dados espelhado como uma imagem de backup para restaurar no banco de dados principal: a. Pare a instância do banco de dados principal com o comando db2stop. b. Utilize comandos de sistema operacional e de subsistema de disco para copiar os dados espelhados sobre o banco de dados principal. Não copie os arquivos de log de volta. Os logs no banco de dados principal devem ser utilizados para operações de atualização. c. Inicie a instância do banco de dados principal com o comando db2start. d. Execute o seguinte comando para posicionar o banco de dados espelhado em um estado de atualização pendente e remover o estado de gravação suspensa. db2inidb database_name AS MIRROR e. Atualize o banco de dados até o final dos logs, utilizando a opção AND STOP para que o banco de dados fique on-line novamente. Ele agora estará pronto para utilização. 4. Dividindo um Espelhamento em um Mesmo Sistema que o Banco de Dados Principal O seguinte procedimento descreve como utilizar a opção "relocate" da ferramenta db2inidb para espelhar um banco de dados no mesmo sistema que um banco de dados principal. O exemplo assume que o banco de dados será utilizado sob uma nova instância. a. Crie uma nova instância no sistema atual. b. Suspenda gravações de E/S no banco de dados principal: db2 set write suspend for database c. Utilize comandos em nível de sistema operacional e de subsistema de disco para dividir o espelhamento a partir do banco de dados principal. Nota: O diretório do banco de dados, do banco de dados local, do contêiner e o diretório de log devem ser copiados na nova instância. Se os diretórios de contêiner ou o diretório de log existirem sob o diretório do banco de dados, somente o diretório do banco de dados e o do banco de dados local precisam ser copiados. d. Retome as gravações de E/S no banco de dados principal de modo que ele retorne ao processamento normal: db2 set write resume for database e. Crie um arquivo de configuração com as seguintes informações: DB_NAME=name,optional_new_name DB_PATH=primary_db_dir_path,mirrored_db_dir_path INSTANCE=primary_instance,mirror_instance LOG_DIR=primary_db_log_dir,mirrored_db_log_dir CONT_PATH=primary_db_container_#1_path, mirrored_db_container_#1_path ... CONT_PATH=primary_db_container_#n_path, mirrored_db_container_#n_path NODENUM=node_# Nota: Os campos LOG_DIR e CONT_PATH são requeridos apenas se o diretório de log e os de contêiner existirem fora do diretório do banco de dados. Todos os outros campos são requeridos, com exceção de NODENUM, que assumirá o valor de zero como padrão se não estiver especificado. f. Inicie o banco de dados a partir da instância recém-criada: db2start g. Realoque o banco de dados espelhado, remova o estado suspenso e posicione o espelhamento em estado de atualização pendente: db2inidb database_name as STANDBY relocate using config_file h. Copie os logs configurando um programa de saída de usuário para recuperar arquivos de registro a partir de um sistema principal, assegurando-se de que os logs mais recentes estarão disponíveis para esse banco de dados espelhado. i. Avance o banco de dados para o final dos logs. j. Retorne à etapa h e repita esse processo até que o banco de dados principal esteja inativo. k. Atualize o banco de dados até o final dos logs, utilizando a opção AND STOP para que o banco de dados fique on-line novamente. Ele agora estará pronto para utilização. ------------------------------------------------------------------------ 13.4 Novo Backup e Comportamento de Restauração Quando LOGRETAIN=CAPTURE Se um banco de dados estiver configurado com LOGRETAIN definido para CAPTURE, as seguintes operações não poderão ser executadas: * Backup de banco de dados on-line * Backup de nível de espaço de tabelas On-line ou off-line * Restauração de nível de espaço de tabelas on-line ou off-line Ao seguir a operação de restauração de banco de dados utilizando uma imagem de backup off-line obtida enquanto o LOGRETAIN está definido para CAPTURE, o banco de dados não é colocado em estado pendente avançado. Uma operação de restauração de banco de dados utilizando uma imagem on-line de backup de banco de dados obtida enquanto o LOGRETAIN está definido para CAPTURE (Versão 7.2 anterior ao FixPak 4) é suportada. ------------------------------------------------------------------------ 13.5 Backup Incremental e Recuperação - Informações Adicionais Durante a segunda fase de processamento, o histórico do banco de dados é consultado para construir uma cadeia de imagens de backup requeridas para executar a operação de restauração requerida. Se, por algum motivo, isso não for possível e o DB2 não puder construir uma cadeia completa de imagens requeridas, a operação de restauração será encerrada e uma mensagem de erro será retornada. Nesse caso, uma restauração incremental automática não será possível e será necessário emitir o comando RESTORE DATABASE com a opção INCREMENTAL ABORT. Isso limpará todos os recursos restantes para que você possa continuar com uma restauração incremental manual. Durante a terceira fase de processamento, o DB2 restaurará cada uma das imagens de backup restantes na cadeia gerada. Se ocorrer um erro durante essa fase, será necessário emitir o comando RESTORE DATABASE com a opção INCREMENTAL ABORT para limpar todos os recursos restantes. Em seguida, será necessário determinar se o erro pode ser solucionado antes de emitir o comando RESTORE novamente ou tentar a restauração incremental manual novamente. ------------------------------------------------------------------------ 13.6 NEWLOGPATH2 Agora Chamado de DB2_NEWLOGPATH2 Referências ao registro variável do NEWLOGPATH2 foram alteradas para o DB2_NEWLOGPATH2. ------------------------------------------------------------------------ 13.7 Escolhendo um Método de Backup para o DB2 Data Links Manager no AIX ou no Solaris Operating Environment Antes de definir a opção PASSWORDACCESS no arquivo de opções do sistema Tivoli Storage Manager, você deve garantir que a /usr/lib contenha um link simbólico com o arquivo biblioteca libApiDS.a ------------------------------------------------------------------------ 13.8 Tivoli Storage Manager -- LAN Free Data Transfer DB2 Universal Database agora permite que usuários utilizem a tecnologia do LAN Free Data Transfer da Tivoli para backups e restaurações a um servidor TSM. Se você estiver utilizando uma das seguintes versões de DB2 Universal Database juntamente com clientes ADSM 3.1.x da Tivoli, você poderá enfrentar problemas ao fazer backup ou restaurar em um servidor TSM: * DB2 para AIX (32 bits) * DB2 para Solaris Operating Environment (32 bits) * DB2 para HP-UX (32 bits). Se você enfrentar esses problemas, siga as seguintes etapas para corrigi-los: 1. Emita um comando db2stop. 2. Localize o diretório sqllib/adsm no servidor DB2 UDB. 3. Crie uma cópia de backup de libtadsm.a. Fazer uma cópia dele chamada de libtadsm.a.bak é suficiente. 4. Copie libadsm.a para libtasdm.a. 5. Emita um comando db2start. 6. Reemita o comando failed backup ou restore novamente. ------------------------------------------------------------------------ Guia e Referência de Utilitários do Data Movement ------------------------------------------------------------------------ 14.1 Valores de Identidade Estendidos Agora Completamente Suportados pelo Utilitário de Exportação O utilitário de exportação agora suporta completamente os valores de identidade estendidos. Você precisará do cliente e do servidor para executar com FixPak 7 ou posterior para explorar essa função. ------------------------------------------------------------------------ 14.2 Alterar para Tratamento de Arquivo LOB por Exportação, Importação e Carregamento O DB2 UDB agora faz uso de LLSs (LOB Location Specifiers) ao importar, exportar e carregar informações de LOB (Large Object). Isso permite que vários LOBs sejam armazenados em um único arquivo. Um LLS é uma cadeia que indica onde dados de LOB podem ser encontrados dentro de um arquivo. O formato de LLS é filename.ext.nnn.mmm/, em que filename.ext é o nome do arquivo que contém o LOB, nnn é o deslocamento do LOB dentro do arquivo (medido em bytes) e mmm é o comprimento do LOB (em bytes). Por exemplo, um LLS de db2exp.001.123.456/ indica que o lob está localizado no arquivo db2exp.001, começa em um deslocamento de 123 bytes no arquivo e tem 456 bytes de comprimento. Se o tamanho indicado no LLS é 0, considera-se que o LOB tenha um comprimento de 0. Se o comprimento for -1, considera-se que o LOB seja NULO e o nome do arquivo e o deslocamento não importam. Ao exportar dados usando o modificador lobsinfile, os LOBs nem sempre serão colocados em arquivos separados. Pode haver vários LOBs em cada arquivo de LOB e vários arquivos de lob por caminho de lob. O arquivo de dados conterá agora registros de LLS em vez de somente nomes de arquivos. As funções de importação e carregamento também foram alteradas para tratar as alterações na função de exportação. Ao carregar ou importar dados com a opção modificado por lobsinfile especificada, serão esperados LLSs para cada uma das colunas LOB correspondentes. Se algo diferente de um LLS for encontrado para uma coluna LOB, o banco de dados o tratará como um arquivo LOB e carregará o arquivo inteiro como o LOB. 14.2.1 Considerações sobre IXF Há três novos tipos de dados IXF. Esses três tipos correspondem a CLOBs (Character Large Objects), BLOBs (Binary Large Objects) e DBCLOBs (Double-byte Character Large Objects) quando representados por LLSs. Os valores desses tipos de dados são 964, 960 e 968, respectivamente. Arquivos IXF agora exigem que cada coluna LOB tenha seu próprio registro D. Ele é criado automaticamente pela ferramenta de exportação, mas deve ser criado manualmente se você estiver utilizando um utilitário de terceiros para criar os arquivos IXF. Além disso, um LLS é obrigatório para cada LOB na tabela e não apenas para os LOBs não-nulos. Se uma coluna LOB for nula, você deve escrever um LLS representando um LOB nulo. ------------------------------------------------------------------------ 14.3 Suporte à Página de Códigos para Utilitários de Importação, Exportação e Carregamento Os utilitários de importação, exportação e carregamento agora podem ser utilizados para transferir dados da página de códigos em chinês GB 18030 (identificador da página de códigos 5488) e a nova página de códigos em japonês ShiftJIS X0213 (identificador da página de códigos 1394) para bancos de dados Unicode DB2 UDB. Além disso, o utilitário de exportação pode ser utilizado para transferir dados dos bancos de dados DB2 UDB Unicode para dados da página de códigos GB 18030 ou ShiftJIS X0213. Por exemplo, o seguinte comando carregará o arquivo de dados Shift_JISX0213 u/jp/user/x0213/data.del que reside em um cliente conectado remotamente para MYTABLE: db2 load client from /u/jp/user/x0213/data.del of del modified by codepage=1394 insert into mytable em que MYTABLE está localizada em um banco de dados DB2 UDB Unicode. ------------------------------------------------------------------------ 14.4 Capítulo 2. Importar 14.4.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. ------------------------------------------------------------------------ 14.5 Capítulo 3. Carregar 14.5.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 ao processo de carregamento (verificar estado pendente) pertence a limitações referenciais e de verificação, limitações de DATALINKS, limitações de AST ou limitações de colunas geradas. Por exemplo, se uma tabela existente for uma tabela principal contendo uma chave principal referenciada por uma chave externa em uma tabela dependente, substituir dados na tabela principal deixa as duas tabelas (não o espaço de tabelas) no estado pendente. 14.5.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 esse modificador é usado, ele é aguardado por todos os valores para a coluna que será fornecida 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 esse modificador é usado, ele é aguardado por todos os valores para a coluna que será fornecida no arquivo de dados de entrada. 14.5.3 Modificador de Tipo do Arquivo totalfreespace O modificador de tipo de arquivo totalfreespace (LOAD) foi modificado para aceitar um valor entre 0 e 2 147 483 647. ------------------------------------------------------------------------ 14.6 Capítulo 4. AutoLoader 14.6.1 Restrições e Limitações do AutoLoader Os itens a seguir foram incluídos às restrições e limitações do utilitário AutoLoader: 1. O AutoLoader deve ser executado em um dos nós do servidor. 2. Se existirem várias instâncias, o AutoLoader poderá ser utilizado somente mediante bancos de dados que sejam locais à instância especificada pela variável de ambiente DB2INSTANCE. 14.6.2 Utilizando o AutoLoader O seguinte foi incluído na seção "Antes de Utilizar o AutoLoader": Antes de chamar o utilitário AutoLoader verifique se rsh e/ou rexec estão funcionando adequadamente. Rexec será utilizado para gerar processos remotos se a senha estiver especificada no arquivo de configuração do AutoLoader. Caso contrário, será usado rsh. 14.6.3 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 opção de autenticação definida como YES, rexecd deverá 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 14.6.4 O AutoLoader Pode Travar Durante uma Bifurcação nos Sistemas AIX Anteriores a 4.3.3 O AutoLoader é um programa de multi encadeamento e um dos encadeamentos bifurcou 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. Em sistemas AIX anteriores ao AIX 4.3.3, é possível que os bloqueios utilizados pelo libc.a para gerenciar múltiplos encadeamentos alocando memória do heap dentro do mesmo processo sejam mantidos por um encadeamento sem bifurcação. Se um encadeamento sem bifurcação não ocorrer no processo-filho, o bloqueio nunca será liberado no filho causando, algumas vezes, interrupções no processo-pai. 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. ------------------------------------------------------------------------ 14.7 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 utilizados 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. ------------------------------------------------------------------------ Guia e Referência do Replication ------------------------------------------------------------------------ 15.1 Relicaçã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 esse tipo de réplica 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. ------------------------------------------------------------------------ 15.2 Réplica no Windows 2000 O DB2 DataPropagator Versão 7 é compatível com o sistema operacional Windows 2000. ------------------------------------------------------------------------ 15.3 Erro Conhecido ao Salvar os Arquivos SQL Se você utilizar o Centro de Controle no DB2 Connect Personal Edition, não poderá salvar os arquivos SQL. Se você tentar salvar os arquivos SQL, obterá uma mensagem de erro informando que o DAS (Database Administration Server) não está ativo, quando de fato o DAS não está disponível porque ele não é enviado com o DB2 Connect PE. ------------------------------------------------------------------------ 15.4 Programa Aply e Aliases do Centro de Controle Para que o programa Apply funcione adequadamente, os aliases utilizados por ele devem corresponder aos utilizados pelo Centro de Controle. ------------------------------------------------------------------------ 15.5 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 réplica. ------------------------------------------------------------------------ 15.6 Utilitário de Diferença de Dados na Web Você pode fazer download do DDU (Data Difference Utility) a partir 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 LEIA-ME que acompanha o utilitário de amostra, para obter detalhes. ------------------------------------------------------------------------ 15.7 Capítulo 3. Cenário de Réplica de Dados 15.7.1 Cenários de Réplica Consulte a página Biblioteca do Web site DataPropagator (http://www.ibm.com/software/data/dpropr/) para obter um novo cenário de réplica de dados heterogêneos. Siga as etapas nesse cenário para copiar as alterações de um tabela-fonte de réplica em um banco de dados Oracle no AIX para uma tabela de destino no DB2 para Windows NT. Esse cenário usa a ferramenta do DB2 DJRA (DataJoiner Replication Administration), Disparadores de captura, o programa Apply e o DB2 DataJoiner. Na página 44 da publicação, 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 o 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 nesse diretório chamado DEPTQUAL.PWD. Você pode criar esse arquivo utilizando 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 faz distinção entre minúsculas/maiúsculas que deve corresponder às letras e ao valor do qualificador Apply utilizado na criação do conjunto de assinaturas. Para esse 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 esse cenário, esses nomes são SAMPLE e COPYDB. id_do_usuário O ID do usuário que você pretende usar para administrar esse banco de dados em particular. Esse valor faz distinção entre maiúsculas e minúsculas nos sistemas operacionais Windows NT e UNIX. senha A senha associada ao ID de usuário. Esse valor faz distinção entre maiúsculas e minúsculas nos sistemas operacionais Windows NT e UNIX. Não coloque linhas em branco ou de comentário nesse arquivo. Inclua somente o nome do servidor, o ID de usuário e a informação de senha. 4. O conteúdo do arquivo de senha é semelhante a: SERVER=SAMPLE USER=subina PWD=subpw SERVER=COPYDB USER=subina PWD=subpw Para obter informações adicionais sobre a autenticação e a segurança do DB2, consulte a publicação Guia de Administração do IBM DB2. ------------------------------------------------------------------------ 15.8 Capítulo 5. Planejando para Réplica 15.8.1 Nomes de Tabelas e Colunas A réplica não suporta espaços em branco em nomes de tabelas e colunas. 15.8.2 Replicando o DATALINK A réplica de DATALINK está disponível para o Solaris Operating Environment 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 de destino e que suporte o comando MDTM (modtime), que exibe a hora em que um determinado arquivo foi modificado pela última vez. Se você estiver utilizando a Versão 2.6 do Solaris Operating Environment ou qualquer outra versão que não inclua o suporte FTP para MDTM, será necessário um software adicional, como, por exemplo, 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 réplica 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 ", em que é 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 os mesmos, o conjunto de subscrição não deve conter nenhum membro com colunas DATALINK. 15.8.3 Restrições LOB Tabelas do CCD interno condensado não podem conter referências a colunas LOB ou indicadores LOB. 15.8.4 Planejando para Réplica Na página 65, "Conectividade" 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. ------------------------------------------------------------------------ 15.9 Capítulo 6. Configurando o Ambiente de Réplica 15.9.1 Pré-requisito Update-anywhere Se você quer configurar a réplica 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)); 15.9.2 Configurando Seu Ambiente de Réplica A página 95, "Personalizando tabela CD, índice e nomes da área da tabela" 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. ------------------------------------------------------------------------ 15.10 Capítulo 8. Determinação de Problemas O Analisador de Réplica executa em sistemas Windows de 32 bits e no AIX. Para executar o Analisador no AIX, assegure-se de que o diretório sqllib/bin apareça antes de /usr/local/bin na sua variável de ambiente PATH para evitar conflitos com /usr/local/bin/analyze. O Analisador de Réplica 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. Essa palavra-chave é opcional. Se você não especificar essa 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. Essa palavra-chave é opcional. Se você não especificar essa 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 Réplica, 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 das áreas da tabela do DB2 para OS/390, análise de índices de destino com respeito às chaves de subscrição, oportunidade de subscrição e erros de instruções SQL do conjunto de subscrições. A análise inclui todos os servidores. Essa 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. Essa redução de informações economiza recursos e produz um arquivo de saída HTML menor. Essa palavra-chave é opcional e é mutuamente exclusiva à palavra-chave deepcheck. As ferramentas do analisador estão disponíveis em PTFs de réplica em plataformas AS/300. Essas ferramentas coletam informações sobre seu ambiente de réplica 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 "Solução de Problemas": Problema: O programa Apply entra em loop sem replicar as alterações; a tabela de rastreio Apply mostra STATUS=2. A conjunto de assinaturas inclui várias tabelas de origem. Para melhorar os pontos de acesso de uma tabela de origem do conjunto, uma tabela CCD interna é definida para a tabela de origem, mas em um conjunto de assinatura diferente. São feitas atualizações na tabela de origem, mas o processo Apply que ocupa a tabela CCD interna é executado de forma assíncrona (por exemplo, o programa Apply pode não ser iniciado ou um evento pode não ser disparado, e assim por diante). O programa Apply que replica atualizações da tabela de origem para a tabela de destino entra em loop porque está aguardando que a tabela CCD interna seja atualizada. Para parar o loop, inicie o programa Apply (ou dispare o evento que causa a réplica) para a tabela CCD interna. O programa Apply ocupará a tabela CCD interna e permitirá que o programa Apply em loop processe as alterações a partir de todas as tabelas de origem. Uma situação similar pode ocorrer para um conjunto de assinaturas que contém tabelas de origem com tabelas CCD internas que estão ocupadas por vários programas Apply. ------------------------------------------------------------------------ 15.11 Capítulo 9. Capture e Apply para AS/400 Na página 178, "Uma nota sobre gerenciamento de trabalho" 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 dessas definições. Inclua o seguinte na página 178, "Verificando e personalizando a instalação do DB2 DataPropagator para AS/400": Se ocorrerem problemas com a contenção de bloqueio devido ao alto volume de transações, você pode aumentar o valor do tempo limite de espera padrão de 30 para 120. Você pode alterar o job sempre que o job Capture iniciar ou pode utilizar o seguinte procedimento para alterar o valor do tempo limite de espera padrão para todos os jobs que estiverem sendo executados em 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. Altera o valor do tempo limite de espera para a nova classe criada (por exemplo, para 300 segundos): CHGCLS CLS(QDPR/QZSNDPR) DFTWAIT(300) 3. Atualize a entrada de roteamento na descrição QDPR/QZSNDPR do subsistema para utilizar 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) ------------------------------------------------------------------------ 15.12 Capítulo 10. Capture e Apply para OS/390 No Capítulo 10, os seguintes parágrafos são atualizados: 15.12.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). 15.12.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 réplica existente funcionará com o DB2 DataPropagator para OS/390 V7 mesmo se você não modificar quaisquer esquemas de codificação. 15.12.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 réplica. Quando você escolher os esquemas de codificação para as tabelas, siga a única regra do CCSID: os dados de caracteres em um espaço de tabelas podem ser codificados em ASCII, UNICODE ou EBCDIC. Todas as tabelas dentro de um espaço de tabelas 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. 15.12.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 a publicação DB2 Universal Database para OS/390 Guia e Referência de Utilitário 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 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, utilize os utilitários Reorg e Load. * Quando você criar novas origens de réplica 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 réplica 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; A publicação DB2 UDB para OS/390 SQL Reference contém mais informações sobre o CCSID. ------------------------------------------------------------------------ 15.13 Capítulo 11. Capture e Apply para Plataformas UNIX 15.13.1 Definindo Variáveis de Ambiente para Capture e 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 a publicação Guia de Administração do DB2 para obter informações sobre a derivação de valores da página de códigos antes de definir o DB2CODEPAGE. O 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. ------------------------------------------------------------------------ 15.14 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ê utilizar tabelas CCD internas e obtiver repetidamente um valor igual a "2" na coluna de status da tabela de rastreio Apply, vá para o "Capítulo 8: Determinação de Problemas" e consulte "Problema: O programa Apply entra em loop sem replicar alterações, a tabela de rastreio Apply mostra STATUS=2". ------------------------------------------------------------------------ 15.15 Capítulo 15. Mensagens de Capture e 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 LOB (Large Object) 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 ao 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 de Apply falhou. Consulte a tabela de trilha Apply para obter os detalhes completos: "" Explicação: Um ciclo Apply falhou. Na mensagem, "" identifica "", "" e "". Resposta ao usuário: Verifique os campos APPERRM na tabela da trilha de auditoria, para determinar por que o ciclo Apply falhou. ------------------------------------------------------------------------ 15.16 Apêndice A. Iniciando os Programas Capture e Apply de Dentro de um Aplicativo Na página 399 da publicação, alguns erros aparecem nos comentários da rotina Sample que inicia os programas Capture e 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 indicarem 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 ------------------------------------------------------------------------ Guia e Referência do System Monitor ------------------------------------------------------------------------ 16.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. ------------------------------------------------------------------------ 16.2 Número Máximo de Heaps Alocados do Banco de Dados (db_heap_top) O elemento de dados Número Máximo de Heaps Alocados do Banco de Dados não é coletado pelo gerenciador do banco de dados do DB2 Versão 7. ------------------------------------------------------------------------ Guia de Resolução de Problemas ------------------------------------------------------------------------ 17.1 Iniciando o DB2 no Windows 95, Windows 98 e Windows ME Quando o Usuário Não Efetuou Logon Para que um comando db2start seja bem sucedido em um ambiente Windows 95, Windows 98, ou Windows ME (Millennium Edition), é necessário: * Efetuar o logon utilizando a janela de logon do Windows ou a janela de logon da Rede do Windows * Emitir o comando db2logon (consulte a nota 1 para obter informações sobre o comando db2logon). E mais, o ID do usuário que é especificado durante o logon ou para o comando db2logon deve corresponder às exigências do DB2 (veja a nota 2). Quando o comando db2start inicia, ele primeiro verifica se um usuário efetou o logon. Se um usuário efetuou o logon, o comando db2start usa esse 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 o ID do usuário que foi especificado para o comando db2logon. Se o comando db2start não puder encontrar um ID do usuário válido, 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 1 para obter informações adicionais). 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 em batch, como a seguir: 1. Crie um arquivo em batch 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 em batch db2start.bat, e armazene-o no diretório /bin que está sob a unidade e o caminho onde você instalou o DB2.Você armazena o arquivo em batch nesse 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. Nessa situação, você iria armazenar o arquivo em batch da seguinte maneira: c:\sqllib\bin\db2start.bat 3. Para iniciar o DB2 quando o sistema é inicializado, você deveria executar o arquivo em 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 em batch ao invés de db2start.exe. No exemplo anterior, o atalho deveria agora executar o arquivo em 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 em 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 esse 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 esse 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 5 para detalhes. Se você usar um arquivo em batch para emitir o comando db2logon antes do comando db2start ser executado, e seus usuários ocasionalmente efetuarem logon, o comando db2start continuará trabalhando, a única diferença é que o DB2 usará o ID de usuário do usuário logado. Consulte a nota 1 para detalhes adicionais. Notas: 1. O comando db2logon simula um logon de usuário. O formato do comando db2logon é: db2logon userid /p:password O ID do usuário especificado no comando deve satisfazer as exigências de nomeação do DB2 (consulte a nota 2 para mais informações). Se o comando for emitido sem um ID do usuário e uma senha, uma janela é aberta para solicitar ao usuário a fornecer o ID do usuário e a senha. Se o único parâmetro fornecido for um ID do usuário, uma senha não será solicitada ao usuário; sob certas condições, uma senha será exigida, como descrito abaixo. Os valores do ID do usuário e da senha que são definidos pelo comando db2logon só são utilizados se 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 logon, e um comando db2logon foi emitido, o ID do usuário do comando db2logon será utilizado 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, o ID do usuário e a senha fornecidos através do comando db2logon são usados da seguinte maneira: o O comando db2start usa o 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, o ID do usuário é utilizado como o qualificador de alto nível. Por exemplo: a. Se você emitir o seguinte: db2logon db2local b. E depois emitir o seguinte: create table tab1 A tabela é criada com um qualificador de alto nível db2local.tab1. Você deve usar um 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 um ID do usuário e uma senha (por exemplo, CONNECT TO TEST) e a autenticação está definida como servidor, o ID do usuário e a senha do comando db2logon são usados para validar o usuário no servidor remoto. Se o usuário se conecta com um 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, o ID do usuário usado para efetuar o logon ou especificado para o comando db2logon deve atender aos seguintes requisitos do DB2: o Não pode ser qualquer dos 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: + de A a Z (Windows 95, Windows 98 e Windows ME suportam IDs do usuário com distinção entre maiúsculas e minúsculas) + de 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 essas 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 efetua logon quando o Windows 98 ou o Windows ME é iniciado. Nessa situação, a janela de logon do Windows não aparecerá. Se você usar essa opção, o usuário efetua logon e o comando db2start será bem-sucedido se o ID do usuário corresponder às exigências do DB2 (consulte a nota 2 para obter detalhes). Se você não usar essa opção, o usuário será sempre solicitado com uma janela de logon. Se o usuário cancelar essa 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. Utilizando esse 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 dessa 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. Esses comandos podem estar em scripts de banco de dados, scripts de instância, ou embutidos em scripts do OS (Sistema Operacional). Se um script do OS 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 utilizando 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 em 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 Nesse 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, assegure-se de que a instalação do DB2 não inclua um atalho na pasta Iniciar para iniciar o DB2. Consulte a nota 3 para obter detalhes. ------------------------------------------------------------------------ 17.2 Capítulo 1. Práticas Recomendáveis para Resolução de Problemas 17.2.1 Ferramenta de Análise de Problemas e Coleta de Ambiente Há um utilitário que ajudará você a identificar algumas das informações associadas ao problema e coletará outras informações relevantes para ajudar o DB2 Customer Support a compreender o ambiente e seu problema. Muitas das informações coletadas com esse utilitário são descritas no restante deste capítulo. O utilitário é db2support. Detalhes sobre a sintaxe e opções de linha de comandos podem ser encontrados na publicação Referência de Comandos. A finalidade do utilitário é coletar dados de ambiente sobre a máquina cliente ou servidor que está executando o DB2 e, em seguida, coletar e empacotar uma grande parte da saída como XML, HTML ou um archive de arquivo compactado navegável. O utilitário também possui uma opção que permite a coleta de alguns dados sobre a natureza do problema, utilizando um processo interativo de pergunta e resposta. Esse processo ajudará a esclarecer o problema e também fornecerá informações para o DB2 Customer Support quando você entrar em contato com eles para relatar o problema. Nota: Um cliente thin ou de tempo de execução não pode usar esse utilitário. O utilitário requer que o cliente tenha as bibliotecas de mecanismo do DB2 instaladas. 17.2.1.1 Saídas de Coleta O utilitário produz uma coleta compactada (archive de arquivo simples) de informações importantes do sistema de banco de dados. Esse archive contém um relatório HTML das informações mais essenciais, que você pode utilizar para exibir as informações. Por padrão, db2support não coletará dados de tabela, esquema (DDL) ou logs para proteger a segurança e sensibilidade dos dados do cliente. Com algumas opções, o usuário pode optar por incluir aspectos de seu esquema e dados (como incluir logs arquivados). Opções que exponham o esquema ou dados do banco de dados devem ser utilizadas cautelosamente. Quando db2support for chamado, será exibida uma mensagem indicando como os dados sensíveis são tratados. A seguir são mostrados os arquivos a serem coletados e compactados em um único archive: Coletados sob todas as condições 1. db2diag.log 2. Todos os arquivos de trap 3. Arquivos de lista de travas (com -d) 4. Arquivos de dump 5. Saída de usuário (com -d) 6. Arquivos de controle do conjunto de buffers e do espaço de tabelas (SPCS) (com -d) 7. Vários arquivos relacionados ao sistema 8. Saída dos vários comandos do sistema 9. Config do db (com -d) 10. Arquivos de config dbm 11. Arquivo de Cabeçalho do Arquivo de Log (com -d) 12. Arquivo de Histórico de Recuperação 13. db2cli.ini Coletados opcionalmente 1. Arquivos de log ativos 2. Conteúdo do diretório db2dump (isso é, o que não foi coletado acima) 3. Arquivos de núcleo (-a para todos os arquivos de núcleo, -r somente para o arquivo de núcleo mais recente) 4. Informações estendidas do sistema (-s) Os arquivos a seguir constituem o conteúdo do relatório HTML: Coletados sob todas as condições 1. Número de PMR, se algum existir (se -n tiver sido especificado). 2. Sistema operacional e nível (por ex., AIX 4.2.1). 3. Informações sobre o release do DB2. 4. Informações sobre o cabeçalho da biblioteca do mecanismo. 5. Detecção de 32 ou 64 bits 6. Informações sobre o caminho de instalação do DB2. 7. Para conteúdo de relatório EEE do db2nodes.cfg 8. Quantos discos, CPUs e quantidade de memória. 9. Lista de bancos de dados nessa instância. 10. Informações de registro e ambiente, incluindo caminho e libpath. 11. Espaço livre em disco para o sistema de arquivos atual e inodes para Unix. 12. Nível de JDK. 13. Configuração do dbm. 14. Listagem do arquivo de histórico de recuperação do banco de dados. 15. 'ls -lR' (ou equivalente no Windows) do diretório sqllib. 16. LIST NODE DIRECTORY 17. LIST ADMIN NODE DIRECTORY 18. LIST DCS DIRECTORY 19. LIST DCS APPLICATIONS EXTENDED 20. Lista de todos os softwares instalados. Coletados se '-s' for especificado 1. Informações detalhadas sobre o disco (layout da partição, tipo, informações sobre LVM, etc.) 2. Informações detalhadas de rede 3. Estatísticas de kernel 4. Versões de firmware 5. Outros comandos específicos da plataforma Coletados se o DB2 tiver sido iniciado 1. Estado de conexão do cliente 2. Configuração do db/dbm (db cfg requer a opção -d) 3. Configuração da CLI 4. Informações do conjunto de memória (tamanho e consumo). Dados completos se a opção -d for utilizada. 5. LIST ACTIVE DATABASES 6. LIST DATALINKS MANAGERS 7. LIST DCS APPLICATIONS Coletados se -c tiver sido especificado e uma conexão com o banco de dados puder ser feita 1. Número de tabelas do usuário 2. Tamanho aproximado dos dados do DB 3. Instantâneo do banco de dados 4. Instantâneo do aplicativo 5. Informações sobre o conjunto de buffers 6. LIST APPLICATIONS 7. LIST COMMAND OPTIONS 8. LIST DATABASE DIRECTORY 9. LIST INDOUBT TRANSACTIONS 10. LIST NODEGROUPS 11. LIST NODES 12. LIST ODBC DATA SOURCES 13. LIST PACKAGES/TABLES 14. LIST TABLESPACE CONTAINERS 15. LIST TABLESPACES 16. LIST DRDA IN DOUBT TRANSACTIONS Se '-q' for especificado, coletar o seguinte O modo interativo de pergunta e resposta é iniciado. Com exceção de uma pergunta "descreva seu problema" opcional e de um pequeno número de pedidos de informações do cliente, todas as perguntas terão respostas de múltipla escolha a partir das quais é possível fazer uma seleção. Todas as perguntas, incluindo perguntas de acompanhamento, e as respostas serão coletadas. Em alguns casos, o utilitário solicitará que você execute uma tarefa e coloque os resultados dessa tarefa em um diretório adicional. Uma pequena árvore de decisão é utilizada durante o modo interativo para determinar as perguntas a serem feitas. Essas perguntas interativas ajudam a determinar a categoria do problema e, com base na categoria, outras perguntas relevantes poderão ser feitas e dados adicionais poderão ser coletados. No final das perguntas, quaisquer dados que tenham sido coletados no modo automático também serão coletados. As respostas a todas as perguntas são armazenadas em preparação para serem enviadas para serviço, juntamente com os dados coletados no modo automático. 17.2.1.2 Exibindo o detailed_system_info.html Se você estiver executando o db2support em uma instalação não-inglês e estiver tendo dificuldades em exibir corretamente o detailed_system_info.html, poderá ser necessário utilizar o Internet Explorer versão 5 ou posterior com a codificação do DOS. Para alterar a codificação, selecione Exibir --> Codificação --> Centro-europeu (DOS). Se você ainda não tiver o suporte à codificação obrigatório, o Internet Explorer solicitará que você faça download dos arquivos necessários no Web site de Atualizações da Microsoft. Essas informações não se aplicam aos idiomas de byte duplo (chinês simplificado, chinês tradicional, japonês e coreano). 17.2.1.3 Exibindo a Sintaxe da Ferramenta de Suporte ao DB2, Uma Página por Vez Para exibir a sintaxe da Ferramenta de Suporte ao DB2, uma página por vez, execute o seguinte comando: db2support | more ------------------------------------------------------------------------ 17.3 Capítulo 2. Resolução de 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 RR (Repeatable Read) 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 RR (Repeatable Read) 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 essa 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 essa 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. ------------------------------------------------------------------------ 17.4 Capítulo 8. Resolução de Problemas no DB2 Data Links Manager 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: * Para clientes com uma versão de FixPak anterior à Versão 7 do FixPak 2 ou para clientes de nível inferior, 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. * Para clientes com uma versão de FixPak anterior à Versão 7 do FixPak 2 ou para clientes de nível inferior, 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. ------------------------------------------------------------------------ 17.5 Capítulo 15. Informações de Log 17.5.1 Coletando Informações de Rastreio Anterior de Pilhas em Sistemas Baseados em UNIX O Guia de Resolução de Problemas informa incorretamente que, para ativar o rastreio anterior da pilha em cada nó de um sistema com diversos nós, é preciso utilizar o comando db2_all. É necessário apenas o comando db2_call_stack. A utilização conjunta dos comandos db2_all e db2_call_stack causará um erro. ------------------------------------------------------------------------ Utilizando o DB2 Universal Database em Plataformas de 64 bits ------------------------------------------------------------------------ 18.1 Capítulo 5. Configuração 18.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 18.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. A publicação DB2 para UNIX Iniciação Rápida recomenda a definição desse parâmetro em "90% da memória física RAM na máquina, em bytes". Essa recomendação também é válida para implementações de 64 bits. Contudo, existe um problema com a seguinte recomendação na publicação DB2 para UNIX Iniciação Rápida: 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 utilizando um kernel de 32 bits, o kernel enxergará somente os 32 bits mais baixos do número, resultando, às vezes, em um valor muito pequeno para shmmax. ------------------------------------------------------------------------ 18.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 on Se for 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." ------------------------------------------------------------------------ Programação e Administração do XML Extender As Notas sobre o Release para o IBM DB2 XML Extender podem ser encontradas no Web site DB2 XML: http://www.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 UDFs (User-Defined Functions), que podem ser opcionalmente ativadas no DB2 Universal Database, Versão 7.2. Utilizando essas funções básicas é possível suportar um grande intervalo de aplicativos, desde a simples notificação de eventos ao armazenamento de dados. Para obter mais informações sobre os aplicativos de armazenamento, consulte a atualização mais recente da publicação Data Warehouse Center - Guia de Administração, que pode ser obtida em http://www.ibm.com/software/data/db2/udb/winos2unix/support. ------------------------------------------------------------------------ 20.1 Instalação e Configuração das 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 pode ser encontrada na seção Referência de SQL das Notas sobre o Release. O procedimento básico para configuração e ativação das Funções do DB2 MQSeries é: 1. Instale o MQSeries em cada máquina física. 2. Instale o MQSeries AMI na máquina física. 3. Ative e configure as Funções do DB2 MQSeries. Além disso, para utilizar os recursos de publicar/assinar fornecidos pelas Funções do DB2 MQSeries, também é preciso instalar as Funções do MQSeries Integrator ou do MQSeries Publish/Subscribe em cada máquina. 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. 20.1.1 Instalar o MQSeries A primeira etapa é assegurar-se de que, no mínimo, a Versão 5.1 do MQSeries com o FixPak mais recente esteja instalado no 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 na publicação Iniciação Rápida específica 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. 20.1.2 Instalar o MQSeries AMI A próxima etapa é instalar o MQSeries AMI (Application Messaging Interface). 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 a partir do pacote de instalação fornecido com o DB2 7.2 ou fazendo download de uma cópia da AMI a partir do Web site MQSeries Support Pacs 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 Solaris Operating Environment ma0f_sol7.tar.Z or mq0f_sol26.tar.Z Windows de 32 bits ma0f_nt.zip Siga o processo de instalação normal da AMI conforme destacado no arquivo leia-me da AMI contida na imagem de instalação compactada. 20.1.3 Ativar as Funções do DB2 MQSeries Durante essa 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, em seguida instala e cria uma configuração padrão para as funções do DB2 MQSeries, ativa o banco de dados especificado com essas funções e confirma 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 essas 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. Em um ambiente DB2 UDB EEE, realize essa etapa apenas no nó do catálogo. Consulte 20.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 essas funções utilizando o Processador da Linha de Comandos, emita os comandos a seguir após ter se conectado 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ão criados. 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. ------------------------------------------------------------------------ 20.2 Estilos de Mensagens do MQSeries As funções do DB2 MQSeries suportam três modelos de mensagens: datagramas, publicar/assinar (p/a) e pedido/resposta (p/r). As mensagens enviadas como datagramas são enviadas para um único destino sem resposta esperada. No modelo p/a, 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. ------------------------------------------------------------------------ 20.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 MQSI (MQSeries Integrator) 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, isso é, 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. ------------------------------------------------------------------------ 20.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 incluam 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 a partir 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 sobre o 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 acessar as funções do MQSeries através do banco de dados simultaneamente. 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 as seções 20.6, enable_MQFunctions e 20.7, 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 AMI (Application Messaging Interface) 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 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 um 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 se 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', 'mensagem simples') 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 suportar aplicativos e objetivos diferentes. Por esse motivo, muitas vezes é importante definir os pontos de serviços diferentes quando criar pedidos do MQSeries. Isso é 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. 20.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 do tipo VARCHAR é de 4000 caracteres. O comprimento máximo ao enviar ou receber uma mensagem do tipo CLOB é 1 MB. Esses também são os tamanhos máximos de mensagens para publicação de uma mensagem utilizando o MQPublish. Às vezes, são necessárias funções diferentes ao se trabalhar com mensagens CLOB e VARCHAR. Geralmente, a versão CLOB de uma função MQ utiliza a sintaxe idêntica como seu correlativo. A única diferença é que seu nome tem os caracteres CLOB no final. Por exemplo, o equivalente CLOB de MQREAD é MQREADCLOB. Para obter uma lista detalhada dessas funções, consulte a seção 43.7.3, Dados CLOB Agora São Suportados nas Funções do MQSeries. 20.4.2 Códigos de Erros Os códigos de retorno retornados pelas Funções do MQSeries podem ser encontrados no Apêndice B da Publicação MQSeries Application Messaging Interface. ------------------------------------------------------------------------ 20.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. 20.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 das 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, isso é, a pessoa que inicia a mensagem não espera uma resposta. Consulte a seção 20.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.20.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. Isso é, 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 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 essa é 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. 20.5.2 Enviando Mensagens Utilizando MQSEND, um usuário ou um desenvolvedor do DB2 escolhe quais dados enviar, para onde enviá-los e quando eles serão enviados. Na indústria, esse é 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 essa 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' Se a tabela EMPLOYEE tivesse uma coluna RESUME do tipo CLOB em vez de uma coluna AGE, uma mensagem contendo as informações de cada funcionário no DEPARTMENT 5LGA poderia ser emitida com o seguinte: Exemplo 7: SELECT DB2MQ.MQSEND (clob(LASTNAME) || ' ' || clob(FIRSTNAME) || ' ' || clob(DEPARTMENT) || ' ' || RESUME)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Exemplo 8: Finalmente, o exemplo a seguir mostra como o conteúdo da mensagem pode ser derivado utilizando qualquer expressão de SQL válida. Dada uma segunda tabela DEPT com as colunas VARCHAR DEPT_NO e DEPT_NAME, é possível enviar mensagens contendo o LASTNAME e o DEPT_NAME do funcionário: Exemplo 8: SELECT DB2MQ.MQSEND(e.LASTNAME || ' ' || d.DEPTNAME) FROM EMPLOYEE e, DEPT d WHERE e.DEPARTMENT = d.DEPTNAME 20.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 essa 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 metadados sobre essas 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 metadados. 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 Construtor de Procedimento Armazenado do DB2, 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, é desejável 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 seja: Exemplo 16: INSERT INTO MESSAGES SELECT t.msg FROM tabela (DB2MQ.MQRECEIVEALL()) t Determinada 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. 20.5.4 Conectividade de Aplicativo a Aplicativo A integração de aplicativos é um elemento comum em muitas soluções. Seja 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. Esta 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. 20.5.4.1 Comunicações de Pedido/Resposta O método de comunicações de Pedido/Resposta (P/R) é uma técnica muito comum para um ID de aplicativo solicitar os serviços de outro. Uma maneira de fazer isso é o solicitador enviar uma mensagem para o provedor de serviço solicitando o mesmo trabalho a ser executado. Quando o trabalho for concluído, o provedor pode decidir enviar os resultados (ou apenas uma confirmação de conclusão) de volta para o solicitador. Mas ao utilizar as técnicas de mensagens básicas descritas acima, não há nada que conecte 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 esse mecanismo, o MQSeries fornece um identificador de correlação que permite a correlação de mensagens em uma troca. Enquanto existe um número de maneiras pelas quais esse mecanismo pode ser utilizado, a mais simples é 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 identificador de correlação do pedido. Para receber uma resposta a esse pedido específico, utilize a instrução MQRECEIVE correspondente para recuperar seletivamente a primeira mensagem definida pelo serviço indicado que corresponda a esse identificador de correlação, como a seguir: Exemplo 18: DB2MQ.MQRECEIVE('myReceiver','myPolicy','Req1') Se o aplicativo que atende ao pedido estiver ocupado e o solicitador emitir o MQRECEIVE acima antes da resposta ser enviada, nenhuma mensagem que corresponda a esse identificador de correlação será encontrada. Para receber o pedido de serviço e o identificador de correlação, uma instrução como a seguinte é utilizada: Exemplo 19: SELECT msg, correlid FROM table (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 de que o pedido de serviço inicial será respondido dentro do tempo definido. Os tempos-limite do nível de aplicativo, tais como esse, devem ser gerenciados 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 de forma completamente independente um do outro. Esses 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 armazém de dados, para atualizar periodicamente um armazém de dados ou armazenamento de dados operacional. 20.5.4.2 Publicar/Associar Publicação de Dados Simples Outro cenário comum na integração de aplicativos é 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 Publish/Subscribe é necessária. Os sistemas de publicar/assinar 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, a interface MQPublish pode 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 a um assinante 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 de Tempo. As mensagens indicam se o tempo está Nevando com um tópico de Austin, notificando, assim, os assinantes interessados de que 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 a cujos critérios atende. 6. Os aplicativos que são associados ao serviço de 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' Ao especificar completamente todos os parâmetros e simplificar a mensagem para conter apenas o LASTNAME, a instrução se parecerá com: 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á no local para o qual 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 pode ser utilizada. 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 em seguida, 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 publicar/assinar 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 acionador dentro do DB2, você pode, opcionalmente, publicar mensagens como parte de uma invocação de acionador. Enquanto existem outras técnicas para publicação de dados automatizada, a abordagem baseada em acionador 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 acionador. Como com qualquer uso de acionador, deve-se prestar atenção na freqüência e no custo da execução. Os exemplos a seguir demonstram como os acionadores podem ser utilizados com as Funções do MQSeries DB2. O exemplo abaixo mostra como é fácil publicar uma mensagem toda vez que um novo empregado é contratado. Todos os usuários e aplicativos associados ao serviço HR_INFO_PUB com interesse comum 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) ------------------------------------------------------------------------ 20.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 tiverem sido instalados e configurados. Autorização Uma das 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 do Comando >>-enable_MQFunctions---n--database---u--userid---p--password---> >--+-------+--+------------+----------------------------------->< '-force-' '-noValidate-' Parâmetros do Comando -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á executada. 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 de Uso 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 de que a versão do MQSeries seja 5.1 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. ------------------------------------------------------------------------ 20.7 disable_MQFunctions disable_MQFunctions Desativa o uso de funções do DB2 MQSeries para o banco de dados especificado. Autorização Uma das 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 do Comando >>-disable_MQFunctions---n--database---u--userid----------------> >---p--password------------------------------------------------>< Parâmetros do Comando -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 * Configuração Adicional Antes de Executar as Ferramentas o 21.1 Desativando a Pilha de Ponto Flutuante no Linux o 21.2 Nível de Java Específico Requerido em um Ambiente Linux em Japonês * Centro de Controle o 22.1 A Seleção da Restauração Redirecionada Exige a Restauração do Banco de Dados o 22.2 Capacidade de Administrar o Servidor DB2 para Servidores VSE e VM o 22.3 Suporte a Java 1.2 para o Centro de Controle o 22.4 Erro "Atalho inválido" ao Usar a Ajuda On-line no Sistema Operacional Windows o 22.5 Atalhos do Teclado que Não Funcionam o 22.6 Centro de Controle Java no OS/2 o 22.7 Erro "Acesso negado ao arquivo" ao Tentar Exibir um Job Concluído no Diário no Sistema Operacional Windows o 22.8 Teste de Conexão de Atualização Multisites o 22.9 DB2 Control Centerpara OS/390 o 22.10 Correção Exigida do Centro de Controle para OS/390 o 22.11 Alteração no Diálogo Criar Camada Espacial o 22.12 Informações de Resolução de Problemas para o DB2 Control Center o 22.13 Resolução de Problemas do Centro de Controle em Sistemas Baseados em UNIX o 22.14 Possíveis Problemas com Infopops no OS/2 o 22.15 Ajuda do Parâmetro de Configuração jdk11_path o 22.16 Erro do Sistema Solaris (SQL10012N) na Utilização do Centro de Scripts ou do Diário o 22.17 Ajuda ao Arquivo DPREPL.DFT o 22.18 Lançando Mais de um Applet do Centro de Controle o 22.19 Ajuda On-line do Centro de Controle em Execução como um Applet o 22.20 Executando o Centro de Controle no Modo Applet (Windows 95) o 22.21 Trabalhando com Resultados de Consulta Grande * Centro de Comandos o 23.1 Página Interativa do Centro de Comandos Agora Reconhece o Finalizador de Instrução * Centro de Informações o 24.1 Correções do Documento de Amostras Java o 24.2 Erro "Atalho inválido" no Sistema Operacional Windows o 24.3 Abrindo Links da Web Externos no Netscape Navigator Quando o Netscape Já Está Aberto (Sistemas Baseados em UNIX) o 24.4 Problemas ao Iniciar o Centro de Informações * Construtor de Procedimento Armazenado o 25.1 Suporte para Procedimentos Armazenados Java para z/OS ou OS/390 o 25.2 Suporte para Procedimentos Armazenados SQL para z/OS ou OS/390 o 25.3 Atualização de Referência do Construtor de Procedimento Armazenamento para Documentação no z/OS ou OS/390 o 25.4 Suporte para Definição de Propriedades do Conjunto de Resultados o 25.5 Eliminando Procedimentos de um Banco de Dados DB2 no Windows NT * Assistentes o 26.1 Definindo o Tamanho Estendido no Assistente para Criar Banco de Dados o 26.2 Assistente para Ajuda do MQSeries o 26.3 Assistente para Ajuda do OLE DB ------------------------------------------------------------------------ Configuração Adicional Antes de Executar as Ferramentas ------------------------------------------------------------------------ 21.1 Desativando a Pilha de Ponto Flutuante no Linux Em um ambiente Linux com glibc 2.2.x, você precisa desativar a pilha de ponto flutuante antes de executar as ferramentas DB2 Java GUI, tais como o Centro de Controle. Para desativar a pilha de ponto flutuante, defina a variável de ambiente LD_ASSUME_KERNEL como 2.2.5 como se segue: bash$ export LD_ASSUME_KERNEL=2.2.5 ------------------------------------------------------------------------ 21.2 Nível de Java Específico Requerido em um Ambiente Linux em Japonês Usuários do Linux precisam de um nível de JDK específico ao executar as ferramentas de GUI Java do DB2, como o Centro de Controle, em um ambiente em japonês. Por exemplo, usuários do Red Hat Linux 6.2J/7J/7.1/7.2 devem utilizar o nível IBMJava118-SDK-1.1.8-2.0.i386.rpm. ------------------------------------------------------------------------ Centro de Controle ------------------------------------------------------------------------ 22.1 A Seleção da Restauração Redirecionada Exige a Restauração do Banco de Dados Ao restaurar um banco de dados com as ferramentas GUI, a seleção da opção de restauração redirecionada exige a restauração do banco de dados. Uma vez selecionada a opção, a operação de restauração é iniciada em segundo plano e o banco de dados é colocado no estado pendente. Se sua ação for cancelada, o banco de dados não será disponibilizado até que outra restauração seja concluída. ------------------------------------------------------------------------ 22.2 Capacidade de Administrar o Servidor 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. Esse 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 independente da plataforma na qual o Servidor do DB2 é 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 os utilitários para gerenciar esses 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 réplica. 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 a publicação DB2 Connect - Guia do Usuário ou Suplemento de Instalação e Configuração. ------------------------------------------------------------------------ 22.3 Suporte a Java 1.2 para o Centro de Controle O Centro de Controle suporta idiomas bidirecionais, como o árabe e o hebreu, utilizando o suporte bidirecional do Java 1.2. Esse 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, em 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, 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. ------------------------------------------------------------------------ 22.4 Erro "Atalho inválido" ao Usar a Ajuda On-line no Sistema Operacional Windows Ao usar a ajuda on-line do Centro de Controle, você pode encontrar um erro como: "Atalho inválido". Se você instalou recentemente um novo navegador da Web ou uma nova versão de um navegador da Web, assegure-se de 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". ------------------------------------------------------------------------ 22.5 Atalhos do Teclado que Não Funcionam Em alguns idiomas, para o Centro de Controle em sistemas baseados no UNIX e no OS/2, alguns atalhos (teclas de acesso rápido) do teclado não funcionam. Use o mouse para selecionar opções. ------------------------------------------------------------------------ 22.6 Centro de Controle Java no OS/2 O Centro de Controle deve ser instalado em uma unidade no formato HPFS. ------------------------------------------------------------------------ 22.7 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. Esse comportamento ocorre quando um job criado no Centro de Script contém o comando START. Para evitar esse comportamento, utilize START/WAIT ao invés de START em ambos o, arquivo em batch e o próprio job. ------------------------------------------------------------------------ 22.8 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á. ------------------------------------------------------------------------ 22.9 DB2 Control Centerpara OS/390 O Centro de Controle do DB2 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 licenciadar e instaladar no seu ambiente antes de serem gerenciadar 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, é utilizado para o suporte interno do Centro de Controle. Não modifique esse 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 Centro de Controle do DB2para 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 em que você iniciar o Centro de Controle do DB2 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 de 1 a 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 do DB2. 11. Selecione a instância. Os parâmetros do protocolo são preenchidos automaticamente para essa 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. Dê um clique em OK. Agora você incluiu com sucesso o subsistema no Centro de Controle. Quando 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 Centro de Controle do DB2 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 licenciadas e instaladas no seu ambiente antes de serem gerenciadas pelo Centro de Controle do DB2. Essa seção agora informa: O Centro de Controle do DB2 para OS/390 permite gerenciar a utilização de seus utilitários IBM DB2 licenciados. As funções de utilitários que são elementos de produtos pedidos separadamente devem ser licenciadas e instaladas em seu ambiente para que sejam gerenciadas pelo Centro de Controle do DB2. ------------------------------------------------------------------------ 22.10 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 esses subsistemas utilizando o Centro de Controle do DB2 UDB para Versão 7. Sem essa correção, você não pode utilizar o Centro de Controle do DB2 UDB 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 ------------------------------------------------------------------------ 22.11 Alteração no Diálogo Criar Camada Espacial Os botões "<<" e ">>" foram removidos do diálogo Criar Camada Espacial. ------------------------------------------------------------------------ 22.12 Informações de Resoluçã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 Resolução de Problemas" informa para não configurar seu CLASSPATH do navegador do cliente a partir da janela de comandos se você tiver problemas de execução do Centro de controle como um applet. Essa 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 start netscape e pressione Enter. Esses comandos pressupõem 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. ------------------------------------------------------------------------ 22.13 Resolução de 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 ------------------------------------------------------------------------ 22.14 Possíveis Problemas com Infopops no OS/2 Se você está executando o Centro de Controle no OS/2, utilizando 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 fundo preto. Para corrigir esse problema, altere as definições da tela para mais de 256 cores ou desabilite o Workplace Shell Palette Awareness. ------------------------------------------------------------------------ 22.15 Ajuda do Parâmetro de Configuração jdk11_path Na ajuda do Centro de Controle, na 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 ------------------------------------------------------------------------ 22.16 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 (107733 torna 105490 obsoleto) para o Solaris Operating Environment 2.6 ------------------------------------------------------------------------ 22.17 Ajuda ao Arquivo DPREPL.DFT No Centro de Controle, na ajuda da página Réplica 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. ------------------------------------------------------------------------ 22.18 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. Essa restrição se aplica aos applets do Centro de Controle em execução em todos os navegadores suportados. ------------------------------------------------------------------------ 22.19 Ajuda On-line 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, utilize o botão de comando Ajuda ou o menu de opções Ajuda. ------------------------------------------------------------------------ 22.20 Executando o Centro de Controle no Modo Applet (Windows 95) A tentativa de abrir o Centro de Scripts poderá falhar se forem especificados um ID de usuário e uma senha inválidos. Confira se foram digitados um ID de usuário e uma senha válidos quando for efetuado o início de sessão no Centro de Controle. ------------------------------------------------------------------------ 22.21 Trabalhando com Resultados de Consulta Grande É 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ão reduzidos 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 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ê terá atingido o final do conjunto de resultados. ------------------------------------------------------------------------ Centro de Comandos ------------------------------------------------------------------------ 23.1 Página Interativa do Centro de Comandos Agora Reconhece o Finalizador de Instrução A página interativa do Centro de Comando agora reconhece o caractere de terminação de Instrução especificado nas Definições das Ferramentas. Se um caractere de terminação da Instrução não for especificado, o caractere de nova linha é utilizado como padrão. ------------------------------------------------------------------------ Centro de Informações ------------------------------------------------------------------------ 24.1 Correções do Documento de Amostras Java O documento de Amostras Java do centro de informações está ligado à origem das amostras java. A seção PluginEx.Java dessa origem não está atualizada. Para obter as informações atuais sobre Estendendo o Centro de Controle, consulte o arquivo LEIA-ME de Amostras Java, o arquivo PluginEx.java e 9.2, Exemplo para Estender o Centro de Controle. Nas plataformas Windows, os arquivos LEIA-ME e PluginEx.java podem ser encontrados em x:\sqllib\samples\java em que x é a unidade na qual o DB2 está instalado. No UNIX, os arquivos LEIA-ME e PluginEx.java podem ser encontrados em /u/db2inst1/sqllib/samples/java em que /u/db2inst1 representa o diretório no qual o DB2 está instalado. ------------------------------------------------------------------------ 24.2 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 da Web ou uma nova versão de um navegador da Web, assegure-se de que os documentos HTML e HTM estejam associados ao navegador correto. Consulte o tópico da ajuda do Windows "Para alterar qual programa é iniciado quando você abre um arquivo". ------------------------------------------------------------------------ 24.3 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 Web site externo, a tentativa de abrir um Web site 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 Web site externo. O Netscape reiniciará e trará o Web site externo. Observe que esse erro não ocorre na tentativa de abrir um documento HTML do DB2 local com o Netscape já aberto. ------------------------------------------------------------------------ 24.4 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 utilizando 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. ------------------------------------------------------------------------ Construtor de Procedimento Armazenado ------------------------------------------------------------------------ 25.1 Suporte para Procedimentos Armazenados Java para z/OS ou OS/390 No FixPak 7, as seguintes melhorias foram incluídas no Construtor do Procedimento Armazenado para construção de procedimentos armazenados Java interpretados para DB2 para z/OS ou OS/390, Versão 7: * Suporte de Custo Real * Tratamento de mensagem de erro melhorado * Ativamento de servidores LINUX/390 * Suporte para o símbolo @ em um nome de esquema do procedimento armazenado Os procedimentos armazenados Java compilados não são suportados em qualquer versão do z/OS ou OS/390 e não podem ser criados utilizando o Store Procedure Builder. Isso é verdadeiro para todas as versões do DB2. Requisitos: * Para tarefas de pré-requisitos e instalação no DB2 para z/OS ou OS/390, consulte o APAR PQ52329. * O ID de Coleção deve corresponder ao ID utilizado na ligação do driver JDBC no z/OS ou OS/390. * Modifique o arquivo DB2SPB.ini para incluir as seguintes entradas: SPOPTION_WLM_JAVA_ENVIRONMENT = WLMENVJ SPOPTION_JAVAPROC_BUILDER = SYSPROC.DSNTJSPP SPOPTION_BIND_OPTIONS_JAVA = ACT(REP) SPOPTION_COLLIDJ = DSNJDBC Para criar um procedimento armazenado Java para z/OS ou OS/390 utilizando o Construtor de Procedimento Armazenado: 1. Abra o assistente para Inserir Procedimento Armazenado de Java: a. Em uma conexão de banco de dados do z/OS ou OS/390, na árvore de projetos, clique com o botão direito do mouse na pasta de procedimentos armazenados. b. Clique em Inserir -> Procedimento Armazenado Java Utilizando o Assistente. O assistente é aberto. 2. Conclua o assistente, especificando as opções de z/OS ou OS/390: o O ID de Coleção deve corresponder ao ID especificado em BIND PACKAGE(collid) quando os drivers JDBC foram ligados ao z/OS ou OS/390. o O padrão para o Pacote Java é o nome do procedimento, mas você pode modificar isso para qualquer nome. 3. Dê um clique em OK. O procedimento armazenado é criado e listado na árvore de projetos. 4. Clique com o botão direito do mouse no procedimento armazenado e clique em Construir. ------------------------------------------------------------------------ 25.2 Suporte para Procedimentos Armazenados SQL para z/OS ou OS/390 No FixPak 7, o Construtor de Procedimento Armazenado melhorou a utilização dos procedimentos ALTER ao construir procedimentos armazenados para DB2 para z/OS ou OS/390, Versão 7 (APAR JR16764). Para criar um procedimento armazenado de SQL para z/OS ou OS/390 utilizando o Construtor de Procedimento Armazenado: 1. Abra o assistente Inserindo Procedimento Armazenado SQL: a. Em uma conexão de banco de dados do z/OS ou OS/390, na árvore de projetos, clique com o botão direito do mouse na pasta de procedimentos armazenados. b. Clique em Inserir -> Procedimento Armazenado SQL Utilizando o Assistente. O assistente é aberto. 2. Conclua o assistente, especificando as opções de z/OS ou OS/390: o O ID de Coleção deve corresponder ao ID especificado em BIND PACKAGE(collid) quando os drivers JDBC foram ligados ao z/OS ou OS/390. o O padrão para o Pacote SQL é o nome do procedimento, mas você pode modificar isso para qualquer nome. 3. Dê um clique em OK. O procedimento armazenado é criado e listado na árvore de projetos. 4. Clique com o botão direito do mouse no procedimento armazenado e selecione Construir. ------------------------------------------------------------------------ 25.3 Atualização de Referência do Construtor de Procedimento Armazenamento para Documentação no z/OS ou OS/390 Na página "Visão Geral dos procedimentos armazenados SQL" da ajuda on-line do Construtor de Procedimento Armazenado, a referência para IBM DB2 Universal Database - Guia e Referência de Procedimentos SQL Versão 6 está obsoleta. Para obter mais informações sobre a construção de procedimentos armazenados SQL em um servidor z/OS ou OS/390, você pode consultar: * DB2 UDB para z/OS ou OS/390 SQL Reference * DB2 UDB para z/OS ou OS/390 Application Programming and SQL Guide ------------------------------------------------------------------------ 25.4 Suporte para Definição de Propriedades do Conjunto de Resultados No FixPak 7, o Store Procedure Builder melhorou o desempenho ao executar procedimentos armazenados que retornam conjuntos de resultados. Com o Store Procedure Builder, você pode executar um procedimento armazenado para fins de teste. Executar procedimentos armazenados utilizando o Store Procedure Builder permite que você teste uma construção com êxito de um banco de dados e a presença de um conjunto de resultados. Se seu procedimento armazenado retornar um conjunto de resultados grande, você pode limitar o número de linhas e colunas que aparecem no painel de resultados. Para editar as propriedades do conjunto de resultados para o procedimento armazenado: 1. Clique em Arquivo -> Propriedades de Ambiente. 2. Clique na guia Saída no bloco de notas Propriedades de Ambiente. 3. Para exibir todas as linhas de um conjunto de resultados do procedimento armazenado no painel de resultados, selecione a caixa de entrada Mostrar todas as linhas. Para limitar o número de linhas exibidas no painel de resultados, limpe a caixa de entrada Mostrar todas as linhas e digite um número no campo Número de linhas a exibir. 4. Para exibir todas os dados em cada coluna de um procedimento armazenado no painel de resultados, selecione a caixa de entrada Mostrar todos os dados em cada coluna. Para limitar a largura da coluna exibida no painel de resultados, limpe a caixa de entrada Mostrar todos os dados em cada coluna e digite um número (representando o número de caracteres) no campo Largura máxima da coluna. Os dados são truncados para se adequarem à largura máxima da coluna especificada quando ela é exibida no painel de resultados. 5. Clique em OK para aplicar suas alterações. ------------------------------------------------------------------------ 25.5 Eliminando Procedimentos de um Banco de Dados DB2 no Windows NT Em versões anteriores do Construtor de Procedimento Armazenado, o recurso DROP PROCEDURE não funcionava corretamente ao eliminar procedimentos de um banco de dados do DB2 executando nos sistemas Windows NT. No FixPak 7, o Construtor de Procedimento Armazenado elimina corretamente procedimentos do banco de dados do DB2 executando em sistemas Windows NT. ------------------------------------------------------------------------ Assistentes ------------------------------------------------------------------------ 26.1 Definindo o Tamanho Estendido no Assistente para Criar Banco de Dados Utilizando o Assistente para 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. ------------------------------------------------------------------------ 26.2 Assistente para Ajuda do MQSeries 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 a partir do Construtor de Procedimento Armazenado ou do Data Warehouse Center. Os requisitos para esse assistente são: * MQSeries versão 5.2 * MQSeries AMI (Application Messaging Interface) * Funções do DB2 MQSeries Para obter detalhes sobre esses requisitos, consulte a seção 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 ------------------------------------------------------------------------ 26.3 Assistente para Ajuda do OLE DB 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 a partir do Construtor de Procedimento Armazenado ou do Data Warehouse Center. Os requisitos para esse assistente são: * Um provedor OLE DB (tal como Oracle, Microsoft SQL Server) * Funções de suporte OLE DB Para obter 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 do Inteligência de Negócios o 27.1 Tutorial Revisado do Inteligência de Negócios * Apresentação do DB2 Universal Database * Data Warehouse Center Guia de Administração o 29.1 Atualização Disponível o 29.2 Melhorias do Servidor de Armazenamento o 29.3 Utilizando o Agente do OS/390 para Executar um Trillium Batch System JCL o 29.4 Dois Novos Programas de Amostra no Data Warehouse Center o 29.5 Managing ETI.Extract(R) Conversion Programs com o DB2 Warehouse Manager Atualizada o 29.6 Importando e Exportando Metadados Utilizando a CWMI (Common Warehouse Metadata Interchange) + 29.6.1 Introdução + 29.6.2 Importando Metadados + 29.6.3 Atualizando os Metadados Após Executar o Utilitário de Importação + 29.6.4 Exportando Metadados o 29.7 Utilitário de Importação/Exportação de Metadados da Linguagem de Marcação + 29.7.1 Definições de Chaves + 29.7.2 Planejamentos de Etapas e Processos o 29.8 Informações da Etapa SAP + 29.8.1 Possibilidade de Criar Tabela Logicamente Inconsistente o 29.9 Informações do Conector SAP + 29.9.1 Restrições à Instalação do Conector SAP + 29.9.2 Desempenho de GetDetail BAPI o 29.10 Informações do Conector Web + 29.10.1 Versões Suportadas do WebSphere Site Analyzer * DB2 OLAP Starter Kit o 30.1 Web Site do OLAP Server o 30.2 Níveis de Serviços do Sistema Operacional Suportados o 30.3 Concluindo a Configuração do DB2 OLAP Starter Kit no UNIX o 30.4 Configuração Adicional para o Solaris Operating Environment o 30.5 Configuração Adicional para Todos os Sistemas Operacionais o 30.6 Configurando o ODBC para o OLAP Starter Kit + 30.6.1 Configurando Origens de Dados em Sistemas UNIX + 30.6.1.1 Configurando as Variáveis de Ambiente ODBC + 30.6.1.2 Editando o Arquivo odbc.ini + 30.6.1.3 Incluindo uma Origem de Dados em um Arquivo odbc.ini + 30.6.1.4 Exemplo de Definições ODBC para DB2 + 30.6.1.5 Exemplo de Definições ODBC para Oracle + 30.6.2 Configurando o OLAP Metadata Catalog em Sistemas UNIX + 30.6.3 Configurando as Origens de Dados em Sistemas Windows + 30.6.4 Configurando o OLAP Metadata Catalog em Sistemas Windows + 30.6.5 Após Configurar uma Origem de Dados o 30.7 Efetuando Login no OLAP Starter Kit Desktop + 30.7.1 Exemplo de Login do Starter Kit o 30.8 Criando e Configurando Manualmente os Bancos de Dados de Amostra para OLAP Starter Kit o 30.9 Migrando Aplicativos para OLAP Starter Kit Versão 7.2 o 30.10 Problemas e Limitações Conhecidos o 30.11 Arquivos EQD do Complemento da Planilha OLAP Ausente * Guia de Administração do Information Catalog Manager o 31.1 Utilitário de Inicialização do Information Catalog Manager + 31.1.1 + 31.1.2 Questões de Licenciamento + 31.1.3 Questões de Instalação o 31.2 Melhorias para o Information Catalog Manager o 31.3 Incompatibilidade entre o Information Catalog Manager e o Sybase no Ambiente Windows o 31.4 Acessando os DB2 Information Catalogs Versão 5 com o DB2 Information Catalog Manager Versão 7 o 31.5 Configurando um Catálogo de Informações o 31.6 Trocando Metadados com Outros Produtos o 31.7 Trocando Metadados Utilizando o Comando flgnxoln o 31.8 Trocando Metadados Utilizando o Comando MDISDGC o 31.9 Chamando Programas * Guia e Referência de Programação do Information Catalog Manager o 32.1 Códigos de Razão do Information Catalog Manager * Guia do Usuário do Information Catalog Manager * Information Catalog Manager: Mensagens On-line o 34.1 Correções nas Mensagens FLG + 34.1.1 Mensagem FLG0260E + 34.1.2 Mensagem FLG0051E + 34.1.3 Mensagem FLG0003E + 34.1.4 Mensagem FLG0372E + 34.1.5 Mensagem FLG0615E * Information Catalog Manager: Ajuda On-line o 35.1 Information Catalog Manager para a Web * DB2 Warehouse Manager - Guia de Instalação o 36.1 Atualização Disponível do DB2 Warehouse Manager - Guia de Instalação o 36.2 Requisitos de Software para Transformadores do Armazém o 36.3 Conector para SAP R/3 + 36.3.1 Pré-requisitos de Instalação o 36.4 Conector para a Web + 36.4.1 Pré-requisitos de Instalação o 36.5 Considerações Pós-instalação para o Agente iSeries o 36.6 Antes de Utilizar Transformadores com o Agente de Armazém do iSeries * Query Patroller - Guia de Administração o 37.1 O DB2 Query Patroller Client É um Componente Separado o 37.2 Alterando o Status do Nó o 37.3 Migrando da Versão 6 do DB2 Query Patroller Utilizando dqpmigrate o 37.4 Ativando o Query Management o 37.5 Localização da Área de Tabela para Tabelas de Controle o 37.6 Novos Parâmetros para o Comando dqpstart o 37.7 Novo Parâmetro para o Comando iwm_cmd o 37.8 Nova Variável de Registro: DQP_RECOVERY_INTERVAL o 37.9 Iniciando o Query Administrator o 37.10 Administração do Usuário o 37.11 Administração da Origem de Dados o 37.12 Criando uma Fila de Jobs o 37.13 Tabela de Contabilização do Job o 37.14 Utilizando a Interface da Linha de Comandos o 37.15 Notas do Query Enabler o 37.16 O Rastreador do DB2 Query Patroller pode Retornar uma Página de Coluna em Branco o 37.17 Informações Adicionais para a Ferramenta da GUI do Tracker do DB2 Query Patroller o 37.18 Query Patroller e Ferramentas de Réplica o 37.19 Melhorando o Desempenho do Query Patroller o 37.20 O Privilégio EXECUTE para Usuários do Query Patroller Criados na Versão 6 não está Implementado o 37.21 Restrições do Query Patroller o 37.22 Apêndice B. Resolução de Problemas em Clientes DB2 Query Patroller ------------------------------------------------------------------------ Tutorial do Inteligência de Negócios ------------------------------------------------------------------------ 27.1 Tutorial Revisado do Inteligência de Negócios O FixPak 2 inclui um Tutorial do Inteligência de Negócios e um banco de dados de amostra do Data Warehouse Center revisados que corrigem vários problemas existentes na Versão 7.1. Para aplicar o banco de dados de amostra revisado do Data Warehouse Center, 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 utilizando a barra de lançamento Primeiros Passos. Clique em Iniciar e selecione Programas --> IBM DB2 --> Primeiros Passos. Se você tiver instalado bancos de dados de amostra anteriormente, elimine os bancos de dados de amostra DWCTBC, TBC_MD e TBC. Se você 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 Comandos do DB2, clique em Iniciar e selecione Programas --> IBM DB2 --> Janela de Comandos. 2. Na Janela de Comandos 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 Comandos do DB2. 4. Crie um novo banco de dados de amostra utilizando a barra de lançamento Primeiros Passos. Clique em Iniciar e selecione Programas --> IBM DB2 --> Primeiros Passos. ------------------------------------------------------------------------ Apresentação do DB2 Universal Database 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 da Web para exibir corretamente a Apresentação no OS/2. Consulte a ajuda do navegador da Web para obter informações sobre o ajuste do tamanho da fonte. Para exibir a Apresentação corretamente (SBCS somente), é recomendado que você utilize 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 3.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. Na 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. Esse não é o caso. Ela afirma também que: O tamanho dos arquivos de log aumentou de 4 GB para 32 GB. Essa sentença deveria ser: O espaço total do log ativo aumentou de 4 GB para 32 GB. A seção que descreve o DB2 Data Links Manager 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. Essa 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. ------------------------------------------------------------------------ Data Warehouse Center Guia de Administração ------------------------------------------------------------------------ 29.1 Atualização Disponível O Data Warehouse Center Guia de Administração foi atualizado como parte do FixPak 4. O PDF mais recente está disponível para download on-line em http://www.ibm.com/software/data/db2/udb/winos2unix/support. As informações nessas notas são complementares à referência atualizada. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis no endereço http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. ------------------------------------------------------------------------ 29.2 Melhorias do Servidor de Armazenamento As seguintes melhorias foram feitas no servidor de armazenamento do FixPak 5: Atualizando parâmetros de configuração O servidor não mais atualizará parâmetros de configuração crítica, tais como nomes de serviço para uma cadeia vazia. Mensagem DWC7906 atualizada A mensagem DWC7906 agora contém nomes de etapas predecessoras quando reportando problemas de dependência. As seguintes melhorias foram feitas no servidor de armazenamento do FixPak 4: Erro no encerramento do agente (rc = 7170), rc secundário = 6106. Esse erro ocorreu quando o agente foi encerrado antes do servidor enviar um pedido de encerramento. Esse erro foi relatado desnecessariamente e não será mais relatado. Mensagem do sistema e comentário gravados no arquivo de log Quando um programa definido pelo usuário tiver terminado a execução, a Mensagem do Sistema e o Comentário serão gravados no arquivo de log do armazém. Agora, essas mensagens são visíveis na janela de exibição Trabalho em Andamento. A consolidação incremental funciona corretamente agora Se ocorrer um erro quando uma etapa estiver ocupando um banco de dados de destino e o valor da consolidação Incremental for maior que 0, todos os resultados que tiverem sido consolidados antes do erro aparecerão no banco de dados de destino. Antes do FixPak 4, resultados parciais eram excluídos. Impossível executar o servidor de armazenamento depois de alterar o erro de nível de rastreio corrigido O servidor de armazenamento recupera o nome do diretório de registro de log da variável de ambiente de sistema, VWS_LOGGING. Se VWS_LOGGING estiver faltando ou se apontar para um nome de diretório inválido, a variável de ambiente de sistema TEMP será utilizada no lugar. Se TEMP estiver faltando ou se apontar para um nome de diretório inválido, os arquivos de rastreio do logger são gravados em c:\. Isso corrige um erro em versões anteriores ao FixPak 4 que era causado pela recuperação de um nome de diretório de registro inválido do registro. Suporte adicional para comandos de consolidação em procedimentos armazenados O servidor de armazenamento envia um comando de consolidação para o agente depois que os procedimentos armazenados definidos pelo usuário foram executados. Conteúdo de Amostra aperfeiçoado O servidor de armazenamento não tem mais que aguardar uma mensagem de encerramento do agente para que o Conteúdo de Amostra seja executado com mais eficiência. O tamanho dos arquivos de log de rastreio podem ser controlados agora O tamanho de um arquivo de log de rastreio pode ser controlado utilizando a nova variável de ambiente do sistema, VWS_SERVER_LOG_MAX. Se você definir o valor de VWS_SERVER_LOG_MAX para maior que 0, o servidor de armazenamento parará de aumentar o arquivo de log quando atingir um tamanho aproximadamente igual ao número de bytes indicado pelo valor de VWS_SERVER_LOG_MAX. Quando o arquivo de log atinge o tamanho máximo, as entradas de log de rastreio mais recentes são retidas e as mais antigas são sobrepostas. Ao executar o rastreio extensivo, VWS_SERVER_LOG_MAX=150000000 (150 M) é um tamanho razoável. ------------------------------------------------------------------------ 29.3 Utilizando o Agente do OS/390 para Executar um Trillium Batch System JCL O agente do OS/390 agora suporta o programa definido pelo usuário Trillium Batch System que é criado pelo bloco de notas Importar Metadados do Data Warehouse. Anteriormente, para executar um arquivo Trillium Batch System JCL, você tinha que utilizar o agente do Windows, AIX ou Solaris Operating Environment para executar o JCL remotamente. Com essa atualização, você pode iniciar o JCL com o agente OS/390. Quando você criar a etapa de programa definido pelo usuário Trillium Batch System utilizando o bloco de notas Importar Metadados para o Trillium Batch System, você deve selecionar Host remoto como sua conexão ao agente OS/390, mesmo quando o JCL estiver no mesmo sistema que o agente. Todos os parâmetros para a conexão de Host remoto host devem ser digitados. Depois que você criar a etapa do programa definido pelo usuário Trillium Batch System, utilize o bloco de notas Propriedades do Trillium Batch System para mudar o site do agente para o site do agente do OS/390 que você deseja utilizar. Se o nome do arquivo JCL ou do arquivo de erros de saída contiver quaisquer espaços em branco ou parênteses, você deve colocá-lo entre aspas quando inseri-lo nos campos de arquivo de erros Script, JCL ou Saída. ------------------------------------------------------------------------ 29.4 Dois Novos Programas de Amostra no Data Warehouse Center Dois novos programas de amostra estão incluídos com o Data Warehouse Center: EEE_Load e File_Wait. Você pode utilizar o programa EEE_Load para criar etapas para executar o programa autocarregador DB2 UDB EEE em seus processos de armazenamento. Utilize o programa File_Wait para criar etapas que aguardarão por um arquivo, em seguida execute a próxima etapa em seu processo, quando o arquivo tornar-se disponível. Para obter mais informações sobre esses programas, consulte o arquivo README.UDP que está localizado no diretório ..\SQLLIB\TEMPLATES\SAMPLES do sistema no qual o servidor do Data Warehouse Center está instalado. ------------------------------------------------------------------------ 29.5 Managing ETI.Extract(R) Conversion Programs com o DB2 Warehouse Manager Atualizada A publicação Managing ETI.Extract(R) Conversion Programs com o DB2 Warehouse Manager foi atualizada e seu download pode ser efetuado on-line no endereço http://www.ibm.com/software/data/db2/udb/winos2unix/support. ------------------------------------------------------------------------ 29.6 Importando e Exportando Metadados Utilizando a CWMI (Common Warehouse Metadata Interchange) 29.6.1 Introdução Além do suporte existente para arquivos de linguagem de marcação, o Data Warehouse Center pode agora importar e exportar metadados para e de arquivos XML que estão em conformidade com o padrão CWM (Common Warehouse Metamodel). A importação e a exportação desses arquivos XML em conformidade com o CWM é referida como CWMI (Common Warehouse Metadata Interchange). Você pode importar e exportar metadados a partir dos seguintes objetos do Data Warehouse Center: * Origens de Armazenamento * Destinos de Armazenamento * Áreas de assunto, incluindo relações de processos, origens, destinos, etapas e cascatas. * Programas definidos pelo usuário O utilitário de importação e exportação CWMI não suporta atualmente determinados tipos de metadados, incluindo: planejamentos, esquemas de armazenamento, usuários e grupos. O Data Warehouse Center 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 na qual 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. 29.6.2 Importando Metadados Você pode importar metadados a partir do Data Warehouse Center 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 Data Warehouse Center. Para obter informações adicionais, consulte a seção "Atualizando a segurança após a importação" nestas Notas sobre o Release. Se você estiver importando metadados sobre uma etapa, vários arquivos poderão estar associados à etapa. Os metadados sobre a etapa são armazenados em um arquivo XML, mas às vezes uma etapa tem dados associados armazenados como BLOBs. Os metadados BLOB têm o mesmo nome de arquivo do arquivo XML, mas ficam 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 Data Warehouse Center poder atualizar seus metadados. Se ela estiver no modo de teste ou de produção, rebaixe a etapa para o modo de desenvolvimento antes de importar os metadados: 1. Efetue logon para o Data Warehouse Center. 2. 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 metadados. Importando dados a partir do Data Warehouse Center Você pode importar metadados a partir do Data Warehouse Center: 1. Efetue logon para o Data Warehouse Center. 2. No painel esquerdo, clique em Warehouse. 3. Clique em Selecionado --> Importar metadados --> Arquivo de Intercâmbio... 4. Na janela Importar metadados, especifique o nome do arquivo que contém os metadados que você deseja importar. Você pode digitar o nome do arquivo ou procurar o arquivo. o Se você 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 você deseja importar metadados no formato XML, ou o arquivo não será processado corretamente. 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 você deseja importar. Nota: O arquivo deve ter uma extensão .xml. d. Dê um clique em OK. 5. Na janela Importar metadados, clique em OK para finalizar. A janela Progresso é exibida enquanto o Data Warehouse Center importa o arquivo. Utilizando a linha de comandos para importar metadados Você também pode usar a linha de comandos para importar metadados. 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 é requerido. dwcControlDB O nome do banco de dados de controle do armazém para o qual você deseja importar os metadados. Esse parâmetro é requerido. dwcUserId O ID do usuário utilizado para se conectar ao banco de dados de controle do armazém. Esse parâmetro é obrigatório. dwcPW A senha de usuário utilizada para se conectar ao banco de dados de controle do armazém. Esse parâmetro é requerido. [PREFIX=DWCtbschema] O nome do esquema de banco de dados para as tabelas de sistema do Data Warehouse Center. Se nenhum valor for especificado para PREFIX=, o nome do esquema padrão será IWH. Esse parâmetro é opcional. 29.6.3 Atualizando os Metadados 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 Data Warehouse Center 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 a publicação Data Warehouse Center - Guia de Administração, Capítulo 12, "Exportando e importando metadados do Data Warehouse Center." Ao importar metadados, 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 Data Warehouse Center. 2. Clique com o botão direito do mouse na pasta que contém o objeto que você deseja alterar. 3. Clique em Propriedades e, em seguida, na guia Segurança. 4. Remova grupos da lista Grupos de armazenamento selecionados ou inclua grupos da lista Grupos de armazenamento disponíveis. 5. Dê um clique em OK. 29.6.4 Exportando Metadados Você pode exportar metadados a partir do Data Warehouse Center ou da linha de comandos. Algumas etapas têm metadados que estão armazenados como BLOB. Um metadado BLOB é exportado para um arquivo separado 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 Data Warehouse Center Você pode exportar metadados a partir do Data Warehouse Center: 1. Efetue logon para o Data Warehouse Center. 2. No painel esquerdo, clique em Warehouse. 3. Clique em Selecionado --> Exportar metadados--> Arquivo de intercâmbio. 4. Na janela Exportar metadados, especifique o nome do arquivo que conterá os metadados exportados. Você pode digitar o nome do arquivo ou procurar o arquivo: o Se você souber o caminho e o nome completos do arquivo 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 metadados 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 você deseja que contenha os metadados exportados. Nota: Qualquer arquivo existente selecionado será sobreposto pelo metadado exportado. d. Dê um clique em OK. 5. Quando a janela Exportar metadados exibir o nome do arquivo correto, clique no objeto na lista Objetos disponíveis cujos metadados você 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 você deseja exportar constarem na lista Objetos selecionados. 7. Clique em OK. O Data Warehouse Center cria um arquivo de entrada, que contém informações sobre os objetos do Data Warehouse Center selecionados para exportação e, então, exporta os metadados sobre esses objetos. A janela Progresso é exibida enquanto o Data Warehouse Center está exportando os metadados. Utilizando a linha de comandos para exportar metadados Antes de exportar metadados 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 você deseja exportar. Quando você exporta a partir do Data Warehouse Center, 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 Data Warehouse Center. Verifique se você criou o arquivo em um diretório de leitura/gravação. Quando você executar o utilitário de exportação, o Data Warehouse Center 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 de armazenamento que deseja exportar. O Data Warehouse Center inclui automaticamente as tabelas e colunas que estão associadas a essas origens e destinos. Na seção (User Defined Programs), liste todos os grupos de programas que deseja exportar. Para exportar metadados, 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 você deseja exportar. Esse parâmetro é requerido. dwcControlDB O nome do banco de dados de controle do armazém a partir do qual você deseja exportar. Esse parâmetro é requerido. dwcUserID O ID do usuário utilizado para se conectar ao banco de dados de controle do armazém. Esse parâmetro é requerido. dwcPW A senha utilizada para se conectar ao banco de dados de controle do armazém. Esse parâmetro é requerido. [PREFIX=DWCtbschema] O nome do esquema de banco de dados para as tabelas de sistema do Data Warehouse Center. Se nenhum valor for especificado para PREFIX=, o valor padrão será IWH. Esse parâmetro é opcional. ------------------------------------------------------------------------ 29.7 Utilitário de Importação/Exportação de Metadados da Linguagem de Marcação 29.7.1 Definições de Chaves As chaves principal e externa definidas em arquivos de linguagem de marcação serão ignoradas se forem as mesmas daquelas já definidas no banco de dados de controle. Ocorrerá um erro se as chaves forem diferentes das que já foram definidas. 29.7.2 Planejamentos de Etapas e Processos Os planejamentos de etapas e processos não são mais excluídos pelo utilitário de importação. Os planejamentos definidos em um arquivo de marcação são incluídos na lista atual de planejamentos. Isso pode fazer com que apareçam planejamentos duplicados. Os planejamentos duplicados devem ser excluídos pelo usuário antes da promoção de etapas para o modo de produção. ------------------------------------------------------------------------ 29.8 Informações da Etapa SAP 29.8.1 Possibilidade de Criar Tabela Logicamente Inconsistente Se todas as condições a seguir foram atendidas, a tabela de destino resultante pode não ser logicamente consistente. 1. O BO tem parâmetros de exportação GetList e GetDetail e você mapeou todos os campos chave. 2. Na página Parâmetros de Saída do bloco de notas propriedades da etapa SAP, selecione um parâmetro de exportação GetList cujo nome de parâmetro SAP seja diferente do utilizado para o mapeamento do parâmetro. Nota: O nome do parâmetro SAP refere-se à parte do parâmetro que aparece antes do ponto no nome completo. Por exemplo, para o parâmetro DocList.DOCNUMBER, "DocList" é o nome do parâmetro SAP. 3. Na página Parâmetros de Saída do bloco de notas Propriedades da etapa SAP, selecione o parâmetro de exportação GetDetail. Exemplo: DocumentNumber é um campo chave. DocList.DOCNUMBER e DocNumberSelection.OPTION são parâmetros de exportação GetList. DocData.USERNAME é um parâmetro de exportação GetDetail. Você mapeia DocumentNumber para DocList.DOCNUMBER. (Condição 1) Você seleciona DocNumberSelection.OPTION como um parâmetro de saída. (Condição 2, já que DocNumberSelection e DocList são nomes de parâmetros SAP diferentes.) Você seleciona DocData.USERNAME como um parâmetro de saída. (Condição 3, já que é um parâmetro de exportação GetDetail.) Essas condições resultam em uma tabela de destino cujas origens de colunas são parâmetros GetList e GetDetail. A consistência lógica da relação entre as colunas, no entanto, não está assegurada. ------------------------------------------------------------------------ 29.9 Informações do Conector SAP 29.9.1 Restrições à Instalação do Conector SAP O Conector SAP suporta apenas instalações no idioma inglês do sistema SAP R/3. 29.9.2 Desempenho de GetDetail BAPI Se GetDetail tiver um grande número de parâmetros de entrada, o desempenho de GetDetail BAPI será lento. ------------------------------------------------------------------------ 29.10 Informações do Conector Web 29.10.1 Versões Suportadas do WebSphere Site Analyzer O Web Connector suporta somente o WebSphere Site Analyzer Versão 4.0. Atualmente ele não suporta a Versão 4.1. ------------------------------------------------------------------------ DB2 OLAP Starter Kit O IBM DB2 OLAP Starter Kit 7.2 inclui suporte aos RDBMSs (Sistemas de Gerenciamento do Banco de Dados Relacionais) 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 a seção 30.10, Problemas e Limitações Conhecidos 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. ------------------------------------------------------------------------ 30.1 Web Site 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 Web site do DB2 OLAP Server: http://www.ibm.com/software/data/db2/db2olap/library.html ------------------------------------------------------------------------ 30.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. ------------------------------------------------------------------------ 30.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 do produto são colocados pelo programa de instalação em um diretório do sistema: (para AIX: /usr/lpp/db2_07_01; para Solaris Operating Environment: /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 Operating Environment, efetue logon utilizando o ID da instância, altere para o diretório sqllib/is e digite o seguinte: 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 ------------------------------------------------------------------------ 30.4 Configuração Adicional para o Solaris Operating Environment No Solaris Operating Environment, você poderá encontrar erros se o OLAP Starter Kit não estiver ligado ao driver ODBC apropriado. Para evitar esses erros, execute o comando a seguir, que cria um link em $ARBORPATH/bin para apontar para o driver OLAP sqllib/lib/libdb2.so: ln -s $HOME/sqllib/lib/libdb2.so libodbcinst.so ------------------------------------------------------------------------ 30.5 Configuração Adicional para Todos os Sistemas Operacionais Iniciando no FixPak 3 do DB2 Universal Database Versão 7, o DB2 OLAP Starter Kit inclui funções que requerem Java. Depois de instalar o FixPak 3 ou posterior, você poderá ver a seguinte mensagem de erro no console do OLAP Server: Impossível encontrar [diretório] [/export/home/arbor7sk/sqllib/essbase/java/], obrigatório para carregar a JVM. Para corrigir esse erro, execute as seguintes etapas: 1. Efetue logon como o proprietário da instância do DB2. 2. Procure o diretório no qual o DB2 OLAP Starter Kit foi instalado. O nome padrão desse diretório é essbase. 3. No diretório essbase, crie um subdiretório chamado java. 4. No subdiretório java, crie os seguintes arquivos vazios: o essbase.jar o essdefs.dtd o jaxp.jar o parser.jar o udf.policy ------------------------------------------------------------------------ 30.6 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 ODBC (Open Database Connectivity) do OLAP Integration Server para a origem de dados relacionais e para o OLAP Metadata Catalog. * Em sistemas Windows, esse 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. Informações adicionais sobre aplicativos que instalam drives ODBC ou o ODBC Administrator estão disponíveis no seguinte Web site: http://support.microsoft.com/. 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 sistemas 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. 30.6.1 Configurando Origens de Dados em Sistemas UNIX Nos sistemas 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 a origem de dados ou se você alterar o driver ou a origem de dados. Se você for utilizar o DB2 OLAP Starter Kit nos sistemas AIX ou Solaris para acessar origens Merant ODBC e bancos de dados DB2, altere o valor do atributo "Driver=" na seção de origem do DB2 do arquivo .odbc.ini como a seguir: 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 Description=DB2 ODBC Database Banco de Dados=SAMPLE Solaris Operating Environment: O nome do Driver é /opt/IBMdb2/V7.1/lib/libdb2_36.so Amostra de entrada de origem ODBC para Solaris Operating Environment: [SAMPLE] Driver=/opt/IBMdb2/V7.1/lib/libdb2_36.so Description=DB2 ODBC Database Banco de Dados=SAMPLE 30.6.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 login para o nome do usuário utilizado para executar o OLAP Starter Kit. 30.6.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. 30.6.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. 30.6.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 30.6.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 Operating Environment), utilizando um driver ODBC MERANT Versão 3.6. Nesse exemplo, o ID de Logon 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 30.6.2 Configurando o OLAP Metadata Catalog em Sistemas UNIX Configurar um OLAP Metadata Catalog nos sistemas 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 30.6.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 Operating Environment), utilizando um driver ODBC nativo: [ODBC Data Sources] ocd6a5a=db2 v6 ... [ocd6a5a] Driver=/home/db2instl/sqllib/lib/db2.0 Description=db2 30.6.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 a identificar as origens de dados disponíveis para sua seleção, quando você se conectar ao 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 você deseja alterar. 3. Clique em OK duas vezes para sair. 30.6.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 ajuda a identificar o catálogo que você 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 você deseja alterar. 3. Clique em OK duas vezes para sair. 30.6.5 Após Configurar uma Origem de Dados Após configurar a origem de dados relacional e o OLAP Metadata Catalog, você poderá conectar-se a eles a partir 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 você está utilizando. Para obter mais informações sobre os problemas e as soluções da conexão ODBC, consulte a publicação OLAP Integration Server System Administrator's Guide. ------------------------------------------------------------------------ 30.7 Efetuando Login no 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 você 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". * OLAP Metadata Catalog: Quando se conectar com o OLAP Integration Server, você também deverá especificar um Catálogo de metadados. O OLAP Integration Server armazena informações sobre os modelos e metaoutlines OLAP que você criou em um banco de dados relacional conhecido como Metadata Catalog. 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 origens de dados ODBC conhecidos do OLAP Integration Server. Escolha um banco de dados ODBC que contém as tabelas de catálogo dos metadados. * Nome de Usuário e Senha: O OLAP Integration Server será conectado com o Catálogo de metadados utilizando o Nome de usuário e a senha que você especificou nesse 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 metadados 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 utilizando o nome de usuário e a senha que você especificou nesse 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. 30.7.1 Exemplo de Login do Starter Kit 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 Servidor será localhost, o OLAP Metadata Catalog será TBC_MD, o Nome do Usuário será db2admin e a Senha será password * Para o DB2 OLAP Server: o Servidor será localhost e o Nome do Usuário será db2admin ------------------------------------------------------------------------ 30.8 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 metadados 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 origens de dados ODBC) a partir da lista. c. Selecione a guia System DSM. d. Clique em Incluir. A janela Criar Nova Origem de Dados é aberta. e. Selecione IBM DB2 ODBC DRIVER na lista. f. Clique em Encerrar. A janela Driver ODBC IBM D2 - Incluir é aberta. g. Digite o nome da origem de dados (OLAP_CAT) no campo Nome da origem de dados. h. Digite o nome do alias no campo Alias do banco de dados ou clique na seta voltada para baixo e selecione OLAP_CAT. i. Clique em OK. j. Repita essas etapas para os bancos de dados TBC_MD e TBC. ------------------------------------------------------------------------ 30.9 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. ------------------------------------------------------------------------ 30.10 Problemas e Limitações Conhecidos 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 maneira 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 essa 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, 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 de 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 possa funcionar em algumas situações. ------------------------------------------------------------------------ 30.11 Arquivos EQD do Complemento da Planilha OLAP Ausente No DB2 OLAP Starter Kit, o complemento da planilha tem um componente chamado EQD (Query Designer). O menu da ajuda on-line 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 2 do OLAP Spreadsheet Add-in User's Guide para Excel e do OLAP Spreadsheet Add-in User's Guidepara 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. ------------------------------------------------------------------------ Guia de Administração do Information Catalog Manager ------------------------------------------------------------------------ 31.1 Utilitário de Inicialização do Information Catalog Manager 31.1.1 Com o utilitário Initialize ICM (Information Catalog Manager), 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 nesse arquivo tabopt.file. O utilitário ICM lê esse arquivo e depois o anexa na instrução CREATE TABLE. Tabela 9. 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 e ACCOUNT_IDX 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. 31.1.2 Questões de Licenciamento Se você receber a seguinte mensagem: FLG0083E: Você não tem uma licença válida para o utilitário de Inicialização do Information Catalog Manager IBM. Entre em contato com seu revendedor local de software 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 Information Catalog Manager, que inclui o utilitário Inicialização do Catálogo de Informações. 31.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 Information Catalog Manager (utilizando 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, a partir 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 Information Catalog Manager 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, da Publicação DB2 Warehouse Manager Installation Guide. ------------------------------------------------------------------------ 31.2 Melhorias para o Information Catalog Manager O Information Catalog Manager inclui as seguintes melhorias: O ICM suporta agora a importação de informações do filtro ETI para o banco de dados, tabela ou coluna de origem ou de destino. No Registro no Armazém, um novo tipo de objeto ICM de Dados de Conversão ETI é utilizado para armazenar as informações do filtro. Esses objetos são então ligados ao banco de dados, tabela ou coluna de origem ou de destino para o qual tenham sido definidos. O ICM tem a capacidade de ligar um determinado banco de dados, tabela ou coluna de origem ou de destino com vários objetos de Dados de Conversão ETI como resultado do registro de diferentes Conversões ETI no mesmo catálogo ICM. A mesma capacidade aplica-se a Transformações em que uma determinada coluna de destino pode agora conter várias Transformações como resultado do registro de diferentes Conversões ETI no mesmo catálogo ICM. Para isso, o ICM fez alterações na chave de Transformação ao importar um mapeamento ETI*Extract. Para ativar esses recursos, utilize o ETI*Extract 4.2.1 com o MetaScheduler 4.1.0 para registrar-se no Gerenciador de Data Warehouse. Mais informações sobre como ativar esses recursos estão disponíveis na seção Dicas e Sugestões do DB2 Warehouse Manager em http://www.ibm.com/software/data/db2/datawarehouse/support.html. Procure as palavras-chave "ETI" ou "Dados do Aplicativo". ------------------------------------------------------------------------ 31.3 Incompatibilidade entre o Information Catalog Manager e o Sybase no Ambiente Windows A instalação do ICM (Information Catalog Manager) 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 (país/região) 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 * Information Catalog Manager A remoção do parâmetro LC_ALL não afetará nada além do ICM. ------------------------------------------------------------------------ 31.4 Acessando os DB2 Information Catalogs Versão 5 com o DB2 Information Catalog Manager Versão 7 Os subcomponentes do DB2 Information Catalog Manager Versão 7, conforme configurado pelo processo de instalação do DB2 Versão 7, suportam o acesso aos catálogos de informações armazenados 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 DB2 Information Catalog Manager 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 DB2 Information Catalog Manager 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 desses 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 Information Catalog Manager e o DB2 Connect Versão 6 para o acesso aos dados do DB2 Versão 5. Para obter informações adicionais, consulte a publicação DB2 Connect - Guia do Usuário. Estas etapas constituem uma visão geral das etapas necessárias: a. No sistema do DB2 Versão 5, utilize o Processador da Linha de Comandos do DB2 para catalogar o banco de dados da Versão 5 a que o Information Catalog Manager deverá ter acesso. b. No sistema do DB2 Connect, utilize 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 Information Catalog Manager, utilize 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 a publicação DB2 Universal Database - Suplemento de Instalação e Configuração. 3. No armazém com o Information Catalog Manager, efetue a vinculação do pacote DB2 CLI a cada banco de dados que deverá ser acessado através do DB2 Connect. Os comandos do DB2 a seguir fornecem um exemplo da vinculação 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 em que userid é o ID do usuário do v5database, e password é a senha do ID do usuário. Ocorre um erro quando o db2cli.list efetuou uma ligação no banco de dados do DB2 Versão 5. Esse erro ocorre porque os LOBs (Large Objects) não são suportados nessa configuração. Ele não afetará o acesso do agente de armazenamento 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, é requerido para o acesso aos dados do DB2 Versão 5 através do DB2 Connect. Consulte o APAR número JR14507 desse FixPak. ------------------------------------------------------------------------ 31.5 Configurando um Catálogo de Informações A etapa 2 na primeira seção do Capítulo 1, "Configurando um Catálogo de Informações", 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 "Criando o Catálogo de Informações" para obter mais informações. ------------------------------------------------------------------------ 31.6 Trocando Metadados com Outros Produtos No capítulo 6, "Trocando metadados com outros produtos", na seção "Identificando Objetos OLAP para Publicação", há uma instrução no segundo parágrafo que diz: Quando se publicam os metadados 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 metadados 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". Essa instrução também aparece no Apêndice C, "Mapeamentos de Metadados", na seção "Mapeamentos de Metadados entre o Information Catalog Manager e o OLAP Server". ------------------------------------------------------------------------ 31.7 Trocando Metadados Utilizando o Comando flgnxoln No capítulo 6, "Trocando Metadados", existe uma seção chamada "Identificando Objetos OLAP para Publicação". No final dessa seção há um exemplo de como usar o comando flgnxoln para publicar o metadado 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. ------------------------------------------------------------------------ 31.8 Trocando Metadados Utilizando o Comando MDISDGC Capítulo 6. Exchanging metadata with other products: "Convertendo um arquivo de linguagem de tags em metadados compatíveis com MDIS", 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 metadados 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. ------------------------------------------------------------------------ 31.9 Chamando Programas Alguns exemplos no Guia de Administração do Catálogo de Informações 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, "Tipos de Objetos do Information Catalog Manager Predefinidos", contém um exemplo na seção chamada "Inicializando o Catálogo de Informações com os Tipos de Objetos Predefinidos". Se você usar esse exemplo nessa seção, receberá um erro ao executá-lo a partir do prompt do DOS. O exemplo seguinte está correto: "X:Arquivos de Programa\SQLLIB\SAMPLES\SAMPDATA\DGWDEMO" /T userid password dgname ------------------------------------------------------------------------ Guia e Referência de Programação do Information Catalog Manager ------------------------------------------------------------------------ 32.1 Códigos de Razão do Information Catalog Manager 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. ------------------------------------------------------------------------ Guia 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 Centerantes que um catálogo de informações remoto seja registrado, através do Information Catalog Manager. 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 Information Catalog Manager. Essa informação está incorreta. Não é necessário encerrar o Centro de Controle antes de abrir o Information Catalog Manager. A mesma correção se aplica também à tarefa da ajuda on-line "Registrando um nó de servidor e o catálogo de informações remoto" e da ajuda on-line da janela Registrar Nó do Servidor e Catálogo de Informações. ------------------------------------------------------------------------ Information Catalog Manager: Mensagens On-line ------------------------------------------------------------------------ 34.1 Correções nas Mensagens FLG 34.1.1 Mensagem FLG0260E A segunda sentença da explicação da mensagem deveria ser: O erro causou um retrocesso do catálogo de informações, que falhou. O catálogo de informações não se encontra em condição estável, mas nenhuma alteração foi feita. 34.1.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 utilizando a função de importação. 34.1.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. 34.1.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. 34.1.5 Mensagem FLG0615E A segunda sentença da mensagem deveria ser: O Information Catalog Manager 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 On-line Janela do Catálogo de Informações: A ajuda on-line do item Abrir do menu Selecionado afirma incorretamente "Abre o objeto selecionado". Ele deveria afirmar "Abre a janela Definir Pesquisa". ------------------------------------------------------------------------ 35.1 Information Catalog Manager para a Web Quando for utilizado 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 on-line não explica que todas as pesquisas em um catálogo de informações do DB2 UDB para OS/390 fazem distinção entre 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 - Guia de Instalação ------------------------------------------------------------------------ 36.1 Atualização Disponível do DB2 Warehouse Manager - Guia de Instalação A publicação DB2 Warehouse Manager - Guia de Instalação foi atualizada e o .pdf mais recente está disponível para download on-line no endereço http://www.ibm.com/software/data/db2/udb/winos2unix/support. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através de serviço utilizando a PTF número U478862. As informações nessas notas são complementares à referência atualizada. ------------------------------------------------------------------------ 36.2 Requisitos de Software para Transformadores do Armazém O JDK (Java Developer's Kit) Versão 1.1.8 ou posterior deve ser instalado no banco de dados em que você planeja utilizar os transformadores do armazém. ------------------------------------------------------------------------ 36.3 Conector para SAP R/3 Ao 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. Nesse 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. 36.3.1 Pré-requisitos de Instalação Se for especificado um valor em um campo de destino em uma página de origem do SAP, defina o ambiente RFC_INI. Por exemplo, Set RFC_INI=c:\rfcapl.ini. Após definir essa variável, você deve reinicializar a máquina. ------------------------------------------------------------------------ 36.4 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, em que pid é o ID do processo do Windows para o agente. O arquivo de rastreio é criado no diretório \sqllib\logging. 36.4.1 Pré-requisitos de Instalação Instale o JRE (Java Run-time Environment) ou a JVM (Java Virtual Machine), versão 1.2.2 ou posterior e torne-o padrão. Para tornar 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, você poderá instalá-lo a partir do CD de instalação Data Warehouse Connectors. ------------------------------------------------------------------------ 36.5 Considerações Pós-instalação para o Agente iSeries No Capítulo 4, na seção "Instalando o Agente de Armazenamento do AS/400 (iSeries)", na subseção "Considerações Pós-instalação", altere o primeiro parágrafo para: O agente de armazém executa todas as funções da etapa em uma única unidade de trabalho. Antes da V4R5, o DB2 Universal Database para iSeries limitava o número de linhas que podiam ser inseridas em um único escopo de comprometimento para 4 milhões. Essa limitação foi aumentada para 500 milhões de linhas na V4R5. Se você estiver utilizando um sistema V4R4 (ou anterior) e tiver consultas que excedam esse tamanho, subdivida as consultas ou utilize os programas de FTP fornecidos com o armazém para mover dados. ------------------------------------------------------------------------ 36.6 Antes de Utilizar Transformadores com o Agente de Armazém do iSeries No Capítulo 4, remova a seção "Antes de Utilizar Transformadores com o Agente iSeries" e todas suas subseções. ------------------------------------------------------------------------ Query Patroller - Guia de Administração ------------------------------------------------------------------------ 37.1 O DB2 Query Patroller Client É um Componente Separado O DB2 Query Patroller Client é um componente separado que não faz parte do DB2 Administration Client. Isso significa que ele não foi instalado durante a instalação do DB2 Administration Client, conforme indicação do Query Patroller - Guia de Instalação. Ao invés disso, o Query Patroller Client deve ser instalado separadamente. A versão e o nível do Query Patroller Client e o Query Patroller Server devem ser os mesmos. ------------------------------------------------------------------------ 37.2 Alterando o Status do Nó A seguir, uma atualização da seção Administração do Nó do Query Patroller - Guia de Administração. Utilize o seguinte procedimento para alterar o status do nó: 1. Na página Administração do Nó, selecione um nó. 2. Clique em Exibir / Editar. A janela Informações Detalhadas do Nó será aberta. 3. Selecione o novo status no campo Status Solicitado. Nota: Status Solicitado é o único campo na janela Informações Detalhadas do Nó que pode ser mudado; todos os outros campos exibem valores que foram fornecidos por DB2 Query Patroller. 4. Clique em OK. A seguinte lista fornece informações para cada parâmetro de nó: ID do Nó Fornece o ID para o nó. Status do Nó Contém o status atual do nó: o Ativo indica que o nó está apto a executar jobs. o Inativo indica que o componente DB2 Query Patroller do nó está desligado. O nó não está disponível para DB2 Query Patroller. Para reativar o nó, utilize a conta de usuário administrativo iwm para emitir o comando dqpstart. o Efetuando Quiesce indica que o nó está em transição para o estado de quiesce. Jobs em execução serão concluídos, mas nenhum novo trabalho será planejado no nó. o Quiesce Efetuado indica que o nó está em quiesce. O nó está disponível para DB2 Query Patroller, mas nenhum novo job está sendo planejado no nó. Status Solicitado Indica que o status do nó pode ser alterado para: o Ativo indica que o nó será ativado. o Inativo indica que o nó ficará inativo. Jobs em execução serão concluídos e nenhum novo job será planejado. o Forçar indica que o nó ficará inativo imediatamente. Jobs em execução serão terminados imediatamente e nenhum novo job será planejado. o Quiesce Efetuado indica que o nó ficará em quiesce. Jobs em execução serão concluídos. Data/Hora do Último Status Indica a data e a hora em que o status do nó foi alterado pela última vez. Jobs Planejados Fornece o número de jobs planejados para executar mais o número de jobs em execução nesse nó. Utilização de CPU Fornece a utilização de CPU do nó como uma percentagem (0 - 100). Se a informação de utilização de CPU não estiver sendo colhida, o valor é -1. Disco Disponível Indica os bytes disponíveis no sistema de arquivos em que os resultados são criados. Se a utilização de disco não estiver sendo monitorada, o valor é -1. PID do Gerenciador de Nó Indica o ID de processo do processo gerenciador do nó. ------------------------------------------------------------------------ 37.3 Migrando da Versão 6 do DB2 Query Patroller Utilizando dqpmigrate O comando dqpmigrate deverá ser utilizado 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 no qual 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 ------------------------------------------------------------------------ 37.4 Ativando o Query Management No capítulo "Introdução" do "Ativando o Query Management", o texto deverá ser: Você deve ser o proprietário do banco de dados, ou deve ter a autoridade SYSADM, SYSCTRL ou SYSMAINT para definir os parâmetros de configuração do banco de dados. ------------------------------------------------------------------------ 37.5 Localização da Área de Tabela 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 espaço de tabelas 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. ------------------------------------------------------------------------ 37.6 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 nesse 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ó antes da entrada do nó ser eliminada do arquivo dqpnodes.cfg. A sintaxe é a seguinte: dqpstop nodenum node_num dropnode ------------------------------------------------------------------------ 37.7 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 quando existem alguns jobs sendo executados nesse nó ou sendo cancelados no momento. Os jobs que estavam no estado "Em Execução", serão enviados novamente 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. ------------------------------------------------------------------------ 37.8 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. ------------------------------------------------------------------------ 37.9 Iniciando o Query Administrator No capítulo "Utilizando o Query Administrator para Administrar o 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 utilizando 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. ------------------------------------------------------------------------ 37.10 Administração do Usuário Na seção "Administração do Usuário" do capítulo "Utilizando o Query Administrator para Administrar o 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. ------------------------------------------------------------------------ 37.11 Administração da Origem de Dados No Capítulo 3, Utilizando o Query Administrator para Administrar o DB2 Query Patroller, há algumas descrições novas e alteradas para os parâmetros da origem de dados. Custo estático é o custo estimado do DB2 para a consulta em timerons. Esse custo é armazenado na entrada de cada job. Você poderá vê-lo como o Custo Estimado ao utilizar o Monitor de Consultas para ver os detalhes de um job. Consulta com Custo Zero é a consulta com um custo estático, ou custo estimado, igual a zero. Nenhuma consulta, na verdade, tem um custo estimado igual a zero (mesmo as mais simples têm um custo de aproximadamente 5). Na verdade, isso ocorre se um job for enviado com a opção para não fazer análise de custo. Você só pode escolher essa opção se tiver configurado o perfil de usuário para permiti-la. Na maioria dos casos, você não terá seus perfis de usuários configurados dessa maneira. Mantenha essa opção para superusuários, como outros administradores, usuários especiais selecionados ou para você mesmo. Esses usuários poderão, então, executar qualquer consulta que quiserem. O sistema trata consultas desses usuários como de custo zero para que as consultas sejam tratadas como de alta prioridade. Custo de Tempo Zero, Curva de Custo de Tempo, Intervalo de Custo de Tempo e Custo de Tempo Mínimo não são mais utilizados. O Fator Custo é o multiplicador para converter o Custo Estático em timerons, não é o custo da tabela de contabilização. O custo da tabela de contabilização é igual ao Custo Estático multiplicado pelo Fator Custo. ------------------------------------------------------------------------ 37.12 Criando uma Fila de Jobs Na seção "Administração de Fila de Jobs" do capítulo "Utilizando o Query Administrator para Administrar o DB2 Query Patroller", a captura de tela nas etapas de "Criando uma Fila de Jobs" deverá ser exibida depois da segunda etapa. A janela Informações sobre nova Fila de Job é aberta quando você clica em Nova na página Administração de Fila de Jobs da ferramenta Query Administrator. As referências à página Fila de Jobs ou à guia Fila de Jobs deverão ficar como a página Administração de Fila de Jobs e a guia Fila de Jobs Administration, respectivamente. ------------------------------------------------------------------------ 37.13 Tabela de Contabilização do Job No Capítulo 11, Monitorando o Sistema do DB2 Query Patroller, a seção sobre Contabilização do Job descreve as colunas da tabela Contabilização do Job. O nome da tabela é IWM.IWM003_JOB_ACCT. ------------------------------------------------------------------------ 37.14 Utilizando a Interface da Linha de Comandos Para que um usuário com autoridade de Usuário no sistema DB2 Query Patroller envie 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 da área da tabela padrão. A criação das tabelas de resultados terá sucesso nesse caso porque os usuários têm a autoridade de criar tabelas na área da tabela padrão. ------------------------------------------------------------------------ 37.15 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. ------------------------------------------------------------------------ 37.16 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. ------------------------------------------------------------------------ 37.17 Informações Adicionais para a Ferramenta da GUI do Tracker do DB2 Query Patroller A tabela de contabilização é utilizada pela ferramenta Tracker quando utilizada para exibir ou analisar dados históricos do job. Para utilizar o Tracker, o administrador deve primeiro utilizar o Administrador de Consultas para alterar o Status da Contabilização no painel Administrador do Sistema para Gravar na Tabela. Em seguida, sempre que um job for concluído, informações extras são salvas em uma tabela de contabilização do job. Depois, o administrador deve efetuar logon no servidor do Query Patroller como usuário iwm e executar a ferramenta iwm_tracker (backend do Tracker). Essa ferramenta deve ser executada periodicamente quando a carga do sistema está baixa ou logo antes da ferramenta Tracker ser utilizada. Por fim, quando essas duas tarefas forem concluídas, você poderá executar a ferramenta da GUI do Tracker para exibir ou analisar os dados do job. Se o fator custo for igual a um, que é o padrão, então o custo exibido para cada job utilizando o Tracker será igual ao valor do custo exibido utilizando o Monitor de Consultas. Nos dois casos, o tempo está em timerons. No entanto, você pode querer utilizar outras unidades de valor. Suponhamos que você queira cobrar cada usuário pela utilização do sistema. Se, por exemplo, o custo for de um real para 10.000 timerons de trabalho, o fator custo a ser digitado pode ser 0,0001. Isso faz com que o Tracker converta, armazene e exiba o custo em reais de cada job. O Query Patroller Guia de Administração discute reais por megabytes, o que é incorreto e deve ser substituído por reais por timeron. ------------------------------------------------------------------------ 37.18 Query Patroller e Ferramentas de Réplica O Query Patroller Versão 7 interceptará as consultas das ferramentas de réplica (asnapply, asnccp, djra e analyze) e causará maufuncionamento a essas ferramentas. Uma alternativa é desativar o gerenciamento de consulta dinâmica, quando executar essas ferramentas. ------------------------------------------------------------------------ 37.19 Melhorando o Desempenho do Query Patroller O texto a seguir deve aparecer no final do Capítulo 6, Ajuste de Desempenho: Utilizando a Opção BIND, INSERT BUF para Melhorar o Desempenho do DB2 Query Patroller. Por padrão, o DB2 Query Patroller cria tabelas de resultados para armazenar os resultados das consultas gerenciadas por ele. Para aumentar o desempenho de inserções nessas tabelas de resultados, inclua a opção INSERT BUF ao efetuar vinculação de um dos arquivos de ligação do DB2 Query Patroller. Efetue vinculação dos arquivos de ligação do DB2 Query Patroller no banco de dados como a seguir: No diretório DB2_RUNTIME\bnd no Windows, ou no caminho DB2_RUNTIME/bnd no UNIX, digite os seguintes comandos: db2 connect to database user iwm using password db2 bind @db2qp.lst blocking all grant public db2 bind iwmsx001.bnd insert buf db2 bind @db2qp_sp.lst db2 commit em que database é o banco de dados de substituição que será gerenciado pelo DB2 Query Patroller, e password é a senha da conta do usuário administrativo, iwm. ------------------------------------------------------------------------ 37.20 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 esse 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. ------------------------------------------------------------------------ 37.21 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 e NUMA-Q. Além disso, o Query Patroller Tracker não é suportado no NUMA-Q. Se todas as ferramentas do Query Patroller Client 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. ------------------------------------------------------------------------ 37.22 Apêndice B. Resolução de Problemas em Clientes DB2 Query Patroller No Apêndice B, Resolução de Problemas do DB2 Query Patroller Client, 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 * Referência Administrativa da API o 38.1 db2ArchiveLog (Nova API) + db2ArchiveLog o 38.2 db2ConvMonStream o 38.3 db2DatabasePing (Nova API) + db2DatabasePing - Banco de Dados para Execução de Ping o 38.4 db2HistData o 38.5 db2HistoryOpenScan o 38.6 db2Runstats o 38.7 db2GetSnapshot - Obter Instantâneo o 38.8 db2XaGetInfo (Nova API) + db2XaGetInfo - Obter Informações para o Gerenciador de Recursos o 38.9 db2XaListIndTrans (nova API que Sobrepõe sqlxphqr) + db2XaListIndTrans - Lista de Transações Duvidosas o 38.10 Registro de Log Esquecido o 38.11 sqlaintp - Obter Mensagem de Erro o 38.12 sqlbctcq - Fechar Consulta do Contêiner da Área da Tabela o 38.13 sqleseti - Definir Informações do Cliente o 38.14 sqlubkp - Backup do Banco de Dados o 38.15 sqlureot - Reorganizar Tabela o 38.16 sqlurestore - Restaurar Banco de Dados o 38.17 Erro na Documentação com Relação ao Suporte de Memória Compartilhada Estendida (EXTSHM) do AIX o 38.18 SQLFUPD + 38.18.1 locklist o 38.19 SQLEDBDESC * Guia de Compilação de Aplicativos o 39.1 Atualização Disponível o 39.2 Linux em S/390 e Suporte a zSeries o 39.3 Suporte a Linux Rexx o 39.4 Notas Adicionais para Distribuição de Procedimentos SQL Compilados * Guia de Desenvolvimento de Aplicativos o 40.1 Atualização Disponível o 40.2 Cuidados ao Registrar as Rotinas C/C++ (UDFs, Procedimentos Armazenados ou Métodos) no Windows o 40.3 Correção a "Depurando Procedimentos Armazenados em Java" o 40.4 Novos Requisitos para executeQuery e executeUpdate o 40.5 Suporte ao Driver JDBC para Métodos Adicionais o 40.6 Sistemas JDBC e 64 bits o 40.7 Provedor IBM OLE DB para DB2 UDB * Guia e Referência do CLI o 41.1 Efetuando a Vinculação dos Utilitários de Banco de Dados Utilizando o Run-Time Client o 41.2 Utilizando SQL Estático em Aplicativos CLI o 41.3 Limitações do Perfilamento Estático JDBC/ODBC/CLI o 41.4 Transformações ADT o 41.5 Capítulo 1. Introdução à CLI + 41.5.1 Diferenças entre a CLI do DB2 e a SQL Incorporada o 41.6 Capítulo 3. Utilizando Recursos Avançados + 41.6.1 Escrevendo Aplicativos Multi-encadeados + 41.6.2 Escrevendo um Aplicativo Unicode da CLI do DB2 + 41.6.2.1 Funções Unicode + 41.6.2.2 Novos Tipos de Dados e Conversões Válidas + 41.6.2.3 Palavra-chave Obsoleta/Valor de Correção + 41.6.2.4 Literais em Bancos de Dados Unicode + 41.6.2.5 Configuração das Palavras-chave CLI Nova + 41.6.3 MTS (Microsoft Transaction Server) como Transaction Monitor + 41.6.4 Cursores Deslocáveis + 41.6.4.1 Suporte ao Cursor Deslocável no Lado do Servidor para OS/390 + 41.6.5 Utilizando o SQL Composto + 41.6.6 Utilizando os Procedimentos Armazenados + 41.6.6.1 Privilégios para Construir e Depurar Procedimentos SQL e Java Armazenados + 41.6.6.2 Gravando um Procedimento Armazenado em CLI + 41.6.6.3 Procedimentos Armazenados e Vinculação Automática da CLI o 41.7 Capítulo 4. Configurando CLI/ODBC e Executando Amostras de Aplicativos + 41.7.1 Palavras-chave de Configuração + 41.7.1.1 CURRENTFUNCTIONPATH + 41.7.1.2 SKIPTRACE o 41.8 Capítulo 5. Funções da CLI do DB2 + 41.8.1 SQLBindFileToParam - Ligar Referência do Arquivo do LOB ao Parâmetro do LOB + 41.8.2 SQLColAttribute -- Retornar um Atributo de Coluna + 41.8.3 SQLGetData - Obter Dados de uma Coluna + 41.8.4 SQLGetInfo - Obter Informações Gerais + 41.8.5 SQLGetLength - Recuperar Comprimento de um Valor de Cadeia + 41.8.6 SQLNextResult - Associar o Próximo Conjunto de Resultados a Outra Manipulação de Instrução + 41.8.6.1 Objetivo + 41.8.6.2 Sintaxe + 41.8.6.3 Argumentos de Função + 41.8.6.4 Uso + 41.8.6.5 Códigos de Retorno + 41.8.6.6 Diagnósticos + 41.8.6.7 Restrições + 41.8.6.8 Referências + 41.8.7 SQLSetEnvAttr - Definir Atributo de Ambiente + 41.8.8 SQLSetStmtAttr -- Definir Opções Relacionadas a uma Instrução o 41.9 Apêndice C. CLI e ODBC do DB2 + 41.9.1 Aplicativos Unicode do ODBC + 41.9.1.1 Aplicativos Unicode Versus Não-unicode do ODBC o 41.10 Apêndice D. Funções Escalares Estendidas + 41.10.1 Funções de Data e Hora o 41.11 Apêndice K. Utilizando o Recurso de Rastreio do DB2 CLI/ODBC/JDBC * Referência de Mensagens o 42.1 Atualização Disponível o 42.2 Atualizações de Mensagens o 42.3 Lendo Texto de Mensagens On-line * SQL Reference o 43.1 Atualização Disponível da SQL Reference o 43.2 Ativando as Novas Funções e os Procedimentos o 43.3 SET SERVER OPTION - Erro da Documentação o 43.4 Correções das Informações de Cadeia e Cláusula para Contêiner CREATE TABLESPACE o 43.5 Correções das Informações CREATE TABLESPACE EXTENTSIZE o 43.6 GRANT (Privilégios de Tabela, Exibição ou Pseudônimo) - Erro da Documentação o 43.7 Informações do MQSeries + 43.7.1 Funções Escalares + 43.7.1.1 MQPUBLISH + 43.7.1.2 MQREADCLOB + 43.7.1.3 MQRECEIVECLOB + 43.7.1.4 MQSEND + 43.7.2 Funções da Tabela + 43.7.2.1 MQREADALLCLOB + 43.7.2.2 MQRECEIVEALLCLOB + 43.7.3 Dados CLOB Agora São Suportados nas Funções do MQSeries o 43.8 Informações de Tipos de Dados + 43.8.1 Promoção de Tipos de Dados + 43.8.2 Conversão entre Tipos de Dados + 43.8.3 Atribuições e Comparações + 43.8.3.1 Atribuições de Cadeia + 43.8.3.2 Comparações de Cadeias + 43.8.4 Regras para Tipos de Dados de Resultado + 43.8.4.1 Cadeias de Caracteres e Gráficas em um Banco de Dados Unicode + 43.8.5 Regras para Conversões de Cadeias + 43.8.6 Expressões + 43.8.6.1 Com o Operador de Concatenação + 43.8.7 Predicados o 43.9 Informações de Unicode + 43.9.1 Funções Escalares e Unicode o 43.10 Tipo GRAPHIC e Compatibilidade de DATE/TIME/TIMESTAMP + 43.10.1 Representações de Cadeia de Valores de Data e Hora + 43.10.1.1 Cadeias de Data, Cadeias de Hora e Cadeias de Data e Hora + 43.10.2 Conversão entre Tipos de Dados + 43.10.3 Atribuições e Comparações + 43.10.4 Atribuições de Data e Hora + 43.10.5 DATE + 43.10.6 GRAPHIC + 43.10.7 TIME + 43.10.8 TIMESTAMP + 43.10.9 VARGRAPHIC o 43.11 Chaves de Índice Maiores para Bancos de Dados Unicode + 43.11.1 ALTER TABLE + 43.11.2 CREATE INDEX + 43.11.3 CREATE TABLE o 43.12 Seção Notas da Instrução ALLOCATE CURSOR Incorreta o 43.13 Opções Adicionais na Instrução GET DIAGNOSTICS + Instrução GET DIAGNOSTICS o 43.14 ORDER BY em Sub-seleções + 43.14.1 fullselect + 43.14.2 subselect + 43.14.3 order-by-clause + 43.14.4 select-statement + instrução SELECT INTO + 43.14.5 Funções OLAP (window-order-clause) * Novo Argumento de Entrada para o Procedimento GET_ROUTINE_SAR * Autorização Obrigatória para a Instrução SET INTEGRITY * Apêndice N. Tabelas de Exceção * Atualizações do Unicode o 47.1 Introdução + 47.1.1 Bancos de Dados e Aplicativos do DB2 Unicode + 47.1.2 Atualizações de Documentação ------------------------------------------------------------------------ Referência Administrativa da API ------------------------------------------------------------------------ 38.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 Uma das 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. Arquivo de Inclusão da API 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; } db2ArchiveLogStruct 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; } db2ArchiveLogStruct 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 que contém a senha a ser utilizada durante uma tentativa de 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. ------------------------------------------------------------------------ 38.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. ------------------------------------------------------------------------ 38.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. Essa 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 Nenhuma Conexão Requerida Banco de dados SAMPLE Arquivo de Inclusão da API 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. pParmStruct Entrada. Um ponteiro para a Estrutura db2DatabasePingStruct. iDbAliasLength Entrada. Comprimento do nome de alias do banco de dados. Nota: Esse parâmetro não é utilizado atualmente. Ele está reservado para uso futuro. iDbAlias Entrada. Nome de alias do banco de dados. Nota: Esse parâmetro não é utilizado 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 essa matriz antes de chamar essa API. pSqlca Saída. Um indicador para a estrutura sqlca. Para obter informações adicionais sobre esta estrutura, consulte a publicação Referência Administrativa da API. Notas de Uso Deve existir uma conexão do banco de dados antes da chamada dessa API, do contrário, ocorrerá um erro. Essa função também pode ser chamada através do comando PING. Para obter uma descrição desse comando, consulte a publicação Referência de Comandos. ------------------------------------------------------------------------ 38.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 Valor Descrição Definição C Definição COBOL/FORTRAN A incluir área DB2HISTORY_OP_ADD_ DB2HIST_OP_ADD_ da tabela TABLESPACE TABLESPACE B fazer 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_ DB2HIST_OP_DROPPED_TABLE eliminada TABLE 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 área DB2HISTORY_OP_REN_ DB2HIST_OP_REN_TABLESPACE da tabela TABLESPACE O eliminar área DB2HISTORY_OP_DROP_ DB2HIST_OP_DROP_ da tabela TABLESPACE TABLESPACE Q quiesce DB2HISTORY_OP_QUIESCE DB2HIST_OP_QUIESCE R restauração DB2HISTORY_OP_RESTORE DB2HIST_OP_RESTORE S executar DB2HISTORY_OP_RUNSTATS DB2HIST_OP_RUNSTATS estatística T alterar área DB2HISTORY_OP_ALT_ DB2HIST_OP_ALT_TBS da tabela 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 oOperation oOptype Descrição C/COBOL/FORTRAN Definition B F Off-line DB2HISTORY_OPTYPE_OFFLINE N On-line DB2HISTORY_OPTYPE_ONLINE I Off-line incremental DB2HISTORY_OPTYPE_INCR_OFFLINE O On-line incremental DB2HISTORY_OPTYPE_INCR_ONLINE D Off-line delta DB2HISTORY_OPTYPE_DELTA_OFFLINE E On-line 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 Off-line DB2HISTORY_OPTYPE_OFFLINE N On-line DB2HISTORY_OPTYPE_ONLINE I Off-line incremental DB2HISTORY_OPTYPE_INCR_OFFLINE O On-line incremental DB2HISTORY_OPTYPE_INCR_ONLINE T C Incluir contêineres DB2HISTORY_OPTYPE_ADD_CONT R Reequilibrar DB2HISTORY_OPTYPE_REB ------------------------------------------------------------------------ 38.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. ------------------------------------------------------------------------ 38.6 db2Runstats Quando a API db2Runstats está coletando estatísticas apenas em índices, as estatísticas de distribuição coletadas anteriormente ficam retidas. Caso contrário, a API as eliminará. ------------------------------------------------------------------------ 38.7 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; ------------------------------------------------------------------------ 38.8 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 Nenhuma Conexão Requerida Banco de dados SAMPLE Arquivo de Inclusão da API 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 informações adicionais sobre esta estrutura, consulte a publicação Referência Administrativa da API. 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. ------------------------------------------------------------------------ 38.9 db2XaListIndTrans (nova API que Sobrepõe sqlxphqr) db2XaListIndTrans - Lista de Transações Duvidosas Fornece uma lista de todas as transações duvidosas para os bancos de dados atualmente conectados. Escopo Essa API afeta apenas o nó no qual ela é emitida. Autorização Uma das seguintes: * sysadm * dbadm Conexão Requerida Banco de dados SAMPLE Arquivo de Inclusão da API 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 informações adicionais sobre essa estrutura, consulte a publicação Referência Administrativa da API. 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 esse 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: Esse 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 todos os registros de transações duvidosas na hora da chamada da API. O aplicativo pode utilizar esse valor para determinar o tamanho de buffer requerido chamando a API com pIndoubtData definido como NULL. Esse valor pode então ser utilizado 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 no qual a transação incerta se encontra. applid Saída. Especifica o identificador de aplicativos assinalado pelo gerenciador de banco de dados para essa 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 o Id de autorização do usuário que executou a transação. log_full Saída. Indica se essa transação causou ou não uma condição de estouro de log. Os valores válidos são: SQLXA_TRUE Essa transação incerta causou uma condição de estouro de log. SQLXA_FALSE Essa 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 de consolidação 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 dessa transação incerta. Os valores válidos são: SQLXA_TS_PREP A transação está preparada. O parâmetro conectado pode ser utilizado para determinar se a transação está aguardando uma segunda fase do processamento normal de consolidação 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 a consolidação heuristicamente. SQLXA_TS_HROL A transação sofreu rollback heuristicamente. SQLXA_TS_MACK Falta na transação o reconhecimento da consolidação de um nó em um banco de dados particionado. SQLXA_TS_END A transação foi encerrada nesse banco de dados. Essa transação deve ser ativada novamente, efetuar a consolidação 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, essa transação vai precisar de ações heurísticas, porque deve suspender os bloqueios impedindo o acesso aos dados de outros aplicativos. Notas de Uso 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. Isso 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 dessa 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. Isso 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 - Consolidar uma Transação Incerta" e "sqlxphrl - Reverter uma Transação Incerta" na seção Referência Administrativa da API. ------------------------------------------------------------------------ 38.10 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 10. Estrutura de Registro do Log Esquecido Descrição Tipo Deslocamento (Bytes) Cabeçalho do log LogManagerLogRecordHeader 0(20) tempo sqluint64 20(8) Comprimento Total: 28 bytes ------------------------------------------------------------------------ 38.11 sqlaintp - Obter Mensagem de Erro A seguinte nota de uso deve ser incluída para a descrição desta API: Em um aplicativo de multi encadeamento, sqlaintp deve estar conectada a um contexto válido; caso contrário, o texto da mensagem para SQLCODE -1445 não poderá ser obtido. ------------------------------------------------------------------------ 38.12 sqlbctcq - Fechar Consulta do Contêiner da Área da Tabela O carregamento não é um nível de autorização válido para essa API. ------------------------------------------------------------------------ 38.13 sqleseti - Definir Informações do Cliente Os valores de dados fornecidos com a API também podem ser acessados pelo registro especial de SQL. Os valores nesses registros são armazenados na página de códigos do banco de dados. Os valores de dados fornecidos com essa API são convertidos para a página de códigos do banco de dados antes de serem armazenados nos registros especiais. Qualquer valor de dados que exceder o tamanho máximo suportado após a conversão para a página de códigos do banco de dados será truncado antes de ser armazenado no servidor. Esses valores truncados serão retornados pelos registros especiais. Os valores de dados originais também serão armazenados no servidor e não serão convertidos para a página de códigos do banco de dados. Os valores não-convertidos podem ser retornados chamando-se a API sqleqryi. ------------------------------------------------------------------------ 38.14 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 espaços de tabelas 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. ------------------------------------------------------------------------ 38.15 sqlureot - Reorganizar Tabela A frase a seguir será incluída nas Notas de Uso: REORGANIZE TABLE não pode utilizar um índice baseado em uma extensão do índice. ------------------------------------------------------------------------ 38.16 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 espaços de tabelas no banco de dados. Isso será executado off-line. 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. ------------------------------------------------------------------------ 38.17 Erro na Documentação com Relação ao Suporte de Memória Compartilhada Estendida (EXTSHM) do AIX No "Apêndice E. Aplicativos de encadeamento 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 servidor DB2: export EXTSHM=ON db2set DB2ENVLIST=EXTSHM db2start No EEE, inclua também as linhas a seguir em sqllib/db2profile: EXTSHM=ON export EXTSHM ------------------------------------------------------------------------ 38.18 SQLFUPD 38.18.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 704 Uint64 _LIST O novo máximo para esse parâmetro é 524 288. Além disso, no "Capítulo 3. Estruturas de Dados", a Tabela 53. Parâmetros de Configuração de Banco de Dados Atualizáveis lista incorretamente o valor de token do dbheap como 701. O valor correto é 58. ------------------------------------------------------------------------ 38.19 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. ------------------------------------------------------------------------ Guia de Compilação de Aplicativos ------------------------------------------------------------------------ 39.1 Atualização Disponível O Guia de Compilação de Aplicativos foi atualizado como parte do FixPak 4. O PDF mais recente está disponível para download on-line em http://www.ibm.com/software/data/db2/udb/winos2unix/support. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis no endereço http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. ------------------------------------------------------------------------ 39.2 Linux em S/390 e Suporte a zSeries DB2 para Linux no S/390 e zSeries suporta os seguintes ambientes de sistema operacional: * SuSE v7.0 * SuSE SLES 7 * TurboLinux v6.1 Nota: Para executar o DB2 Versão 7 no SuSE SLES 7, será necessário instalar o libstdc++ v6.1 compat RPM, que está no CD 1 do conjunto de CDs do SuSE Linux Enterprise Server Developer's Edition, no caminho "CD1/suse/a1/compat.rpm". Isso deve ser feito como root. Para instalar o RPM, monte a imagem do CD para um diretório. Por exemplo, para montá-lo no diretório /mnt, instale o RPM com este comando: rpm -Uh /mnt/CD1/suse/a1/compat.rpm e execute ldconfig em seguida. ------------------------------------------------------------------------ 39.3 Suporte a Linux Rexx O DB2 para Linux para Intel x86 (32 bits) suporta o Object REXX Interpreter para Linux Versão 2.1. O DB2 para Linux no S/390 suporta o Object REXX 2.2.0 para Linux/390. ------------------------------------------------------------------------ 39.4 Notas Adicionais para Distribuição de Procedimentos SQL Compilados Em sistemas UNIX, certifique-se de que o proprietário da instância (ou seja, o usuário sob o qual o mecanismo do DB2 é executado) e o proprietário do arquivo $DB2PATH/adm/.fenced pertençam ao mesmo grupo principal. Como alternativa, cada um desses dois usuários deve pertencer ao grupo principal do outro. Se uma operação GET ROUTINE ou PUT ROUTINE (ou seus procedimentos correspondentes) falharem na execução, um erro sempre será retornado (SQLSTATE 38000), junto com texto diagnóstico, fornecendo informações sobre a causa da falha. Por exemplo, se o nome do procedimento fornecido para GET ROUTINE não identificar um procedimento SQL, o texto de diagnóstico "100, 02000" será retornado, em que "100" e "02000" são SQLCODE e SQLSTATE, respectivamente, que identificam a causa do problema. SQLCODE e SQLSTATE desse exemplo indicam que a linha especificada para o nome do procedimento fornecido não foi encontrada nas tabelas de catálogos. ------------------------------------------------------------------------ Guia de Desenvolvimento de Aplicativos ------------------------------------------------------------------------ 40.1 Atualização Disponível O Guia de Desenvolvimento de Aplicativos foi atualizado como parte do FixPak 4. O PDF mais recente está disponível para download on-line em http://www.ibm.com/software/data/db2/udb/winos2unix/support. As informações nessas notas são complementares à referência atualizada. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis no endereço http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. ------------------------------------------------------------------------ 40.2 Cuidados ao Registrar as Rotinas C/C++ (UDFs, Procedimentos Armazenados ou Métodos) no Windows Ao registrar uma rotina C ou C++ (UDF, procedimento armazenado ou método) nos sistemas operacionais Windows(R), tome as seguintes precauções na identificação de um corpo de rotina na cláusula NOME EXTERNO da instrução CREATE. Se você utilizar um id de caminho absoluto para identificar o corpo da rotina, deverá anexar a extensão .dll. Por exemplo: CREATE PROCEDURE getSalary( IN inParm INT, OUT outParm INT ) LANGUAGE c PARAMETER STYLE sql DYNAMIC RESULT SETS 1 FENCED THREADSAFE RETURNS NULL ON NULL INPUT NOME EXTERNO 'd:\mylib\myfunc.dll' ------------------------------------------------------------------------ 40.3 Correção a "Depurando Procedimentos Armazenados em Java" Na seção "Preparando para Depurar", Capítulo 21, você é instruído a utilizar o comando db2dbugd. Isso está incorreto. Em vez disso, utilize o seguinte comando: idebug -qdaemon -quiport=portno O número de porta padrão é 8000. idebug é um daemon do lado do cliente do IBM Distributed Debugger e é enviado com o VisualAge for Java e com o WebSphere Studio Application Developer. ------------------------------------------------------------------------ 40.4 Novos Requisitos para executeQuery e executeUpdate Para estar de acordo com o padrão J2EE 1.3, o driver DB2 JDB, desde o FixPak 5, não permite mais a utilização de uma instrução sem consulta com executeQuery, nem de uma instrução de consulta com executeUpdate. A tentativa de fazer isso resultará em uma das seguintes exceções: * CLI0637E QUERY não pode ser encontrado. * CLI0637E UPDATE não pode ser encontrado. Se o tipo de instrução for desconhecido, utilize execute(). ------------------------------------------------------------------------ 40.5 Suporte ao Driver JDBC para Métodos Adicionais CallableStatement.getBlob() e CallableStatement.getClob() O Driver JDBC agora suporta os métodos CallableStatement.getBlob() e CallableStatement.getClob(). Como o DB2 não suporta localizadores LOB em parâmetros de procedimentos armazenados, deve ser disponibilizada memória suficiente para manter o tamanho máximo possível de seus dados LOB, o valor especificado em CREATE PROCEDURE. Uma exceção de sem memória resultará se não houver memória suficiente. Esse suporte não está disponível para procedimentos armazenados não-catalogados. Statement.setFetchSize(int rows) e ResultSet.setFetchSize(int rows) O driver JDBC agora suporta Statement.setFetchSize(int rows) e ResultSet.setFetchSize(int rows). Esses métodos agora podem ser utilizados para melhorar o desempenho de ResultSet. ------------------------------------------------------------------------ 40.6 Sistemas JDBC e 64 bits JDBC não é suportado para instâncias ou clientes que utilizam o endereçamento de 64 bits. Essa limitação inclui sistemas que executam o DB2 UDB Versão 7 para AIX 4.3.3, para AIX 5, para sistemas operacionais Solaris e para HP-UX de 64 bits. Porém, o JDBC é suportado em instâncias de 32 bits, independente de o sistema estar executando a versão de 64 ou 32 bits do DB2 UDB. ------------------------------------------------------------------------ 40.7 Provedor IBM OLE DB para DB2 UDB Para informações sobre a utilização do Provedor IBM OLE DB para DB2, consulte o endereço http://www.ibm.com/software/data/db2/udb/ad/v71/oledb.html. ------------------------------------------------------------------------ Guia e Referência do CLI ------------------------------------------------------------------------ 41.1 Efetuando a Vinculação dos Utilitários de Banco de Dados Utilizando o Run-Time Client O Run-Time Client não pode ser utilizado para fazer a vinculação dos utilitários de banco de dados (importar, exportar, reorganizar, o processador da linha de comandos) e o DB2 CLI faz a vinculação 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 de preferência. Você deve fazer a vinculação desses utilitários de banco de dados e dos arquivos de vinculação do DB2 CLI para cada banco de dados antes que esses possam ser utilizados com aquele banco de dados. Em um ambiente de rede, se você estiver utilizando múltiplos clientes que executam em diferentes sistemas operacionais, em diferentes versões ou níveis de serviço do DB2, você deve fazer a vinculação dos utilitários uma vez para cada sistema operacional e para a combinação da versão do DB2. ------------------------------------------------------------------------ 41.2 Utilizando SQL Estático em Aplicativos CLI Para obter informações adicionais sobre o uso de SQL estático em aplicativos CLI, consulte a página da Web em: http://www.ibm.com/software/data/db2/udb/staticcli/ ------------------------------------------------------------------------ 41.3 Limitações do Perfilamento Estático JDBC/ODBC/CLI O perfilamento estático JDBC/ODBC/CLI atualmente objetiva aplicativos de avanço direto. Ele não é voltado 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 perfilamento. 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 eficácia dos resultados. 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ão 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 essas instruções no arquivo de captura. A Ferramenta de Vinculação de Perfilamento Estático JDBC/ODBC/CLI tentará efetuar a vinculação. A tentativa de efetuar a vinculação será bem sucedida com DBMSs que suportam a opção de vinculação VALIDATE(RUN), mas isso irá falhar com um que não efetuar. Nesse caso, o aplicativo não deve usar o Perfilamento 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. ------------------------------------------------------------------------ 41.4 Transformações ADT A seguintes informações complementam as contidas na publicação. * 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 pode não 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. Esse atributo é requerido 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 a vinculação do SQL_C_DEFAULT, porque não existe código que permita ao SQLBindParameter especificar o tipo SQL_USER_DEFINED_TYPE. Serão utilizados 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); ------------------------------------------------------------------------ 41.5 Capítulo 1. Introdução à CLI 41.5.1 Diferenças entre a CLI do DB2 e a SQL Incorporada Desconsidere o terceiro item no final da lista na seção "Vantagens de Utilizar a CLI do DB2". As informações corretas são as seguintes: A CLI do DB2 permite recuperar várias linhas e conjuntos de resultados gerados a partir de um procedimento armazenado que reside em um servidor DB2 Universal Database, um servidor DB2 para MVS/ESA (Versão 5 ou posterior) ou um servidor OS/400 (Versão 5 ou posterior). O suporte para a recuperação de vários conjuntos de resultados no OS/400 requer que o PTF (Program Temporary Fix) SI01761 seja aplicado ao servidor. Entre em contato com o administrador do sistema OS/400 para assegurar-se de que essa PTF tenha sido aplicada. ------------------------------------------------------------------------ 41.6 Capítulo 3. Utilizando Recursos Avançados 41.6.1 Escrevendo Aplicativos Multi-encadeados Os seguintes devem ser adicionados no final da seção "Aplicativos Mistos Multi-encadeados": 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. 41.6.2 Escrevendo um Aplicativo Unicode da CLI do DB2 Esta é uma nova seção para esse capítulo. 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 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 irá assegurar que a CLI utilizará Unicode com o método de preferência de comunicação entre ela e o banco de dados. 41.6.2.1 Funções Unicode Funções ODBC API têm sufixos para indicar o formato de seus argumentos de cadeia: os que aceitam unicode terminam em W; os que aceitam ANSI não têm sufixo. Nota: ODBC inclui funções equivalentes com nomes terminados em A, mas elas não são utilizadas pelo DB2 CLI. Segue uma lista dessas funções que estão disponíveis no DB2 CLI, que tem Versões ANSI e 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 SQLGetStmtAttr SQLStatistics SQLError SQLNativeSQL SQLTablePrivileges SQLExecDirect SQLPrepare SQLTables As funções Unicode cujos argumentos têm sempre o comprimento de cadeias interpretam esses argumentos como contagem de caracteres. As funções que retornam informações de comprimento para dados do servidor também descrevem o tamanho da exibição e são precisas em termos de caracteres. Quando o comprimento (tamanho de transferência de dados) puder fazer referência a dados de cadeia ou não de cadeia, o comprimento será interpretado como uma contagem de bytes. Por exemplo, SQLGetInfoW ainda usa o comprimento como contagem de bytes, mas SQLExecDirectW usará contagem de caracteres. A CLI retornará dados de conjuntos de resultados em Unicode ou ANSI, dependendo da ligação do aplicativo. Se um aplicativo vincular-se ao SQL_C_CHAR, o driver converterá os dados SQL_WCHAR para SQL_CHAR. Um gerenciador de drivers ODBC, se utilizado, mapeia SQL_C_WCHAR para SQL_C_CHAR para drivers ANSI, mas não faz nenhum mapeamento para drivers Unicode. 41.6.2.2 Novos Tipos de Dados e Conversões Válidas Tipos de dados ODBC e CLI adicionais definidos foram incluídos para acomodar bancos de dados Unicode. Esses tipos suplementam o conjunto de tipos C e SQL já existentes. O novo tipo C, SQL_C_WCHAR, indica que o buffer C contém dados UCS-2 em formato nativo endian. Os novos tipos SQL, SQL_WCHAR, SQL_WVARCHAR e SQL_WLONGVARCHAR, indicam que um marcador de coluna ou parãmetro específico contém dados Unicode. Para bancos de dados DB2 Unicode, colunas gráficas serão descritas através dos novos tipos. Tabela 11. 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 Y 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 a seção Utilizando Objetos Grandes para obter informações adicionais. o SQL_C_NUMERIC está disponível somente em sistemas operacionais Windows de 32 bits. 41.6.2.3 Palavra-chave Obsoleta/Valor de Correção Antes dos aplicativos Unicode serem suportados, os aplicativos que eram escritos para trabalhar com dados de caracteres de byte único podiam trabalhar 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. Essa alternativa apresentava os dados gráficos como dados de caracteres e também afetavam o comprimento relatado dos dados. Essas palavras-chave não são mais necessárias para aplicativos Unicode, e não devem ser utilizadas por causa do risco de efeitos colaterais potenciais. Se você não souber se um aplicativo específico é um aplicativo Unicode, sugerimos que tente sem quaisquer palavras-chave que afetem a manipulação de dados gráficos. 41.6.2.4 Literais em Bancos de Dados Unicode Em bancos de dados não-unicode, os dados nas colunas LONG VARGRAPHIC e LONG VARCHAR não podem ser comparados. Os dados no GRAPHIC/VARGRAPHIC e as colunas CHAR/VARCHAR podem ser apenas comparados ou atribuídos para cada um, utilizando as funções explícitas cast desde que a página de códigos implícita seja suportada. Isso inclui os literais GRAPHIC/VARGRAPHIC e CHAR/VARCHAR em que 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 é requerida. 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 utilizados em instruções que usam SQLPrepareW() ou SQLExecDirect().Os literais para LONG VARGRAPHICs já possuem um prefixo G. Para obter mais informações, consulte a publicação "Conversão entre Tipos de Dados" no "Capítulo 3. Elementos de Linguagem" da publicação SQL Reference. 41.6.2.5 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) Guia de Definições do DB2 CLI/ODBC: Essa palavra-chave não pode ser definida utilizando o bloco de notas de Definições CLI/ODBC. O arquivo db2cli.ini deve ser modificado diretamente para que a palavra-chave possa ser utilizada. Notas de Uso: Com o suporte Unicode ativado, e quando chamada por um aplicativo Unicode, a CLI tentará conectar-se ao banco de dados utilizando a melhor página de códigos possível do cliente para assegurar que não haja perda de dados desnecessária por causa da conversão de página de códigos. Isso pode aumentar o tempo de conexão quando as páginas de códigos são trocadas ou pode causar conversões de páginas de códigos no cliente que não ocorriam antes da inclusão desse suporte. A definição dessa palavra-chave para True (1) fará com que todos os dados Unicode sejam convertidos, primeiro, para a página de códigos local do aplicativo, antes dos dados serem enviados para o servidor. Isso pode causar a perda dos dados que não possam ser representados na página de códigos local. 2. ConnectCodepage Descrição da Palavra-chave Especifica uma determinada página de códigos para ser utilizada na conexão com a origem de dados, para evitar sobrecarga extra de conexão. Sintaxe da Palavra-chave db2cli.ini: ConnectCodepage = 0 | 1 | Definição Padrão: 0 Guia de Definições do DB2 CLI/ODBC: Essa palavra-chave não pode ser definida utilizando o bloco de notas de Definições CLI/ODBC. O arquivo db2cli.ini deve ser modificado diretamente para ser utilizado por essa palavra-chave. Notas de Uso: Aplicativos não-Unicode sempre conectam-se ao banco de dados utilizando a página de códigos local do aplicativo ou a definição de ambiente DB2Codepage. Por padrão, a CLI assegurará que os aplicativos Unicode sejam conectados aos bancos de dados Unicode, utilizando as páginas de códigos UTF-8 e UCS-2. O padrão para conexão a bancos de dados não-unicode é utilizar a página de códigos do banco de dados caso o servidor de banco de dados esteja executando o DB2 para Windows, DB2 para Unix ou DB2 para OS/2. Isso assegura que não exista perda de dados desnecessária devido à conversão de página de códigos. Essa palavra-chave permite que o usuário especifique a página de códigos do banco de dados ao conectar-se a um banco de dados não-Unicode, para evitar sobrecarga extra na conexão. Especificar um valor igual a 1 faz com que SQLDriverConnect() retorne o valor correto na cadeia de conexão de saída, para que o valor possa ser utilizado em chamadas de SQLDriverConnect() futuras. 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 Guia de Definições do DB2 CLI/ODBC: Essa palavra-chave não pode ser definida utilizando o bloco de notas de Definições CLI/ODBC. O arquivo db2cli.ini deve ser modificado diretamente para que a palavra-chave possa ser utilizada. Notas de Uso: Essa palavra-chave é equivalente para ConnectCodepage=1208 e é incluída apenas por conveniência. Defina essa 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 essa 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 um processamento extra. 41.6.3 MTS (Microsoft Transaction Server) como Transaction Monitor A informação a seguir corrige o valor padrão para a palavra-chave de configuração DISABLEMULTITHREAD na subseção "Instalação e Configuração": * Palavra-chave DISABLEMULTITHREAD (padrão 0) 41.6.4 Cursores Deslocáveis A seguinte informação deve ser incluída na seção "Cursores deslocáveis": 41.6.4.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 12. Atributos padrão para cursores do OS/390 no ODBC Tipo de Sensibilidade do Cursor Concorrência Cursor Cursor Cursor Atualizável do Cursor Deslocável somente não-especificado não-atualizável concorrência não-deslocável avançoa somente leitura estático insensível não-atualizável concorrência deslocável somente leitura guiado por sensível atualizáveis concorrência deslocável conjunto de valores de 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 13. 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. 41.6.5 Utilizando o SQL Composto A seguinte nota está faltando na publicação: Qualquer instrução SQL que pode ser preparada dinamicamente, diferente 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. 41.6.6 Utilizando os Procedimentos Armazenados 41.6.6.1 Privilégios para Construir e Depurar Procedimentos SQL e Java Armazenados Os privilégios a seguir devem ser concedidos aos usuários que querem construir, depurar e executar procedimentos SQL armazenados: * db2 grant CONNECT on database to userid * db2 grant IMPLICIT_SCHEMA on database to userid * db2 grant BINDADD on database to userid * db2 grant SELECT on SYSIBM.SYSDUMMY1 to userid * db2 grant SELECT on SYSCAT.PROCEDURES to userid * db2 grant UPDATE on DB2DBG.ROUTINE_DEBUG to userid Os privilégios a seguir devem ser concedidos aos usuários que queiram construir, depurar e executar procedimentos Java armazenados: * db2 grant CONNECT on database to userid * db2 grant IMPLICIT_SCHEMA on database to userid * db2 grant BINDADD on database to userid (necessário apenas se você construir procedimentos Java armazenados com SQL estático utilizando SQLJ) * db2 grant SELECT on SYSIBM.SYSDUMMY1 to userid * db2 grant SELECT on SYSCAT.PROCEDURES to userid * db2 grant UPDATE on DB2DBG.ROUTINE_DEBUG to userid Para criar a tabela DB2DBG.ROUTINE_DEBUG, emita o seguinte comando: db2 -tf sqllib/misc/db2debug.ddl Para obter mais informações sobre depuração de procedimentos Java armazenados, consulte Guia de Desenvolvimento de Aplicativos. 41.6.6.2 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 deve ser fechado antes do próximo procedimento armazenado tentar abrir um cursor. 41.6.6.3 Procedimentos Armazenados e Vinculação Automática da CLI O item a seguir suplementa as informações na publicação: O driver CLI/ODBC normalmente irá fazer a vinculação automática 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. A vinculação automática dos pacotes da CLI não pode ser executada 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 esses pacotes ao mesmo tempo em que o banco de dados é criado para evitar a vinculação automática no tempo de execução. A vinculação automática poderá falhar se o usuário não tiver privilégio ou se outro aplicativo tentar fazer a vinculação automática ao mesmo tempo. ------------------------------------------------------------------------ 41.7 Capítulo 4. Configurando CLI/ODBC e Executando Amostras de Aplicativos 41.7.1 Palavras-chave de Configuração 41.7.1.1 CURRENTFUNCTIONPATH Ignore o último parágrafo da palavra-chave CURRENTFUNCTIONPATH. As informações corretas são as seguintes: Essa 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 seção a seção SQL Reference. 41.7.1.2 SKIPTRACE A seguir, descreve-se essa nova palavra-chave de configuração: Descrição de Palavra-Chave: Permite que aplicativos CLI sejam excluídos da função de rastreio. Sintaxe da Palavra-Chave db2cli.ini: SKIPTRACE = 0 | 1 Definição Padrão: Não ignore a função de rastreio. Guia Definições do DB2 CLI/ODBC: Essa palavra-chave não pode ser definida utilizando o bloco de notas de Definições CLI/ODBC. O arquivo db2cli.ini deve ser modificado diretamente para ser utilizado por essa palavra-chave. Notas de Uso: Essa palavra-chave pode melhorar o desempenho por permitir que a função de rastreio desvie-se de aplicativos CLI. Portanto, se o recurso de rastreio db2trc do DB2 estiver ativo e essa palavra-chave for definida como 1, o rastreio não conterá informações da execução do aplicativo CLI. Ativar SKIPTRACE é recomendado para ambientes de produção na plataforma UNIX onde as informações de rastreio não são exigidas. Os ambientes de teste podem, porém, beneficiar-se de ter uma saída de rastreio; assim, essa palavra-chave pode ser desativada (ou deixada em sua definição padrão) quando se deseja informações de execução detalhadas. SKIPTRACE deve ser definido na seção [COMMON] do arquivo de configuração db2cli.ini ------------------------------------------------------------------------ 41.8 Capítulo 5. Funções da CLI do DB2 41.8.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)". 41.8.2 SQLColAttribute -- Retornar um Atributo de Coluna As seguintes atualizações são inclusões na coluna "Descrição" para os argumentos SQL_DESC_AUTO_UNIQUE_VALUE e SQL_DESC_UPDATABLE: SQL_DESC_AUTO_UNIQUE_VALUE SQL_FALSE é retornado em NumericAttributePtr para todos os tipos de dados SQL do DB2. Atualmente, a CLI do DB2 não pode determinar se uma coluna é uma coluna de identidade, portanto, SQL_FALSE sempre será retornado. Essa limitação não está totalmente em conformidade com as especificações do ODBC. Versões futuras da CLI do DB2 para servidores Unix e Windows fornecerão suporte auto-exclusivo. SQL_DESC_UPDATABLE Indica se o tipo de dados da coluna é um tipo de dados atualizável: o SQL_ATTR_READWRITE_UNKNOWN é retornado em NumericAttributePtr para todos os tipos de dados SQL do DB2. Ele é retornado porque a CLI do DB2 não pode determinar atualmente se uma coluna é atualizável. Versões futuras da CLI do DB2 para servidores Unix e Windows poderão determinar se uma coluna é atualizável. 41.8.3 SQLGetData - Obter Dados de uma Coluna O texto a seguir substitui a sentença atual que aparece na colune Explicação para SQLSTATE 22007 da tabela SQLSTATEs para SQLGetData: A conversão de uma cadeia para um formato de data e hora foi indicada, mas uma representação ou valor de cadeia inválido foi especificado, ou o valor era uma data inválida. 41.8.4 SQLGetInfo - Obter Informações Gerais A informação a seguir corrige as informações na seção "Uso" sob "Informações Retornadas pelo SQLGetInfo": * InfoType SQL_CURSOR_CLOSE_BEHAVIOR deveria ser SQL_CLOSE_BEHAVIOR. * A nota para SQL_DATABASE_NAME (cadeia) deve ser a seguinte: Nota: Essa cadeia é a mesma daquela retornada pela instrução SELECT CURRENT SERVER em sistemas não-host. Para bancos de dados do host, como o DB2 para OS/390 ou DB2 para OS/400, a cadeia retornada é o nome do banco de dados DCS que foi fornecido quando o comando CATALOG DCS DATABASE DIRECTORY foi emitido no gateway DB2 Connect. 41.8.5 SQLGetLength - Recuperar Comprimento de um Valor de Cadeia A informação a seguir corrige a nota de rodapé na "Tabela 113. Argumentos de SQLGetLength" : Nota: a Isso está em caracteres para dados DBCLOB. 41.8.6 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": 41.8.6.1 Objetivo Especificação: DB2 CLI 7.x 41.8.6.2 Sintaxe SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 SQLHSTMT StatementHandle2); 41.8.6.3 Argumentos de Função Tabela 14. Argumentos SQLNextResult Tipo de Dados Argumento Uso Descrição SQLHSTMT StatementHandle entrada Manipulação de instrução. SQLHSTMT StatementHandle entrada Manipulação de instrução. 41.8.6.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 utilizados para descrever e buscar o conjunto de resultados. SQLMoreResults() é utilizado 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 utilizando 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 utilizado 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() retorna 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. 41.8.6.5 Códigos de Retorno * SQL_SUCCESS * SQL_SUCCESS_WITH_INFO * SQL_STILL_EXECUTING * SQL_ERROR * SQL_INVALID_HANDLE * SQL_NO_DATA_FOUND 41.8.6.6 Diagnósticos Tabela 15. SQLNextResult SQLSTATEs SQLSTATE Descrição Explicação 40003 Falha no link de O link de comunicação entre o aplicativo e 08S01 comunicação. a origem 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 da expirado. origem 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 timeout pode ser definido utilizando-se o atributo SQL_ATTR_QUERY_TIMEOUT para SQLSetConnectAttr(). 41.8.6.7 Restrições Somente SQLMoreResults() pode ser utilizado para consultas de parâmetros. 41.8.6.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 41.8.7 SQLSetEnvAttr - Definir Atributo de Ambiente O seguinte é um atributo de ambiente adicional que pertence à seção "Atributos de Ambiente", em "Uso": SQL_ATTR_KEEPCTX Um valor inteiro de 32 bits que especifica se o contexto deve ser mantido quando o identificador de ambiente é liberado. Esse atributo deve ser definido no nível de ambiente. Pode ser utilizado por aplicativos com vários encadeamentos para gerenciar contextos associados a conexões, recursos de banco de dados e transmissão de dados de cada encadeamento. Os valores possíveis são: o SQL_FALSE: O aplicativo disponibilizará o contexto quando o identificador de ambiente do encadeamento for liberado. Esse é o valor padrão. o SQL_TRUE: O contexto permanecerá válido quando o identificador de ambiente do encadeamento for liberado, disponibilizando o contexto a outros encadeamentos existentes na mesma conexão. Definir SQL_ATTR_KEEPCTX como SQL_TRUE pode resolver alguns problemas associados aos contextos conflitantes em aplicativos com vários encadeamentos. Nota: É uma extensão IBM. 41.8.8 SQLSetStmtAttr -- Definir Opções Relacionadas a uma Instrução As informações a seguir substituem as informações existentes para o atributo de instrução SQL_ATTR_QUERY_TIMEOUT: SQL_ATTR_QUERY_TIMEOUT (DB2 CLI v2) Um valor inteiro de 32 bits que é o número de segundos que será aguardado para que uma instrução SQL seja executada entre o retorno para o aplicativo. Essa opção pode ser definida e utilizada para finalizar longas consultas em execução. O valor 0 significa que não há tempo limite. A CLI do DB2 suporta valores não-zero para todas as plataformas que suportem múltiplos encadeamentos. ------------------------------------------------------------------------ 41.9 Apêndice C. CLI e ODBC do DB2 Esta é uma nova seção incluída nesse apêndice. 41.9.1 Aplicativos Unicode do ODBC Um aplicativo Unicode do ODBC envia e recupera dados de caractere primeiramente no UCS-2. Isso é feito chamando as versões Unicode das funções ODBC (aquelas com um sufixo 'W') e indicando tipos de dados Unicode. O aplicativo não especifica explicitamente uma página de códigos local. Ele ainda pode chamar as funções ANSI e passar as cadeias da página de códigos local. Por exemplo, o aplicativo pode chamar SQLConnectW() e passar o DSN, o ID do Usuário e a Senha como argumentos do Unicode. Então, ele 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ódigos local ANSI (SQL_C_CHAR) e de buffers Unicode (SQL_C_WCHAR). Os tipos de dados do banco de dados podem ser ou não Unicode. Se um aplicativo CLI chamar SQLSetConnectAttr com SQL_ATTR_ANSI_APP definido para SQL_AA_FALSE ou chamar SQLConnectW sem definir o valor de SQL_ATTR_ANSI_APP, então o aplicativo é considerado um aplicativo Unicode. Isso significa que todos os dados CHAR são enviados e recebidos de um banco de dados Unicode no formato UTF-8. O aplicativo poderá então buscar os dados CHAR nos buffers SQL_C_CHAR na página de códigos 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 duas chamadas anteriores, os dados CHAR serão convertidos para a página de códigos 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ódigos 1208 (UTF-8), o aplicativo receberá todos os dados CHAR em UTF-8, porque essa é agora a página de códigos 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. 41.9.1.1 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 que o gerenciador de driver ODBC convertesse todos os dados Unicode para a página de códigos 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 for definido para SQL_AA_TRUE, o DB2 CLI converterá todos dados Unicode para a página de códigos local antes de enviá-lo ao servidor. ------------------------------------------------------------------------ 41.10 Apêndice D. Funções Escalares Estendidas 41.10.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 essa 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, utilize o comando de sistema db2updb. Para obter informações adicionais sobre db2updb, consulte a seção "Referência e Comando" nestas Notas sobre o Release. ------------------------------------------------------------------------ 41.11 Apêndice K. Utilizando o Recurso de Rastreio do DB2 CLI/ODBC/JDBC As seções dentro deste apêndice foram atualizadas. Consulte o capítulo "Rastreamentos" no Guia de Resolução de Problemas para obter as informações mais atualizadas sobre essa funcionalidade de rastreamento. ------------------------------------------------------------------------ Referência de Mensagens ------------------------------------------------------------------------ 42.1 Atualização Disponível O Referência de Mensagens foi atualizado como parte do FixPak 4. O PDF mais recente está disponível para download on-line em http://www.ibm.com/software/data/db2/udb/winos2unix/support. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis no endereço http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. ------------------------------------------------------------------------ 42.2 Atualizações de Mensagens A tabela a seguir indica as mensagens que foram alteradas desde a última publicação da Referência de Mensagens. Instruções para exibir o texto das mensagens on-line estão incluídas nessas notas. Tabela 16. Mensagens Novas e Alteradas Código da Mensagem Natureza da Alteração SQL2554N Novo Código de Razão SQL0490N Nova Mensagem SQL20214N Nova Mensagem SQL20211N Nova Mensagem A tabela a seguir indica os estados de SQL que foram alterados desde a última publicação da Referência de Mensagens. Instruções para exibir o texto das mensagens on-line estão incluídas nessas notas. Tabela 17. Novas Mensagens SQLSTATE Valor de SQLSTATE Significado 428B7 Um número especificado em uma instrução SQL está fora da faixa válida. 428FI ORDER OF foi especificada, mas o designador de tabela não contém uma cláusula ORDER BY. 428FJ ORDER BY não é permitida na seleção completa exterior de uma exibição ou tabela de resumo. ------------------------------------------------------------------------ 42.3 Lendo Texto de Mensagens On-line Supõe-se que você esteja familiarizado com as funções do sistema operacional no qual o DB2 está instalado. As seguintes mensagens do DB2 são acessíveis a partir da linha de comandos do sistema operacional: Prefixo Descrição ASN mensagens geradas pela réplica do DB2 CCA mensagens geradas pelo Assistente de Configuração de Cliente CLI mensagens geradas pela Interface de Nível de Chamada DBA mensagens geradas pelo Centro de Controle e pelo Utilitário de Administração do Banco de Dados DBI mensagens geradas pela instalação e pela configuração DB2 mensagens geradas pelo processador de linha de comando DWC mensagens geradas pelo Data Warehouse Center FLG mensagens e códigos de razão gerados pelo Information Catalog Manager GSE mensagens geradas pelo DB2 Spatial Extender SAT mensagens geradas pelo DB2 Satellite SPM mensagens geradas pelo gerenciador sync point SQJ mensagens geradas por SQLJ (Embedded SQL in Java) SQL mensagens geradas pelo gerenciador de banco de dados quando um aviso ou uma condição de erro é detectada. Também o texto da mensagem associado aos valores SQLSTATE está disponível on-line. Os identificadores da mensagem consistem em um prefixo de mensagem com três caracteres (veja a lista acima), seguindo de um número de mensagem com quatro ou cinco dígitos. A única letra no final, que descreve a gravidade da mensagem de erro, é opcional. Para acessar o auxílio dessas mensagens de erro, digite o seguinte comando no prompt do sistema operacional: db2 "? XXXnnnnn" em que XXX representa o prefixo da mensagem e nnnnn representa o número da mensagem. Nota: O identificador de mensagem aceito como um parâmetro do comando db2 não diferencia maiúsculas e minúsculas e a letra final não é obrigatória. Por isso, os seguintes comandos produzirão o mesmo resultado: * db2 "? SQL0000N" * db2 "? sql0000" * db2 "? SQL0000n" Se o texto da mensagem for extenso demais para a tela, use o seguinte comando (em sistemas baseados em UNIX e outros que suportam 'more'): db2 "? XXXnnnnn" | more O auxílio também pode ser chamado no modo de entrada interativo. Para digitar o modo de entrada interativo, digite o seguinte comando no prompt do sistema operacional: db2 Estando no modo de entrada interativo, você pode digitar comandos no seguinte prompt: db2 => Para obter auxílio da mensagem do DB2 nesse modo, digite o seguinte prompt no comando: ? XXXnnnnn Nota: Se o texto da mensagem ultrapassar a extensão da tela, os usuários com estações de trabalho não-gráficas poderão efetuar o canal de saída para o programa 'more'(em sistemas baseados em unix) ou redirecionar a saída para o arquivo no qual você possa navegar depois. O texto de mensagem associado com os valores SQLSTATE dados podem ser recuperados por meio da emissão: db2 "? nnnnn" ou db2 "? nn" em que nnnnn é um SQLSTATE (alfanumérico) de cinco dígitos e nn é o código de classe SQLSTATE de dois dígitos (primeiros dois dígitos do valor SQLSTATE). ------------------------------------------------------------------------ SQL Reference ------------------------------------------------------------------------ 43.1 Atualização Disponível da SQL Reference A SQL Reference foi atualizada e o .pdf mais recente está disponível para download on-line em http://www.ibm.com/software/data/db2/udb/winos2unix/support. As informações nessas notas são complementares à referência atualizada. Toda a documentação de atualização está também disponível em CD. Esse CD pode ser solicitado através do serviço do DB2 utilizando o PTF número U478862. Informações sobre como entrar em contato com o Serviço DB2 estão disponíveis no endereço http://www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/help.d2w/report. ------------------------------------------------------------------------ 43.2 Ativando as Novas Funções e os Procedimentos A Versão 7 dos FixPaks entrega novas funções escalares incorporadas à SQL. Consulte as atualizações da SQL Reference 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 criados antes da execução desse comando utilizam 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 DB2MQ), consulte a seção MQSeries. ------------------------------------------------------------------------ 43.3 SET SERVER OPTION - Erro da Documentação A seção Notas para a instrução SET SERVER OPTION contém informações destorcidas. A nota atual é a seguinte: * SET SERVER OPTION atualmente suporta apenas as opções password, fold_id e fold_pw do servidor. Essa instrução não é verdadeira. SET SERVER OPTION suporta todas as opções do servidor, inclusive as opções do servidor para wrappers não fornecidos pela IBM. A nota deve ser ignorada. ------------------------------------------------------------------------ 43.4 Correções das Informações de Cadeia e Cláusula para Contêiner CREATE TABLESPACE Os recursos remotos (como unidades redirecionadas de LAN ou sistemas de arquivos montados por NFS) são atualmente suportados apenas quando utilizados o NEC iStorage S4100 e S2100, o Network Appliance Filers, o iSCSI da IBM ou o NAS (Network Attached Storage) da IBM. Essa é uma correção da documentação atual, que indica que os recursos remotos não são suportados. ------------------------------------------------------------------------ 43.5 Correções das Informações CREATE TABLESPACE EXTENTSIZE A instrução CREATE TABLESPACE não pode aceitar o valor EXTENTSIZE especificado em gigabytes. ------------------------------------------------------------------------ 43.6 GRANT (Privilégios de Tabela, Exibição ou Pseudônimo) - Erro da Documentação A seção Notas para a instrução GRANT (Privilégios de Tabela, Exibição ou Pseudônimo) contém um item destorcido. A nota atual é a seguinte: * Os privilégios DELETE, INSERT, SELECT e UPDATE não foram definidos para pseudônimos, já que as operações em pseudônimos dependem de privilégios do ID de autorização utilizado na origem de dados quando a instrução que faz referência ao pseudônimo é processada. Esse texto deve ser ignorado. O texto restante da seção está preciso sem ele. ------------------------------------------------------------------------ 43.7 Informações do MQSeries 43.7.1 Funções Escalares 43.7.1.1 MQPUBLISH >>-MQPUBLISH--(-------------------------------------------------> >--+---------------------------------------------+--msg-data----> '-publisher-service--,--+-------------------+-' '-service-policy--,-' >--+---------------------------------+--)---------------------->< '-,--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 é DB2MQ. 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 mal-sucedida. publisher-service Uma cadeia que contém o destino lógico do MQSeries, para 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 é de 48 bytes. 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 a publicação 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 é de 48 bytes. msg-data Uma expressão de cadeia que contém os dados a serem enviados através do MQSeries. O tamanho máximo se a cadeia do tipo VARCHAR for de 4000 bytes. Se a cadeia for um CLOB, ela poderá ter até 1 MB de tamanho. 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 é de 40 bytes. Vários tópicos podem ser especificados em uma cadeia (até 40 caracteres). Cada tópico deve ser separado por 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 essa 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 é de 24 bytes. Exemplos Exemplo 1: Este exemplo publica a cadeia "Testando 123" para o serviço de publicação 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 serviço de publicação "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 serviço de publicação "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 serviço de publicação "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. 43.7.1.2 MQREADCLOB >>-MQREADCLOB--(--+----------------------------------------+----> '-receive-service--+-------------------+-' '-,--service-policy-' >--)----------------------------------------------------------->< O esquema é DB2MQ. A função MQREADCLOB 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 essa 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 CLOB com comprimento máximo de 1 MB contendo 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 é de 48 bytes. 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 a publicação 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 é de 48 bytes. 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 MQREADCLOB() 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 MQREADCLOB('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 MQREADCLOB('MYSERVICE','MYPOLICY') Todos esses exemplos retornam o conteúdo da mensagem como um CLOB com um tamanho máximo de 1 MB, se bem-sucedidos. Se nenhuma mensagem estiver disponível, um NULL será retornado. 43.7.1.3 MQRECEIVECLOB >>-MQRECEIVECLOB------------------------------------------------> >--(--+----------------------------------------------------------+--)->< '-receive-service--+-------------------------------------+-' '-,--service-policy--+--------------+-' '-,--correl-id-' O esquema é DB2MQ. A função MQRECEIVECLOB retorna uma mensagem da localização do MQSeries especificada por 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 CLOB com comprimento máximo de 1 MB contendo 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 é de 48 bytes. service-policy Uma cadeia que contém o MQSeries AMI Service Policy a ser utilizado no tratamento dessa mensagem. Se especificado, o service-policy deverá se referir a um Policy definido no arquivo de repositório AMT.XML 1 . Se service-policy não for especificado, o DB2.DEFAULT.POLICY padrão será utilizado. O tamanho máximo de service-policy é de 48 bytes. 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á utilizado. O tamanho máximo de correl-id é de 24 bytes. 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 MQRECEIVECLOB() 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 MQRECEIVECLOB('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 MQRECEIVECLOB('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 MQRECEIVECLOB('MYSERVICE',MYPOLICY','1234') Todos esses exemplos retornam o conteúdo da mensagem como um CLOB com um tamanho máximo de 1 MB, se bem-sucedidos. Se nenhuma mensagem estiver disponível, um NULL será retornado. 43.7.1.4 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 é DB2MQ. 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 será de 4000 bytes se os dados forem do tipo VARCHAR e de 1 MB se os dados forem do tipo CLOB. send-service Uma cadeia que contém o destino lógico do MQSeries, para o qual 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 a publicação 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 é de 48 bytes. 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 a publicação 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 é de 48 bytes. correl-id Uma cadeia opcional que contém um identificador de correlação associado a essa 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 é de 24 bytes. 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", com o 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. 43.7.2 Funções da Tabela 43.7.2.1 MQREADALLCLOB >>-MQREADALLCLOB--(---------------------------------------------> >--+----------------------------------------+--+----------+-----> '-receive-service--+-------------------+-' '-num-rows-' '-,--service-policy-' >--)----------------------------------------------------------->< O esquema é DB2MQ. A função MQREADALLCLOB retorna uma tabela contendo as mensagens e os metadados de mensagens da localização do MQSeries especificada por receive-service, utilizando a qualidade da política de serviço service-policy. Executar essa operação não remove as mensagens da fila associadas ao receive-service. Se num-rows for especificado, um máximo de num-rows mensagens será retornado. Se num-rows não for especificado, todas as mensagens disponíveis serão retornadas. A tabela retornada contém as seguintes colunas: * MSG - uma coluna CLOB que contém o conteúdo da mensagem do MQSeries. * CORRELID - uma coluna VARCHAR(24) que mantém um ID de correlação utilizado para relacionar mensagens. * TOPIC - uma coluna VARCHAR(40) que mantém o tópico com que a mensagem foi publicada, se disponível. * QNAME - uma coluna VARCHAR(48) que mantém o nome da fila onde a mensagem foi recebida. * MSGID - uma coluna CHAR(24) que mantém o identificador exclusivo do MQSeries para esta mensagem. * MSGFORMAT - uma coluna VARCHAR(8) que mantém o formato da mensagem, conforme definido pelo MQSeries. As cadeias típicas têm um formato MQSTR. receive-service Uma cadeia que contém o destino lógico do MQSeries a partir do qual a mensagem é lida. Se especificada, o receive-service deverá se referir 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 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 é de 48 bytes. service-policy Uma cadeia que contém o MQSeries AMI Service Policy utilizado no tratamento dessa mensagem. Se especificado, o service-policy refere-se 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 a publicação 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 é de 48 bytes. num-rows Um inteiro positivo que contém o número máximo de mensagens a ser retornado pela função. Exemplos: Exemplo 1: Este exemplo recebe todas as mensagens da fila especificadas pelo serviço padrão (DB2.DEFAULT.SERVICE), utilizando a política padrão (DB2.DEFAULT.POLICY). As mensagens e todos os metadados são retornados como uma tabela. SELECT * Tabela FROM (MQREADALLCLOB()) T Exemplo 2: Este exemplo recebe todas as mensagens da cabeça da fila especificada pelo serviço MYSERVICE, utilizando a política padrão (DB2.DEFAULT.POLICY). Apenas as colunas MSG e CORRELID são retornadas. SELECT T.MSG, T.CORRELID Tabela FROM (MQREADALLCLOB('MYSERVICE')) T Exemplo 3: Este exemplo lê a cabeça da fila especificada pelo serviço padrão (DB2.DEFAULT.SERVICE), utilizando a política padrão (DB2.DEFAULT.POLICY). Apenas as mensagens com um CORRELID de '1234' são retornadas. Todas as colunas são retornadas. SELECT * Tabela FROM (MQREADALLCLOB()) T WHERE T.CORRELID = '1234' Exemplo 4: Este exemplo recebe as 10 primeiras mensagens da cabeça da fila especificada pelo serviço padrão (DB2.DEFAULT.SERVICE), utilizando a política padrão (DB2.DEFAULT.POLICY). Todas as colunas são retornadas. SELECT * Tabela FROM (MQREADALLCLOB(10)) T 43.7.2.2 MQRECEIVEALLCLOB >>-MQRECEIVEALLCLOB--(------------------------------------------> >--+----------------------------------------------------------+--> '-receive-service--+-------------------------------------+-' '-,--service-policy--+--------------+-' '-,--correl-id-' >--+-----------------+--)-------------------------------------->< '-+---+--num-rows-' '-,-' O esquema é DB2MQ. A função MQRECEIVEALLCLOB retorna uma tabela contendo as mensagens e os metadados de mensagens da localização do MQSeries especificada por receive-service, utilizando a qualidade da política de serviço service-policy. Executar essa operação remove as mensagens da fila associadas ao receive-service. Se um correl-id for especificado, apenas essas mensagens com um identificador de correlação correspondente serão retornadas. Se correl-id não for especificado, a mensagem na cabeça da fila será retornada. Se num-rows for especificado, um máximo de num-rows mensagens será retornado. Se num-rows não for especificado, todas as mensagens disponíveis serão retornadas. A tabela retornada contém as seguintes colunas: * MSG - uma coluna CLOB que contém o conteúdo da mensagem do MQSeries. * CORRELID - uma coluna VARCHAR(24) que mantém um ID de correlação utilizado para relacionar mensagens. * TOPIC - uma coluna VARCHAR(40) que mantém o tópico com que a mensagem foi publicada, se disponível. * QNAME - uma coluna VARCHAR(48) que mantém o nome da fila na qual a mensagem foi recebida. * MSGID - uma coluna CHAR(24) que mantém o identificador exclusivo do MQSeries para esta mensagem. * MSGFORMAT - uma coluna VARCHAR(8) que mantém o formato da mensagem, conforme definido pelo MQSeries. As cadeias típicas têm um formato MQSTR. receive-service Uma cadeia que contém o destino lógico do MQSeries do qual a mensagem deve ser recebida. Se especificada, o receive-service deverá se referir 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 a publicaçã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 é de 48 bytes. service-policy Uma cadeia que contém o MQSeries AMI Service Policy utilizado no tratamento dessa mensagem. Se especificado, o service-policy refere-se 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 a publicação 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 é de 48 bytes. correl-id Uma cadeia opcional que contém um identificador de correlação associado a essa 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 é de 24 bytes. num-rows Um inteiro positivo que contém o número máximo de mensagens a ser retornado pela função. Exemplos: Exemplo 1: Este exemplo recebe todas as mensagens da fila especificadas pelo serviço padrão (DB2.DEFAULT.SERVICE), utilizando a política padrão (DB2.DEFAULT.POLICY). As mensagens e todos os metadados são retornados como uma tabela. SELECT * Tabela FROM (MQRECEIVEALLCLOB()) T Exemplo 2: Este exemplo recebe todas as mensagens da cabeça da fila especificada pelo serviço MYSERVICE, utilizando a política padrão (DB2.DEFAULT.POLICY). Apenas as colunas MSG e CORRELID são retornadas. SELECT T.MSG, T.CORRELID Tabela FROM (MQRECEIVEALLCLOB('MYSERVICE')) T Exemplo 3: Este exemplo recebe todas as mensagens na cabeça da fila especificada pelo serviço "MYSERVICE", utilizando a política "MYPOLICY". Apenas as mensagens com um CORRELID de '1234' são retornadas. Apenas as colunas MSG e CORRELID são retornadas. SELECT T.MSG, T.CORRELID Tabela FROM (MQRECEIVEALLCLOB('MYSERVICE','MYPOLICY','1234')) T Exemplo 4: Este exemplo recebe as 10 primeiras mensagens da cabeça da fila especificada pelo serviço padrão (DB2.DEFAULT.SERVICE), utilizando a política padrão (DB2.DEFAULT.POLICY). Todas as colunas são retornadas. SELECT * Tabela FROM (MQRECEIVEALLCLOB(10)) T 43.7.3 Dados CLOB Agora São Suportados nas Funções do MQSeries As funções do MQSeries (as definidas no esquema DB2MQ) incluem agora a funcionalidade que permite que elas sejam utilizadas com dados CLOB além dos dados VARCHAR. Em alguns casos, existe uma nova função para tratar do tipo de dados CLOB, em outros, a função já existente trata dos dados CLOB e dados VARCHAR. Independente do caso, a sintaxe da função CLOB é idêntica à de sua VARCHAR equivalente. As funções que suportam a utilização de dados CLOB e de suas funções VARCHAR equivalentes são listadas na seguinte tabela: Tabela 18. Funções do MQSeries que suportam o tipo de dados CLOB Função a ser utilizada para dados Função a ser utilizada para dados VARCHAR CLOB MQPUBLISH MQPUBLISH MQREAD MQREADCLOB MQRECEIVE MQRECEIVECLOB MQSEND MQSEND MQREADALL MQREADALLCLOB MQRECEIVEALL MQRECEIVEALLCLOB Para obter informações sobre como ativar as funções do MQSeries (aquelas definidas no esquema DB2MQ), consulte a seção MQSeries. ------------------------------------------------------------------------ 43.8 Informações de Tipos de Dados 43.8.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 essas funções duplicadas existirem, a opção de qual será chamada é determinada por um algoritmo de duas passagens. A primeira passagem tenta localizar uma correspondência utilizando o mesmo algoritmo que é utilizado 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 43.8.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 VARCHAR ou VARGRAPHIC em um tipo DT distinto com um tipo de dados de origem CHAR ou GRAPHIC. A seguir, atualizações para a "Tabela 6. Conversões Suportadas entre Tipos de Dados Internos". Somente as linhas afetadas da tabela são incluídas. Tabela 19. Conversões suportadas entre Tipos de Dados Internos 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 Y Y Y Y Y1 Y1 - - VARCHAR Y Y Y Y Y1 Y1 - - LONGVARCHAR Y Y Y Y - - Y1 Y1 CLOB Y Y Y Y - - - Y1 GRAPHIC Y1 Y1 - - Y Y Y Y VARGRAPHIC Y1 Y1 - - Y Y Y Y LONGVARGRAPHIC - - Y1 Y1 Y Y Y Y DBCLOB - - Y2 Y1 Y Y Y Y 1 A conversão é suportada somente para bancos de dados Unicode. 2 A conversão é suportada somente para bancos de dados Unicode. Apenas a conversão explícita é suportada. 43.8.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, atualizações para a "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 foram incluídas: Data Inteiro Número Ponto Cadeia de Cadeia e Cadeia Operandos Binário Decimal Flutuante Caracteres Gráfica Data Tempo Hora Biná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. 43.8.3.1 Atribuições de Cadeia Atribuição de Armazenamento O último parágrafo desta subseção foi modificado, como a seguir: 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 preenchimento é sempre um espaço branco para as colunas definidas com o atributo FOR BIT DATA. Atribuição de Recuperação O terceiro parágrafo desta subseção foi modificado, como a seguir: 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 preenchimento é 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' é utilizado para preencher as cadeias GRAPHIC. Regras de Conversão para Atribuições de Cadeia O seguinte parágrafo foi incluído no final desta 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 desta subseção foi modificado, como a seguir: 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. 43.8.3.2 Comparações de Cadeias Regras de Conversão para Comparação Esta subseção foi modificada desta forma: Quando duas cadeias são comparadas, uma delas é convertida primeiro, se necessário, para o esquema de codificação e página de códigos da outra cadeia. Para obter detalhes, consulte a seção "Regras para Conversões de Cadeias" do "Capítulo 3. Elementos de Linguagem" na seção SQL Reference. 43.8.4 Regras para Tipos de Dados de Resultado 43.8.4.1 Cadeias de Caracteres e Gráficas em um Banco de Dados Unicode Esta é 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) 43.8.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ódigos. * Se ambas as páginas de código forem BIT DATA (página de códigos 0), a página de códigos de resultado será BIT DATA. * Em um banco de dados Unicode, se uma página de códigos denotar dados em um esquema de codificação diferente da outra página de códigos, 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ódigos de resultado será determinada pela Tabela 8 da seção "Regras para Conversões de Cadeias" do "Capítulo 3. Elementos de Linguagem" na seção SQL Reference. Uma entrada "primeiro" na tabela significa que a página de códigos do primeiro operando está selecionada e uma entrada "segundo" significa que a página de códigos do segundo operando está selecionada. 1 Em um banco de dados não-Unicode, a conversão entre esquemas de codificação diferentes não é suportada. 43.8.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. 43.8.6.1 Com o Operador de Concatenação O seguinte foi incluído no final desta subseção: Em um banco de dados Unicode, a concatenação que envolve operandos da cadeia de caracteres e da cadeia gráfica converterá 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. 43.8.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. ------------------------------------------------------------------------ 43.9 Informações de Unicode 43.9.1 Funções Escalares e Unicode No banco de dados Unicode, todas as funções escalar que aceitam um caractere ou uma cadeia gráfica serão aceitas em qualquer tipo de cadeia para que a conversão seja suportada. ------------------------------------------------------------------------ 43.10 Tipo GRAPHIC e Compatibilidade de DATE/TIME/TIMESTAMP Nas seções a seguir, referências a valores de data e hora com representações de "cadeia de caracteres" foram alteradas para representações de "cadeia". O DB2 agora suporta, apenas para bancos de dados Unicode, representações de "cadeia gráfica" de valores de data e hora. 43.10.1 Representações de Cadeia de Valores de Data e Hora Valores cujos tipos de dados são DATE, TIME ou TIMESTAMP são representados em um formato interno que é transparente para o usuário. Os valores de data, hora e data e hora podem, no entanto, também ser representados por cadeias. Isso é útil, porque não há constantes ou variáveis cujos tipos de dados são DATE, TIME ou TIMESTAMP. Antes de poder ser recuperado, um valor de data e hora deve ser atribuído a uma variável de cadeia. A função CHAR ou a função GRAPHIC (apenas para bancos de dados Unicode) podem ser utilizadas para alterar um determinado valor de uma representação de cadeia. A representação da cadeia é geralmente o formato padrão dos valores de data e hora associados ao código do país/região do banco de dados, a não ser que substituído por especificação da opção DATETIME quando o programa é pré-compilado ou ligado ao banco de dados. Não importando seu comprimento, uma cadeia de objeto grande, um valor LONG VARCHAR ou um valor LONG VARGRAPHIC não pode ser utilizado para representar um valor de data e hora (SQLSTATE 42884). Quando uma representação de cadeia válida de um valor de data e hora for utilizado em uma operação com um valor de data e hora interno, a representação da cadeia é convertida para o formato interno do valor da data, da hora ou da data e hora antes da operação ser executada. Cadeias de data, de hora e de data e hora devem conter apenas caracteres e dígitos. 43.10.1.1 Cadeias de Data, Cadeias de Hora e Cadeias de Data e Hora As definições desses termos foram levemente alteradas. As referências às representações de "cadeia de caracteres" foram alteradas para representações de "cadeia". 43.10.2 Conversão entre Tipos de Dados DATE, TIME e TIMESTAMP agora podem ser convertidos para GRAPHIC e VARGRAPHIC. GRAPHIC e VARGRAPHIC agora podem ser convertidos para DATE, TIME e TIMESTAMP. O suporte à cadeia gráfica está disponível apenas para bancos de dados Unicode. 43.10.3 Atribuições e Comparações Agora há compatibilidade de tipo de dados para atribuições e comparações entre cadeias gráficas e valores DATE, TIME e TIMESTAMP. O suporte à cadeia gráfica está disponível apenas para bancos de dados Unicode. 43.10.4 Atribuições de Data e Hora A regra básica para atribuições de data e hora é que um valor DATE, TIME ou TIMESTAMP pode ser atribuído apenas a uma coluna com tipo de dados correspondente (DATE, TIME ou TIMESTAMP) ou a uma variável de cadeia ou coluna de cadeia com comprimento variável. A atribuição não deve ser a uma variável ou coluna LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB ou BLOB. Quando um valor de data e hora é atribuído a uma variável de cadeia ou a uma coluna de cadeia, a conversão para uma representação de cadeia é automática. Zeros à esquerda não são omitidos de qualquer parte da data, hora ou data e hora. O comprimento requerido do destino variará, dependendo do formato da representação da cadeia. Se o comprimento do destino for maior que o requerido e o destino for uma cadeia de comprimento fixo, ele será preenchido à direita com espaços em branco. Se o comprimento do destino for menor que o requerido, o resultado dependerá do tipo de valor de data e hora envolvido e do tipo de destino. Quando o destino é uma variável do host, a seguinte regra se aplica: * DATE: Se o comprimento da variável for menor do que 10 caracteres, ocorre um erro. * TIME: Se o formato USA for utilizado, o comprimento da variável não deve ter menos do que 8 caracteres; em outros formatos, o comprimento não deve ter menos de 5 caracteres. Se os formatos ISO ou JIS forem utilizados e se o comprimento da variável do host tiver menos de 8 caracteres, a parte de segundos da hora será omitida do resultado e atribuída à variável do indicador, se fornecida. O campo SQLWARN1 de SQLCA é definido para indicar a omissão. * TIMESTAMP: Se a variável do host tiver menos do que 19 caracteres, ocorre um erro. Se o comprimento tiver menos do que 26 caracteres, mas for maior ou igual a 19 caracteres, os dígitos seguintes à parte de microssegundos do valor serão omitidos. O campo SQLWARN1 de SQLCA é definido para indicar a omissão. 43.10.5 DATE >>- DATE--(--expression--)---------------------------------->< O esquema é SYSIBM. A função DATE retorna uma data de um valor. O argumento deve ser uma data, uma data e hora, um número positivo menor ou igual a 3.652.059, uma representação de cadeia válida de uma data ou data e hora ou uma cadeia de comprimento 7 que não seja LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB ou BLOB. Apenas bancos de dados Unicode suportam um argumento que seja uma representação de cadeia gráfica de uma data ou uma data e hora. Se o argumento for uma cadeia de comprimento 7, ele deve representar uma data válida no formato aaaannn, em que aaaa são dígitos que denotam um ano e nnn são dígitos entre 001 e 366, denotando um dia do ano. O resultado da função é uma data. Se o argumento puder ser nulo, o resultado poderá ser nulo; se o argumento for nulo, o resultado será o valor nulo. As outras regras dependem do tipo de dados do argumento: * Se o argumento for uma data, uma data e hora ou uma representação de cadeia válida de uma data ou data e hora: o O resultado será a parte da data do valor. * Se o argumento for um número: o O resultado será a data que é n-1 dias depois de 1 de janeiro de 0001, em que n é a parte integral do número. * Se o argumento for uma cadeia com comprimento igual a 7: o O resultado será a data representada pela cadeia. Exemplos: Suponha que a coluna RECEIVED (data e hora) tenha um valor de intervalo equivalente a '1988-12-25-17.12.30.000000'. * Esse exemplo resulta em uma representação interna igual a '1988-12-25'. DATE(RECEIVED) * Esse exemplo resulta em uma representação interna igual a '1988-12-25'. DATE('1988-12-25') * Esse exemplo resulta em uma representação interna igual a '1988-12-25'. DATE('25.12.1988') * Esse exemplo resulta em uma representação interna igual a '0001-02-04'. DATE(35) 43.10.6 GRAPHIC >>-GRAPHIC--(--graphic-expression--+------------+--)----------->< '-,--integer-' O esquema é SYSIBM. A função GRAPHIC retorna uma representação GRAPHIC de um tipo de cadeia gráfica ou uma representação GRAPHIC de um tipo de data e hora. expressão gráfica Uma expressão que retorna um valor que é uma cadeia gráfica. número inteiro Um valor de número inteiro que especifica o atributo de comprimento do tipo de dados GRAPHIC. O valor deve estar entre 1 e 127. Se o número inteiro não for especificado, o comprimento do resultado será igual ao comprimento do primeiro argumento. O resultado da função e um GRAPHIC. Se o argumento puder ser nulo, o resultado poderá ser nulo; se o argumento for nulo, o resultado será o valor nulo. Data e Hora para Graphic: >>-GRAPHIC--(--datetime-expression--+--------------+--)-------->< '-,--+-ISO---+-' +-EUA---+ +-EUR---+ +-JIS---+ '-LOCAL-' Data e Hora para Graphic datetime-expression Uma expressão que tem um dos três tipos de dados a seguir data O resultado é a representação da cadeia gráfica da data no formato especificado pelo segundo argumento. O comprimento do resultado é igual a 10. Ocorre um erro se o segundo argumento for especificado e não for um valor válido (SQLSTATE 42703). hora O resultado é a representação da cadeia gráfica da hora no formato especificado pelo segundo argumento. O comprimento do resultado é 8. Ocorre um erro se o segundo argumento for especificado e não for um valor válido (SQLSTATE 42703). timestamp O segundo argumento não se aplica e não deve ser especificado (SQLSTATE 42815). O resultado é a representação da cadeia gráfica de data e hora. O comprimento do resultado é igual a 26. A página de códigos é a página de códigos do banco de dados do servidor de aplicativos. 43.10.7 TIME >>- TIME--(--expression--)----------------------------------->< O esquema é SYSIBM. A função TIME retorna uma hora de um valor. O argumento deve ser uma hora, uma data e hora ou uma representação de cadeia válida de uma hora ou data e hora que não seja LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB ou BLOB. Apenas bancos de dados Unicode suportam um argumento que seja uma representação de cadeia gráfica de uma hora ou de uma data e hora. O resultado da função é uma hora. Se o argumento puder ser nulo, o resultado poderá ser nulo; se o argumento for nulo, o resultado será o valor nulo. As outras regras dependem do tipo de dados do argumento: * Se o argumento for uma hora: o O resultado será a hora. * Se o argumento for uma data e hora: o O resultado será a parte da hora da data e hora. * Se o argumento for uma cadeia: o O resultado será a hora representada pela cadeia. Exemplo: * Selecione todas as notas da tabela de exemplo IN_TRAY que foram recebidas pelo menos uma hora mais tarde no dia (qualquer dia) do que a hora atual. SELECT * FROM IN_TRAY WHERE TIME(RECEIVED) >= CURRENT TIME + 1 HOUR 43.10.8 TIMESTAMP >>- TIMESTAMP--(--expression--+-------------+--)------------->< '-,expression-' O esquema é SYSIBM. A função TIMESTAMP retorna uma data e hora de um valor ou de um par de valores. Apenas bancos de dados Unicode suportam um argumento que seja uma representação de cadeia gráfica de uma data, de uma hora ou de uma data e hora. As regras dos argumentos depende de se o segundo argumento é especificado. * Se apenas um argumento for especificado: o Deve ser uma data e hora, uma representação de cadeia válida de uma data e hora ou uma cadeia de comprimento 14 que não seja LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB ou BLOB. Uma cadeia de comprimento 14 deve ser uma cadeia de dígitos que representa uma data e uma hora válidas no formato aaaaxxddhhmmss, em que aaaa é o ano, xx é o mês, dd é o dia, hh é a hora, mm é o minuto e ss é o segundo. * Se os dois argumentos forem especificados: o O primeiro argumento deve ser uma data ou uma representação de cadeia válida de uma data e o segundo argumento deve ser uma hora ou uma representação de cadeia válida de uma hora. O resultado da função é uma data e hora. Se qualquer um dos dois argumentos puder ser nulo, o resultado poderá ser nulo; se qualquer um dos dois argumentos for nulo, o resultado será o valor nulo. As outras regras dependem de se o segundo argumento é especificado: * Se os dois argumentos forem especificados: o O resultado será uma data e hora com a data especificada pelo primeiro argumento e a hora especificada pelo segundo argumento. A parte de microssegundos da data e hora é igual a zero. * Se apenas um argumento for especificado e for uma data e hora: o O resultado será a data e hora. * Se apenas um argumento for especificado e for uma cadeia: o O resultado será a data e hora representada pela cadeia. Se o argumento for uma cadeia de comprimento 14, a data e hora terá uma parte de microssegundos igual a zero. Exemplo: * Suponha que a coluna START_DATE (data) tenha um valor equivalente a 1988-12-25 e a coluna START_TIME (hora) tenha uma valor equivalente a 17.12.30. TIMESTAMP(START_DATE, START_TIME) Retorna o valor '1988-12-25-17.12.30.000000'. 43.10.9 VARGRAPHIC Caractere para Vargraphic: >>-VARGRAPHIC--(--character-string-expression--)--------------->< Data e Hora para Vargraphic: >>-VARGRAPHIC--(--datetime-expression--)----------------------->< Gráfico para Vargraphic: >>-VARGRAPHIC--(--graphic-string-expression--+------------+-----> '-,--integer-' >--)----------------------------------------------------------->< O esquema é SYSIBM. A função VARGRAPHIC retorna uma representação de cadeia gráfica de um: * valor de cadeia de caracteres, convertendo caracteres de byte simples para caracteres de byte duplo, * valor de data e hora (suportado apenas em bancos de dados Unicode) * valor de cadeia gráfica, se o primeiro argumento for qualquer tipo de cadeia gráfica. O resultado da função é uma cadeia gráfica de comprimento variável (tipo de dados VARGRAPHIC). Se o primeiro argumento puder ser nulo, o resultado poderá ser nulo; se o primeiro argumento for nulo, o resultado será o valor nulo. Caractere para Vargraphic character-string-expression Uma expressão cujo valor deve ser de um tipo de dados de cadeia de caracteres diferente de LONG VARCHAR ou CLOB e cujo comprimento máximo não deve ser maior que 16.336 bytes. O atributo de comprimento do resultado é igual ao atributo do comprimento do argumento. Deixe S denotar o valor da character-string-expression. Cada caractere de byte simples de S é convertido à sua representação de byte duplo equivalente ou ao caractere de substituição de byte duplo no resultado; cada caractere de byte duplo de S é mapeado 'como se encontra'. Se o byte simples de um caractere de byte duplo aparecer como o último byte de S, ele é convertido para o caractere de substituição de byte duplo. A ordem seqüencial dos caracteres em S é preservada. Seguem considerações adicionais para a conversão. * Para um banco de dados Unicode, essa função converte a cadeia de caracteres da página de códigos do operando para UCS-2. Todos os caracteres do operando, inclusive os caracteres DBCS, são convertidos. Se o segundo argumento é fornecido, ele especifica o comprimento desejado (número de caracteres UCS-2) da cadeia UCS-2 resultante. * A conversão para pontos de código de byte duplo pela função VARGRAPHIC é baseada na página de códigos do operando. * Os caracteres de byte duplo do operando não são convertidos. Todos os outros caracteres são convertidos para sua representação correspondente em byte duplo. Se não houver uma representação de byte duplo correspondente, o caractere de substituição de byte duplo para a página de códigos será utilizado. * Nenhum aviso ou código de erro é gerado se um ou mais caracteres de substituição de byte duplo forem retornados no resultado. Data e Hora para Vargraphic datetime-expression Uma expressão cujo valor deve ser do tipo de dados DATE, TIME ou TIMESTAMP. Gráfico para Vargraphic graphic-string-expression Uma expressão que retorna um valor que é uma cadeia gráfica. integer O atributo de comprimento para a cadeia gráfica de comprimento variável resultante. O valor deve estar entre 0 e 16.336. Se esse argumento não for especificado, o comprimento do resultado será o mesmo que o comprimento do argumento. Se o comprimento da graphic-string-expression for maior que o atributo de comprimento do resultado, ocorrerá uma truncagem e um aviso será retornado (SQLSTATE 01004), a não ser que os caracteres truncados estivessem todos em branco e a graphic-string-expression não fosse uma cadeia longa (LONG VARGRAPHIC ou DBCLOB). ------------------------------------------------------------------------ 43.11 Chaves de Índice Maiores para Bancos de Dados Unicode 43.11.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. 43.11.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. 43.11.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. ------------------------------------------------------------------------ 43.12 Seção Notas da Instrução ALLOCATE CURSOR Incorreta Os dois itens da seção Notas da Instrução ALLOCATE CURSOR foram impressas com erro. Desconsidere as informações contidas nesses itens. ------------------------------------------------------------------------ 43.13 Opções Adicionais na Instrução GET DIAGNOSTICS Instrução GET DIAGNOSTICS A instrução GET DIAGNOSTICS é utilizada para obter informações sobre a instrução SQL executada previamente. A sintaxe dessa instrução foi atualizada como segue. Sintaxe do Comando >>-GET DIAGNOSTICS----------------------------------------------> >--+-SQL-variable-name--=--+-ROW_COUNT-----+-+----------------->< | '-RETURN_STATUS-' | '-| condition-information |---------------' condition-information: |--EXCEPTION--1-------------------------------------------------> .-,------------------------------------------. V | >----SQL-variable-name--=--+-MESSAGE_TEXT-----+-+---------------| '-DB2_TOKEN_STRING-' Parâmetros do Comando SQL-variable-name Identifica a variável que é o alvo da atribuição. Se ROW_COUNT ou RETURN_STATUS forem especificadas, a variável deve ser uma variável com um número inteiro. Caso contrário, a variável deve ser CHAR ou VARCHAR. Variáveis SQL podem ser definidas em uma instrução composta. ROW_COUNT Identifica o número de filas associadas à instrução SQL anterior. Se a instrução SQL anterior é uma instrução DELETE, INSERT ou UPDATE, ROW_COUNT identifica o número de filas excluídas, inseridas ou atualizadas pela instrução, exceto filas afetadas por disparos ou limitações de integridade referencial. Se a instrução anterior é uma instrução PREPARE, ROW_COUNT identifica o número estimado de filas resultantes na instrução preparada. RETURN_STATUS Identifica o valor de status retornado do procedimento armazenado associado à instrução SQL anteriormente executada, desde que a instrução tenha sido uma instrução CALL chamando um procedimento que retorna um status. Se a instrução anterior não era desse tipo, o valor retornado não tem significado e pode ser qualquer número inteiro. condition-information Especifica que as informações de erro ou de aviso da instrução SQL anteriormente executada devem ser retornadas. Se as informações sobre um erro forem necessárias, a instrução GET DIAGNOSTICS deve ser a primeira instrução especificada na rotina de tratamento que trata o erro. Se as informações sobre um aviso forem necessárias e se a rotina de tratamento assumir o controle da condição de aviso, a instrução GET DIAGNOSTICS deverá ser a primeira instrução especificada nessa rotina de tratamento. Se a rotina de tratamento não assumir controle da condição de aviso, a instrução GET DIAGNOSTICS deverá ser a próxima instrução executada. MESSAGE_TEXT Identifica qualquer texto de mensagem de erro ou de aviso retornado de uma instrução SQL anteriormente executada. O texto da mensagem é retornado na linguagem do servidor de banco de dados no qual a instrução é processada. Se a instrução concluir com um SQLCODE igual a zero, uma cadeia vazia ou espaços em branco são retornados. DB2_TOKEN_STRING Identifica quaisquer tokens de mensagem de erro e de aviso retornados da instrução SQL anteriormente executada. Se a instrução concluir com um SQLCODE igual a zero ou se o SQLCODE não tiver tokens, uma cadeia vazia ou espaços em branco são retornados. ------------------------------------------------------------------------ 43.14 ORDER BY em Sub-seleções DB2 agora suporta ORDER BY em sub-seleções e seleções completas. 43.14.1 fullselect O que se segue é um diagrama de sintaxe parcial do fullselect modificado, exibindo a localização da order-by-clause. >>-+-subselect---------+----------------------------------------> +-(fullselect)------+ '-| values-clause |-' .----------------------------------------------. V | >----+------------------------------------------+-+-------------> '-+-UNION---------+--+-subselect---------+-' +-UNION ALL-----+ +-(fullselect)------+ +-EXCEPT--------+ '-| values-clause |-' +-EXCEPT ALL----+ +-INTERSECT-----+ '-INTERSECT ALL-' >--+-----------------+----------------------------------------->< '-order-by-clause-' Uma seleção completa que contém uma cláusula ORDER BY não pode ser especificada em: * Uma tabela de resumo * A seleção completa mais distante de uma exibição (SQLSTATE 428FJ SQLCODE -20211) Uma cláusula ORDER BY em uma seleção completa não afeta a ordem das filas retornadas por uma consulta. Uma cláusula ORDER BY somente afeta a ordem das filas retornadas se for especificado na seleção completa mais distante. 43.14.2 subselect Segue o diagrama de sintaxe completo da subseleção modificada, mostrando a localização da order-by-clause. >>-select-clause--from-clause--+--------------+-----------------> '-where-clause-' >--+-----------------+--+---------------+-----------------------> '-group-by-clause-' '-having-clause-' >--+-----------------+----------------------------------------->< '-order-by-clause-' As cláusulas de subselect são processadas na seguinte seqüência: 1. cláusula FROM 2. cláusula WHERE 3. cláusula GROUP BY 4. cláusula HAVING 5. cláusula SELECT 6. cláusula ORDER BY Uma subselect que contém uma cláusula ORDER BY não pode ser especificada: * Na seleção completa mais distante de uma exibição * Em uma tabela de resumo * A não ser que a subselect seja incluída entre parênteses Por exemplo, o que se segue não é válido (SQLSTATE 428FJ SQLCODE -20211): SELECT * FROM T1 ORDER BY C1 UNION SELECT * FROM T2 ORDER BY C1 O seguinte exemplo é válido: (SELECT * FROM T1 ORDER BY C1) UNION (SELECT * FROM T2 ORDER BY C1) Uma cláusula ORDER BY em uma subselect não afeta a ordem das filas retornadas por uma consulta. Uma cláusula ORDER BY somente afeta a ordem das filas retornadas se isso for especificado na seleção completa mais distante. 43.14.3 order-by-clause O que se segue é um diagrama de sintaxe completa da order-by-clause modificada. .-,------------------------------. V .-ASC--. | >>-ORDER BY----+-sort-key--+------+---------+-+---------------->< | '-DESC-' | '-ORDER OF--table-designator-' sort-key: |--+-simple-column-name--+--------------------------------------| +-simple-integer------+ '-sort-key-expression-' ORDER OF table-designator Especifica que o mesmo ordenamento utilizado em table-designator deve ser aplicado à tabela de resultados da subselect. Deve haver uma referência de tabela idêntica a table-designator na cláusula FROM da subselect que especifica essa cláusula (SQLSTATE 42703). A subselect (ou seleção completa) correspondente ao table-designator especificado deve incluir uma cláusula ORDER BY que é dependente dos dados (SQLSTATE 428FI SQLCODE -20210). O ordenamento que é aplicado é o mesmo como se as colunas da cláusula ORDER BY na subselect (ou seleção completa) embutida fossem incluídas na subselect (ou seleção completa) exterior e essas colunas fossem especificadas em lugar da cláusula ORDER OF. Para obter mais informações sobre designadores de tabela, consulte "Qualificadores de Nome de Coluna para Evitar Ambigüidade" em SQL Reference. Observe que essa forma não é permitida em uma seleção completa (além da forma degenerativa de uma seleção completa). Por exemplo, o que se segue não é válido: (SELECT C1 FROM T1 ORDER BY C1) UNION SELECT C1 FROM T2 ORDER BY ORDER OF T1 O seguinte exemplo é válido: SELECT C1 FROM (SELECT C1 FROM T1 UNION SELECT C1 FROM T2 ORDER BY C1 ) AS UTABLE ORDER BY ORDER OF UTABLE 43.14.4 select-statement O que se segue é um diagrama de sintaxe completa da select-statement modificada: >>-+-----------------------------------+--fullselect------------> | .-,-----------------------. | | V | | '-WITH----common-table-expression-+-' >--fetch-first-clause--*--+--------------------+----------------> +-read-only-clause---+ | (1) | '-update-clause------' >--*--+---------------------+--*--+--------------+------------->< '-optimize-for-clause-' '-WITH--+-RR-+-' +-RS-+ +-CS-+ '-UR-' Notas: 1. A update-clause não pode ser especificada se a seleção completa contiver uma order-by-clause. instrução SELECT INTO Sintaxe .-,-------------. V | >>-select-clause--INTO----host-variable-+--from-clause----------> >--+--------------+--+-----------------+--+---------------+-----> '-where-clause-' '-group-by-clause-' '-having-clause-' >--+-----------------+--+--------------+----------------------->< '-order-by-clause-' '-WITH--+-RR-+-' +-RS-+ +-CS-+ '-UR-' 43.14.5 Funções OLAP (window-order-clause) O que se segue é um diagrama de sintaxe parcial para as funções OLAP exibindo a window-order-clause modificada. window-order-clause: .-,--------------------------------------------. V .-| asc option |--. | |--ORDER BY----+-sort-key-expression--+-----------------+-+-+---| | '-| desc option |-' | '-ORDER OF--table-designator---------------' asc option: .-NULLS LAST--. |--ASC--+-------------+-----------------------------------------| '-NULLS FIRST-' desc option: .-NULLS FIRST-. |--DESC--+-------------+----------------------------------------| '-NULLS LAST--' ORDER BY (sort-key-expression,...) Define o ordenamento de filas dentro de uma partição que determina o valor da função OLAP ou o significado dos valores ROW na window-aggregation-group-clause (não define o ordenamento do conjunto de resultados de consulta). sort-key-expression Uma expressão utilizada na definição do ordenamento das filas dentro de uma partição de janela. Cada nome de coluna referido em uma sort-key-expression deve claramente referir-se a uma coluna do conjunto de resultado da subselect, incluindo a função OLAP (SQLSTATE 42702 ou 42703). O comprimento de cada sort-key-expression não deve superar 255 bytes (SQLSTATE 42907). Uma sort-key-expression não pode incluir uma seleção completa scalar (SQLSTATE 42822) ou qualquer função que não seja determinista ou que tenha uma ação externa (SQLSTATE 42845). Essa cláusula é exigida para as funções RANK e DENSE_RANK (SQLSTATE 42601). ASC Utiliza os valores da sort-key-expression em ordem crescente. DESC Utiliza os valores da sort-key-expression em ordem decrescente. NULLS FIRST O ordenamento das janelas considera valores nulos antes de todos os valores não-nulos na seqüência de ordem. NULLS LAST O ordenamento das janelas considera valores nulos depois de todos os valores não-nulos na seqüência de ordem. ORDER OF table-designator Especifica que o mesmo ordenamento utilizado em table-designator deve ser aplicado à tabela de resultados da subselect. Deve haver uma referência de tabela idêntica a table-designator na cláusula FROM da subselect que especifica essa cláusula (SQLSTATE 42703). A subselect (ou seleção completa) correspondente ao table-designator especificado deve incluir uma cláusula ORDER BY que é dependente dos dados (SQLSTATE 428FI SQLCODE -20210). O ordenamento que é aplicado é o mesmo como se as colunas da cláusula ORDER BY na subselect (ou seleção completa) embutida fossem incluídas na subselect (ou seleção completa) exterior e essas colunas fossem especificadas em lugar da cláusula ORDER OF. Para obter mais informações sobre designadores de tabela, consulte "Qualificadores de Nome de Coluna para Evitar Ambigüidade" em SQL Reference. ------------------------------------------------------------------------ Novo Argumento de Entrada para o Procedimento GET_ROUTINE_SAR Esse procedimento agora suporta hide_body_flag, um argumento de entrada do tipo INTEGER que especifica (usando um dos seguintes valores) se um corpo de rotina deve ou não ser oculto quando o texto da rotina é extraído dos catálogos: 0 Deixa o texto de rotina intacto. Esse é o valor padrão. 1 Substitui o corpo de rotina por um corpo vazio quando o texto de rotina é extraído dos catálogos. >>-GET_ROUTINE_SAR----------------------------------------------> >--(--sarblob--,--type--,--routine_name_string--+-------------------+--)->< '-,--hide_body_flag-' ------------------------------------------------------------------------ Autorização Obrigatória para a Instrução SET INTEGRITY Quando essa instrução é utilizada para desligar a verificação de integridade, os privilégios do ID de autorização da instrução devem incluir no mínimo um dos seguintes: * Privilégio CONTROL em: o As tabelas especificadas e o As tabelas de chaves externas descendentes que terão a verificação de integridade desligada pela instrução e o As tabelas de resumo descendentes imediatas que terão a verificação de integridade desligada pela instrução * Autoridade SYSADM ou DBADM * Autoridade LOAD ------------------------------------------------------------------------ Apêndice N. Tabelas de Exceção Na tabela "Estrutura da Coluna de Mensagens da Tabela de Exceção", nas linhas 2 e 6, que descrevem os caracteres que indicam o tipo da primeira e das seguintes violações de limitação encontradas, respectivamente, está faltando uma referência a: 'D' - Violação de Cascata de Exclusão ------------------------------------------------------------------------ Atualizações do Unicode ------------------------------------------------------------------------ 47.1 Introdução O padrão Unicode é um esquema universal de codificação de caracteres para caracteres e texto escritos. Ele define um conjunto de caracteres com muita exatidão da mesma forma que o faz para um pequeno número de codificações. 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. Dois dos esquemas de codificação fornecidos pelo Unicode são UTF-16 e UTF-8. 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ódigos 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ódigos 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 utilizando 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ódigos 1208. É importante que os aplicativos levem em conta os requisitos dos dados conforme eles são convertidos entre a página de códigos 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ódigos original e do caractere usado. 47.1.1 Bancos de Dados e Aplicativos do DB2 Unicode Um DB2 Universal Database para Unix, Windows ou OS/2 criado especificando um conjunto de códigos UTF-8 pode ser utilizado para armazenar dados nos formatos UCS-2 e UTF-8. Tal banco de dados é referido como um banco de dados Unicode. Os dados de caracteres SQL são codificados utilizando o UTF-8 e os dados gráficos SQL são codificados utilizando o UCS-2. Isso significa que os caracteres MBCS, incluindo os caracteres de byte único e de byte duplo, são armazenados em colunas de caracteres, e os caracteres DBCS são armazenados em colunas gráficas. A página de códigos de um aplicativo pode não corresponder à página de códigos 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ódigos 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 1. Conversões de Página de Códigos 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ódigos 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ódigos 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ódigos de aplicativo é suportada somente para bancos de dados Unicode. Outros pontos a considerar ao usar o Unicode: 1. A página de códigos 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ódigos). 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ódigos de aplicativo também usa como padrão a página de códigos local, mas ela pode ser substituída pelo UTF-8 de duas formas: o Definindo a página de códigos 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 de 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. Por exemplo, o comprimento máximo de caracteres para uma coluna CHAR é 254 e o comprimento máximo de caracteres para uma coluna gráfica é 127. Para obter mais informações, consulte a publicação MAX no capítulo "Funções" 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 é opcional para bancos de dados Unicode. Consulte 41.6.2.4, "Literais em Bancos de Dados Unicode" para obter informações adicionais 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 a seção "Guia e 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. 47.1.2 Atualizações de Documentação Estas notas sobre o release incluem atualizações para as seguintes informações sobre como utilizar o Unicode com o DB2 Versão 7.1: * SQL Reference: Capítulo 3. Elementos de Linguagem Capítulo 4. Funções Capítulo 6. Instruções SQL * Guia e Referência da CLI: Capítulo 3. Utilizando Recursos Avançados Apêndice C. DB2 CLI e ODBC * Guia e Referência de Utilitários de Movimentação de Dados, Apêndice C. Formatos de Arquivo do Utilitário de Exportação/Importação/Carregamento Para obter mais informações sobre como utilizar o Unicode com o DB2, consulte a publicação Guia de Administração, apêndice NLS (Suporte a Idioma Nacional): "Suporte ao Unicode no DB2 UDB". ------------------------------------------------------------------------ Conectando aos Sistemas Host Índice Parcial * Guia do Usuário do DB2 Connect o 48.1 Aumentando Taxas de Transferência de Dados do DB2 Connect + 48.1.1 Blocos de Consulta Extra + 48.1.2 RFC-1323 Window Scaling o 48.2 Suporte do DB2 Connect para Transações Acopladas Soltas o 48.3 Suporte a Kerberos * Suplemento de Conectividade o 49.1 Configurando o Servidor de Aplicativos em um Ambiente VM o 49.2 Configuração do CLI/ODBC/JDBC e Definições do PATCH1 e PATCH2 ------------------------------------------------------------------------ Guia do Usuário do DB2 Connect ------------------------------------------------------------------------ 48.1 Aumentando Taxas de Transferência de Dados do DB2 Connect Embora a junção de blocos de linhas para um conjunto de resultados de consulta não seja nada novo, o DB2 para z/OS (antigamente chamado de DB2 para OS/390) desde suas Versões de release 6.1 tinha a capacidade de retornar múltiplos blocos de consulta em resposta a uma solicitação ABERTA ou RECUPERADA para um cliente remoto, assim como o DB2 Connect. Melhor do que enviar repetitivamente solicitações ao DB2 para o servidor z/OS solicitando um bloco de dados em linha a cada vez, o cliente agora pode opcionalmente solicitar que o servidor envie de volta um número adicional de blocos de consulta. Tais blocos adicionais de consulta são chamados blocos de consulta extra. Esse novo recurso permite que o cliente minimize o número de retornos de linha de rede, que causa o principal impacto no desempenho da rede. A diminuição no número de solicitações enviadas pelo cliente ao servidor para blocos de consulta resulta em um significante impulso de desempenho já que a comutação entre um envio e resposta é uma operação dispendiosa em termos de desempenho. O DB2 Connect agora pode aproveitar esse aumento de desempenho através da solicitação de blocos de consulta extra por padrão de um DB2 para servidor z/OS. Para obter vantagem total do retorno de blocos de consulta extra (cada um pode ter até 32 K bytes) para protocolos de rede TCP/IP, extensões Window Scaling também podem ser ativadas como arquitetadas de acordo com o RFC-1323 no DB2 Connect. Esse recurso permite ao TCP/IP se ajustar dinâmica e eficientemente ao tamanho das janelas de envio e recepção para acomodar as possíveis grandes quantidades de dados retornados pelos blocos de consulta extra. 48.1.1 Blocos de Consulta Extra O suporte para o bloco de consulta extra nos servidores DB2 para z/OS nas Versões 6.1 ou posteriores é configurado através do parâmetro EXTRA BLOCKS SRV no painel de instalação do DB2 DDF. Esse parâmetro controla o número máximo de blocos de consulta extra que o DB2 pode retornar a um cliente para uma solicitação e pode ser definido em um valor entre 0 e 100. A definição do valor do parâmetro em 0 desativa o retorno de blocos de consulta extra. O valor padrão em 100 deve ser utilizado para obter maior benefício desse recurso, à exceção de qualquer peculiaridade na rede que possa tornar essa definição não-ideal No lado do cliente em que o aplicativo tem acesso ao DB2 para z/OS tanto diretamente, através de uma instalação localizada no DB2 Connect ou através de uma instalação do servidor DB2 Connect, existem vários meios de ativar o suporte correspondente do DB2 Connect em uma base de cursor ou instruções através da utilização de: * Um tamanho de conjunto de linhas para um cursor * A cláusula 'OPTIMIZE for N ROWS' na instrução de seleção associada a um cursor * A cláusula 'FETCH FIRST N ROWS ONLY' na instrução de seleção associada a um cursor. A opção 1 não é coberta nesta seção pois já foi implementada como parte da publicação DB2 for z/OS Scrollable Support no DB2 Connect Versão 7.1 FixPak 2. Nosso foco está na utilização das opções 2 e 3 para ativar o suporte de bloco de consulta extra utilizando diferentes APIs SQL como a seguir: 1. SQL incorporado o Chamada do suporte de bloco de consulta extra para uma consulta especificando a cláusula 'OPTIMIZE for N ROWS' e/ou a cláusula 'FETCH FIRST N ROWS ONLY' na própria instrução de seleção. o Com a cláusula 'OPTIMIZE for N ROWS', o DB2 para z/OS tentará agrupar o número desejado de linhas para retornar ao DB2 Connect, sujeito à definição do parâmetro de instalação EXTRA BLOCKS SRV DDF. O aplicativo pode escolher recuperar além das linhas N como o DB2 para z/OS não limita o número total de linhas que podem ser finalmente retornadas para um resultado de busca definido para N. o A cláusula 'FETCH FIRST N ROWS ONLY' funciona de maneira similar, exceto que a definição do resultado de consulta é limitado a N linhas pelo DB2 para z/OS. Recuperar além de N linhas pode resultar em um código SQL +100 (fim dos dados). 2. CLI/ODBC o Chamada de suporte de bloco de consulta extra para uma consulta através de seu atributo de instrução SQL_MAX_ROWS. o O DB2 Connect irá identificar a cláusula 'OPTIMIZE for N ROWS' para um servidor DB2 para z/OS 6.x. Mesmo que o número de linhas que possam ser finalmente retornadas pela definição do resultado de consulta não sejam limitadas a N pelo DB2 para z/OS, o CLI/ODBC poderá retornar a mensagem SQL_NO_DATA_FOUND ao aplicativo se for feita uma tentativa de recuperar além de N linhas. o A cláusula 'FETCH FIRST N ROWS ONLY' é utilizada por um servidor do DB2 para z/OS 7.1 ou superior. Semelhante ao caso da SQL incorporada , a definição do resultado de consulta é limitado a N linhas pelo DB2 para z/OS. A recuperação além de N linhas poderá resultar em uma mensagem SQL_NO_DATA_FOUND. 3. JDBC o Chamada de suporte de bloco de consulta extra para uma consulta através do método setMaxRows. Semelhante à capacidade do CLI/ODBC, o DB2 Connect irá identificar a cláusula 'OPTIMIZE for N ROWS' para um servidor DB2 para z/OS server Versão 6.x e a cláusula 'FETCH FIRST N ROWS ONLY' para um servidor DB2 para z/OS Versão 7.1 ou posterior. 48.1.2 RFC-1323 Window Scaling O Window Scaling é suportado a partir do FixPak 4 em todas as plataformas Windows e UNIX que suportam as extensões RFC-1323 para TCP/IP. Esse recurso pode ser ativado no DB2 para Windows e UNIX através do registro variável DB2SORCVBUF do DB2. Para ativar o Window Scaling, defina o registro variável DB2SORCVBUF do DB2 para qualquer valor acima de 64 K (por exemplo, no DB2 para Windows ou UNIX, você pode definir db2set DB2SORCVBUF =65537). O tamanho máximo do buffer de recebimento e envio depende do sistema operacional específico. Para garantir que os tamanhos de buffer configurados tenham sido aceitos, o usuário pode definir o parâmetro de configuração de gerenciamento de banco de dados DIAGLEVEL para 4 (informacional) e verificar as mensagens do arquivo db2diag.log. Para que o Window Scaling funcione, ele deve ser ativado em ambos os finais de uma conexão. Por exemplo, para ativar o Window Scaling entre a estação de trabalho do DB2 Connect e o host, esse recurso deve ser ativado tanto na estação de trabalho como no host, seja diretamente através da pilha TCP/IP do sistema operacional ou indiretamente através do produto DB2. Por exemplo, para o DB2 para z/OS, o Window Scaling pode ser atualmente ativado através do sistema operacional definindo o TCPRCVBUFRSIZE para qualquer valor acima de 64 K. Se um cliente remoto do DB2 é utilizado para acesso ao host do DB2 através de uma estação de de trabalho do servidor DB2 Connect, o Window Scaling pode ser ativado também no cliente. Pelo mesmo token, o Window Scaling também pode ser ativado entre um cliente remoto do DB2 e uma estação de trabalho do servidor DB2 quando nenhum host DB2 estiver envolvido. Embora o Window Scaling seja projetado para aumentar o desempenho da rede, a melhoria de desempenho da rede esperada nem sempre acontece. A interação entre fatores tais como o tamanho da estrutura utilizada pela Ethernet ou placa LAN token ring LAN, o tamanho do IP MTU e outras definições em roteadores através do link de comunicação podem resultar em queda de desempenho uma vez que o Window Scaling tenha sido ativado. Por padrão, o Window Scaling é desativado com os dois buffers finais definidos para 64 K. O usuário deve estar preparado para calcular o impacto de ação do Window Scaling e executar qualquer ajuste necessário à rede. Para uma introdução ao ajuste de rede para melhorar o desempenho da rede, consulte as informações oficiais no endereço http://www.networking.ibm.com/per/per10.html. ------------------------------------------------------------------------ 48.2 Suporte do DB2 Connect para Transações Acopladas Soltas O suporte do DB2 Connect para transações acopladas soltas deve ser utilizado pelo usuário que implementa aplicativos XA distribuídos que acessam o DB2 para OS/390 Versão 6 ou posterior. Esse suporte permite que diferentes ramificações da mesma transação global compartilhem o espaço de bloqueio do DB2 para OS/390. Esse recurso reduz a janela onde uma ramificação de uma transação distribuída encontra o tempo limite de bloqueio ou a bloqueada como um resultado de outra ramificação na mesma transação global. O DB2 para OS/390 Versão 6 compartilha o espaço de bloqueio dessa situação, desde que o DB2 Connect envie o XID de cada conexão que está servindo às diferentes ramificações da mesma transação global. ------------------------------------------------------------------------ 48.3 Suporte a Kerberos O DB2 Universal Database atualmente suporta o protocolo de segurança Kerberos como um meio de autenticar usuários no ambiente não-DRDA. Como o DB2/390 V7.1 começará a suportar a segurança Kerberos, o DB2 Connect incluirá a funcionalidade DRDA AR para permitir a utilização de autenticação de Kerberos para conectar ao DB2/390. A camada de autenticação Kerberos que lida com o sistema de tickets é integrada no mecanismo do Win2K Active Directory. Os lados do servidor e do cliente de um aplicativo se comunicam com os módulos do cliente e do servidor Kerberos SSP (Security Support Provider), respectivamente. A SSPI (Security Support Provider Interface) fornece uma interface de alto nível para o Kerberos SSP e outros protocolos de segurança Suporte ao Protocolo de Comunicação Para conexão SNA, você deve utilizar SECURITY=NONE ao catalogar o nó APPC Configuração Típica O procedimento para configurar o DB2 para utilizar a autenticação Kerberos envolve configurar o seguinte: * Uma política de autorização para o DB2 (como um serviço) no Active Directory que é compartilhado em uma rede e * Uma relação de confiança entre os KDCs (Kerberos Key Distribution Centers) No cenário mais simples, há pelo menos uma relação de confiança KDC para configurar, ou seja, a que fica entre o KDC que controla a estação de trabalho do cliente e o sistema OS/390. O OS/390 R10 fornece processamento de tickets Kerberos que são processados através de seu recurso RACF que permite que o host aja como um UNIX KDC. O DB2 Connect fornece, como sempre, a funcionalidade do roteador na configuração de 3 níveis. Não assume nenhuma função em autenticação quando a segurança Kerberos é utilizada. Em vez disso, transfere simplesmente o token de segurança do cliente para o DB2/390. Dessa forma, não há necessidade do gateway do DB2 Connect de conectar-se a um membro do cliente ou ao domínio Kerberos do host. Para utilizar o Kerberos, o gateway do DB2 Connect deve catalogar sua conexão com tipo de autenticação KERBEROS. O cliente pode catalogar com autenticação NOT_SPEC ou Kerberos. Qualquer outra combinação de tipos de autenticação no cliente e no gateway resulta em sqlcode -1401 (Incompatibilidade de tipo de autenticação). Compatibilidade de Nível Inferior Requisitos do DB2 para suporte a Kerberos: DB2 UDB Client: Versão 7.1 (SO: Win2K) DB2 Connect: Versão 7.1 + Fix Pack 1 (SO: Qualquer um) DB2/390: Versão 7.1 O DB2/390 também tem uma exigência para ser executado no OS/390 Versão 2 Release 10 ou posterior. Há requisitos adicionais implícitos em sistemas DB2/390 de nível inferior ao conectar aos clientes do DB2 Connect Versão 7.1. Apesar desses sistemas DB2/390 não suportarem Kerberos, eles não respondem corretamente a DRDA SECMECs não suportados. Para solucionar esse problema, aplique o PTF apropriado: * UQ41941 (para DB2/390 V5.1) * UQ41942 (para DB2/390 V6.1) ------------------------------------------------------------------------ Suplemento de Conectividade ------------------------------------------------------------------------ 49.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. ------------------------------------------------------------------------ 49.2 Configuração do CLI/ODBC/JDBC e Definições do PATCH1 e 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 a publicação Suplemento de Instalação e Configuração ou o Guia e Referência da CLI. 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 procurar por "count(exp)" e substituí-lo por "count(distinct exp)". Isso é necessário porque algumas versões do DB2 suportam a sintaxe "count(exp)" e essa sintaxe é gerada por alguns aplicativos ODBC. É necessário para aplicativos Microsoft quando o servidor não suporta a sintaxe "count(exp)". 2 Alguns aplicativos ODBC são interrompidos quando SQL_NULL_DATA é retornado na função SQLGetTypeInfo() para a coluna LITERAL_PREFIX ou LITERAL_SUFFIX. Isso força o driver a retornar uma cadeia vazia. Necessário para o Impromptu 2.0. 4 Força o driver a tratar os dados de entrada de data e hora como dados de data se a hora e a parte de fração da date e hora forem zero. Necessário para o Microsoft Access. 8 Força o driver a tratar os dados de data e hora como dados de hora se a parte de data da data e hora for 1899-12-30. Necessário para o Microsoft Access. 16 Não-utilizado. 32 Força o driver a não retornar informações sobre as colunas SQL_LONGVARCHAR, SQL_LONGVARBINARY e SQL_LONGVARGRAPHIC. Para o aplicativo, aparece como se campos longos não fossem suportados. Necessário para o Lotus 123. 64 Força o driver a terminar cadeias gráficas de saída com NULL. Necessário para o Microsoft Access em um ambiente de byte duplo. 128 Força o driver a permitir que a consulta "SELECT Config, nValue FROM MSysConf" vá para o servidor. Atualmente o driver retorna um erro com valor SQLSTATE associado igual a S0002 (tabela não-encontrada). Necessário se o usuário tiver criado essa tabela de configuração no banco de dados e quiser que o aplicativo a acesse. 256 Força o driver a retornar primeiro as colunas-chave principais na chamada SQLStatistics(). Atualmente, o driver retorna os índices ordenados pelo nome do índice, que é o comportamento padrão do ODBC. 512 Força o driver a retornar FALSE em SQLGetFunctions() para SQL_API_SQLTABLEPRIVILEGES e SQL_API_SQLCOLUMNPRIVILEGES. 1024 Força o driver a retornar SQL_SUCCESS em vez de SQL_NO_DATA_FOUND em SQLExecute() ou SQLExecDirect() se a instrução UPDATE ou DELETE executada não afetar nenhuma linha. Necessário para os aplicativos do Visual Basic. 2048 Não-utilizado. 4096 Força o driver a não emitir um COMMIT depois de fechar um cursor quando no modo autocommit. 8192 Força o driver a retornar um conjunto extra de resultados depois de chamar um procedimento armazenado. Esse conjunto de resultados é um conjunto de resultados de uma linha que consiste em valores de saída do procedimento armazenado. Pode ser acessado por aplicativos Powerbuild. 32768 Força o driver a fazer aplicativos Microsoft Query funcionar com sinônimos do DB2 MVS. 65536 Força o driver a inserir manualmente um "G" na frente dos literais de caracteres que são na verdade literais gráficos. Essa correção deve ser sempre fornecida quando se estiver trabalhando em um ambiente de byte duplo. 131072 Força o driver a descrever uma coluna de data e hora como uma coluna CHAR(26) quando ela faz parte de um índice exclusivo. Necessário para os aplicativos Microsoft. 262144 Força o driver a utilizar a tabela do pseudo-catálogo db2cli.procedures em vez das tabelas SYSCAT.PROCEDURES e SYSCAT.PROCPARMS. 524288 Força o driver a utilizar SYSTEM_TABLE_SCHEMA em vez de TABLE_SCHEMA quando estiver fazendo uma consulta de tabela do sistema em um sistema DB2/400 V3.x. Isso resulta em melhor desempenho. 1048576 Força 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 - Força o driver a converter todos os argumentos para chamadas de esquema para letras maiúsculas. 4 - Força o driver a retornar a Versão 2.1.2 como conjunto de resultados de chamadas de esquema (ou seja, SQLColumns(), SQLProcedureColumns() e assim por diante ), em vez da Versão 5 como 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 - Força o driver a retornar uma mensagem que cursores deslocáveis não são suportados. Isso é necessário para programas do Visual Basic se o cliente do DB2 tiver Versão 5 e o servidor for DB2 UDB Versão 5. 7 - Força o driver a mapear todos os tipos de dados da colune GRAPHIC para o tipo de dados da coluna CHAR. Isso é necessário em um ambiente de byte duplo. 8 - Força o driver a ignorar argumentos de pesquisa do catálogo em chamadas de esquema. 9 - Não efetua a consolidação 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 do ODBC em que parênteses são permitidos na cláusula ON em uma cláusula Outer join. Ativar esse PATCH2 fará com que o driver IBM DB2 ODBC tire os parênteses quando a cláusula outer join estiver em uma seqüência de escape do ODBC. Esse PATCH2 deve ser utilizado apenas quando estiver indo contra o 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 ?). Ativar essa correção fará o Driver IBM ODBC Driver reescrever o predicado para (expression >= ? and expression <= ?). 21 - Defina todos os parâmetros apenas OUTPUT dos procedimentos armazenados para SQL_NULL_DATA 22 - Esse PATCH2 faz com que o driver IBM ODBC reporte OUTER join como não-suportado. Isso é para aplicativos que geram SELECT DISTINCT col1 ou ORDER BY col1 ao utilizar instruções outer join nas quais col1 tem comprimento maior que 24 caracteres e faz com que o DB2 UDB retorne um erro (já que o DB2 UDB não suporta coluna maior de 254 bytes nesse uso) 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 - Acessa solução alternativa para colunas decimais - remove zeros finais da representação de caracteres 26 - Não retorna sqlcode 464 para o aplicativo - indica que conjuntos de resultados são retornados 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 de valores x, em que 1 > x > -1 (Necessário apenas para algumas versões do 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 Adicionais Índice Parcial * Informações Adicionais o 50.1 O DB2 Everywhere Agora É DB2 Everyplace o 50.2 Recursos de Acessibilidade do DB2 UDB Versão 7 + 50.2.1 Entrada de Dados e Navegação através do Teclado + 50.2.1.1 Entrada de Dados Através do Teclado + 50.2.1.2 Foco do Teclado + 50.2.2 Recursos para Exibição Acessível + 50.2.2.1 Modo Alto Contraste + 50.2.2.2 Definições das Fontes + 50.2.2.3 Não É Dependente de Cor + 50.2.3 Sugestões sobre Alertas Alternativos + 50.2.4 Compatibilidade com Tecnologias de Apoio + 50.2.5 Documentação de Fácil Acesso o 50.3 Exigências de Mouse o 50.4 Tentativa para Fazer a Vinculação a partir do DB2 Run-time Client Results em um Erro "Arquivos de vinculação não-encontrados" o 50.5 Pesquisa de Descoberta o 50.6 Janelas de Memória do HP-UX 11 o 50.7 Desinstalando o DB2 DFS Client Enabler o 50.8 Autenticação de Cliente no Windows NT o 50.9 Restrições de Sistemas Federados o 50.10 Limitações Federadas com Tabelas Particionadas MPP o 50.11 Restrição do DataJoiner o 50.12 Information Catalog Manager em Hebraico para Windows NT o 50.13 SNA SPM do DB2 Falhou ao Iniciar Após a Inicialização do Windows o 50.14 Requisitos da Conta de Serviço para DB2 no Windows NT e Windows 2000 o 50.15 É Necessário Fazer o Commit de Todos os Programas Definidos pelo Usuário que Serão Usados no DWC (Data Warehouse Center) o 50.16 Armazenamento em Cache do Cliente no Windows NT o 50.17 Life Sciences Data Connect + 50.17.1 Novos Wrappers + 50.17.2 Avisos- o 50.18 Melhorias no SQL Assist o 50.19 Ajuda para Comandos de Backup e de Restauração o 50.20 O "Warehouse Manager" Deveria Ser "DB2 Warehouse Manager" ------------------------------------------------------------------------ Informações Adicionais ------------------------------------------------------------------------ 50.1 O DB2 Everywhere Agora É DB2 Everyplace O nome do DB2 Everywhere foi alterado para DB2 Everyplace. ------------------------------------------------------------------------ 50.2 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. Esses 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 50.2.1 Entrada de Dados e Navegação através do Teclado 50.2.1.1 Entrada de Dados Através do Teclado O DB2 Control Centerpode ser operado utilizando-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. Essas teclas são auto-documentadas, nas teclas de acesso que são sublinhadas no controle ou no menu onde ele aparecer. 50.2.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. 50.2.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. Essas melhorias de acessibilidade incluem suporte para definições de alto contraste e propriedades de fontes personalizáveis. 50.2.2.1 Modo Alto Contraste A interface do Centro de Controle suporta a opção modo alto contraste fornecido pelo sistema operacional. Esse recurso auxilia os usuários que exigem um alto grau de contraste entre as cores de segundo plano e primeiro plano. 50.2.2.2 Definições das Fontes A interface do Centro de Controle permite aos usuários selecionar a cor, o tamanho e a fonte para o texto nos menus e janelas de diálogo. 50.2.2.3 Não É Dependente de Cor Os usuários não precisam distinguir cores para usar quaisquer funções nesse produto. 50.2.3 Sugestões sobre Alertas Alternativos O usuário pode optar para receber as mensagens de alertas através do áudio ou da janela visual. 50.2.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. 50.2.5 Documentação de Fácil Acesso A documentação para os produtos da família DB2 está disponível no formato HTML. Isso 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. ------------------------------------------------------------------------ 50.3 Exigências de Mouse Para todas as plataformas, exceto Windows, um mouse é obrigatório para usar as ferramentas. ------------------------------------------------------------------------ 50.4 Tentativa para Fazer a Vinculação a partir do DB2 Run-time Client Results em um Erro "Arquivos de vinculação não-encontrados" Porque o DB2 Run-time Client não possui um conjunto completo de arquivos de vinculação, a vinculação das ferramentas GUI não pode ser feita a partir do DB2 Run-Time Client e pode apenas ser feita a partir do DB2 Administration Client. ------------------------------------------------------------------------ 50.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, essa restrição não se aplica à descoberta conhecida. ------------------------------------------------------------------------ 50.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 bits 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 do 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 o ID. o Qualquer comando do DB2 que você deseja executar no servidor e que exija mais de uma instrução individual deve ser executado utilizando um método de loopback do TCP/IP. Isso 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 utilizado apenas em um ambiente EE. ------------------------------------------------------------------------ 50.7 Desinstalando o DB2 DFS Client Enabler Antes do DB2 DFS Client Enabler ser desinstalado, o usuário root deve assegurar-se de que não exista arquivo DFS em utilização e de que nenhum usuário tenha um shell aberto no espaço de arquivo dos DFS. Como root, emita o comando: stop.dfs dfs_cl Verifique se o /... não está mais montado: mount | grep -i dfs Caso isso não seja feito e o DB2 DFS Client Enabler seja desinstalado, a máquina precisará ser reinicializada. ------------------------------------------------------------------------ 50.8 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 nessa 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 Guia de Administração: Performance. ------------------------------------------------------------------------ 50.9 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, utilize o CLP (Command Line Processor). * 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 origem de dados remota independente da definição DFT_SQLMATHWARN. * A instrução CREATE SERVER não permite que a opção de servidor COLSEQ seja definida como 'I' para origens de dados com seqüências de intercalação que não fazem distinção entre maiúsculas e minúsculas. * A instrução ALTER NICKNAME retorna SQL0901N quando uma opção inválida é especificada. * Em origens 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. ------------------------------------------------------------------------ 50.10 Limitações Federadas com Tabelas Particionadas MPP Quando você tentar utilizar uma instrução SQL para selecionar dados de uma origem de dados e inserir, atualizar ou excluir os dados diretamente em uma tabela particionada MPP no servidor federado DB2, você receberá o erro SQL0901N. A funcionalidade federada não permite a seleção a partir de um pseudônimo e sua inserção em uma tabela particionada MPP. Depois de aplicar o FixPak 4 (ou posterior), é possível utilizar estas etapas para selecionar dados e inseri-los em uma tabela particionada MPP: 1. No ambiente de aplicativos do cliente, exporte a variável de ambiente DB2NODE para designar o nó ao qual o aplicativo sempre deverá ser conectado. EXPORT DB2NODE=x em que x é o número de um nó. 2. Crie um grupo de nós que contenha somente o nó designado. CREATE NODEGROUP nodegroup_name ON NODE(x) em que x é o número do nó. 3. Crie um espaço de tabelas no grupo de nós. CREATE TABLESPACE tablespace_name IN NODEGROUP nodegroup_name 4. Crie uma tabela temporária no tablespace. CREATE TABLE temp_table_name IN tablespace_name 5. Divida a operação INSERT no aplicativo em duas etapas: o INSERT INTO temp_table_name SELECT * FROM nickname o INSERT INTO MPP_partitioned_table SELECT * from temp_table_name A divisão da instrução INSERT em duas instruções altera a consolidação do nível de instrução e a semântica de reversão. Por exemplo, em vez de reverter uma instrução, será necessário agora reverter duas instruções. Além disso, se você alterar o número do nó associado à variável de ambiente DB2NODE, será necessário invalidar o pacote de aplicativos e efetuar uma nova vinculação. Essas etapas permitem a seleção de dados das origens de dados e sua inserção em uma tabela particionada MPP. Você ainda receberá o erro SQL0901N quando tentar utilizar uma instrução para selecionar dados de uma origem de dados e atualizá-los ou excluí-los em uma tabela particionada MPP. Essa restrição será eliminada no DB2 Universal Database Versão 8. ------------------------------------------------------------------------ 50.11 Restrição do DataJoiner Solicitações distribuídas dentro de um ambiente federado são limitadas a operações de leitura. ------------------------------------------------------------------------ 50.12 Information Catalog Manager em Hebraico para Windows NT O componente Information Catalog Manager 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 Information Catalog Manager, 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 Information Catalog Manager, agora, deve ser instalada. ------------------------------------------------------------------------ 50.13 SNA SPM do DB2 Falhou ao Iniciar Após a Inicialização do Windows Se você estiver utilizando 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. ------------------------------------------------------------------------ 50.14 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 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 esses direitos de usuário à conta do serviço. Além desses 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. ------------------------------------------------------------------------ 50.15 É Necessário Fazer o Commit de Todos os Programas Definidos pelo Usuário que Serão Usados no DWC (Data Warehouse Center) Se você deseja usar um procedimento armazenado construído pelo Construtor de Procedimento Armazenado do DB2 como um programa definido pelo usuário no DWC (Data Warehouse Center), você deverá inserir a seguinte instrução no procedimento armazenado antes da instrução con.close();: con.commit(); Se essa 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 a consolidação 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. ------------------------------------------------------------------------ 50.16 Armazenamento em Cache do Cliente no Windows NT Se um usuário tentar acessar um arquivo de PERMISSÃO DE LEITURA 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 estiver localizado 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. ------------------------------------------------------------------------ 50.17 Life Sciences Data Connect 50.17.1 Novos Wrappers No FixPak 4, dois novos wrappers foram incluídos no Life Sciences Data Connect. Um para o Documentum no AIX e um para o Excel no Windows NT. Além disso, o wrapper de arquivos estruturados em tabelas foi transportado do AIX para os sistemas Windows NT, Solaris, Linux e HP-UX. Para o FixPak 5, o wrapper BLAST no AIX foi incluído no DB2 Life Sciences Data Connect. O wrapper Documentum foi transportado do AIX para o Windows NT, o Windows 2000 e o Solaris Operating Environment Para o FixPak 6, o wrapper BLAST foi transportado do AIX para o Windows NT, o Windows 2000, o HP-UX e o Solaris Operating Environment 50.17.2 Avisos- Life Sciences Data Connect inclui código para The Apache Software e ICU. O código é fornecido "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE NENHUM TIPO, SEJA EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE MERCADO, ADEQUAÇÃO A UM DETERMINADO PROPÓSITO E NÃO-VIOLAÇÃO. Além disso, nenhuma obrigação de indenização é aplicavel à IBM. Licença The Apache Software, Versão 1.1 Copyright (c) 1999-2001 The Apache Software Foundation. Todos os direitos reservados. ICU 1.8.1 e posterior Copyright (c) 1995-2001 International Business Machines Corporation e outros. Todos os direitos reservados. ------------------------------------------------------------------------ 50.18 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 Construtor de Procedimento Armazenado (assistente "Inserção de SQL Stored Procedure") e no Data Warehouse Center (etapa Processo SQL). ------------------------------------------------------------------------ 50.19 Ajuda para Comandos de Backup e de Restauração Informação incorreta aparece 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] Informação incorreta aparece 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]"; ------------------------------------------------------------------------ 50.20 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". ------------------------------------------------------------------------ Apêndices ------------------------------------------------------------------------ Apêndice A. Avisos É possível que a IBM não ofereça os produtos, serviços ou recursos discutidos neste documento em todos os países. Consulte um representante IBM local para obter informações sobre os produtos e serviços disponíveis atualmente em sua área. Qualquer referência a produtos, programas ou serviços IBM não significa que apenas produtos, programas ou serviços IBM possam ser utilizados. Qualquer produto, programa ou serviço funcionalmente equivalente, que não infrinja nenhum direito de propriedade intelectual da IBM ou outros direitos legalmente protegidos poderá ser utilizado em substituição a este produto, programa ou serviço. Entretanto, a avaliação e verificação da operação de qualquer produto, programa ou serviço não-IBM são de responsabilidade do Cliente. A IBM pode ter patentes ou solicitações de patentes pendentes relativas a assuntos tratados nesta publicação. O fornecimento desta publicação não garante ao Cliente nenhum direito sobre tais patentes. Pedidos de licença devem ser enviados, por escrito, para: Gerência de Relações Comerciais e Industriais da IBM Brasil Av. Pasteur, 138-146 Botafogo Rio de Janeiro - RJ CEP: 22290-240 Para pedidos de licença relacionados a informações de DBCS (Conjunto de Caracteres de Byte Duplo), entre em contato com o Departamento de Propriedade Intelectual da IBM em seu país ou envie pedidos de licença, por escrito, para: IBM World Trade Asia Corporation Licenciamento 2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japan O parágrafo a seguir não se aplica a nenhum país em que tais disposições não estejam de acordo com a legislação local: A INTERNATIONAL BUSINESS MACHINES CORPORATION FORNECE ESTA PUBLICAÇÃO "NO ESTADO EM QUE SE ENCONTRA" SEM GARANTIA DE NENHUM TIPO, SEJA EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS IMPLÍCITAS DE NÃO-VIOLAÇÃO, MERCADO OU ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Alguns países não permitem a exclusão de garantias expressas ou implícitas em certas transações, portanto, esta disposição pode não se aplicar ao Cliente. Estas informações podem incluir imprecisões técnicas ou erros tipográficos. Periodicamente são feitas alterações nas informações aqui contidas; tais alterações serão incorporadas em futuras edições desta publicação. A IBM pode, a qualquer momento, aperfeiçoar e/ou alterar os produtos e/ou programas descritos nesta publicação. Qualquer referência nestas informações a Web sites não-IBM são fornecidas apenas por conveniência e não representam de forma alguma um endosso a esses Web sites. Os materiais nesses Web sites não fazem parte dos materiais deste produto IBM e o uso desses Web sites é de responsabilidade do Cliente. A IBM pode utilizar ou distribuir todas os comentários fornecidos pelo Cliente da maneira que achar conveniente, sem que isso implique em qualquer compromisso ou obrigação para com o Cliente. Licenciados deste programa que pretendam obter informações sobre o mesmo com o objetivo de permitir: (1) a troca de informações entre programas criados independentemente e outros programas (incluindo este), e (2) o uso mútuo de informações trocadas, devem entrar em contato com a: Gerência de Relações Comerciais e Industriais da IBM Brasil Av. Pasteur, 138-146 Botafogo Rio de Janeiro - RJ CEP 22290-240 Estas informações podem estar disponíveis, sujeitas as condições e os termos apropriados, incluindo, em alguns casos, o pagamento de uma taxa. O programa licenciado descrito neste documento e todo o material licenciado disponível são fornecidos pela IBM sob os termos do Contrato com o Cliente IBM, Contrato de Licença de Programa Internacional IBM ou qualquer outro contrato 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 podem variar de maneira significativa. Algumas medidas podem ter sido feitas em sistemas em nível de desenvolvimento e não há garantia de que tais medidas serão as mesmas em sistemas geralmente disponíveis. Além disso, algumas medidas podem ter sido estimadas por extrapolação. Os resultados reais podem variar. Os usuários deste documento devem verificar os dados aplicáveis em seus ambientes específicos. As informações relativas a produtos não-IBM foram obtidas junto aos fornecedores dos respectivos produtos, de seus anúncios publicados e de outras fontes publicamente disponíveis. A IBM não testou estes produtos e não pode confirmar a precisão do desempenho, compatibilidade nem qualquer outra reivindicação relacionada aos produtos não-IBM. Dúvidas sobre os recursos de produtos não-IBM devem ser encaminhadas diretamente a seus fornecedores. Todas as declarações relacionadas aos objetivos e intenções futuras da IBM estão sujeitas à alteração ou cancelamento sem aviso prévio, e representam apenas metas e objetivos. Estas informações podem conter exemplos de dados e relatórios utilizados em operações diárias de negócios. Para ilustrá-las da forma mais completa possível, os exemplos podem incluir nomes de pessoas, empresas, marcas e produtos. Todos os nomes são fictícios e qualquer semelhança com nomes e endereços utilizados por empresas reais é mera coincidência. LICENÇA DE COPYRIGHT: Estas informações podem conter programas aplicativos de exemplo na linguagem fonte, que ilustram as técnicas de programação em várias plataformas operacionais. O Cliente pode copiar, modificar e distribuir tais programas de exemplo de qualquer maneira sem pagamento à IBM, com objetivos de desenvolvimento, utilização, marketing ou distribuição de programas aplicativos em conformidade com a interface de programação de aplicativos da plataforma operacional para a qual os programas de exemplo são escritos. Estes exemplos não foram testados completamente em todas as condições. Portanto, a IBM não pode garantir ou confirmar a confiabilidade, manutenção ou função destes programas. Cada cópia ou parte destes programas de amostra ou qualquer trabalho derivado deve incluir um aviso de copyright, com os seguintes dizeres: (C) (o nome de sua empresa) (ano). Partes deste código são derivadas dos Programas de Exemplo da IBM Corp. (C) Copyright IBM Corp. _digite o ano ou anos_. Todos os direitos reservados. ------------------------------------------------------------------------ A.1 Marcas Comerciais Os termos a seguir, que podem estar indicados com um asterisco(*), são marcas comerciais da International Business Machines Corporation nos Estados Unidos e/ou em 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 termos a seguir são marca comerciais ou marcas registradas de outras empresas: Microsoft, Windows e Windows NT são marcas comerciais ou marcas registradas da Microsoft Corporation. Java, todas as marcas comerciais e logotipos baseados em Java e Solaris são marcas comerciais da Sun Microsystems, Inc. nos Estados Unidos e/ou em outros países. Tivoli e NetView são marcas comerciais da Tivoli Systems Inc. nos Estados Unidos e/ou em outros países. UNIX é uma marca registrada nos Estados Unidos e/ou em outros países, licenciada exclusivamente através da X/Open Company Limited. Outros nomes de empresas, produtos ou serviços, que podem estar indicados com um asterisco duplo (**), podem ser marcas comerciais ou marcas de serviço de terceiros. ------------------------------------------------------------------------ Índice remissivo A B C D E F G H I J L M N O P Q R S T U V W X ------------------------------------------------------------------------ A * acessando o auxílio (1064) * acessibilidade o atalhos do teclado (956) * acesso ao cliente remoto o configuração do Communication Server para NT (791) * Adobe Acrobat Reader o acesso com locales diferentes do inglês (781) * AIX o erros de instalação (805) o instalação do DB2 no (787) * AIX 4.3.3 o interrupção do AutoLoader após bifurcação (917) * ajuda on-line (1066) * alta disponibilidade (902) * ambiente de satélite o administrando com a Versão 6 Centro de Administração do Satélite (891) o considerações sobre instalação (880) o instalação do arquivo de resposta do satélite (883) o instalação interativa do satélite (886) o pré-requisitos (874) o satélite do DB2 Personal Edition (872) o satélite do DB2 Workgroup Edition (873) * Analisador de Réplica (928) * aplicativos Unicode ODBC (1058) * ARCHIVE LOG o notas de uso (892) * arquivos de linguagem de marcação o definições de chaves (986) * arquivos PDF o acesso com locales diferentes do inglês (782) * AS/400 o capture e apply para (929) * assistente MQSeries Assist (979) * assistente OLE DB Assist (981) * assistente para Criar Banco de Dados o definindo a extensão no (977) * Assistentes o Assistente OLE DB (982) o Criar Banco de Dados (978) o MQSeries Assist (980) * atalhos do teclado o problemas com (958) * atribuição de cadeias a colunas, regras de (1091) * atribuições o cadeias, regras básicas para (1089) o data e hora, regras para valores de (1105) o data e hora para valor de cadeia (1107) * autenticação o por domínio utilizando DB2DOMAINLIST (1157) * AutoLoader o interrupção durante bifurcação (916) * Auxílio (1065) B * backup o quando LOGRETAIN=CAPTURE (909) * bancos de dados clones o criação (905) * bancos de dados particionados o erros ao incluir nós (853) * blocos de conjuntos de buffers (845) o Exemplos (852) * bloqueio, otimista (1035) C * cadeia de caracteres o atribuição, visão geral (1088) * cadeia de caracteres de byte duplo (double-byte character string, DBCS) o retornando cadeia (1133) * cadeias de caracteres o cadeia de caracteres de byte duplo (1130) o função escalar VARGRAPHIC (1129) * cadeias de data o definition (842) * cadeias de hora o definition (843) * cadeias de timestamp o definition (844) * CAPTURE (definição LOGRETAIN) o backup e comportamento de restauração (911) * capture e apply o iniciar a partir de um aplicativo (934) o mensagens de erro (933) o no AS/400 (930) * Centro de Administração do Satélite o Versão 6, utilizando para administrar o ambiente de satélite (890) * Centro de Controle o bloco de notas Definições da ferramenta (970) o correção necessária para OS/390 (964) o detectando problemas (965) o erros com o Internet Explorer (768) o fora de funcionamento (770) o na plataforma OS/390 (963) o problema de exibição infopops no OS/2 (967) o problemas no centro de script no Windows 95 (972) o resolução de problemas em plataformas UNIX (966) o restrições em applets simultâneos (971) o suporte bidirecional + no Windows NT (952) o utilizando com Chinês Simplificado (764) o utilizando com Japonês (765) o utilizando para administrar bancos de dados VM e VSE (951) o Versão 6, utilizando para administrar o ambiente de satélite (889) * Chinês Simplificado o definição de locale no Linux (763) * CLI o escrita de um aplicativo Unicode (1017) o palavras-chave de configuração + CURRENTFUNCTION PATH (1041) + SKIPTRACE (1042) o procedimentos armazenados + vários conjuntos de resultados (1016) o vantagens de (1015) * CLI0637E (1010) * clientes o ambiente em três camadas (1022) o fazendo download (783) * clientes Unicode o limitação de movimento de dados (919) * coluna o atribuição de cadeia, regras básicas para (1090) * comando db2iupdt, execução após atualizar o DB2 (799) * comandos o CREATE DATABASE (898) * concatenação o operador (1098) * conector SAP o Instalação (994) * conexões o aumentando taxas de transferência de dados (1147) * conjuntos de buffers o com base em bloco (847) o com base em página (846) o páginas contíguas (850) * conteúdo da amostra, exibindo (974) * conversão de caracteres o regras ao comparar cadeias (1094) o regras para operações que combinam cadeias (1092) * conversões o cadeia de caracteres de byte duplo (1132) o cadeia de caracteres para marca de hora (1125) o data e hora para variável de cadeia (1106) o DBCS de SBCS e DBCS mistos (1131) * CREATE DATABASE (899) * cursores o atributos, padrão (1026) o atualizáveis (1029) o concorrência (1030) o concorrência de valores (1034) o deslocável (1031) + detectando problemas em aplicativos (1036) + estático (1020) + guiado por conjunto de teclas (1021) + lado do servidor (1019) + OS/390 (1018) o guiado por conjunto de teclas + atualizando (1033) o sensibilidade (1028) o tipo (1027) D * dados CLOB o Funções do MQSeries (1085) * daemon de cópia (808) * Data Link Manager o métodos de backup (915) * Data Links Manager o problemas em restaurar arquivos (812) * Data Warehouse Center o arquivos de linguagem de marcação (988) o definições de chaves (987) o utilização de procedimentos armazenados (1163) * DataJoiner o restrições (1159) * DATALINK o problemas ao restaurar (809) o réplica (924) * DB2_BINSORT (856) * DB2_BLOCK_BASED_BP (858) * DB2 Enterprise Edition o configurando como satélite (869) + pré-requisitos (876) o Versão 6, utilizando como servidor de controle do DB2 (887) * DB2_INLIST_TO_NLJN (860) * DB2_NEWLOGPATH (863) * DB2_NEWLOGPATH2 (865) o antigamente chamado de NEWLOGPATH2 (913) * DB2_PARALLEL_IO (840) * DB2 Personal Edition o configurando como satélite (868) + pré-requisitos (875) * DB2_REDUCED_OPTIMIZATION (867) * DB2 Relational Connect o instalação do Windows NT (817) o instalação no Unix (818) * DB2_ROLLFORWARD_ NORETRIEVE * DB2 Server para VM e VSE o administrando o banco de dados a partir do Centro de controle (950) * db2ArchiveLog (1009) * db2move (896) * db2start o no Windows 95, 98 e ME (935) * definições de chaves o importação/exportação de metadados (985) * desempenho o no raid (839) * desinstalando o DB2 DFS Client Enabler (1154) * DFS Client Enabler o desinstalando (1155) * dlfm client_conf o motivos de falhas (811) * DWC7906, mensagem atualizada (984) E * E/S em vetor (849) * efetuando a vinculação dos utilitários do banco de dados utilizando Run-Time Client (1011) * enable_MQFunctions (943), (945) * erro de acesso ao arquivo negado (960) * erro de atalho inválido (954) * erros, instalação o AIX (803) * erros de instalação o AIX (804) * espaço de tabelas o no raid (838) * espelhamento dividido o como banco de dados principal (908) o como um banco de dados de espera (906) o como uma imagem de backup (907) * esperas de travas (938) * estruturas de tabelas (931) * etapa o planejamentos (991) * exibições o indisponível após a migração (794) * expressão o operador de concatenação (1096) o string (1097) F * ferramenta db2inidb (900) * Ferramenta de Movimentação de Banco de Dados (895) * ferramentas o utilizando no Linux (949) * ferramentas gui o erros de ligação (1150) * Fontes de dados Oracle o variáveis de ambiente (821) o wrapper do Linux (820) o wrapper do Solaris (819) * função DATE o conversão de valor para formato de data (1110) o descrição detalhada (1109) * função E/S suspensas o suportando disponibilidade contínua (901) * função escalar DAYOFWEEK_ISO (1062) * função escalar WEEK_ISO (1063) * função GRAPHIC o descrição detalhada (1111) o valores e argumentos (1112) * função MQPUBLISH o descrição detalhada (1068) o valores e argumentos (1069) * função MQREADALLCLOB o descrição detalhada (1080) o valores e argumentos (1081) * função MQREADCLOB o descrição detalhada (1071) o valores e argumentos (1072) * função MQRECEIVEALLCLOB o descrição detalhada (1083) o valores e argumentos (1084) * função MQRECEIVECLOB o descrição detalhada (1074) o valores e argumentos (1075) * função MQSEND o descrição detalhada (1077) o valores e argumentos (1078) * função SQLBindFileToParam CLI, correção (1043) * função SQLColAttribute o SQL_DESC_AUTO_UNIQUE _VALUE (1046) o SQL_DESC_UPDATABLE (1047) * Função SQLGetData (1048) * função SQLGetInfo (1050) * função SQLGetLength o DBCLOB (1052) * função SQLNextResult (1053) * função SQLSetEnvAttr o atributo SQL_ATTR_KEEPCTX (1055) * função SQLSetStmtAttr o atributo SQL_ATTR_QUERY_ TIMEOUT (1057) * função TIME o descrição detalhada (1114) o valores e argumentos (1115) * função TIMESTAMP o descrição detalhada (1120) o valores e argumentos (1121) * função VARGRAPHIC o descrição detalhada (1126) o valores e argumentos (1127) * funções o em um banco de dados Unicode (1102) o escalar + DATE (1108) + GRAPHIC (1113) + MQPUBLISH (1067) + MQREADCLOB (1070) + MQRECEIVECLOB (1073) + MQSEND (1076) + TIME (1116) + TIMESTAMP (1122) + VARGRAPHIC (1128) o tabela + MQREADALLCLOB (1079) + MQRECEIVEALLCLOB (1082) * funções CLI o SQLBindFileToParam (1044) o SQLColAttribute (1045) o SQLGetInfo (1049) o SQLGetLength (1051) o SQLNextResult (1054) o SQLSetStmtAttr (1056) * Funções do MQ (944), (946) * Funções do MQSeries o suporte aos dados CLOB (1086) * funções escalares o DAYOFWEEK_ISO (1060) o WEEK_ISO (1061) G * gateways o ambiente em três camadas (1023) * Gerenciador de Catálogos de Informações o programa utilitário (997) * GET ROUTINE (897) * GET_ROUTINE_SAR (1139) H * HP-UX o sem suporte para Query Enabler (1007) * HP-UX 11 o janelas de memória (1153) I * IDs do conjunto de buffers (851) * impasses (937) * informações on-line o pesquisando + no Solaris operating environment (776) * Information Catalog Manager o em hebraico (1160) * início do DB2 o utilizando db2start no Windows 95, 98 e ME (936) * instalação o conta de serviços necessária no Windows (1162) o DB2 Enterprise-Extended Edition no AIX (786) o interrompendo processos do DB2 durante (797) o travamento ao utilizar unidade removível (792) * Instalação * instalação do Arquivo de Resposta o palavras-chave do servidor de controle do DB2 (879) o palavras-chave específicas do satélite (884) * instrução CREATE PROCEDURE o instrução GET DIAGNOSTICS (1134) * instrução GET DIAGNOSTICS (1135) * Internet Explorer o erros com o Centro de Controle (769) * iSeries, considerações pós-instalação para o agente (1001) * iSeries, utilizando transformadores com o agente do (1002) J * janelas de memória o no HP-UX 11 (1152) * Japonês o DB2 em PTX (767) o definição de locale no Linux (762) * JDBC o cursores deslocáveis, acesso (1025) * JDK 1.1 o caminho de instalação (968) L * leitura dispersa (848) * Linux o definição do ambiente para o Centro de Controle (801) o definições de locale para Japonês e Chinês Simplificado (761) o executando ferramentas de administração DB2 UBD (948) * locale o Japonês e Chinês Simplificado no Linux (760) * locales o Chinês simplificado no Red Flag Linux (758) * LSNs (893) * LSNs (números de seqüência de log) (894) M * mensagens o para capture e apply (932) * mensagens de erro o acesso ao arquivo negado (961) o ao incluir nós em bancos de dados particionados (854) o arquivos de ligação não encontrados (1149) o atalho inválido (955) o durante a migração (806) o SQL10012N (969) * método de backup o para Data Links Manager (914) * migração o erros durante (807) o execução do db2iupdt para atualizar instâncias (800) o no Windows 2000 (789) o problemas com exibições (793) * Movimento de dados o limites de clientes Unicode (918) N * navegadores da web o recomendações para Windows 2000 (771) * NetQuestion o utilizando TCP/IP no OS/2 (777) * Netscape o mensagens de erro (780), (975) o utilização para acessar informações on-line (772) * NEWLOGPATH2 o agora chamado de DB2_NEWLOGPATH2 (912) * níveis de correção o no Solaris versão 2.6 (785) * NUMA-Q o sem suporte para Query Enabler ou Tracker (1008) O * ODBC o cursores deslocáveis, acesso (1024) o orientações de busca (1032) * operando o string (1100) * origens de dados do Sybase (822) o link ao DB2 (825) o melhorando o desempenho (826) o páginas de código (827) o variáveis de ambiente (824) * origens de dados Microsoft SQL Server o biblioteca MERANT (829) o driver ODBC (828) o link ao DB2 (831) o melhorando o desempenho (832) o nome do DSN (834) o páginas de código (836) o rastreios do ODBC (835) o variáveis de ambiente (830) o wrappers MERANT (833) * OS/2 o instalando o Centro de Controle (959) o NetQuestion (778) P * perfilamento estático em aplicativos JDBC/ODBC/CLI (1013) * perfilamento estático JDBC/ODBC/CLI, limitações (1012) * perfis de usuários o alterando status do nó (1003) * pesquisa de descoberta (1151) * pesquisa de informações on-line o no Solaris operating environment (774) * planejamentos o duplicado (990) o etapa e processo (989) * pré-requisitos de instalação o para UDB EE e CEE no Linux para OS/390 (802) * Procedimento SQL o instrução GET DIAGNOSTICS (1138) * procedimentos armazenados o no Data Warehouse Center (1164) * procedimentos armazenados CLI o ligando automaticamente (1040) o limitações (1039) * processo o planejamentos (992), (993) * processos, interrompendo antes da instalação (798) * próximo bloqueio da chave (939) * PTX o utilizando com Japonês (766) * publicações atualizadas o Data Warehouse Center - Guia de Administração (753) o DB2 Warehouse Manager - Guia de Instalação (755) o Guia de Administração (749) o Guia de Desenvolvimento de Aplicativos (748), (750) o Guia e Referência de Recuperação de Dados e Alta Disponibilidade (752) o Referência a Comandos (751) o Referência a Mensagem (754) o SQL reference (756) Q * Query Enabler o não suportado no HP-UX e NUMA-Q (1006) * Query Patroller o perda de privilégios de usuário após a migração (1004) * Query Patroller Tracker o não suportado no NUMA-Q (1005) R * raid o otimização para (837) * recuperação de falha o utilizando a ferramenta db2inidb (903) * recursos de acessibilidade (1148) * Red Flag Linux o locale chinês simplificado (759) * regras de conversão o para comparações de cadeias (1095) o para operações que combinam cadeias (1093) * réplica o cenários para (921) o DATALINK (923) o determinação de problemas na (927) o planejamento (925) o pré-requisito update-anywhere (926) o restrições de nomes de colunas e tabela (922) * replicação o com servidores não IBM (920) * restauração o problemas com colunas DATALINK (810) o quando LOGRETAIN=CAPTURE (910) * restaurando arquivos o Data Links Manager (813) * Restrições o Conector SAP (995) * RESULT_STATUS o instrução GET DIAGNOSTICS (1136) * resultados de consultas, exibindo (973) * retornando data e hora de valores o função TIMESTAMP (1123) * ROW_COUNT o instrução GET DIAGNOSTICS (1137) S * satélites o considerações sobre instalação (881) o DB2 Personal Edition (870) o DB2 Workgroup Edition (871) o instalação do Arquivo de Resposta (882) o instalação interativa (885) * servidor de controle DB2 o instalação do Arquivo de Resposta (878) o requisitos mínimos (877) o Versão 6, atualizando (888) * sistema operacional Solaris o 64 bits + configuração (940) + restrições (941) * sistemas federados o pseudônimos (815) o restrições (816) o wrappers (814) * Sistemas Federados, restrições (1158) * SNA Server o acesso ao UDB de aplicativos do host ou do AS/400 (790) * SNA SPM o verificação do início após inicialização (1161) * Solaris o falta de suporte para versões anteriores ao UltraSparc (757) o nível de correção necessário na V2.6 (784) * Solaris Operating Environment o pesquisa de informações on-line no (775) * SQL, composto (1038) * SQL composto, utilização (1037) * string o expressão (1099) o operando (1101) * suporte a NLV o Unicode (1143) * Suporte ao Idioma o Conector SAP (996) * suporte ao protocolo IPX/SPX, no Windows 2000 (796) * suporte bidirecional ao idioma o com o Centro de Controle no Windows NT (953) * Sybase o incompatibilidade com ICM no Windows (998) * Sybase Open Client (823) T * tabela o exceção + estrutura da coluna de mensagens (1141) * tabela de exceções o estrutura da coluna de mensagens (1140) * tamanho de extensão o definindo no assistente de criação do banco de dados (976) * taxas de transferência o aumentando (1145) * taxas de transferência de dados o aumentando (1146) * TCP/IP o NetQuestion (779) * teclas de acesso rápido o problemas com (957) * teste de conexão de atualização multisite o incompatibilidade com a versão da instância (962) * time o retornando data e hora de valores (1124) o retornando valores baseados em hora (1119) o utilizando hora em uma expressão (1118) * tipos de dados o promoção em um banco de dados Unicode (1087) * tipos de dados de data e hora o representação de cadeia de (1104) * tour rápido (983) * transformações ADT (1014) * tratamento de espelhamento dividido o on-line (904) U * Unicode o atualizações na documentação (1144) o banco de dados e aplicativos (1142) o em aplicativos ODBC (1059) o funções em (1103) * utilizando hora em uma expressão o função TIME (1117) V * valores de data e hora o representações de cadeia (841) * variáveis de ambiente o LD_ASSUME_KERNAL (947) * variáveis de registro o DB2_BINSORT (855) o DB2_BLOCK_BASED_BP (857) o DB2_INLIST_TO_NLJN (859) o DB2_NEWLOGPATH (861) o DB2_NEWLOGPATH2 (864) o DB2_REDUCED_OPTIMIZATION (866) o DB2_ROLLFORWARD_ NORETRIEVE (862) o DB2DOMAINLIST (1156) W * warehouse, instalação de agentes do (1000) * Windows o incompatibilidade entre Sybase e ICM (999) * Windows 2000 o migração no (788) o navegadores da Web recomendados no (773) o suporte ao protocolo IPXX/SPX (795) X * XML extender o notas sobre o release (942) 1 Um Service Policy define um conjunto de opções de qualidade de serviço que devem ser aplicadas a essa operação de mensagens. Essas opções incluem a prioridade e a persistência da mensagem. Consulte a publicação MQSeries Application Messaging Interface para obter detalhes adicionais.