Language Environment 사용자 EXIT을 통해 TEST 런타임 옵션 지정

Debug Tool은 Language Environment® 사용자 EXIT(CEEBXITA)의 사용자 정의 버전을 제공합니다. 사용자 EXIT은 Language Environment 초기화 로직에 의해 호출될 때 TEST 런타임 옵션을 리턴합니다. Debug Tool은 세 개의 서로 다른 환경에 사용자 EXIT을 제공합니다. 이 주제는 시스템 프로그래머용 정보에 대한 함께 Debug Tool Customization Guide에도 설명되어 있습니다.

사용자 EXIT은 이름 지정 패턴에서 작성된 이름의 사용자 제어 데이터셋으로부터 TEST 런타임 옵션을 추출합니다. 이름 지정 패턴에는 다음 토큰이 포함될 수 있습니다.

&USERID
Debug Tool은 &USERID 토큰을 현재 사용자의 사용자 ID로 바꿉니다. 애플리케이션을 디버깅할 때 각 사용자가 개별 TEST 런타임 옵션을 지정할 수 있습니다. 이 토큰은 선택적입니다.
&PGMNAME
Debug Tool은 &PGMNAME 토큰을 주 프로그램(로드 모듈)의 이름으로 바꿉니다. 각 프로그램에는 각자의 TEST 런타임 옵션이 있을 수 있습니다. 이 토큰은 선택적입니다.

Debug Tool은 다음 두 가지 방식으로 사용자 EXIT을 제공합니다.

Debug Tool은 다음 사용자 EXIT을 제공합니다.

표 14. 다양한 환경에 맞는 Language Environment 사용자 EXIT
환경 사용자 EXIT명
WLM 확립 어드레스 스페이스에서 실행하는 DB2® 스토어드 프로시저의 유형은 다음과 같습니다.
  • MAIN1 유형
  • call_sub 기능4이 호출하는 SUB 유형
EQADDCXT
IMS™ TM2 및 BTS3 EQADICXT
Batch 및 BTS EQADBCXT
주:
  1. EQADDCXT는 DB2 버전 7 이상에서 지원됩니다. DB2 RUNOPTS를 지정한 경우에는 EQADDCXT가 DB2 RUNOPTS보다 우선적으로 사용됩니다.
  2. IMS TM의 경우, IMS 터미널을 시작하지 않으면 TSOID 옵션을 사용하여 EQASET 트랜잭션을 실행해야 합니다. EQASET 트랜잭션을 실행하는 방법에 대한 지시사항은 발행/시작 없이 Language Environment IMS MPP 디버깅의 내용을 참조하십시오.
  3. BTS의 경우 IO PCB의 사용자 ID와 함께 Environment 명령(./E)을 지정해야 합니다. 예를 들어, 사용자 ID가 ECSVT2인 경우 Environment 명령은 ./E USERID=ECSVT2입니다.
  4. 사용자 EXIT을 애플리케이션 프로그램이 아닌 Language Environment 모듈 CEEPIPI의 개인용 사본에 링크

각 사용자 EXIT은 다음 방법 중 하나로 사용될 수 있습니다.

각 방법에 대한 장점 및 단점에 대해 학습하려면 CEEBXITA 링크의 두 가지 메소드 비교를 참조하십시오.

Language Environment 사용자 EXIT을 사용할 프로그램을 준비하려면 다음 태스크를 수행하십시오.

  1. CEEBXITA의 소스 코드 편집.
  2. CEEBXITA 사용자 EXIT을 애플리케이션 프로그램에 링크 또는 CEEBXITA 사용자 EXIT을 Language Environment 런타임 모듈의 개인용 사본에 링크.
  3. TEST 런타임 옵션 데이터셋 작성 및 관리.

CEEBXITA의 소스 코드 편집

다음 태스크 중 하나를 수행하여 이름 지정 패턴 또는 메시지 표시 레벨을 사용자 정의하도록 hlq.SEQASAMP에 제공되는 샘플 어셈블러 사용자 EXIT을 편집할 수 있습니다.

이름 지정 패턴 수정

TEST 런타임 옵션이 있는 데이터셋의 이름 지정 패턴은 순차 데이터셋명 형식입니다. Debug Tool이 현재 사용자의 사용자 ID로 대체하는 &USERID 토큰을 선택적으로 지정할 수 있습니다. Debug Tool이 주 프로그램(로드 모듈)의 이름으로 대체하는 &PGMNAME 토큰도 지정할 수 있습니다. 그러나 사용자가 원격 디버거의 DTSP 프로파일 보기를 사용하여 TEST 런타임 옵션 데이터셋을 작성하고 관리하는 경우 보기가 해당 토큰을 지원하지 않으므로 &PGMNAME 토큰을 지정하지 마십시오.

경우에 따라 사용자 ID의 첫 번째 문자는 이름 규정자로 올바르지 않습니다. &USERID 토큰 앞에 문자가 연결되어 사용자 ID의 접두부 문자 역할을 할 수 있습니다. 예를 들어, 토큰에 문자 "P"를 접두부로 추가하여 현재 사용자 ID를 &USERID로 대체한 후 올바른 이름 규정자가 되는 P&USERID를 형성할 수 있습니다. IMS의 경우, &USERID 토큰은 다음 값 중 하나로 대체될 수도 있습니다.

기본 이름 지정 패턴은 &USERID.DBGTOOL.EQAUOPTS입니다. 이 패턴은 hlq.SEQAMOD에서 제공되는 로드 모듈에 있습니다.

다음 표는 이름 지정 패턴 및 Debug Tool이 토큰을 값으로 대체한 후 해당 데이터셋명의 예를 나타냅니다.

표 15. 데이터셋 이름 지정 패턴, 토큰 값 및 결과 데이터셋명
이름 지정 패턴 사용자 ID 프로그램명 사용자 ID 대체 후 이름
&USERID.DBGTOOL.EQAUOPTS JOHNDOE JOHNDOE.DBGTOOL.EQAUOPTS
P&USERID.EQAUOPTS 123456 P123456.EQAUOPTS
DT.&USERID.TSTOPT TESTID DT.TESTID.TSTOPT
DT.&USERID.&PGMNAME.TSTOPT TESTID IVP1 DT.TESTID.IVP1.TSTOPT

TEST 런타임 옵션이 있는 데이터셋의 이름 지정 패턴을 사용자 정의하려면 샘플 사용자 EXIT에서 DSNT DC문의 값을 변경하십시오. 예를 들면 다음과 같습니다.

* 아래 DSNT DC 필드에서 값을 수정하십시오.
*
* 참고: 아래의 &USERID에는 이스케이프 문자인 추가 '&'가 하나
*       있습니다.
*
DSNT_LN         DC  A(DSNT_SIZE)  이름 지정 패턴의 길이 필드
DSNT            DC  C'&&USERID.DBGTOOL.EQAUOPTS'
DSNT_SIZE       EQU *-DSNT        데이터셋 이름 지정 패턴 크기
*

메시지 표시 레벨 수정

CEEBXITA에 대한 메시지 표시 레벨을 수정할 수 있습니다. 다음 값은 WTO 메시지 표시 레벨을 설정합니다.

X'00'
메시지를 표시하지 마십시오.
X'01'
오류 및 경고 메시지를 표시하십시오.
X'02'
오류, 경고 및 진단 메시지를 표시하십시오.

hlq.SEQAMOD의 로드 모듈에 있는 기본값은 X'00'입니다.

메시지 표시 레벨을 사용자 정의하려면 샘플 사용자 EXIT에서 MSGS_SW DC문의 값을 변경하십시오. 예를 들면 다음과 같습니다.

* 다음은 WTO 메시지 표시 레벨을 제어하는 전환입니다.
*
*   x'00' - 메시지 없음
*   x'01' - 오류 및 경고 메시지
*   x'02' - 오류, 경고 및 진단 메시지
*
MSGS_SW         DC  X'00'         메시지 레벨
*

CEEBXITA 링크의 두 가지 메소드 비교

다음 방법으로 사용자 EXIT CEEBXITA에 링크할 수 있습니다.

사용자 EXIT을 애플리케이션 프로그램 및 애플리케이션 실행의 로드 모듈 검색 경로에 있는 Language Environment 런타임 로드 모듈의 개인용 사본에 링크하는 경우, 애플리케이션 로드 모듈에 있는 사용자 EXIT의 사본이 사용됩니다.

CEEBXITA 사용자 EXIT을 애플리케이션 프로그램에 링크

CEEBXITA 사용자 EXIT을 애플리케이션 프로그램에 링크하도록 선택하는 경우, 사용자 EXIT을 TESTPGM 프로그램에 링크하는 다음 샘플 JCL을 사용하십시오. 사용자 EXIT을 사용자 정의하여 개인용 라이브러리에 배치하는 경우, 첫 번째 SYSLIB DD문의 데이터명(hlq.SEQAMOD)을 수정된 사용자 EXIT 로드 모듈을 포함하는 데이터셋명으로 바꾸십시오.

//SAMPLELK JOB ,                                                    
// MSGCLASS=H,TIME=(,30),MSGLEVEL=(2,0),NOTIFY=&SYSUID,REGION=0M    
//*                                                                 
//LKED    EXEC PGM=HEWL,REGION=4M,                                  
//             PARM='CALL,XREF,LIST,LET,MAP,RENT'                   
//SYSLMOD  DD DISP=SHR,DSN=USERID.OUTPUT.LOAD                       
//SYSPRINT DD DISP=OLD,DSN=USERID.OUTPUT.LINKLIST(TESTPGM)          
//SYSUT1   DD  UNIT=SYSDA,SPACE=(1024,(200,20))                     
//*                                                                 
//SYSLIB   DD DISP=SHR,DSN=hlq.SEQAMOD                             
//         DD DISP=SHR,DSN=CEE.SCEELKED                             
//*                                                                 
//OBJECT   DD DISP=SHR,DSN=USERID.INPUT.OBJECT                      
//SYSLIN   DD *                                                     
     INCLUDE OBJECT(TESTPGM)                                        
     INCLUDE SYSLIB(EQADICXT)                                       
     NAME TESTPGM(R)                                               
/*   

CEEBXITA 사용자 EXIT을 Language Environment 런타임 모듈의 개인용 사본에 링크

Language Environment 런타임 로드 모듈의 개인용 사본을 사용자 정의하도록 선택하는 경우, 이러한 로드 모듈의 개인용 사본이 런타임 환경에 있는 CEE.SCEERUN의 시스템 사본 앞에 있는지 확인해야 합니다.

다음 표에서는 Language Environment 런타임 로드 모듈 및 각 환경에 필요한 사용자 EXIT을 보여줍니다.

표 16. 다양한 환경에 필요한 Language Environment 런타임 모듈 및 사용자 EXIT
환경 사용자 EXIT명 CEE 로드 모듈
WLM 확립 어드레스 스페이스에서 실행하는 DB2 스토어드 프로시저의 유형은 다음과 같습니다.
  • MAIN 유형
  • call_sub 기능1이 호출하는 SUB 유형
EQADDCXT CEEPIPI
IMS TM 및 BTS EQADICXT CEEBINIT
Batch EQADBCXT CEEBINIT
주:
  1. Language Environment 버전 1.10에서 버전 1.12의 APAR PM15192에 PTF를 설치해야 합니다.

샘플 hlq.SEQASAMP(EQAWLCEE)를 편집 및 실행하여 갱신된 Language Environment 런타임 모듈을 작성하십시오. 이는 대개 Debug Tool 설치 시 시스템 프로그래머에 의해 수행됩니다. 샘플은 다음 로드 모듈 데이터셋을 작성합니다.

서비스를 이러한 모듈(CEEPIPI 또는 CEEBINIT)에 영향을 주는 Language Environment에 적용하거나 Language Environment의 새 레벨로 이동하면, 샘플을 다시 실행하여 이러한 모듈의 개인용 사본을 다시 빌드해야 합니다.

호출 메소드 E를 사용하는 경우 Debug Tool Utilities ISPF 패널의 옵션 8, "Batch 디버깅을 위한 JCL"에서 hlq.BATCH.SCEERUN을 사용합니다.

TEST 런타임 옵션 데이터셋 작성 및 관리

TEST 런타임 옵션 데이터셋은 Language Environment 런타임 옵션이 있는 MVS 데이터셋입니다.Debug Tool Language Environment 사용자 EXIT(EQADDCXT, EQADICXT 및 EQADBCXT)은 Debug Tool Customization Guide의 『이름 지정 패턴 수정』에 설명된 이름 지정 패턴을 기반으로 이 데이터셋명을 구성합니다.

다음 방법 중 하나에 이 데이터셋을 작성할 수 있습니다.

TIM(Terminal Interface Manager)을 사용하여 TEST 런타임 옵션 데이터셋 작성 및 관리

시작하려면 TIM(Terminal Interface Manager)에 로그온하기 위해 사용하는 사용자 ID에 TEST 런타임 옵션 데이터셋에 대한 읽기 및 쓰기 권한이 있어야 합니다.

Terminal Interface Manager를 사용하여 TEST 런타임 옵션 데이터셋을 작성하려면 다음 단계를 수행하십시오.

  1. Terminal Interface Manager에 로그온하십시오.
  2. DEBUG TOOL TERMINAL INTERFACE MANAGER 패널에서 PF10을 누르십시오.
  3. * TEST 런타임 옵션 데이터셋 지정 * 패널에서 시스템 관리자가 지정하는 데이터셋명 필드의 이름 지정 패턴을 따라 데이터셋명을 입력하십시오. 데이터셋이 카탈로그되지 않는 경우 볼륨 번호를 입력하십시오.
  4. Enter를 누르십시오. Terminal Interface Manager가 데이터셋을 찾을 수 없는 경우 * TEST 런타임 옵션 데이터셋 할당 * 패널이 표시됩니다. 데이터셋에 대한 할당 매개변수를 지정한 다음 Enter를 누르십시오. Terminal Interface Manager가 데이터셋을 작성합니다.
  5. * TEST 런타임 옵션 데이터셋 편집 * 패널에서 다음 변경사항을 작성하십시오.
    프로그램명
    디버그하려는 최대 8개의 프로그램명을 지정하십시오. 특정 이름(예: EMPLAPP), 와일드 카드(*)로 추가되는 이름 또는 와일드 카드 문자(모든 Language Environment 프로그램을 디버그하려고 한다는 것을 의미)를 지정할 수 있습니다.
    테스트 옵션
    TEST 또는 NOTEST 런타임 옵션의 사용 여부를 지정하십시오.
    테스트 레벨
    사용할 TEST 레벨(ALL, ERROR 또는 NONE)을 지정하십시오.
    명령 파일
    명령 파일을 사용하려는 경우 Debug Tool Reference and Messages의 『TEST 런타임 옵션 구문』 주제의 commands_file_designator 섹션에 설명된 대로 형식에 명령 파일명을 지정하십시오.
    프롬프트 레벨
    PROMPT 또는 NOPROMPT의 사용 여부를 지정하십시오.
    환경 설정 파일
    환경 설정 파일을 사용하려는 경우 Debug Tool Reference and Messages의 『TEST 런타임 옵션 구문』 주제의 preferences_file_designator 섹션에 설명된 대로 형식에 환경 설정 파일명을 지정하십시오.
    EQAOPTS 파일
    Debug Tool이 런타임 시 EQAOPTS 명령을 실행하도록 하려는 경우 완전한 데이터셋명으로 EQAOPTS 파일명을 지정하십시오.
    기타 런타임 옵션
    기타 Language Environment 런타임 옵션을 입력하십시오.
  6. Terminal Interface Manager에는 현재 디버그 표시 정보 필드에서 사용하려는 세션 유형(디버깅 모드 및 표시 정보)을 지정하는 TEST 런타임 옵션의 파트가 표시됩니다. 세션 유형을 변경하려면 다음 단계를 수행하십시오.
    1. PF9를 누르십시오.
    2. 세션 유형 변경 패널에서 다음 옵션 중 하나를 선택하십시오.
      Debug Tool Terminal Interface Manager를 사용하는 전체 화면 모드
      Terminal Interface Manager에 로그온하려고 사용하는 사용자 ID를 입력하고 사용자 ID 필드에 프로그램을 디버그하십시오.
      원격 디버그 모드
      주소 필드에 IP 주소를 입력하고 원격 디버거 디먼의 포트 필드에 포트 번호를 입력하십시오.
    3. (선택사항) Enter를 누르십시오. Terminal Interface Manager가 변경사항에 동의하고 패널을 새로 고칩니다.
    4. PF4을 누르십시오. Terminal Interface Manager에 * TEST 런타임 옵션 데이터셋 편집 * 패널이 표시되고 다음 문자열 중 하나가 현재 디버그 세션 유형 문자열:에 표시됩니다.
      • VTAM%userid, Debug Tool Terminal Interface Manager를 사용하는 전체 화면 모드를 선택하는 경우
      • TCPIP&IP_address%port, 원격 디버그 모드를 선택하는 경우
  7. PF4를 눌러 TEST 런타임 옵션 데이터셋에 변경사항을 저장하고 기본 Terminal Interface Manager 화면으로 돌아가십시오.

이 절에서 설명하는 자료와 연관된 자세한 정보에 대해서는 다음 주제를 참조하십시오.

Debug Tool Utilities를 사용하여 TEST 런타임 옵션 데이터셋 작성 및 관리

Debug Tool Utilities를 사용하여 TEST 런타임 옵션 데이터셋을 작성하려면 다음 단계를 수행하십시오.

  1. Debug Tool Utilities를 시작하고 옵션 6("Debug Tool 사용자 Exit 데이터셋")을 선택하십시오.
  2. 새 데이터셋명과 기존 데이터셋명을 제공하십시오. 이름이 이름 지정 패턴과 일치하는지 확인하십시오. 이름 지정 패턴을 모르는 경우 시스템 관리자에게 문의하십시오. 다음 규칙을 유념하십시오.
  3. 사용하려는 TEST 런타임 옵션 및 디버그할 최대 8개의 추가 프로그램명으로 나머지 필드를 채우십시오.