OpenFrame NDB 유틸리티

본 장에서는 OpenFrame NDB 유틸리티에 대해 설명한다.

1. 개요

Fujitsu AIM DB 시스템에서는 NDB 데이터베이스를 구축하고 운영하기 위해 여러 가지 독립적인 유틸리티들을 제공한다. 이러한 유틸리티 중에서 데이터베이스, 인덱스 및 확장 인덱스의 운영을 지원하기 위한 기능들이 제공되는 프로그램들을 OpenFrame NDB에서도 제공하고 있으며, 간단히 NDB 유틸리티라 부른다.

본 안내서에서는 데이터베이스 관련 유틸리티들의 소개, 입출력 관련 데이터셋 설정 및 명령어 사용법, 예제 등에 대해 설명한다.

OpenFrame NDB 유틸리티 사용법을 보여주는 예제는 XSP JCL을 이용하는 예제와 MSP JCL을 이용하는 예제를 각각 보여주고 있다. XSP JCL을 사용하거나 MSP JCL을 사용하는 경우에 따라서 NDB 유틸리티 자체의 제어문에 대해서 상이한 점은 없다. 각 시스템에 따라서 JCL 문법이 다르며 유틸리티 작업의 종료 코드값이 XSP 및 MSP 시스템에 따라 다른 정도이다. 구체적인 XSP JCL과 MSP JCL의 차이점 및 사용법에 관해서는 Fujistsu사의 "OS IV/XSP Job Control Language Reference Manual AF II" 및 "OS IV/MSP Job Control Language Reference Manual AF II"를 참고한다.

다음은 NDB에서 지원하는 유틸리티에 대한 설명이다.

  • DMF(Database Maintenance Facility) 유틸리티

    프로그램명 설명

    JXKMATCH

    JXKUNLOD 유틸리티에 의해 생긴 중간 파일을 합쳐 JXKRELOD 유틸리티에서 이용할 수 있는 데이터를 생성한다. (Merging Intermediate Data)

    JXKRELOD

    JXKUNLOD 유틸리티에서 생성된 결과파일을 NDB로 적재한다. (Reloading Database)

    JXKREPLC

    JXKTCNCT의 결과물을 입력 받아 NDB 레코드 세트에 연결한다. (Set Connection)

    JXKSORT

    DMF 유틸리티에서 생성된 중간 결과물을 정렬한다. (Sorting Intermediate Data)

    JXKTCNCT

    레코드들의 세트 포인터 정보 데이터를 생성한다. (Set Connection Data Generation)

    JXKUNLOD

    데이터베이스를 읽어 데이터셋 파일 형태로 추출한다. (Unloading Database)

2. JXKMATCH

JXKMATCH 유틸리티는 JXKUNLOD 유틸리티에 의해 생긴 중간 파일을 합치는 유틸리티이다.

중간파일과 출력파일은 아래와 같다.

  • CS2, CN2를 병합하여 CN3를 생성한다.

  • DB1, CN4를 병합하여 DB2를 생성한다.

2.1. FD 또는 DD 설정

FD 또는 DD 설정 항목은 다음과 같다.

항목 설명

SYSPRINT

JXKMATCH 유틸리티의 메시지 출력을 위한 파일을 정의한다.

DMFCNIN

CN2 또는 CN4 파일을 정의한다.

DMFCNOUT

CN3 파일을 정의한다.

DMFCSIN

CS2 파일을 정의한다.

DMFDBIN

DB1 파일을 정의한다.

DMFDBOUT

DB2 파일을 정의한다.

2.2. 사용예제

  • XSP

    \ JOBG  JG1
    \ JOB   JXKMATCH,LIST=(L,JD)
    \ EX    JXKMATCH,RSIZE=256
    \ FD    DMFCNIN=DA,DISP=DLT,FILE=AIMDB.CN2,VOL=AIMDB1
    \ FD    DMFCSIN=DA,DISP=DLT,FILE=AIMDB.CS2,VOL=AIMDB1
    \ FD    DMFCNOUT=DA,DISP=DLT,FILE=AIMDB.CN3,VOL=AIMDB1
    \ FD    SYSPRINT=DA,SOUT=A
    \ JEND
    \ JGEND
  • MSP

    //J01 JOB CLASS=B,MSGCLASS=X
    //S01 EXEC PGM=JXKMATCH
    //DMFCNIN DD DSNAME=AIMDB.CN2,DISP=(OLD,DELETE),
    //           UNIT=SYSDA,VOL=SER=AIMDB1
    //DMFCSIN DD DSNAME=AIMDB.CS2,DISP=(OLD,DELETE),
    //           UNIT=SYSDA,VOL=SER=AIMDB1
    //DMFCNOUT DD DSNAME=AIMDB.CN3,DISP=(NEW,KEEP),
    //           UNIT=SYSDA,SPACE=(TRK,(10,5),RLSE),VOL=SER=AIMDB1
    //SYSPRINT DD SYSOUT=*
    //

2.3. 유의사항

JXKMATCH 유틸리티 프로그램이 종료하면 정상 또는 오류 메시지를 SYSPRINT FD로 출력하고 각 오류에 해당하는 리턴코드를 반환한다.

JXKMATCH 유틸리티 프로그램에서 발생할 수 있는 리턴코드는 다음과 같다.

  • XSP

    코드 설명

    10

    정상적으로 종료

    20

    정상적으로 종료되었으나 경고 메시지 발생

    30

    유효하지 않은 JOB 컨트롤 명령어 발견

    40

    운영환경이 정상적이지 않음

    50

    처리도중 오류 발생

  • MSP

    코드 설명

    0

    정상적으로 종료

    4

    정상적으로 종료되었으나 경고 메시지 발생

    8

    유효하지 않은 JOB 컨트롤 명령어 발견

    12

    운영환경이 정상적이지 않음

    16

    처리도중 오류 발생

3. JXKRELOD

ADL 스키마의 속성에 따라 데이터를 데이터베이스로 적재한다.

3.1. FD 또는 DD 설정

FD 또는 DD 설정 항목은 다음과 같다.

항목 설명

SYSIN

JXKRELOD 유틸리티의 명령어를 기술한 파일을 정의한다.

SYSPRINT

OpenFrame AIM 유틸리티의 메시지 출력을 위한 파일을 정의한다.

AIMPED

OpenFrame NDB에서는 무시한다.

DMFDBIN

DB2 파일과 DB5 파일을 정의한다.

DMFCNIN

CI 모드의 경우 CN7, CN8, CN9, CN10 파일을 정의한다.

DMFCNOUT 및 DMFCNOxx

CN5 파일을 정의한다.

DMFRPOUT

GC 모드의 경우 RP1 파일을 정의한다.

DMFRCOUT

GC 모드의 경우 RC1 파일을 정의한다.

DMFIXOxx

인덱스 데이터 파일을 정의한다.

DMFXIOxx

KRD 파일을 정의한다.

PRGLIB FD(XSP)

STEPLIB 또는 JOBLIB DD (MSP)

User Randomization Routine Load 모듈을 정의한다.

3.2. 명령어 설정

본 절에서는 JXKRELOD의 명령어에 대해서 설명한다.

RELOAD

JXKRELOD 유틸리티의 처리모드를 지정한다.

RELOAD 명령어의 구문은 다음과 같다. OpenFrame NDB에서는 설명되는 파라미터에 대해서만 지원하며, 나머지는 무시된다.

RELOAD MODE={IS|GC|CI}[,CHECK][,RECCNT=n]
       [,RESETUP][,COMPACT][,CLEAR][,SPLIT]
항목 설명

MODE

처리모드를 기술한다. OpenFrame에서는 현재 IS 모드만 지원한다.

  • IS : 데이터베이스에 데이터를 로드하는 경우이다.

DIRECTORY

RELOAD를 수행할 DB의 스키마, 서브스키마, PED 정보 등을 지정한다.

DIRECTORY 명령어의 구문은 다음과 같다. OpenFrame NDB에서는 설명되는 파라미터에 대해서만 지원하며, 나머지는 무시된다.

DIRECTORY SCHEMA=schema-name,
          SUBSCHEMA=subschema-name
          [,PED=({R|T|C})][,BUFDIV=(p,o)][,DID=nn]
항목 설명

SCHEMA

ADL 스키마에서 정의한 스키마 이름을 기술한다.

SUBSCHEMA

ADL 서브스키마에서 정의한 서브스키마 이름을 기술한다.

SETUP

생성할 데이터를 지정한다.

SETUP 명령어의 구문은 다음과 같다. OpenFrame NDB에서는 설명되는 파라미터에 대해서만 지원하며, 나머지는 무시된다.

SETUP RECORD=record-name[,SET=set-name]
항목 설명

RECORD

생성하고자 하는 레코드 이름을 기술한다.

SET

레코드를 생성할 때 Location set으로 이용할 세트 이름을 기술한다.

CROSS

네트워크 구조에 참여하는 Cross set이 있는 경우 해당 set을 기술한다.

CROSS 명령어의 구문은 다음과 같다. DMFCNOUT DD 또는 DMFCNOXX DD가 JCL에 기술되어 있어야 한다.

Cross set=set-name
      [,POSITION=n]
      [,DUMMY={ZERO|BLANK|X'hexadecimal-digit'}]
      [,DMFCNO=xx]
항목 설명

SET

Cross set 이름을 기술한다.

POSITION

DB2 포맷 레코드의 CN 키, SQ 키 위치의 순서를 1부터 255까지 나열할 수 있다.

DUMMY

Cross set에 연결되지 않은 경우를 구별하기 위해 쓰일 DUMMY 값을 ZERO 또는 BLANK 또는 HEXA 값으로 기술한다.

DMFCNO

출력될 CN5 파일을 지정하는 부분이다. 01부터 99까지 지정할 수 있으며 해당 DD가 JCL에 기술되어 있어야 한다.

CNKEY

Cross set의 CN 키가 되는 data item의 이름이나 속성 등을 기술한다.

OpenFrame NDB에서는 현재 레코드 뒤에 추가된 CN 키만 지원한다.

CNKEY 명령어의 구문은 다음과 같다.

CNKEY {{data-item-name|data-item-name.data-item-name...}
      [,...]|(length, attribute)[,...]}
항목 설명

data-item-name

ADL 스키마에서 정의한 data item 이름을 기술한다.

data-item-name.data-item-name…​

data item의 이름이 고유하지 않은 경우 상위 레벨의 data item 이름과 해당 data item 이름을 함께 기술한다.

(length, attribute)

data item이 아닌 레코드 뒤에 추가할 CN 키의 길이와 속성을 기술한다.

SQKEY

Cross set의 SQ 키가 되는 data item의 이름이나 속성 등을 기술한다.

OpenFrame NDB에서는 현재 레코드 뒤에 추가된 SQ 키만 지원한다.

SQKEY 명령어의 구문은 다음과 같다.

SQKEY {{data-item-name|data-item-name.data-item-name...}
       [,...]|(length, attribute)[,...]}
항목 설명

data-item-name

ADL 스키마에서 정의한 data item 이름을 기술한다.

data-item-name.data-item-name…​

data item 이름이 고유하지 않은 경우 상위 레벨의 data item 이름과 해당 data item 이름을 함께 기술한다.

(length, attribute)

data item이 아닌 레코드 뒤에 추가할 SQ 키의 길이와 속성을 기술한다.

IXDATA

추출할 인덱스 데이터 파일 이름을 기술한다.

IXDATA 명령어의 구문은 다음과 같다.

OpenFrame NDB에서는 문법만 지원하며, 인덱스 데이터는 생성되지 않는다.

IXDATA DMFIXO=xx
항목 설명

DMFIXO

출력될 인덱스 데이터 파일을 지정하는 부분이다. 01부터 99까지 지정할 수 있으며 해당 DD가 JCL에 기술되어 있어야 한다.

INDEX

인덱스 데이터를 생성할 DB의 범위를 지정한다.

INDEX 명령어의 구문은 다음과 같다. OpenFrame NDB에서는 문법만 지원하며, 인덱스 데이터는 생성되지 않는다.

INDEX [RANGE=(range-name[,...])]
      [,SUBRANGE=(subrange-name[,...])]
      [,SEQ]
항목 설명

RANGE

인덱스 데이터를 생성할 RANGE를 기술한다.

SUBRANGE

인덱스 데이터를 생성할 SUBRANGE를 기술한다.

KRDATA

추출할 Extended index data file의 이름을 기술한다.

KRDATA 명령어의 구문은 다음과 같다. XINDEX 명령어가 함께 기술되어야 한다.

OpenFrame NDB에서는 문법만 지원하며, Extended index data file은 생성되지 않는다.

KRDATA DMFXIO=xx
항목 설명

DMFXIO

출력될 Extended index data file을 지정하는 부분이다. 01부터 99까지 지정할 수 있으며 해당 DD가 JCL에 기술되어 있어야 한다.

XINDEX

Extended index data를 생성할 DB의 범위를 지정한다.

XINDEX 명령어의 구문은 다음과 같다.

OpenFrame NDB에서는 문법만 지원하며, Extended index data file은 생성되지 않는다.

XINDEX [XIXNAME=(extended-index-name[,...])]
       [,XIXSUBRANGE=(extended-index-subrange-name[,...])]
항목 설명

XIXNAME

Extended index data를 생성할 Extended index를 기술한다.

XIXSUBRANGE

Extended index data를 생성할 Extended index의 Subrange를 기술한다.

RANDOM

User random entry record가 있는 경우 User random module의 정보를 기술한다.

RANDOM 명령어의 구문은 다음과 같다. OpenFrame NDB에서는 설명되는 파라미터에 대해서만 지원하며, 나머지는 무시된다.

RANDOM {EXIT=entry-point-name|ITEM={data-item-name.data-item-name...}}
       [,LANGUAGE={COBOL|PL/I|ASM}],RECORD=(record-name[,...])
항목 설명

EXIT

User randomization routine의 entry point 이름을 기술한다.

ITEM

Page number를 담고 있는 data item의 이름을 기술한다.

RECORD

User random routine을 이용할 RECORD의 이름을 기술한다.

END

JXKRELOD 유틸리티의 control statement의 끝을 알린다.

JXKRELOD 유틸리티에서 LIMIT, RELATION, STACK, ERASE 명령어는 지원하지 않는다.

3.3. 사용예제

  • XSP

    \ JOBG  JG1
    \ JOB   JXKRELOD,LIST=(L,JD)
    \ EX    JXKRELOD,RSIZE=256
    \ PARA  LIST2
    \ FD    DMFDBIN=DA,DISP=DLT,FILE=AIMDB.DB2,VOL=AIMDB1
    \ FD    DMFIXO01=DA,FILE=AIMDB.IX,VOL=AIMDB1
    \ FD    DMFCNOUT=DA,FILE=AIMDB.CN5,VOL=AIMDB1
    \ FD    SYSPRINT=DA,SOUT=A
    \ FD    SYSIN=*
      RELOAD    MODE=IS
      DIRECTORY SCHEMA=OFTSCH,SUBSCHEMA=OFSUBSCH
      SETUP     RECORD=OFTREC
      IXDATA    DMFIXO=01
      INDEX     SUBRANGE=RNG01SRG01
      INDEX     SUBRANGE=RNG01SRG02
      END
    \/
    \ JEND
    \ JGEND
  • MSP

    //J01 JOB CLASS=B,MSGCLASS=X
    //S01 EXEC PGM=JXKRELOD,PARM='LIST2'
    //DMFDBIN DD DSNAME=AIMDB.DB2,DISP=(OLD,DELETE),
    //           UNIT=SYSDA,VOL=SER=AIMDB1
    //DMFIX001 DD DSNAME=AIMDB.IX,DISP=(NEW,KEEP),
    //            UNIT=SYSDA,SPACE=(TRK,(10,5),RLSE),VOL=SER=AIMDB1
    //DMFCNOUT DD DSNAME=AIMDB.CN5,DISP=(NEW,KEEP),
    //            UNIT=SYSDA,SPACE=(TRK,(10,5),RLSE),VOL=SER=AIMDB1
    //SYSPRINT DD SYSOUT=*
    //SYSIN DD *
      RELOAD    MODE=IS
      DIRECTORY SCHEMA=OFTSCH,SUBSCHEMA=OFSUBSCH
      SETUP     RECORD=OFTREC
      IXDATA    DMFIXO=01
      INDEX     SUBRANGE=RNG01SRG01
      INDEX     SUBRANGE=RNG01SRG02
      END
    /*
    //

3.4. 유의사항

JXKRELOD 유틸리티 프로그램이 종료하면 정상 또는 오류 메시지를 SYSPRINT FD로 출력하고 각 오류에 해당하는 리턴코드를 반환한다.

JXKRELOD 유틸리티 프로그램에서 발생할 수 있는 리턴코드는 다음과 같다.

  • XSP

    코드 설명

    10

    정상적으로 종료

    20

    정상적으로 종료되었으나 경고 메시지 발생

    30

    유효하지 않은 JOB 컨트롤 명령어 발견

    40

    운영환경이 정상적이지 않음

    50

    처리도중 오류 발생

  • MSP

    코드 설명

    0

    정상적으로 종료

    4

    정상적으로 종료되었으나 경고 메시지 발생

    8

    유효하지 않은 JOB 컨트롤 명령어 발견

    12

    운영환경이 정상적이지 않음

    16

    처리도중 오류 발생

4. JXKREPLC

JXKREPLC유틸리티는 세트 연결 정보를 가진 RP3, RP4 파일을 입력 받아 레코드간의 세트 관계 연결해 주는 유틸리티이다.

4.1. FD 또는 DD 설정

FD 또는 DD 설정 항목은 다음과 같다.

항목 설명

DMFRPIN

입력으로 이용할 RP3 또는 RP4 파일을 정의한다. 세트 연결 정보를 담고 있다.

SYSPRINT

JXKREPLC 유틸리티의 메시지 출력을 위한 파일을 정의한다.

4.2. 사용예제

  • XSP

    \ JOBG  JG1
    \ JOB   JXKREPLC,LIST=(L,JD)
    \ EX    JXKREPLC,RSIZE=256
    \ FD    DMFRPIN=DA,DISP=DLT,FILE=AIMDB.RP4,VOL=AIMDB1
    \ FD    SYSPRINT=DA,SOUT=A
    \ JEND
    \ JGEND
  • MSP

    //J01 JOB CLASS=B,MSGCLASS=X
    //S01 EXEC PGM=JXKREPLC
    //DMFRPIN DD DSNAME=AIMDB.RP4,DISP=(OLD,DELETE),
    //           UNIT=SYSDA,VOL=SER=AIMDB1
    //SYSPRINT DD SYSOUT=*
    //

4.3. 유의사항

JXKREPLC 유틸리티 프로그램이 종료하면 정상 또는 오류 메시지를 SYSPRINT FD로 출력하고 각 오류에 해당하는 리턴코드를 반환한다.

JXKREPLC 유틸리티 프로그램에서 발생할 수 있는 리턴코드는 다음과 같다.

  • XSP

    코드 설명

    10

    정상적으로 종료

    20

    정상적으로 종료되었으나 경고 메시지 발생

    30

    유효하지 않은 JOB 컨트롤 명령어 발견

    40

    운영환경이 정상적이지 않음

    50

    처리도중 오류 발생

  • MSP

    코드 설명

    0

    정상적으로 종료

    4

    정상적으로 종료되었으나 경고 메시지 발생

    8

    유효하지 않은 JOB 컨트롤 명령어 발견

    12

    운영환경이 정상적이지 않음

    16

    처리도중 오류 발생

5. JXKSORT

NDB 데이터를 UNLOAD, RELOAD하는 과정에서 생성된 중간 파일을 정렬한다.

5.1. FD 또는 DD 설정

FD 또는 DD 설정 항목은 다음과 같다.

항목 설명

SORTIN

Sort하고자 입력 파일을 정의한다.

SORTWKnn

NDB에서는 무시한다.

SORTOUT

Sort 결과를 출력할 파일을 정의한다.

5.2. 입력과 출력

JXKSORT 유틸리티으로 입력되는 파일과 출력 파일은 아래와 같다.

입력 출력

CS1

CS2

CN1

CN2

CN3

CN4

CN5

CN6

RP3

RP4

5.3. 사용예제

  • XSP

    \ JOBG  JG1
    \ JOB   JXKSORT,LIST=(L,JD)
    \ EX    JXKSORT,RSIZE=256
    \ FD    SORTIN=DA,DISP=DLT,FILE=AIMDB.CN5,VOL=AIMDB1
    \ FD    SORTOUT=DA,FILE=AIMDB.CN6,VOL=AIMDB1
    \ FD    SYSPRINT=DA,SOUT=A
    \ JEND
    \ JGEND
  • MSP

    //J01 JOB CLASS=B,MSGCLASS=X
    //S01 EXEC PGM=JXKSORT
    //SORTIN DD DSNAME=AIMDB.CN5,DISP=(OLD,DELETE),
    //           UNIT=SYSDA,VOL=SER=AIMDB1
    //SORTOUT DD DSNAME=AIMDB.CN6,DISP=(NEW,KEEP),
    //            UNIT=SYSDA,SPACE=(TRK,(10,5),RLSE),VOL=SER=AIMDB1
    //SYSPRINT DD SYSOUT=*
    //

5.4. 유의사항

JXKSORT 유틸리티 프로그램이 종료하면 정상 또는 오류 메시지를 SYSPRINT FD로 출력하고 각 오류에 해당하는 리턴코드를 반환한다.

JXKSORT 유틸리티 프로그램에서 발생할 수 있는 리턴코드는 다음과 같다.

  • XSP

    코드 설명

    10

    정상적으로 종료

    20

    정상적으로 종료되었으나 경고 메시지 발생

    30

    유효하지 않은 JOB 컨트롤 명령어 발견

    40

    운영환경이 정상적이지 않음

    50

    처리도중 오류 발생

  • MSP

    코드 설명

    0

    정상적으로 종료

    4

    정상적으로 종료되었으나 경고 메시지 발생

    8

    유효하지 않은 JOB 컨트롤 명령어 발견

    12

    운영환경이 정상적이지 않음

    16

    처리도중 오류 발생

6. JXKTCNCT

NDB 데이터를 RELOAD하는 도중 세트 관계가 이어지지 않은 레코드들의 세트 관계를 이을 수 있는 파일을 생성한다. CN 모드와 RP모드가 존재하며 NDB에서는 현재 CN모드만 지원한다.

6.1. FD 또는 DD 설정

FD 또는 DD 설정 항목은 다음과 같다.

항목 설명

SYSIN

JXKTCNCT 유틸리티의 명령어를 기술한 파일을 정의한다.

SYSPRINT

JXKTCNCT 유틸리티의 메시지 출력을 위한 파일을 정의한다.

DMFCNIxx

입력으로 이용할 CN6 파일을 정의한다. xx에는 01부터 99까지의 숫자가 올 수 있다.

DMFRPOUT

출력될 RP3 파일을 정의한다. 세트 관계를 이을 수 있는 정보가 담긴다.

6.2. 사용예제

  • XSP

    \ JOBG  JG1
    \ JOB   JXKTCNCT,LIST=(L,JD)
    \ EX    JXKTCNCT,RSIZE=256
    \ FD    DMFCNI01=DA,DISP=DLT,FILE=AIMDB.CN6,VOL=AIMDB1
    \ FD    DMFRPOUT=DA,FILE=AIMDB.RP3,VOL=AIMDB1
    \ FD    SYSPRINT=DA,SOUT=A
    \ JEND
    \ JGEND
  • MSP

    //J01 JOB CLASS=B,MSGCLASS=X
    //S01 EXEC PGM=JXKTCNCT
    //DMFCNI01 DD DSNAME=AIMDB.CN6,DISP=(OLD,DELETE),
    //           UNIT=SYSDA,VOL=SER=AIMDB1
    //DMFRPOUT DD DSNAME=AIMDB.RP3,DISP=(NEW,KEEP),
    //            UNIT=SYSDA,SPACE=(TRK,(10,5),RLSE),VOL=SER=AIMDB1
    //SYSPRINT DD SYSOUT=*
    //

6.3. 유의사항

JXKTCNCT 유틸리티 프로그램이 종료하면 정상 또는 오류 메시지를 SYSPRINT FD로 출력하고 각 오류에 해당하는 리턴코드를 반환한다.

JXKTCNCT 유틸리티 프로그램에서 발생할 수 있는 리턴코드는 다음과 같다.

  • XSP

    코드 설명

    10

    정상적으로 종료

    20

    정상적으로 종료되었으나 경고 메시지 발생

    30

    유효하지 않은 JOB 컨트롤 명령어 발견

    40

    운영환경이 정상적이지 않음

    50

    처리도중 오류 발생

  • MSP

    코드 설명

    0

    정상적으로 종료

    4

    정상적으로 종료되었으나 경고 메시지 발생

    8

    유효하지 않은 JOB 컨트롤 명령어 발견

    12

    운영환경이 정상적이지 않음

    16

    처리도중 오류 발생

7. JXKUNLOD

NDB 데이터베이스를 순차적으로 읽어 데이터를 파일로 생성한다.

7.1. FD 또는 DD 설정

FD 또는 DD 설정 항목은 다음과 같다.

항목 설명

SYSIN

JXKUNLOD 유틸리티의 명령어를 기술한 파일을 정의한다.

SYSPRINT

AIM 유틸리티의 메시지 출력을 위한 파일을 정의한다.

AIMPED

PED를 정의한다.

DMFDBOUT

GC 모드에서는 DB5, RS 모드에서는 DB2 파일을 정의한다.

DUADBOUT

DMFDBOUT FD에 기술된 파일의 복사본을 정의한다. (미지원)

DMFDBOxx

RS 모드에서 CROSS 문이 기술되지 않은 경우 DB2 파일을 정의한다.

DMFCSOUT

RS 모드인 경우 CS1 파일을 정의한다.

DMFCNOUT

RS 모드인 경우 CN1 또는 CN5 파일을 정의한다.

DMFCNOxx

CN5 파일을 정의한다.

7.2. 명령어 설정

본 절에서는 JXKUNLOD의 명령어에 대해서 설명한다.

UNLOAD

JXKUNLOD 유틸리티의 처리모드를 지정한다.

UNLOAD 명령어의 구문은 다음과 같다. OpenFrame NDB에서는 설명되는 파라미터에 대해서만 지원하며, 나머지는 무시된다.

UNLOAD MODE={GC[,{CLEAR|NOCLEAR}][,RECCNT=n]|rs}[,COMPACT]
항목 설명

MODE

처리모드를 기술한다. OpenFrame에서는 현재 RS 모드만 지원한다.

  • GC(Garbage collection) 모드 : DB를 relocation할 때 이용된다.

  • RS 모드 : DB를 생성할 수 있는 데이터를 추출하며 레코드와 세트 정보로 구성된다.

DIRECTORY

UNLOAD를 수행할 DB의 스키마, 서브스키마, PED 정보 등을 지정한다.

DIRECTORY 명령어의 구문은 다음과 같다. OpenFrame NDB에서는 설명되는 파라미터에 대해서만 지원하며, 나머지는 무시된다.

DIRECTORY SCHEMA=schema-name,
          SUBSCHEMA=subschema-name
          [,PED=({R|T|C})][,BUFDIV=(p,o)][,DID=nn]
항목 설명

SCHEMA

ADL 스키마에서 정의한 스키마 이름을 기술한다.

SUBSCHEMA

ADL 서브스키마에서 정의한 서브스키마 이름을 기술한다.

SETUP

데이터를 추출할 레코드의 이름을 기술한다.

SETUP 명령어의 구문은 다음과 같다.

SETUP RECORD=record-name[,{SET=set-name|PHYSICAL}]
항목 설명

RECORD

DUMP 받고자 하는 레코드의 이름을 기술한다.

SET

DUMP 받을 때 이용할 Tree 구조의 세트 이름을 기술한다.

PHYSICAL

레코드 데이터를 저장되 있는 순서대로 받고자 할 때 기술한다.

CROSS

네트워크 구조에 참여하는 Cross set이 있는 경우 해당 세트를 기술한다.

CROSS 명령어의 구문은 다음과 같다. DMSFCNOUT DD와 DMFCSOUT DD가 JCL에 기술되어 있어야 한다.

Cross set=set-name[,PRIORITY=n]
항목 설명

SET

Cross set 이름을 기술한다.

PRIORITY

레코드가 Tree 구조에 연결되어 있지 않을 때 DUMP 받기 위해 이용할 세트의 순위를 기술한다. 낮은 값이 더 높은 순위를 갖는다.

UNDER

레코드의 하위 세트이 여러 개 존재하는 경우 먼저 레코드를 뽑는데 이용할 세트를 기술한다.

UNDER 명령어의 구문은 다음과 같다.

UNDER SET=set-name,PRIORITY=n
항목 설명

SET

하위 레벨 세트의 이름을 기술한다.

PRIORITY

세트의 우선 순위를 기술한다. 낮은 값이 더 높은 순위를 갖는다.

END

JXKUNLOD 유틸리티의 control statement 끝을 알린다.

JXKUNLOD 유틸리티에서 SELECT, RELATION, LOCATION, SEPARATE, OMIT, ADD, EXTEND, LIMIT, CNDATA, CNSET, CNKEY, SQKEY 명령어는 지원하지 않는다.

7.3. 사용예제

다음은 JXKUNLOD를 이용하여 DATA 파일을 생성하는 JCL 예이다.

  • XSP

    \ JOBG  JG1
    \ JOB   JXKUNLOD,LIST=(L,JD)
    \ EX    JXKUNLOD,RSIZE=256
    \ PARA  LIST2
    \ FD    DMFDBOUT=DA,FILE=AIMDB.DB2,VOL=AIMDB1
    \ FD    SYSPRINT=DA,SOUT=A
    \ FD    SYSIN=*
      UNLOAD    MODE=RS
      DIRECTORY SCHEMA=OFTSCH,SUBSCHEMA=OFSUBSCH
      SETUP     RECORD=OFTREC
      END
    \/
    \ JEND
    \ JGEND
  • MSP

    //J01 JOB CLASS=B,MSGCLASS=X
    //S01 EXEC PGM=JXKUNLOD,PARM='LIST2'
    //DMFDBOUT DD DSNAME=AIMDB.DB2,DISP=(NEW,KEEP),
    //         UNIT=SYSDA,SPACE=(TRK,(10,10),RLSE),VOL=SER=AIMDB1
    //SYSPRINT DD SYSOUT=*
    //SYSIN DD *
      UNLOAD    MODE=RS
      DIRECTORY SCHEMA=OFTSCH,SUBSCHEMA=OFSUBSCH
      SETUP     RECORD=OFTREC
      END
    /*
    //

7.4. 유의사항

JXKUNLOD 유틸리티 프로그램이 종료하면 정상 또는 오류 메시지를 SYSPRINT FD로 출력하고 각 오류에 해당하는 리턴코드를 반환한다.

JXKUNLOD 유틸리티 프로그램에서 발생할 수 있는 리턴코드는 다음과 같다.

  • XSP

    코드 설명

    10

    정상적으로 종료

    20

    정상적으로 종료되었으나 경고 메시지 발생

    30

    유효하지 않은 JOB 컨트롤 명령어 발견

    40

    운영환경이 정상적이지 않음

    50

    처리도중 오류 발생

  • MSP

    코드 설명

    0

    정상적으로 종료

    4

    정상적으로 종료되었으나 경고 메시지 발생

    8

    유효하지 않은 JOB 컨트롤 명령어 발견

    12

    운영환경이 정상적이지 않음

    16

    처리도중 오류 발생