DB2 스토어드 프로시저 프로그램 준비

이 주제에서는 수집해야 하는 정보 및 Debug Tool로 디버깅하기 위해 DB2® 스토어드 프로시저를 준비하는 데 필요한 단계에 대해 설명합니다. Debug Tool은 PROGRAM TYPE이 MAIN 또는 SUB인 스토어드 프로시저를 디버그할 수 있습니다. 준비 단계도 동일합니다.

시작하기 전에 지원되는 디버그 모드를 사용할 수 있는지 확인하십시오. Debug Tool은 다음 디버그 모드 모두에서 어셈블러, C, C++, COBOL 및 Enterprise PL/I로 작성된 스토어드 프로시저를 디버그할 수 있습니다.

DB2 Application Programming and SQL Guide에서 『스토어드 프로시저 작성』 주제를 검토하여 스토어드 프로시저가 외부 스토어드 프로시저의 형식 및 제한을 준수하는지 확인하십시오. Debug Tool은 외부 스토어드 프로시저의 디버깅만을 지원합니다.

DB2 스토어드 프로시저를 준비하려면 다음 단계를 수행하십시오.

  1. DB2 시스템 관리자가 Debug Tool Customization Guide의 "DB2 스토어드 프로시저 디버깅을 위해 환경준비" 섹션에 설명된 태스크를 완료했는지 확인하십시오. DB2 시스템 관리자는 스토어드 프로시저가 실행되는 주소 공간을 정의하고 DB2 프로그램에 적절한 RACF® 읽기 권한을 부여하며 갱신사항이 제대로 반영되도록 주소 공간을 재활용해야 합니다.
  2. 디버그하려는 DB2스토어드 프로시저를 작성하는 데 사용된 매개변수에 친숙하지 않은 경우에는 다음 예제에 설명된 대로 SELECT문을 입력하여 이 정보를 구하십시오.
    SELECT PROGRAM_TYPE,STAYRESIDENT,RUNOPTS,LANGUAGE
       FROM SYSIBM.SYSROUTINES
       WHERE NAME='name_of_DB2_stored_procedure';
  3. call_sub 함수에 의해 호출되지 않고 프로그램 유형이 SUB인 스토어드 프로시저의 경우 시스템 프로그래머 또는 DB2 시스템 관리자가 WLM 주소 공간을 정의할 때 NUMTCB의 값을 1로 설정하는지 확인하십시오. NUMTCB는 WLM 주소 공간에서 동시에 실행할 수 있는 TCB(Task Control Block)의 최대수를 지정합니다. 스토어드 프로시저가 시작되지 않은 TCB에서 실행되는 경우 스토어드 프로시저를 디버그할 수 없습니다. NUMTCB의 값을 1로 설정하면 스토어드 프로시저가 다른 TCB에서 실행되지 않습니다.
  4. 스토어드 프로시저를 정의할 때 다음 항목을 확인하십시오.
  5. 프로그램을 디버깅을 위한 프로그램 준비에 설명된 대로 컴파일하거나 어셈블하십시오. Enterprise PL/I 프로그램의 경우에는 RENT 컴파일러 옵션도 지정하십시오.
  6. 다음 목록을 검토하여 TEST 런타임 옵션을 어떻게 지정할지를 결정하십시오.
  7. Language Environment EQADDCXT EXIT 루틴을 통해 TEST 런타임 옵션을 지정하려면 Language Environment 사용자 EXIT을 통해 TEST 런타임 옵션 지정에 설명된 대로 EQADDCXT 사용자 EXIT의 사본을 준비하십시오.

    call_sub 함수에 의해 호출된 SUB 프로그램 유형의 기존의 스토어드 프로시저를 디버그하려는 경우에는 스토어드 프로시저가 RUN OPTIONS 매개변수의 NOTEST 런타임 옵션을 사용할 수 있도록 스토어드 프로시저를 수정해야 합니다. 다음 예제는 ALTER PROCEDURE문을 사용하여 이와 같이 수정하는 방법을 보여줍니다.

    ALTER PROCEDURE name_of_DB2_stored_procedure RUN OPTIONS 'NOTEST';
  8. DB2 카탈로그를 통해 TEST 런타임 옵션을 지정하려면 다음 단계를 수행하십시오.
    1. 스토어드 프로시저를 작성하지 않은 경우에는 CREATE PROCEDURE문을 사용하여 스토어드 프로시저를 작성하십시오. 다음 예제를 가이드로 사용할 수 있습니다.
      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;
      이 예제는 이름이 SPROC1이고, 프로그램 유형은 SUB이고, WLMENV1이라는 WLM 어드레스 스페이스에서 실행되고, 원격 디버그 모드에서 디버그되는 COBOL 프로그램의 스토어드 프로시저를 작성합니다.
    2. 기존 스토어드 프로시저를 수정해야 하는 경우에는 ALTER PROCEDURE문을 사용하십시오. 다음 예제를 가이드로 사용할 수 있습니다.

      원격 디버거의 IP 주소가 9.112.27.99에서 9.112.27.21로 변경되었습니다. 스토어드 프로시저를 수정하려면 다음 명령문을 입력하십시오.

      ALTER PROCEDURE name_of_DB2_stored_procedure
         RUN OPTIONS 'TEST(,,,TCPIP&9.112.27.21%8001:*)';
    3. SELECT문을 입력하여 스토어드 프로시저가 올바르게 정의되었는지 확인하십시오. 예를 들어, 다음 SELECT문을 입력할 수 있습니다.
      SELECT * FROM SYSIBM.SYSROUTINES;