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 시스템에 등록된 회화형 트랜잭션 코드로 송신지를 지정한다.