1. hdpcdf01
hdpcdf01은 Mainframe에서 IMS/DB Unload 유틸리티인 DFSURGU0으로 생성한 데이터셋을 입력으로 받아 OpenFrame의 HiDB Reload 툴인 hdload에서 사용 가능한 HiDB 표준 포맷의 데이터셋을 생성해주는 툴 프로그램이다.
DFSURGU0에서 생성한 Unload 데이터셋은 HiDB 데이터베이스로 Reload가 불가능하기 때문에 Mainframe에서 생성한 Unload 데이터셋의 내부 포맷을 분석하여 Header와 Trailer 부분을 제거하고 OpenFrame에서 Reload 가능한 형태의 데이터셋으로 재작성하게 된다.
출력된 데이터셋은 다음과 같은 포맷으로 구성된다.
사용법
hdpcdf01 프로그램을 실행하는 방법은 다음과 같다.
Usage: hdpcdf01 [options] [format] if=input-file of=output-file dbd=dbd-name
-
[options]
옵션 설명 [-v]
hdpcdf01의 버전정보를 화면에 출력한다.
[-h]
hdpcdf01의 사용법을 화면에 출력한다.
[-d]
hdpcdf01을 수행하는 동안 입력 파일의 현재 처리 포지션을 출력한다.
[-hp number]
입력 파일의 내부 포맷을 분석하는 과정에서 헤더 길이를 계산하는 경우 바이트 값을 추가한다.
[-dp number]
입력 파일의 내부 포맷을 분석하는 과정에서 세그먼트 데이터 길이를 계산하는 경우 바이트 값을 추가한다.
[-rdw]
입력 파일이 RDW(4Bytes)가 포함된 가변길이형식의 데이터셋인 경우 지정한다.
[-addpk]
데이터셋을 마이그레이션하는 경우 자식 세그먼트에 대한 변환할 때에 부모 세그먼트의 키 영역을 참조해야하는 경우가 있다. 이 옵션을 지정하면 자식 세그먼트 레코드의 앞부분에 부모 세그먼트의 키 영역을 추가한다.
-
[format]
옵션 설명 [-f1]
입력 파일이 SHISAM 데이터베이스를 Unload한 데이터셋일 경우 지정한다.
[-dedb]
입력 파일이 DEDB 데이터베이스를 Unload한 데이터셋일 경우 지정한다.
-
입력 항목
항목 설명 if=input-file
hdpcdf01의 입력 파일을 지정한다. 입력 파일은 Mainframe의 IMS/DB Unload 유틸리티인 DFSURGU0에서 생성한 데이터셋 파일명을 기술한다.
of=output-file
hdpcdf01의 출력 파일을 지정한다. 출력 파일은 마이그레이션 툴인 dsmigin에서 입력으로 사용된다.
dbd=dbd-name
입력 파일의 데이터베이스를 정의한 DBD의 이름을 지정한다.
해당 DBD는 hdpcdf01을 실행하기 전에 디폴트 DBDLIB에 등록되어 있어야 하며 최대 8자 이내로 기술한다. DBDLIB 등록에 관한 내용은 dbdgen 툴을 참고한다.
사용예제
다음은 hdpcdf01를 실행하여 스키마 파일을 생성하는 예이다.
$ hdpcdf01 if=tmax01uld.dat of=tmax01uld.hdb dbd=TMAX01PD
위의 명령이 정상적으로 종료되면 다음과 같은 메시지가 출력된다.
hdpcdf01 version 7.2.0(1) obuild@tplinux32:ofsrc7/ims(#1) 2017-11-09 23:14:22
HiDB Pre-conversion Program
* Bytes of Header Part : 243
* Bytes of Trailer Part : 245
* Bytes of Input file : 23147438
* Position of Trailer part: 23147193
* Current Position of Reading:23146727, Segment:TMAX1VAA
* MESSAGE: input data reading success.
*** HDPCDF01 DATA CONVERSION ***
SEGMENT LEVEL STATISTICS
TOTAL SEGMENTS BY SEGMENT TYPE
===========================================
SEGMENT READ
NAME COUNT
-------------------------------------------
TMAX1VAA 9629
TMAX1VAD 9628
TMAX1VAE 0
TMAX1VAB 28243
TMAX1VAF 28243
TMAX1VAC 15586
-------------------------------------------
TOTAL SEGMENTS IN DATABASE = 91329
===========================================
디폴트 스키마 디렉터리를 확인하면 다음과 같은 스키마 파일이 생성되어 있음을 확인할 수 있다.
$ ls -al
-rw-r--r-- 1 adb adb 13862 Oct 6 10:41 TMAX01PD.conv
관련 환경설정
-
OpenFrame 환경설정 중 ds 서브젝트, DATASET_DIRECTORY 섹션에 SCHEMA_DIR 키의 VALUE 항목에 생성된 스키마 파일을 저장할 디렉터리 경로를 설정한다.
$ ofconfig list -s ds -sec DATASET_DIRECTORY -k SCHEMA_DIR =================================================================================== SUBJECT | SECTION | KEY | VALUE =================================================================================== ds | DATASET_DIRECTORY | SCHEMA_DIR | /home/openframe/schema =================================================================================== -
OpenFrame 환경설정 중 ims 서브젝트, IMS_DEFAULT 섹션에 DBDLIB_NAME 키의 VALUE 항목에 작업대상 데이터베이스의 DBD가 등록되어 있는 DBDLIB를 설정한다.
$ ofconfig list -s ims -sec IMS_DEFAULT -k DBDLIB_NAME =================================================================================== SUBJECT | SECTION | KEY | VALUE =================================================================================== ims | IMS_DEFAULT | DBDLIB_NAME | IMS.ACBLIB ===================================================================================
|
OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame HiDB "환경설정 안내서"를 참고한다. |