DL/I Status code
본 부록에서는 DL/I Status code의 내용과 대응 방법에 대해 기술한다.
DL/I Call 처리에 대한 결과는 PCB Status code 필드의 코드값으로 확인할 수 있다. 애플리케이션 프로그램 작성자는 Status code 필드를 참조해 처리 결과에 대한 원인 및 대응 방법을 체크할 수 있다.
-
AB
원인
I/O Area가 필요한 함수 호출에서 I/O Area가 파라미터로 지정되지 않았다.
대응 방법
함수 호출에 맞는 올바른 데이터 영역을 지정한다.
-
AD
원인
해당 함수 호출에 알맞지 않는 PCB를 파라미터로 지정하였다.
(1) 시스템 서비스 Call에서 IO-PCB를 사용하지 않았다.
(2) 메시지 GU Call 또는 GN Call에서 IO-PCB가 아닌 ALT-PCB를 이용하였다.
(3) BMP JCL에서 IN=trancode 정의없이 메시지 GU Call을 IO-PCB에 사용하였다.
대응 방법
해당 함수 호출에 알맞는 PCB인지 확인한다.
-
AZ
원인
(1) PURG Call을 SPA 송신에 사용하였다.
(2) ISRT Call을 ALT-PCB의 송신지가 회화형 트랜잭션인데 처음의 메시지 세그먼트를 SPA로 하지 않았다.
대응 방법
PURG, ISRT Call을 올바르게 사용한다.
-
A2
원인
CHNG Call을 잘못 사용하였다.
(1) ALT-PCB가 아닌 경우에 CHNG Call을 사용하였다.
(2) ALT-PCB이나 modifiable이 아닌 PCB에 대해 CHNG Call을 사용하였다.
(3) 메시지 세그먼트의 송신이 완료되지 않은 PCB에 대해 CHNG Call을 사용하였다.
대응 방법
(1) CHNG Call은 modifiable ALT-PCB를 사용한다.
(2) ISRT Call로 메시지 세그먼트를 송신한 후에 송신지를 변경하고 싶은 경우에는 메시지 Purge 후 CHNG Call로 송신지를 변경한다.
-
A3
원인
송신지 지정이 없는 modifiable ALT-PCB에 대해 ISRT 또는 PURG Call을 사용하였다. PURG Call은 오직 하나의 I/O Area에 대한 파라미터로 처리한다.
대응 방법
CHNG Call로 지정한 송신지에서 사용하는 PCB에 대해 ISRT 또는 PURG Call을 사용한다.
-
A4
원인
CHNG Call로 지정한 송신지에 대한 접근 권한이 없다.
대응 방법
CHNG Call로 지정한 송신지가 올바른지 확인하고, 송신지에 대한 권한 여부를 점검한다.
-
A5
원인
메시지 ISRT Call에서 잘못된 파라미터 리스트를 사용하였다. 출력 메시지의 첫 번째 세그먼트가 아닌데 4번째 파라미터(MOD 이름)를 지정하였다.
대응 방법
메시지의 첫 번째 세그먼트가 아닌 경우에는 4번째 파라미터를 지정하지 않는다.
-
A6
원인
메시지 ISRT Call 또는 PURG Call로 송신한 메시지 세그먼트의 크기가 TRANSACT 매크로의 SEGSIZE 정의보다 크다.
대응 방법
송신 메시지 세그먼트의 크기는 TRANSACT 매크로의 SEGSIZE 이하로 한다.
-
QC
원인
입력 큐에 해당 프로그램에 대한 메시지가 존재하지 않는 경우 GU Call을 사용하였다.
대응 방법
해당 코드는 애플리케이션 프로그램이 종료하면서 상태 정보를 알리기 위한 목적으로 출력된다.
-
QD
원인
GN Call을 사용하였는데 해당 메시지에 더이상의 세그먼트가 존재하지 않는다.
대응 방법
세그먼트가 더 이상 없으므로 해당 메시지에 대해 애플리케이션 프로그램에서 적절하게 처리한다.
-
QE
원인
메시지 GU Call을 사용하지 않고 메시지 GN Call을 사용하였다.
대응 방법
메시지 GN Call을 사용하기 위해서는 메시지 GU Call을 먼저 사용한다.
-
QH
원인
출력 논리 단말의 이름 또는 트랜잭션 코드가 IMS에 등록되지 않았다. 메시지 ISRT Call 또는 PURG Call로 송신한 메시지 세그먼트 길이가 5Byte 미만이다.
대응 방법
논리 단말의 이름과 트랜잭션 코드를 확인한다.
-
XA
원인
originating 터미널에 응답 후에 다른 프로그램으로 SPA를 송신하였다.
대응 방법
애플리케이션 프로그램을 수정한다.
-
XB
원인
다른 프로그램으로 SPA를 송신한 후 originating 터미널로 출력 메시지를 송신하였다.
대응 방법
애플리케이션 프로그램을 수정한다.
-
X2
원인
ALT-PCB의 송신지가 회화용 트랜잭션인데 처음 ISRT Call을 SPA로 송신하지 않았다.
대응 방법
SPA를 먼저 ISRT한 후 메시지를 ISRT한다.
-
X3
원인
SPA의 선두 6Byte 필드가 변경되어 SPA 메시지로 정의되지 않는다.
대응 방법
처음 가져온 SPA 메시지의 선두 6Byte는 변경하지 않는다.
-
X4
원인
회화 처리가 정의되지 않은 트랜잭션으로 SPA를 송신하였다.
대응 방법
SPA가 아닌 데이터 메시지만 ISRT Call한다.
-
X5
원인
ISRT Call로 SPA 송신을 2번 이상 시도하였다.
대응 방법
하나의 메시지에 하나의 SPA를 송신한다.
-
X6
원인
ISRT Call로 SPA 송신하는데 잘못된 트랙잭션 코드이다.
대응 방법
IMS 시스템에 등록된 회화형 트랜잭션 코드로 송신지를 지정한다.