EGL 디버거를 사용하여 VSE DL/I 애플리케이션 디버그
z/VSE®에서 DL/I 데이터베이스에 액세스하는 EGL 프로그램을 디버그할 수 있습니다.
EGL 디버거는 z/VSE에서 CICS®의
DL/I 데이터베이스에 액세스하기 위해 VSE 커넥터 클라이언트를 사용합니다. 대부분의 DL/I 조작이 지원되지만
일부 제한사항이 있습니다.
- DL/I 데이터베이스 PCB만 지원됩니다. 디버거는 I/O PCB, TP PCB 또는 GSAM PCB에 액세스할 수 없습니다.
- 다음 DL/I 호출은 지원되지 않습니다. GSCD 및 XRST
- IMS™ PSB에 있는 모든 데이터베이스 PCB의 이름을 지정해야 하며, 이름은 EGL PSB의 해당 pcbName 특성과 일치해야 합니다. 또는 프로그램이 CBLTDLI 인터페이스를 사용 중인 경우 EGL PSB의 PCB가 VSE PSB의 PCB와 동일한 위치에 있어야 합니다.
호스트 환경 구성
디버깅을 위해 호스트에서 여러 전제조건이 필요합니다.
- AIBTDLI 인터페이스를 설치해야 합니다.
- DL/I VSE 1.11 이상을 설치해야 합니다.
- DL/I의 APAR PQ39683을 적용해야 합니다.
- DL/I 온라인 nucleus DLZNUCxx에 정의된 모든 PSB가
사용자의 CICS/DLI 시스템에 있어야 하며 활성 MPS 시스템이 있어야 합니다(CICS 로그에서
"DLZ093I MPS STARTED WITH APPLID=MYCICS" 행 검색). 온라인 nucleus에는
원격으로 액세스하는 데 필요한 프로그램 DLZBPC00 및 임의 PSB의
항목이 있어야 합니다.예를 들어, 다음과 같습니다.
DLZACT TYPE=PROGRAM,PGMNAME=DLZBPC00,PSBNAME=(myPSB1,myPSB2...) - DL/I 태스크 종료 엑시트 DLZBSEOT가 SVA에 있어야 합니다.
- 위의 요구사항이 충족되지 않은 경우 DLI 플러그인을 사용할 수 없음을 나타내는 예외가 발생합니다.
경고:
요구사항이 충족되지 않은 경우
다음 예외가 표시됩니다.
DLI 플러그인이 사용 안함으로 설정됩니다.
로컬 작업공간 구성
로컬 작업공간에서 다음 조치를 수행하여
원격 디버깅을 사용으로 설정하십시오.
- 페이지에서 DEBUG로 systemType 설정 옵션을 선택 취소하십시오. 이는 EGL을 강제 실행하여 빌드 디스크립터 옵션의 시스템 유형을 사용합니다.
- VSE에 대한 원격 DL/I를 사용하려면 디버깅에 사용되는 EGL 빌드 디스크립터를 다음과 같이
설정해야 합니다.
- destHost
- VSE 호스트 이름 또는 IP 주소입니다.
- destUserID
- VSE 호스트에 연결하기 위한 사용자 ID입니다.
- destPassword
- VSE 호스트에 연결하기 위한 비밀번호입니다.
- destPort
- VSE Connector Server가 청취 중인 포트 번호입니다. 이 옵션이 지정되지 않으면 포트 2893이 사용됩니다.
- imsID
- 원격 DL/I 액세스를 위해 사용할 CICS 리젼의 APPLID입니다(CICS 리젼에는 활성 MPS 시스템이 있어야 함).
- imsPSB
- 디버깅에 사용하기 위한 호스트 PSB의 이름입니다. 이는 EGL 디버거 환경 설정에서 PSB 옵션을 대체합니다.
- system
- VSEBATCH 또는 VSECICS입니다.
- debugTrace
- 디버거에 오류가 발생하는 경우 예로 설정하십시오. Rational® Business Developer 콘솔에 추적 출력이 작성됩니다.

- 다음과 같이 EGL 디버그 환경 설정을 설정하십시오.
페이지에서 VSEConnector.jar 및 cci.jar가 클래스 경로 순서 섹션에 있는지 확인하십시오.
- 페이지에 다음 정보를 입력하십시오.
- ConversionTable
- 호스트의 언어를 정의하십시오.
- PSB 이름
- PSB 이름 지정을 위해 다음 옵션 중 하나를 선택하십시오.
- 빌드 디스크립터 옵션 imsPSB 검토
- 빌드 설명 옵션 imsPSB에서 공백이 아닌 값은 PSB 이름의 기타 소스보다 우위에 있습니다.
- PSB 이름에 대한 사용자 프롬프트
- 각 디버그 세션 시작 시 사용자에게 DL/I 데이터에 액세스하는 데 사용된 PSB 이름을 입력하도록 하는 프롬프트가 표시됩니다. ODBA 인터페이스에서, PCB는 IMS에 대한 프로그램 또는 CICS의 dliLib.psbData에서 정의된 PSB의 PCB와 일치하도록 이름 지정되어야 합니다.
- DLILib.psbData에서 PSB 이름 사용
- CICS의 기본값입니다. 프로그램이 트랜잭션 커미트/롤백 판별을 위해 아직 DL/I 특성을 사용하지만 PSB 이름은 dliLib의 psbData 레코드에서 나옵니다.
- PSB 이름에 대해 프로그램 이름 사용
- IMS의 기본값입니다. 이는 alias 특성의 값(사용되는 경우) 또는 프로그램 이름입니다. 이 값은 대문자로 접힙니다.
EGL 디버거에는 사용자의 EGL 프로그램에서 다음 중 하나가 필요합니다.
- callInterface = DLICallInterfaceKind.CBLTDLI의 경우, EGL PSB는 PCB의 수 및 해당 위치에 대해 VSE PSB에서와 동일한 순서로 PCB를 보유하고 있어야 합니다.
- callInterface 옵션이 지정되지 않았을 때의 기본값인 callInterface = DLICallInterfaceKind.AIBTDLI의 경우 EGL PSB의 PCB에 VSE PSB의 PCB와 동일한 이름이 있어야 합니다.