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을 제공합니다.
- 로드 모듈입니다. 세 가지 환경에 대한 로드 모듈이 hlq.SEQAMOD 데이터셋에 있습니다. 기본 이름 지정 패턴 및 메시지
표시 레벨을 원하는 경우 이 로드 모듈을 사용하십시오.
기본 이름 지정 패턴은 &USERID.DBGTOOL.EQAUOPTS이고 기본 메시지 표시 레벨은 X'00'입니다.
- 편집할 수 있는 샘플 어셈블러 사용자 EXIT입니다. 세 가지 환경에
대한 어셈블러 사용자 EXIT은 hlq.SEQASAMP 데이터셋에
있습니다. 이 소스를 기존 버전의 CEEBXITA와 병합할 수도 있습니다. 기본값과 다른 이름 지정 패턴 또는 메시지 표시 레벨을
원하는 경우 이 소스 코드를 사용하십시오.
Debug Tool은 다음 사용자 EXIT을 제공합니다.
표 14. 다양한 환경에 맞는 Language Environment 사용자 EXIT
| 환경 |
사용자 EXIT명 |
WLM 확립 어드레스 스페이스에서 실행하는 DB2® 스토어드 프로시저의 유형은 다음과 같습니다.
- MAIN1 유형
- call_sub 기능4이 호출하는 SUB 유형
|
EQADDCXT |
| IMS™ TM2 및 BTS3 |
EQADICXT |
| Batch 및 BTS |
EQADBCXT |
주:
- EQADDCXT는 DB2 버전 7 이상에서
지원됩니다. DB2 RUNOPTS를 지정한
경우에는 EQADDCXT가 DB2 RUNOPTS보다 우선적으로
사용됩니다.
- IMS TM의 경우,
IMS 터미널을 시작하지 않으면
TSOID 옵션을 사용하여 EQASET 트랜잭션을 실행해야 합니다.
EQASET 트랜잭션을 실행하는 방법에 대한 지시사항은 발행/시작 없이 Language Environment IMS MPP
디버깅의 내용을 참조하십시오.
- BTS의 경우 IO PCB의 사용자 ID와 함께
Environment 명령(./E)을 지정해야 합니다. 예를 들어, 사용자 ID가 ECSVT2인 경우 Environment 명령은 ./E USERID=ECSVT2입니다.
- 사용자 EXIT을 애플리케이션 프로그램이 아닌
Language Environment 모듈 CEEPIPI의 개인용 사본에 링크
각 사용자 EXIT은 다음 방법 중 하나로 사용될 수
있습니다.
- 애플리케이션 프로그램에 사용자 EXIT을 링크할 수 있습니다.
- 사용자 EXIT을 Language Environment 모듈(CEEBINIT, CEEPIPI 또는 둘 다)의
개인용 사본에 링크할 수 있습니다. 그 다음, 모듈의 경우에만
이 모듈을 포함하는 SCEERUN 데이터셋을 디버그하여 로드 모듈
검색 경로의 CEE.SCEERUN에 있는 시스템 Language Environment 모듈 앞에
배치할 수 있습니다.
각 방법에 대한 장점 및 단점에 대해 학습하려면
CEEBXITA 링크의 두 가지 메소드 비교를 참조하십시오.
Language Environment 사용자 EXIT을 사용할 프로그램을 준비하려면
다음 태스크를 수행하십시오.
- CEEBXITA의 소스 코드 편집.
- CEEBXITA 사용자 EXIT을 애플리케이션 프로그램에 링크 또는 CEEBXITA 사용자 EXIT을 Language Environment 런타임 모듈의 개인용 사본에
링크.
- TEST 런타임 옵션 데이터셋 작성 및 관리.
CEEBXITA의 소스 코드 편집
다음 태스크 중 하나를 수행하여 이름 지정 패턴 또는 메시지 표시
레벨을 사용자 정의하도록 hlq.SEQASAMP에 제공되는 샘플 어셈블러
사용자 EXIT을 편집할 수 있습니다.
- SMP/E USERMOD를 사용하여 hlq.SEQAMOD 데이터셋에서 EXIT 사본을
갱신하십시오. 시스템 프로그래머는 대개 USERMODs를
구현합니다. 이 태스크에는 hlq.SEQASAMP의 다음 샘플 USERMOD를 사용하십시오.
| 사용자 EXIT명 |
USERMOD 이름 |
| EQADDCXT |
EQAUMODC |
| EQADICXT |
EQAUMODD |
| EQADBCXT |
EQAUMODB |
- 사용자 정의 종료를 위한 개인용 로드 모듈을 작성하십시오. hlq.SEQASAMP의
사용자 EXIT과 동일한 이름의 어셈블러 사용자 EXIT을 로컬 데이터셋으로
복사하십시오. 패턴 또는 메시지 표시 레벨을 편집하십시오.
JCL을 사용자 정의하고 실행하여 로드 모듈을 생성하십시오.
이름 지정 패턴 수정
TEST 런타임 옵션이 있는 데이터셋의 이름 지정 패턴은 순차 데이터셋명 형식입니다. Debug Tool이
현재 사용자의 사용자 ID로 대체하는 &USERID 토큰을
선택적으로 지정할 수 있습니다. Debug Tool이 주 프로그램(로드 모듈)의 이름으로 대체하는
&PGMNAME 토큰도 지정할 수 있습니다.
그러나 사용자가 원격 디버거의
DTSP 프로파일 보기를 사용하여
TEST 런타임 옵션 데이터셋을 작성하고 관리하는 경우 보기가 해당 토큰을
지원하지 않으므로 &PGMNAME 토큰을 지정하지 마십시오.
경우에 따라 사용자 ID의 첫 번째 문자는 이름 규정자로 올바르지 않습니다.
&USERID 토큰 앞에 문자가 연결되어 사용자 ID의 접두부 문자
역할을 할 수 있습니다. 예를 들어,
토큰에 문자 "P"를 접두부로 추가하여 현재 사용자 ID를
&USERID로 대체한 후 올바른 이름 규정자가 되는
P&USERID를 형성할 수 있습니다. IMS의 경우, &USERID 토큰은 다음 값 중 하나로 대체될 수도 있습니다.
- IMS 사용자 ID, 사용자가 IMS를 시작(sign-on)하는 경우
- TSO 사용자 ID, 사용자가 IMS를 시작하지 않는 경우
기본 이름 지정 패턴은 &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은 디버그하는 애플리케이션 프로그램에만 영향을 줍니다.
즉 애플리케이션 프로그램에 대해 Debug Tool을 시작할 때 이를 제어할 수 있습니다.
Debug Tool을 시작하기 위해 JCL을 변경할 필요도 없습니다.
- 사용으로 인한 손해
- 프로덕션을 위해 사용자 EXIT을 반드시 제거해야 하며 일반
빌드 프로세스가 아닌 경우에는 반드시 애플리케이션 프로그램에
다시 링크해야 합니다.
- Language Environment 런타임 로드 모듈(CEEBINIT, CEEPIPI 또는 둘 다)의
개인용 사본에 링크하십시오.
- 사용으로 인한 이득
- 사용자 EXIT을 사용하기 위해 애플리케이션 프로그램을 변경할
필요가 없습니다. 뿐만 아니라 애플리케이션 프로그램에 추가 모듈을 링크 편집할 필요도
없습니다.
- 사용으로 인한 손해
- 런타임을 준비하고 유지보수하기 위해 더 많은 단계를 수행해야 합니다.
- 하나 이상의 Language Environment 런타임 루틴의 개인용 사본을 작성하십시오.
- 디버그할 수 있는 모듈의 경우에만, 로드 모듈 검색 경로의
CEE.SCEERUN에
있는 시스템 Language Environment 모듈 앞에 개인용 사본을 배치하도록
런타임 환경을 사용자 정의하십시오.
- Language Environment에 유지보수를 적용할 때 루틴을 다시 링크해야 할 수도 있습니다.
- Language Environment의 새 버전으로 업그레이드하는 경우 루틴을 다시 링크해야 합니다.
사용자 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 |
주:
- Language Environment 버전 1.10에서 버전 1.12의 APAR PM15192에 PTF를
설치해야 합니다.
샘플 hlq.SEQASAMP(EQAWLCEE)를 편집 및 실행하여 갱신된
Language Environment 런타임 모듈을 작성하십시오. 이는 대개
Debug Tool 설치 시 시스템 프로그래머에 의해 수행됩니다. 샘플은 다음
로드 모듈 데이터셋을 작성합니다.
- hlq.DB2SP.SCEERUN(CEEPIPI)
- hlq.IMSTM.SCEERUN(CEEBINIT)
- hlq.BATCH.SCEERUN(CEEBINIT)
서비스를
이러한 모듈(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 런타임 옵션 데이터셋을 작성하려면 다음 단계를 수행하십시오.
- Terminal Interface Manager에 로그온하십시오.
- DEBUG TOOL TERMINAL INTERFACE
MANAGER 패널에서 PF10을 누르십시오.
- * TEST 런타임 옵션 데이터셋
지정 * 패널에서 시스템 관리자가 지정하는
데이터셋명 필드의
이름 지정 패턴을 따라 데이터셋명을 입력하십시오. 데이터셋이
카탈로그되지 않는 경우 볼륨 번호를 입력하십시오.
- Enter를 누르십시오. Terminal Interface Manager가 데이터셋을
찾을 수 없는 경우 * TEST 런타임 옵션 데이터셋
할당 * 패널이 표시됩니다. 데이터셋에 대한 할당 매개변수를
지정한 다음 Enter를 누르십시오. Terminal Interface Manager가
데이터셋을 작성합니다.
- * 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 런타임 옵션을 입력하십시오.
- Terminal Interface Manager에는 현재 디버그 표시 정보 필드에서 사용하려는 세션 유형(디버깅 모드 및 표시 정보)을 지정하는 TEST 런타임 옵션의 파트가 표시됩니다. 세션 유형을 변경하려면
다음 단계를 수행하십시오.
- PF9를 누르십시오.
- 세션 유형 변경 패널에서
다음 옵션 중 하나를 선택하십시오.
- Debug Tool Terminal Interface Manager를 사용하는 전체 화면 모드
- Terminal Interface Manager에
로그온하려고 사용하는 사용자 ID를 입력하고 사용자
ID 필드에 프로그램을 디버그하십시오.
- 원격 디버그 모드
- 주소 필드에
IP 주소를 입력하고 원격 디버거 디먼의 포트 필드에
포트 번호를 입력하십시오.
- (선택사항) Enter를 누르십시오. Terminal Interface Manager가
변경사항에 동의하고 패널을 새로 고칩니다.
- PF4을 누르십시오. Terminal Interface Manager에 * TEST 런타임 옵션 데이터셋 편집
* 패널이 표시되고 다음 문자열 중 하나가 현재
디버그 세션 유형 문자열:에 표시됩니다.
- VTAM%userid, Debug Tool Terminal
Interface Manager를 사용하는 전체 화면 모드를 선택하는 경우
- TCPIP&IP_address%port,
원격 디버그 모드를 선택하는 경우
- PF4를 눌러 TEST 런타임 옵션 데이터셋에 변경사항을 저장하고
기본 Terminal Interface Manager 화면으로 돌아가십시오.
이 절에서 설명하는 자료와 연관된
자세한 정보에 대해서는 다음 주제를 참조하십시오.
- 테스트 옵션, 테스트 레벨 및 프롬프트 레벨 필드에 지정하려는
값에 대한 자세한 정보는 Debug Tool Reference and Messages의
『TEST 런타임 옵션 구문』 주제를 참조하십시오.
- 명령 파일 또는 환경 설정 파일 작성에 대한 지시사항은
명령 파일 작성 또는 환경 설정 파일 작성 주제를 참조하십시오.
- EQAOPTS 파일 작성에 대한 지시사항은 Debug Tool Reference and Messages 또는 Debug Tool Customization Guide의 『런타임 시 EQAOPTS 명령 제공』 주제를 참조하십시오.
- 기타 Language Environment 런타임 옵션에 대한 자세한 정보는 Language Environment Programming Reference, SA22-7562를 참조하십시오.
- Debug Tool Terminal
Interface Manager를 사용하는 전체 화면 모드 필드에 지정할
값에 대한 자세한 정보는 전용 터미널을 통한 전체 화면 모드에서 디버깅 세션 시작을 참조하십시오.
- 원격 디버그 모드 필드에 지정할
값에 대한 자세한 정보는 System z용 Rational Developer의 Compiled Language Debugger 컴포넌트 또는 Eclipse용 IBM Debug Tool 플러그인에 대한
온라인 도움말을 참조하십시오.
Debug Tool Utilities를 사용하여 TEST 런타임 옵션 데이터셋
작성 및 관리
Debug Tool Utilities를 사용하여 TEST 런타임 옵션 데이터셋을 작성하려면
다음 단계를 수행하십시오.
- Debug Tool Utilities를 시작하고 옵션 6("Debug Tool 사용자 Exit
데이터셋")을 선택하십시오.
- 새 데이터셋명과 기존 데이터셋명을 제공하십시오. 이름이
이름 지정 패턴과 일치하는지 확인하십시오. 이름 지정 패턴을 모르는 경우
시스템 관리자에게 문의하십시오. 다음 규칙을 유념하십시오.
- &PGMNAME 토큰을 디버그하려는 프로그램명으로
대체하십시오. 프로그램은 Language
Environment enclave에 있는 로드 모듈의 기본 CSECT가 되어야 합니다.
- IMS의 경우, &USERID 토큰은 다음 값 중 하나로 대체될 수도 있습니다.
- IMS 사용자 ID, 사용자가 IMS를 시작(sign-on)하는 경우
- TSO 사용자 ID, 사용자가 IMS를 시작하지 않는 경우
- 사용하려는 TEST 런타임 옵션 및 디버그할 최대 8개의 추가 프로그램명으로
나머지 필드를 채우십시오.