© Copyright International Business Machines Corporation 2006. Todos os Direitos Reservados. Direitos Restritos aos Usuários do Governo dos Estados Unidos - Uso, duplicação ou divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM Corporation.
Há dois novos tipos de projetos de dados no ambiente de trabalho:
- Projetos de design de dados
- Projetos de desenvolvimento de dados
Os projetos de design de dados são utilizados para criar e armazenar modelos de dados, por exemplo, modelos de dados físicos e modelos de dados lógicos. Os projetos de desenvolvimento de dados são utilizados para criar e armazenar objetos de desenvolvimento de aplicativos de dados, como procedimentos armazenados e funções definidas pelo usuário (também conhecidas como rotinas). As rotinas também podem ser visualizadas a partir de um projeto de design de dados como parte de um modelo de dados físico. No entanto, o suporte ao desenvolvimento para rotinas de um projeto de design de dados é muito limitado e não há suporte às ferramentas SQL para rotinas em um projeto de design de dados. Se você estiver desenvolvendo rotinas, recomenda-se utilizar o projeto de desenvolvimento de dados designado que fornece suporte mais completo, incluindo assistentes, editores de rotinas, suporte à depuração e a integração de ferramentas SQL.
No editor de dados da tabela, se você executar uma validação XML em uma tabela XML que não contenha uma chave primária, a validação XML só funcionará na primeira vez, quando você inserir o valor XML. Além disso, uma atualização de uma coluna XML existente com validação XML falhará.
Solução alternativa: Crie uma chave primária para as tabelas que contêm colunas XML.
Trabalhar com vários elementos-raízes nesse editor pode levar a erros ao salvar o arquivo XSD anotado.
Solução alternativa: Crie um conjunto separado de arquivos de documentos de Esquema XML para cada elemento-raiz.
Para utilizar tipos de dados XML e trabalhar com esquemas XML, você deve se conectar a um banco de dados UTF-8. A quantidade de dados retornados do banco de dados para documentos XML é ilimitada. Dependendo da quantidade de dados retornados, o desempenho poderá ser afetado.
- O editor SQL atualmente não suporta variáveis de host durante a ação Executar SQL.
Solução alternativa: É possível executar o SQL a partir do construtor SQL, se ele for uma instrução DML.
- No construtor SQL, a sintaxe SQL completa não é suportada. Por exemplo, funções UDTs (User Defined Types) e Table não são suportadas.
- UDTs (Tipos Definidos pelo Usuário) não são suportados como parâmetros para rotinas.
- Para implementar procedimentos armazenados Java™ que tenha como destino o DB2 Universal Database™ para iSeries® a partir do sistema de arquivos utilizando a implementação de Ant, você deverá assegurar-se de ter o jt400.jar no caminho de classe do sistema. Se você tentar implementar um procedimento armazenado exportado utilizando as instruções em DeployInstructions.txt, poderá obter uma mensagem de erro que diz:
...[createsp] Não foi possível conectar-se ao banco de dados de destino.
[createsp] com.ibm.db2.jcc.DB2Driver...Solução alternativa: Assegure-se de que o db2jcc.jar e os arquivos de licença apropriados estejam no caminho de classe do sistema.
- Você poderá ver um erro "impossível carregar classe" quando implementar ou executar procedimentos armazenados Java. Isso poderá acontecer se houver uma incompatibilidade na versão do JDK entre o RAD v7 e o servidor DB2®, se o servidor DB2 estiver em um JDK de nível inferior.
Solução alternativa: Você deve especificar a opção "-source 1.4" no campo Opções de compilação do assistente Implementar Rotinas quando estiver implementando procedimentos armazenados Java em servidores que utilizam um JDK de nível 1.4. (por exemplo, um servidor DB2 Universal Database para Linux®, UNIX® e Windows® V8.2). Em geral, utilize a opção de compilação apropriada "-source JDK level " para que corresponda ao nível de JDK no servidor de banco de dados.
- Ao implementar um procedimento armazenado ou uma UDF utilizando a funcionalidade de implementação Ant, você poderá ver esta mensagem se o arquivo tools.jar não estiver localizado no caminho de classe:
Impossível localizar tools.jar. Espera-se localizá-lo em F:\jre\1.4.2\lib\tools.jar
O tools.jar é uma parte do JRE (Java Runtime Environment), não da ferramenta de implementação Ant.Solução alternativa: O tools.jar não é necessário para executar o script Ant e, por enquanto, você pode apenas ignorar essa mensagem.
- Ao alterar o nome do método Java no editor de procedimento armazenado, você não poderá salvar o procedimento adequadamente clicando com o botão direito do mouse na página Origem do editor e, em seguida, selecionando Salvar.
Solução alternativa: Salve o procedimento armazenado clicando em Arquivo->Salvar, pressionando Ctrl+S ou clicando no ícone Salvar.
- Se você arrastar e soltar um procedimento armazenado ou um UDF entre servidores diferentes (por exemplo, de um servidor DB2 Universal Database para Linux, UNIX e Windows para um servidor DB2 Universal Database para z/OS®), verá um aviso durante a operação arrastar e soltar sobre determinadas incompatibilidades entre os dois servidores. Se você continuar a operação e, em seguida, tentar abrir o procedimento armazenado ou o UDF, poderá ver um erro.
- A execução de Criação de Perfis SQL em relação a um DB2 UDB para servidor Linux, UNIX e Windows V8.2 poderá causar uma exceção de ponteiro nulo se estiver faltando no servidor o procedimento armazenado de pré-requisito (SYSIBM.SQLCAMESSAGECCSID) que é exibido pelo driver JCC para recuperar o texto da mensagem de erro.
Solução alternativa: é possível criar uma conexão com o servidor sem a configuração retrieveMessagesFromServerOnGetMessage=true.
- Durante o monitoramento da execução de procedimentos SQL, são gerados eventos para instruções DML, como INSERT, SELECT, DELETE e UPDATE que são emitidos no procedimento. No entanto, os eventos não são gerados de forma determinista para instruções orientadas por procedimentos, como designações de variáveis e estruturas de controle, como WHILE ou IF. Portanto, as informações de criação de perfil podem não ser geradas para instruções referentes a procedimentos.
- Durante a conexão com um servidor UNIX DB2, poderão ocorrer exceções de tempo limite ao incluir pontos de interrupção ou executar no modo de depuração.
- O depurador não é executado para um procedimento armazenado cujo nome contenha caracteres em inglês e chinês.
- As expressões de controle são suportadas apenas para procedimentos armazenados dinâmicos Java. Elas não são suportadas para procedimentos armazenados SQL e SQLJ.
- O depurador não será interrompido em um ponto de interrupção se não estiver posicionado no primeiro token de uma instrução executável, como SET. Além disso, ele não será interrompido em DECLARE CONTINUE, CLOSE CURSOR ou ROLLBACK.
- Se você estiver depurando um procedimento armazenado Java e selecionar uma ação Finalizar, poderá demorar um pouco para que a sessão de depuração termine completamente. Novas sessões de depuração iniciadas durante esse tempo podem comportar-se incorretamente.
- Se você estiver depurando um procedimento armazenado Java que chame um segundo procedimento armazenado Java, não poderá depurar o segundo procedimento armazenado. Você não poderá avançar para o procedimento armazenado aninhado e todos os pontos de interrupção configurados para ele serão ignorados. Essa restrição é válida para Linux, UNIX e Windows.
- Se você receber um erro 'Ocorreu tempo limite ao esperar pelo pacote' enquanto estiver depurando um procedimento armazenado Java, tente aumentar a configuração de tempo limite de Java.
Solução alternativa: Para aumentar a configuração de tempo limite do Java, clique em Janela > Preferências na barra de menus do ambiente de trabalho. Expanda o nó Java e clique em Depurar. Na página Preferências de depuração, aumente o valor de Tempo limite do depurador(ms) na seção Tempo limite para comunicação. Recomenda-se pelo menos dobrar o valor padrão.
- Durante a depuração de um procedimento armazenado Java, se você utilizar a ação Alterar Valor para modificar uma variável que tenha um valor de cadeia vazia, o botão OK no diálogo de edição poderá não ser ativado.
Solução alternativa: Para ativar o botão, selecione o botão de opções Informar uma avaliação, configure o valor para uma cadeia não vazia (por exemplo, 'a') e, em seguida, selecione o botão de opções Informar texto literal. O botão OK ficará, então, disponível.
- Se você não vir variáveis locais durante a depuração de um procedimento armazenado Java, é possível que o procedimento armazenado tenha sido implementado sem a opção -g do compilador.
Solução alternativa: Assegure-se de especificar a opção -g do compilador durante a implementação de procedimentos armazenados Java.
- Se você vir uma mensagem 'estrutura de pilha inválida' na visualização Variáveis, vá para a visualização Depurar e clique no objeto de encadeamento acima da estrutura de pilha e, em seguida, clique na estrutura de pilha. Isso deve atualizar a visualização Variáveis e o erro não deve mais aparecer.
- Durante a depuração de um procedimento armazenado SQLJ em execução no DB2 UDB para iSeries V5 R4, a linha atual que está sendo executada não corresponderá à linha original SQLJ indicada exibida na visualização Depuração, a não ser que você tenha aplicado um PTF do iSeries que atualize o mapeamento de linha para que corresponda à origem SQLJ em vez de à origem Java.
- As preferências do depurador para tempo limite do gerenciador de sessão (Janela > Preferências e, em seguida, expanda Executar/Depurar e clique em Depurador de Procedimento Armazenado do DB2 e, em seguida, modifique o campo Tempo limite do gerenciador de sessão em minutos) não são reconhecidas.
- O depurador não pode manipular um procedimento armazenado que tenha muitas variáveis no DB2 para Linux, UNIX e Windows. O número máximo de variáveis é 200.
- Movimento do cursor em uma sessão de depuração: Em alguns casos, quando houver mais de uma declaração de variável em um procedimento, você deve clicar em Avançar para ou em Avançar sobre mais de uma vez para mudar para a próxima linha. Por exemplo, você deve clicar duas vezes nesta linha: DECLARE v_dept, v_actdept CHAR(3) e três vezes nesta linha: DECLARE v_bonus, v_deptbonus, v_newbonus DECIMAL(9,2). É necessário clicar um número de vezes igual ao número de declarações de variáveis.
- Se você iniciar uma sessão de depuração para um procedimento armazenado Java e incluir pontos de interrupção, desative os pontos de interrupção, pois ainda estão ativados.
Solução alternativa: Quando iniciar uma nova sessão de depuração, remova primeiramente todos os pontos de interrupção anteriores e, em seguida, inclua novos.
- Em alguns casos, quando você estiver trabalhando com vários projetos de desenvolvimento de dados, poderá ver um erro quando tentar depurar um procedimento armazenado que informe "Impossível localizar o procedimento armazenado PROCNAME. É possível que o procedimento tenha sido excluído do espaço de trabalho" ou "Origem não localizada".
- Depois de depurar um procedimento armazenado SQL aninhado, às vezes a visualização da saída dos dados ainda poderá mostrar que o depurador está em execução e isso poderá causar problemas em qualquer execução ou implementação subseqüente de procedimentos armazenados.
Solução alternativa: O gerenciador de sessão precisa ser executado na máquina cliente que tenha o produto do desenvolvedor instalado. Para iniciar o gerenciador de sessão, execute o arquivo db2dbgm.bat no diretório bin da Instalação do produto.
- Há um suporte limitado para a depuração de procedimentos armazenados em servidores DB2 V8 Linux, Unix, Windows e z/OS. Apenas procedimentos SQL podem ser depurados em um servidor DB2 V8 que tenha o fixpak 14 instalado. Para que o depurador funcione em um servidor DB2 V8, o gerenciador de sessão também precisa ser executado na máquina cliente que tem o produto do desenvolvedor instalado. Para iniciar o gerenciador de sessão, execute o arquivo db2dbgm.bat no diretório bin da Instalação do produto.
- ALIAS, MQT, NICKNAME e SYNONYM são agora suportados durante a engenharia bidirecional, mas não são suportados no processo Mapeamento EJB.
- Suporte limitado para MySQL 4.1: As seguintes propriedades não são exibidas corretamente na visualização Propriedades: índice exclusivo, colunas de incremento automático, valor padrão da coluna para NULL e binário. Além disso, procedimentos e funções em C não são suportados.
- Acionadores, restrições de verificação e visualizações não são suportados para o Cloudscape® v5.1 : Os acionadores e as restrições de verificação do Cloudscape v5.1 não são exibidos no Explorador de Banco de Dados. As visualizações do Cloudscape v5.1 estão ausentes no corpo de SQL na visualização Propriedades. Não é possível gerar DDL ou fazer engenharia reversa de acionadores, restrições de verificação ou visualizações do Cloudscape v5.1.
- Há um suporte limitado para tipos de dados estruturados definidos pelo usuário no Oracle: O nome de um tipo de dados estruturado definido pelo usuário não será incluído na definição da tabela ao gerar DDL para uma tabela do Oracle.
- A atualização de um objeto de contêiner no explorador de banco de dados pode falhar e causar esta exceção: "não é possível modificar o conjunto de recursos sem uma transação de gravação", após o fechamento do editor de comparação que foi aberto para comparar objetos no contêiner do explorador de banco de dados. Por exemplo, comparar uma tabela em seu modelo de dados físico com sua origem original pode causar essa exceção.
Solução alternativa: Quando isso ocorrer, é possível selecionar o contêiner que contém o objeto do contêiner e tentar atualizar novamente. Por exemplo, se a atualização de uma tabela falhar, tente atualizar o esquema que contém a tabela. Se as novas tentativas ainda falharem, será necessário desconectar do banco de dados e reconectar.
Se você definir uma tabela com uma única coluna de tipo de dados XML ou qualquer tabela com linhas não exclusivas e, em seguida, utilizar o editor de tabela para excluir uma linha, todas as linhas que corresponderem à linha selecionada serão excluídas.
Solução alternativa: Não utilize o editor de dados de tabela para excluir uma linha de uma tabela com linhas duplicadas.