Preparando um programa de procedimentos armazenados do Db2

Este tópico descreve as informações que você precisa coletar e as etapas que devem ser executadas para preparar um procedimento armazenado do Db2® para depuração com o z/OS® Debugger. O z/OS Depurador pode depurar procedimentos armazenados em que PROGRAM TYPE é MAIN ou SUB; as etapas de preparação são as mesmas

Antes de iniciar, verifique se é possível usar os modos de depuração suportados z/OS O depurador pode depurar procedimentos armazenados escritos em assembler, C, C++, COBOL e Enterprise PL/I em qualquer um dos seguintes modos de depuração:

  • depuração remota
  • Modo tela cheia usando o Terminal Interface Manager
  • Lote

Revise o tópico Criando um procedimento armazenado no Db2 Application Programming and SQL Guide para verificar se seu procedimento armazenado está em conformidade com o formato e as restrições para procedimentos armazenados externos. O z/OS Depurador suporta a depuração apenas de procedimentos armazenados externos

Para preparar um procedimento armazenado Db2 , execute as etapas a seguir:

  1. Verifique se o administrador do sistema Db2 concluiu as tarefas descritas na seção Preparando seu ambiente para depurar procedimentos armazenados do Db2 " do Guia de personalização do depurador IBM® z/OS. O administrador do sistema Db2 deve definir o espaço de endereço onde o procedimento armazenado é executado, conceder aos programas Db2 as autorizações de leitura RACF® apropriadas e reciclar o espaço de endereço para que as atualizações tenham efeito.
  2. Se você não estiver familiarizado com os parâmetros usados para criar o procedimento armazenado Db2 que deseja depurar, poderá inserir a instrução SELECT, conforme ilustrado no exemplo a seguir, para obter essas informações:
    SELECT PROGRAM_TYPE,STAYRESIDENT,RUNOPTS,LANGUAGE
       FROM SYSIBM.SYSROUTINES
       WHERE NAME='name_of_Db2_stored_procedure';
  3. Ao definir seu procedimento armazenado, verifique os itens a seguir:
    • Especifique o valor correto para os parâmetros LANGUAGE e PROGRAM TYPE. Para C, C++, COBOL ou Enterprise PL/I, o TIPO DE PROGRAMA pode ser MAIN ou SUB. Para assembler, PROGRAM TYPE deve ser MAIN.
    • Para procedimentos armazenados do tipo de programa SUB, revise as opções a seguir:
      • Se você planeja especificar as opções TEST de tempo de execução por meio da rotina de Language Environment® saída ` EQAD3CXT `, especifique STAY RESIDENT NO.
      • Se você planeja especificar as opções de tempo de execução do TEST por meio do catálogo do Db2 , é possível especificar YES ou NO para STAY RESIDENT.
  4. Compile ou monte seu programa, conforme descrito em Preparando seu programa para depuração. Para Enterprise PL/I programas, especifique também a opção do compilador RENT.
  5. Revise a lista a seguir para determinar como especificar as opções de tempo de execução do TEST :
    • Para procedimentos armazenados do tipo de programa MAIN, você pode especificar a opção TEST de tempo de execução por meio da rotina de Language Environment saída ` EQAD3CXT ` ou do catálogo ` Db2 `. Se você usar os dois métodos, a rotina de Language Environment saída EQAD3CXT terá precedência sobre o catálogo Db2.
    • Para procedimentos armazenados do tipo de programa SUB, você pode especificar a opção TEST de tempo de execução por meio da rotina de Language Environment saída ` EQAD3CXT ` ou do catálogo ` Db2 `. Se você optar por usar a rotina de Language Environment saída ` EQAD3CXT `, deverá especificar a opção ` NOTEST runtime` para o RUN OPTIONS parâmetro ao definir o procedimento armazenado.
  6. Para especificar as opções TEST de tempo de execução por meio da rotina de saída ` EQAD3CXTLanguage Environment `, prepare uma cópia da saída de usuário ` EQAD3CXT `, conforme descrito em Especificando as opções de tempo de execução TEST por meio da saída de usuário ` Language Environment `.
    Lembre-se de que se você desejar depurar um procedimento armazenado existente do tipo de programa SUB, deverá modificar o procedimento armazenado para que ele use a opção de tempo de execução NOTEST para o parâmetro RUN OPTIONS . O exemplo a seguir mostra como usar a instrução ALTER PROCEDURE para fazer essa modificação:
    ALTER PROCEDURE name_of_Db2_stored_procedure RUN OPTIONS 'NOTEST';
  7. Para especificar as opções de tempo de execução do TEST por meio do catálogo do Db2 , execute as etapas a seguir:
    1. Se você não criou o procedimento armazenado, grave o procedimento armazenado usando a instrução CREATE PROCEDURE. É possível usar o exemplo a seguir como um guia:
      CREATE PROCEDURE SPROC1
         LANGUAGE COBOL
         EXTERNAL NAME SPROC1
         PARAMETER STYLE GENERAL
         WLM ENVIRONMENT WLMENV1
         RUN OPTIONS 'TEST(,,,TCPIP&9.112.27.99%8001:*)'
         PROGRAM TYPE SUB;
      Este exemplo cria um procedimento armazenado para um programa COBOL chamado SPROC1. O tipo de programa é SUB, ele é executado em um espaço de endereço WLM chamado WLMENV1 e é depurado no modo de depuração remota.
    2. Se precisar modificar um procedimento armazenado existente, use a instrução ALTER PROCEDURE. É possível usar o exemplo a seguir como um guia:
      O endereço IP do depurador remoto mudou de 9.112.27.99 para 9.112.27.21. Para modificar o procedimento armazenado, insira a seguinte instrução:
      ALTER PROCEDURE name_of_Db2_stored_procedure
         RUN OPTIONS 'TEST(,,,TCPIP&9.112.27.21%8001:*)';
    3. Verifique se o procedimento armazenado está definido corretamente, inserindo a instrução SELECT Por exemplo, é possível inserir a seguinte instrução SELECT:
      SELECT * FROM SYSIBM.SYSROUTINES;