이 주제에서는 다음 태스크에 대해 설명합니다.
IMS Batch 프로그램을 대화식으로 디버깅하는 경우 전용 터미널을 통한 전체 화면 모드 또는 원격 디버그 모드를 사용할 수 있습니다. 이 주제에서는 다음 단계를 수행하여 TSO 포그라운드에서 BTS를 실행하는 세 번째 옵션에 대해 설명합니다.
FSS는 TSO 포그라운드에서 BTS를 시작할 때 사용되는 기본 옵션이며 TSO 포그라운드에서 BTS를 실행할 때만 사용할 수 있습니다. ./O 명령에 TSO=NO를 지정해서만 FSS를 끌 수 있습니다. TSO 포그라운드에서 FSS를 실행할 때는 기본적으로 TSO 터미널에 모든 호출 추적이 표시됩니다. 이 기능은 ./O 또는 ./T 명령에 매개변수를 지정해서 끌 수 있습니다.
Debug Tool을 사용하여 Batch 모드로 IMS 프로그램을 디버깅할 수 있습니다. 디버그 명령은 미리 정의되어 Debug Tool 명령 파일 또는 명령 문자열 중 하나에 포함되어 있어야 합니다. 명령 문자열은 TEST 런타임 옵션에서, 또는 CALL CEETEST나 __ctest가 사용될 때 매개변수로 지정할 수 있습니다. Batch 모드에서는 자원 사용량이 줄어들지만 Batch 모드를 사용하려면 실행해야 할 디버깅 명령을 정확하게 알고 있어야 합니다. Batch Job으로 BTS를 실행할 때는 Debug Tool의 Batch 모드만 사용할 수 있습니다.
예를 들어, BTS에서 실행되는 IMS 트랜잭션에 대해 테스트 입력 데이터의 개별 멤버를 사용하여 데이터셋 userid.CODE.BTSINPUT을 할당할 수 있습니다.
다음 태스크를 수행하여, Language Environment에서 실행되지 않는 IMS 메시지 처리 프로그램(MPP)를 디버깅할 수 있습니다.
프로그램 디버깅을 완료하면 다음 중 하나를 수행할 수 있습니다.
Language Environment에서 실행되지 않는 IMS MPP를 디버깅하기 전에 다음 단계를 수행하십시오.
이 단계를 완료한 후 인터페이스 선택 및 비Language Environment IMS MPP에 대한 정보 수집을 참조하여 디버그 인터페이스를 선택하십시오.
다음 디버그 인터페이스 중 하나를 선택하고 표시된 정보를 수집하십시오.
디버그 인터페이스를 선택한 후 비Language Environment IMS MPP의 EQASET 트랜잭션 실행을 참조하여 EQASET 트랜잭션을 실행하십시오.
EQASET 트랜잭션 실행은 다음 기능 중 하나를 수행하려는 EQANIAFE 애플리케이션 프론트 엔드 루틴에 대해 표시합니다.
디버깅 세션을 사용하려면 다음 옵션 중 하나를 선택하십시오.
EQASET 명령을 입력한 후 동일한 터미널에서, 디버깅할 애플리케이션 프로그램과 연관된 트랜잭션을 시작하십시오.
기존 환경 설정에 대한 정보를 요청하는 경우 EQASET STATUS 명령을 입력하십시오.
디버깅 세션을 사용하지 않으려면 EQASET OFF 명령을 입력하십시오.
EQASET OFF를 사용한 후 디버깅 세션을 다시 사용 가능하게 하려면 EQASET ON 명령을 입력하십시오.
다음 다이어그램에는 비Language Environment MPP의 EQASET 트랜잭션 구문이 표시됩니다.
>>-EQASET--+-MFI=--+------------------------------------------+-+->< | '-+---------------------+-terminal_LU_name-' | | '-network_identifier.-' | +-VTAM=--+---------+---------------------------------+ | '-user_ID-' | +-TCP=--+----------------------------+---------------+ | '-IP_address--%--port_number-' | +-VTCP=--+----------------------------+--------------+ | '-IP_address--%--port_number-' | +-ON-------------------------------------------------+ +-OFF------------------------------------------------+ '-STATUS---------------------------------------------'
EQASET 트랜잭션은 트랜잭션을 실행하는 사용자마다 별도로 디버깅 설정을 관리합니다. 각 설정은 트랜잭션이 실행되는 터미널에 로그온하는 데 사용된 사용자 ID로 식별됩니다. 각 사용자 ID에 대해, 입력된 마지막 디버깅 환경 설정(MFI, TCP, VTCP 또는 VTAM)만 저장됩니다. STATUS 옵션을 사용하여 현재 디버깅 환경 설정을 볼 수 있습니다.
다음 TEST 런타임 옵션 문자열은 디버깅 환경 설정을 사용하여 구성되었습니다.
TEST(ALL,INSPIN,,debuggingPreference:*)
다른 런타임 옵션은 사용자 정의할 수 없습니다.
Language Environment for IMS 사용자 EXIT(EQADICXT)은 TEST 런타임 옵션을 포함해서 Language Environment 런타임 옵션이 있는 MVS 데이터셋명을 구성합니다. EQADICXT는 데이터셋명에 각 규정자를 표시하는 토큰에 값을 지정해서 MVS 데이터셋명을 구성합니다. 이는 IMS 사용자 ID를 &USERID 토큰에 대한 값으로 지정합니다. 그러나 IMS를 시작하지 않는 경우(/SIGN ON 사용), IMS 사용자 ID는 IMS LTERM ID와 동일하거나 정의되지 않습니다. 어떤 경우든 EQADICXT는 MVS 데이터셋을 찾을 수 없습니다. EQADICXT가 TSO 사용자 ID를 &USERID 토큰에 대한 값으로 지정하는지 지정하려면 TSOID 옵션을 지정해서 EAQSET 트랜잭션을 실행하십시오. TSOID 옵션을 사용하는 EQASET 트랜잭션에 대한 설명은 Language Environment MPP의 EQASET 트랜잭션 구문의 내용을 참조하십시오.
다음 다이어그램에는 Language Environment MPP의 EQASET 트랜잭션 구문이 표시됩니다.
>>-EQASET--+-TSOID=--+-------------+-+------------------------->< | '-tso_user_ID-' | '-STATUS------------------'
Language Environment MPP에 EQASET 트랜잭션을 사용하는 경우, 이는 현재 IMS LTERM ID를 지정된 TSO 사용자 ID와 연관시킵니다. EQADICXT는 &USERID 토큰에 TSO 사용자 ID를 사용하여 MVS 데이터셋에 올바른 이름을 구성합니다.
이 옵션은 비Language Environment MPP의 디버깅 환경 설정에 대한 정보도 표시할 수 있습니다.
사용자 정의 리젼을 작성하는 방법을 설명하고 IMS 프로그램의 로드 모듈 및 Debug Tool 로드 모듈에 대한 데이터셋을 참조하는 STEPLIB 연결 문을 정의하는 IMS BMP(Batch Messaging Process) 프로그램에 대한 설정 파일을 작성할 수 있습니다. 설정 파일을 작성하고 사용자 정의하여 IMS 메시지 처리 프로그램(MPP)을 테스트하는 데 사용할 수 있는 개인용 메시지 리젼을 작성할 수도 있습니다. 클래스 X를 사용하여 개인 메시지 리젼을 작성하면 트랜잭션 X에 의해 실행되는 IMS 프로그램을 테스트할 수 있고 다른 IMS 프로그램에서 사용 중인 다른 리젼을 방해하는 위험을 줄일 수 있습니다.
Debug Tool Utilities를 사용하여 IMS 프로그램에 대한 설정 파일을 작성하려면 다음 단계를 수행하십시오.
애플리케이션을 디버깅하는 중에 애플리케이션 또는 Debug Tool 라이브러리를 사용자 정의하는 개인 메시지 리젼을 작성하여 다른 사용자의 활동에 영향을 주지 마십시오. 시스템 관리자에게 개인 메시지 리젼의 작성과 관련된 권한 및 규칙을 문의하십시오.
IMS 프로그램 실행에 필요한 설정 정보를 지정하면 IMS 프로그램을 테스트하거나 BMP 프로그램 실행 방법을 지정하는 데 사용할 수 있는 개인 메시지 리젼의 작성에 필요한 정보를 지정할 수 있습니다. 이 설정 정보를 지정하려면 다음 단계를 수행하십시오.
필요한 다른 매개변수를 입력하십시오. 매개변수에 대한 정보는 PF1를 누르십시오.
IMS 애플리케이션 프로그램을 디버그할 때 IMS가 자원을 관리하는 방법이 가끔 Debug Tool이 반응이 없는 것 처럼 보일 수 있습니다. 이 상황을 방지하려면 중단점을 최대한 디버그 해야 하는 위치 가까이에 설정하거나 GU(GetUnique) 호출문에 설정하십시오. 이 주제의 정보를 통해 IMS의 자원 관리가 Debug Tool이 반응하지 않는 것 처럼 보이는 원인을 파악하고 이 상황을 방지하기 위해 중단점을 설정하기 위한 대략의 위치를 판별할 수 있습니다.
IMS 트랜잭션을 시작한 후 IMS는 해당 트랜잭션과 연관된 애플리케이션 프로그램을 로드하고 실행합니다. IMS는 해당 애플리케이션 프로그램이 요청하고 이로 리턴된 모든 메시지와 더불어 동시에 실행 중인 기타 애플리케이션 프로그램이 요청하고 이로 리턴된 모든 메시지도 관리합니다. IMS는 처리 한계 계수(PLCT) 및 기타 툴을 사용하여 애플리케이션 프로그램이 자원을 적합하게 공유하는지 확인합니다. IMS 애플리케이션 프로그램이 PLCT를 초과하지 않는 한 8, 계속 메시지를 실행하고 처리하거나 다음 메시지를 기다립니다. 그러나 애플리케이션 프로그램의 디버그를 계속 시도하는 경우 계속되는 메시지 처리 또는 메시지에 대한 대기 상황으로 인해 Debug Tool이 반응하지 않는 것 처럼 보입니다. 이 상황을 방지하려면 애플리케이션 프로그램을 실행하기 전에 디버그 세션 초기에 다음 옵션 중 하나를 시도하십시오(예: GO 명령 입력).
관련 참조