Depuração de procedimentos armazenados em Java

Db2® for z/OS® As ferramentas de desenvolvimento oferecem suporte à depuração de procedimentos armazenados em Java. Saiba como configurar e executar o depurador para um arquivo de origem de procedimento armazenado em Java.

Antes de iniciar

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

  2. 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.
    1. 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.
    2. 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.
  3. 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).
  4. 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.
  5. Seu arquivo de origem .java ou .sqlj deve ser carregado em um projeto Java em algum lugar do seu espaço de trabalho.
  6. 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

  1. 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 Debug As > Db2 for z/OS Routine.
    • Na visualização z/OS Projects, clique com o botão direito do mouse em um arquivo .javaspsql e selecione Debug As > Db2 for z/OS Routine.
    • Na visualização z/OS Projects, selecione um arquivo .javaspsql e pressione F11, escolha Run > Debug no menu principal ou selecione Depuração 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 ).
    Todas essas opções geram uma configuração de depuração padrão. Você também pode criar uma configuração personalizada em Debug As > Debug Configuration.
    Nota: O .spsql A extensão também é suportada para procedimentos armazenados Java, junto com .javaspsql .
  2. 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.

Editor de depuração e visualização de depuraçã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.

Durante a depuração, você pode:
Continuar Retomar
Continuar a execução até o próximo ponto de interrupção ou conclusão.
Parar Parar
Encerra a sessão de depuração.
Avançar Para Avançar Para
Mover para o método atual.
Ultrapassar Ultrapassar
Passe para a próxima instrução no mesmo nível.
Retroceder 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

A animação a seguir mostra o processo de depuração de ponta a ponta.
Depuração de uma rotina do site Db2 for z/OS

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:

  1. Clique com o botão direito do mouse no projeto, selecione Propriedades e, em seguida, vá para Java Build Path.
  2. Na guia Source (Fonte), vá para Excluded (Excluído ) e selecione a opção Edit (Editar ).
  3. Selecione a opção Add (Adicionar ) na seção Exclusion Patterns (Padrões de exclusão ).

  4. Digite **/*.sqlj e selecione OK.
  5. Selecione Finish (Concluir ) e, em seguida, Apply (Aplicar) e Close (Fechar ).
Observação: o Eclipse Java Editor não oferece suporte nativo ao SQLJ, o que pode fazer com que instruções SQLJ válidas sejam sinalizadas como erros de sintaxe. Essas etapas de configuração ajudam a resolver esses erros.

Resolução de problemas

As situações a seguir podem impedir o início da sessão de depuração:
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.