Depuração de procedimentos armazenados em Java
Antes de iniciar
Deve ser implantado um ambiente WLM que ofereça suporte a rotinas Java. Consulte Configuração do ambiente para rotinas Java para obter mais informações.
- O Unified Debugger deve ser configurado no ambiente de desenvolvimento Db2 for z/OS. Consulte Depuração de procedimentos armazenados usando o Unified Debugger para obter mais informações.
- WLM Procedimento de inicialização do espaço de endereço para rotinas Java. Consulte Configuração do ambiente do aplicativo WLM para rotinas Java para obter mais informações.
- Procedimento de inicialização do ambiente de aplicativos WLM para rotinas Java. Consulte Ambiente de tempo de execução para rotinas Java para obter mais informações.
- Um procedimento armazenado em Java deve ser implantado com a depuração ativada (use as opções Enable Debugging e Refresh Java WLM Environment durante a implantação).
- Certifique-se de que nenhuma outra sessão de depuração do Db2 for z/OS esteja ativa, pois somente uma sessão pode ser executada por vez.
- Seu arquivo de origem .java ou .sqlj deve ser carregado em um projeto Java em algum lugar do seu espaço de trabalho.
- Abra o arquivo de origem .java ou .sqlje defina pontos de interrupção onde deseja que o depurador pause a execução.
Início de uma sessão de depuração
- Para iniciar o depurador, execute uma das etapas a seguir:
- Abra um arquivo .javaspsql no editor, clique com o botão direito do mouse e selecione .
- Na visualização z/OS Projects, clique com o botão direito do mouse em um arquivo .javaspsql e selecione .
- Na visualização z/OS Projects, selecione um arquivo .javaspsql e pressione F11, escolha no menu principal ou selecione
na barra de ferramentas. - No painel de navegação do Catalog, clique com o botão direito do mouse em um objeto de procedimento armazenado Java e selecione Debug Routine (Rotina de depuração ).
Nota: O.spsqlA extensão também é suportada para procedimentos armazenados Java, junto com.javaspsql. - Se o procedimento armazenado exigir parâmetros de entrada, será exibida uma caixa de diálogo Parâmetros de entrada. Depois que os valores forem inseridos, clique em OK para iniciar a depuração.
- Resultados
- O gerenciador de sessão do depurador gera uma configuração de depuração e abre o código-fonte do stack frame ativo no editor Java.
- O depurador para automaticamente no primeiro ponto de interrupção, desde que ele seja alcançado enquanto o programa estiver em execução.
- Quando a Perspectiva de depuração não estiver aberta, o workbench solicitará que você a abra. Se recusada, a visualização Debug é adicionada automaticamente à perspectiva atual.
Adicionar pontos de interrupção e percorrer o código
Use o editor Java e a visualização Debug para definir pontos de interrupção que determinam onde o depurador faz uma pausa e para percorrer o código Java. Você pode visualizar e modificar os pontos de interrupção existentes na visualização Pontos de interrupção. Os pontos de interrupção persistirão em várias sessões de depuração.
A visualização Debug exibe uma visualização hierárquica do código Java à medida que ele é executado. Ao depurar um procedimento armazenado Java ou SQLJ, será criada uma sessão de depuração de aplicativo Java remoto, além da sessão de depuração SQL. Essa sessão de depuração do aplicativo Java remoto inclui o alvo de depuração, o processo, o thread e um ou mais quadros de pilha.
Você pode usar a exibição Breakpoints para visualizar ou gerenciar breakpoints. Clicar em um ponto de interrupção nessa visualização abre o arquivo de origem. Para obter mais informações sobre a exibição Pontos de interrupção, consulte Exibição Pontos de interrupção.

Para adicionar um ponto de interrupção, clique duas vezes na barra de marcadores na linha em que você deseja definir um ponto de interrupção. Para remover um ponto de interrupção, clique duas vezes no marcador. Você também pode usar o menu pop-up na barra de marcadores para ativar e desativar os pontos de interrupção.
Para obter mais informações sobre a depuração de aplicativos Java remotos, consulte Depurador do kit de ferramentas de desenvolvimento Java.
Retomar- Continuar a execução até o próximo ponto de interrupção ou conclusão.
Parar- Encerra a sessão de depuração.
Avançar Para- Mover para o método atual.
Ultrapassar- Passe para a próxima instrução no mesmo nível.
Retroceder- Retorna do método atual para seu chamador.
A visualização Debug exibe threads e quadros de pilha para o procedimento armazenado Java em execução. A visualização Variables (Variáveis) lista as variáveis no escopo, que você pode inspecionar e editar. Os pontos de interrupção podem ser definidos ou gerenciados na visualização de pontos de interrupção.
Saída
- Se o procedimento definir parâmetros de saída, os resultados serão mostrados na caixa de diálogo Status da execução.
- Se o procedimento gerar linhas, elas serão exibidas na visualização Detalhes do sistema remoto.
- A solicitação CALL é registrada na pasta Query History (Histórico de consultas) da conexão Db2.
Demonstração

Depuração de procedimentos armazenados SQLJ
Além dos procedimentos armazenados em Java, há suporte para procedimentos armazenados em SQLJ para depuração. O SQLJ permite que instruções SQL estáticas sejam incorporadas diretamente em programas Java e usa a mesma estrutura de depuração de aplicativos Java remotos que os procedimentos armazenados em Java.
Para garantir que os arquivos SQLJ sejam reconhecidos pelo depurador, eles devem ser excluídos da compilação em qualquer projeto Java que os contenha. Veja a seguir as etapas para configurar cada projeto com arquivos SQLJ:
- Clique com o botão direito do mouse no projeto, selecione Propriedades e, em seguida, vá para Java Build Path.
- Na guia Source (Fonte), vá para Excluded (Excluído ) e selecione a opção Edit (Editar ).
Selecione a opção Add (Adicionar ) na seção Exclusion Patterns (Padrões de exclusão ).
- Digite **/*.sqlj e selecione OK.
- Selecione Finish (Concluir ) e, em seguida, Apply (Aplicar) e Close (Fechar ).
Resolução de problemas
- SQLCODE -430
- A rotina foi encerrada de forma anormal. Reimplante e atualize o ambiente do WLM.
- SQLCODE -471 (código de motivo 00E79001 )
- A rotina foi interrompida. Reimplante e atualize o WLM.
- Falha ao conectar-se à VM remota (conexão recusada)
- A JVM pode não estar acessível no IP/porta especificado. Tente novamente e verifique as configurações de firewall/WLM.
- Incompatibilidade de origem
- Se a fonte Java local não corresponder à versão implantada, a depuração falhará. Certifique-se de que as duas cópias sejam idênticas.