DB2 스토어드 프로시저 디버깅

DB2® 스토어드 프로시저는 SQL문을 실행할 수 있는 컴파일된 HLL(고급 언어) 프로그램입니다. Debug Tool은 다음 디버그 모드에서 어셈블러(프로그램 유형이 MAIN인 경우), C, C++, COBOL 및 PL/I로 작성된 모든 스토어드 프로시저를 디버깅할 수 있습니다.

시작하기 전에 DB2 스토어드 프로시저 프로그램 준비에서 설명한 모든 태스크를 완료했는지 확인하십시오. 프로그램은 호출 프로그램과는 독립 주소 공간에 상주합니다. 스토어드 프로시저는 다른 애플리케이션 또는 IBM® DB2 Development Center와 같은 툴을 사용하여 호출할 수 있습니다.

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

DB2 스토어드 프로시저를 디버그하는 중에 몇 가지 공통 문제점 해결

이 주제에서는 수신 가능한 메시지 및 해당 메시지에서 설명하는 문제점에 대한 해결책에 대해 설명합니다. 이 주제는 공통되는 문제점을 포함하고 있습니다.

표 18. 스토어드 프로시저를 디버깅하는 중에 발생하는 공통 문제점 및 해결 방법
오류 코드 오류 메시지 해결 방법
SQLCODE = 471, SQLERRMC = 00E79001 스토어드 프로시저가 중지되었습니다. DB2 Start Procedure 명령을 사용하여 스토어드 프로시저를 시작하십시오.
SQLCODE = 471, SQLERRMC = 00E79002 스케줄링 문제점으로 인해 스토어드 프로시저를 시작할 수 없습니다. DB2 Start Procedure 명령을 사용하십시오. 이렇게 해도 문제점이 해결되지 않으면 DB2 관리자에게 문의하여 프로시저 디스패치 우선순위를 높이십시오.
SQLCODE = 471, SQLERRMC = 00E7900C WLM 애플리케이션 환경 이름이 정의되지 않았거나 사용 가능하지 않습니다. MVS WLM VARY 명령을 사용하여 WLM 주소 공간을 활성화하십시오. 예를 들면 다음과 같습니다.
WLM VARY APPLENV=applenv,RESUME
여기서, applenv는 WLM 주소 공간의 이름입니다.
SQLCODE = 444, SQLERRMC (none) 프로그램을 찾을 수 없습니다. LOADLIB가 WLM의 STEPLIB 또는 DB2 주소 공간 JCL에 있는지와 다른 애플리케이션이
LOADLIB에 액세스할 수 있는 적절한 RACF® 읽기 권한을 가지고 있는지 확인하십시오.
SQLCODE = 430, SQLERRMC (none) 스토어드 프로시저가 비정상 종료되었습니다. 이 오류는 여러가지 이유로 발생할 수 있습니다. Debug Tool을 호출하지 않고 스토어드 프로시저가 이상 종료된 경우에는 프로시저에 논리적 오류가 있는지 분석하십시오. Debug Tool 없이 프로시저가 성공적으로 실행되는 경우에는 스토어드 프로시저가 컴파일 및 링크된 방법에 문제점이 있을 수 있습니다. 프로시저 데이터셋이 적절한 RACF 권한을 가지고 있는지 확인하십시오. 주소 공간에 문제점이 있을 수 있습니다. WLM 또는 DB2 주소 공간이 올바른지 확인하십시오. 수정된 사항이 있으면 해당 리젼이 리사이클되었는지 확인하십시오.