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:
- 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.
- 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'; - 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
TESTde tempo de execução por meio da rotina de Language Environment® saída ` EQAD3CXT `, especifiqueSTAY RESIDENT NO. - Se você planeja especificar as opções de tempo de execução do
TESTpor meio do catálogo do Db2 , é possível especificarYESouNOparaSTAY RESIDENT.
- Se você planeja especificar as opções
- 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.
- 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
TESTde 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
TESTde 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 `NOTESTruntime` para oRUN OPTIONSparâmetro ao definir o procedimento armazenado.
- Para procedimentos armazenados do tipo de programa MAIN, você pode especificar a opção
- Para especificar as opções
TESTde 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çãoNOTESTpara o parâmetroRUN 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'; - Para especificar as opções de tempo de execução do
TESTpor meio do catálogo do Db2 , execute as etapas a seguir:- 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:
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.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; - 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:*)'; - 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;
- 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: