유틸리티 참조 안내서 - tmaxsoft · 2019-04-09 · dfsort application programming guide ims...

231
OpenFrame 유틸리티 참조 안내서 소프트웨어 OpenFrame Batch v4.0 안내서 버전 v1.2 Copyright © 2008 TmaxSoft Co., Ltd. All Rights Reserved.

Upload: others

Post on 19-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서

소프트웨어

OpenFrame Batch v4.0

안내서 버전 v1.2

Copyright © 2008 TmaxSoft Co., Ltd. All Rights Reserved.

Page 2: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서 2

Copyright Notice

Copyright © 2008 TmaxSoft Co., Ltd. All Rights Reserved.

TmaxSoft Co., Ltd.

서울특별시 강남구 대치동 946-1글라스타워 18층 우)135-708

Restricted Rights Legend

This software and documents are made available under the terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be reproduced, transmitted, or translated in any form or by any means, electronic, mechanical, manual, or optical, without the prior written consent of TmaxSoft Co., Ltd.

이 소프트웨어 및 안내서는 오직 TmaxSoft Co., Ltd.와의 사용권 계약 하에서만 이용이 가능하며, 사용권 계약에 따라서 사용하거나 복사할 수 있습니다. 또한 이 안내서에서 언급하지 않은 정보에 대해서는 보증 및 책임을 지지 않습니다. 이 안내서에 대한 권리는 저작권에 보호되므로 발행자의 허가 없이 전체 또는 일부를 어떤 형식이나, 사진 녹화, 기록, 정보 저장 및 검색 시스템과 같은 그래픽이나 전자적, 기계적 수단으로 복제하거나 사용할 수 없습니다

Trademarks

Tmax, WebtoB, WebT, JEUS and OpenFrame are registered trademarks of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies.

Tmax, WebtoB, WebT, JEUS, OpenFrame은 TmaxSoft Co., Ltd.의 등록 상표입니다. 기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상표로서 참조용으로만 사용됩니다.

안내서 정보

안내서 제목: OpenFrame 유틸리티 참조 안내서

발행일: 2008년7월15일

소프트웨어 버전: OpenFrame Batch v4.0

안내서 버전: v1.2

Page 3: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서 3

연락처

Korea TmaxSoft Co., Ltd. 18F Glass Tower, 946-1, Daechi-Dong, Kangnam-Gu, Seoul 135-708 South Korea Tel: 82-2-6288-2114 Fax: 82-2-6288-2115 Email: [email protected] Website: http://www.tmax.co.kr

USA TmaxSoft, Inc. US Headquarter (San Jose) 130 Rio Robles San Jose, CA 95134, USA Tel: 1-408-321-2400 Fax: 1-408-321-2444 Email: [email protected] Website: http://www.tmaxsoft.com Sales Office (New Jersey) 560 Sylvan Ave, Englewood Cliffs NJ 07632, USA Tel: 1-201-567-8266 Fax: 1-201-567-7339 Email: [email protected] Website: http://www.tmaxsoft.com

Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073 Japan Tel: 81-3-5765-2550 Fax: 81-3-5765-2567 Email: [email protected] Website: http://www.tmaxsoft.co.jp

Page 4: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서 4

China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan, Chao yang District, Beijing, China, 100027 Tel: 86-10-6410-6145~8 Fax: 86-10-6410-6144 Email: [email protected] Website: http://www.tmaxsoft.com.cn Shanghai Office Room 4123, 41 Floor, China Development Bank Building, No.500 Pudong Road(s), Shanghai, China, 200120 Tel: 86-21-6109-5751 Fax: 86-21-6109-5750 Email: [email protected] Website: http://www.tmaxsoft.com.cn

Page 5: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서 5

내용 목차

안내서에 대하여 ............................................................................................... 10

안내서의 대상 ........................................................................................................ 10

안내서의 전제 조건 ............................................................................................... 10

안내서의 제한 조건 ............................................................................................... 10

안내서 구성............................................................................................................ 11

안내서 규약............................................................................................................ 12

시스템 사용 환경 ................................................................................................... 13

관련 안내서............................................................................................................ 14

제1장 OpenFrame 유틸리티 개요 .................................................................. 15

1.1 유틸리티 소개 ................................................................................................. 15

제2장 데이터 셋 유틸리티 ............................................................................... 17

2.1 ADRDSSU........................................................................................................ 17

2.2 IDCAMS........................................................................................................... 28

2.3 IEBCOPY......................................................................................................... 86

2.4 IEBEDIT ........................................................................................................... 96

2.5 IEBGENER .................................................................................................... 101

2.6 IEBPTPCH ..................................................................................................... 108

2.7 IEHLIST ......................................................................................................... 114

2.8 IEHPROGM.................................................................................................... 117

제3장 데이터베이스 유틸리티........................................................................ 121

3.1 DSNTIAUL ..................................................................................................... 121

3.2 DSNUTILB ..................................................................................................... 123

3.3 DSNTEP2....................................................................................................... 125

3.4 IKJEFT01....................................................................................................... 126

제4장 소트 유틸리티...................................................................................... 135

4.1 SORT ............................................................................................................. 135

4.2 SYNCHOST ................................................................................................... 155

제5장 HiDB 유틸리티 .................................................................................... 159

Page 6: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서 6

5.1 DBDGENC0 ................................................................................................... 159

5.2 PSBGENC0 ................................................................................................... 178

5.3 DFSILNK0...................................................................................................... 187

5.4 DBFUMIN0..................................................................................................... 191

5.5 DFSRRC00 .................................................................................................... 193

5.6 DFSURPR0.................................................................................................... 197

5.7 DFSURG10 .................................................................................................... 199

5.8 DFSURUL0 .................................................................................................... 201

5.9 DFSURRL0 .................................................................................................... 204

제6장 기타 유틸리티...................................................................................... 207

6.1 DSDIFF .......................................................................................................... 207

6.2 FTP ................................................................................................................ 209

6.3 ICETOOL ....................................................................................................... 210

6.4 IEFBR14 ........................................................................................................ 216

6.5 PGMRTS00.................................................................................................... 217

6.6 SASHOST...................................................................................................... 221

6.7 SDSF.............................................................................................................. 225

6.8 WAAPINIT...................................................................................................... 227

6.9 WAAPRDME.................................................................................................. 229

Page 7: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서 7

그림 목차

[그림 2-1] DUMP/RESTORE 개념 ............................................................................................. 17

[그림 2-2] DUMP 처리 과정....................................................................................................... 18

[그림 2-3] RESTORE 처리 과정................................................................................................ 18

[그림 2-4] PDS 데이터 셋 복사................................................................................................. 90

[그림 2-5] 데이터 셋 병합 ......................................................................................................... 91

[그림 2-6] 특정 멤버 복사 ......................................................................................................... 92

[그림 2-7] IEBCOPY4 ................................................................................................................. 94

[그림 2-8] IEBCOPY5 ................................................................................................................. 95

[그림 2-9] 첫번째 입력 레코드 필드 복사 .............................................................................. 106

[그림 2-10] 두번째 입력 레코드 필드 복사 ............................................................................ 107

[그림 5-1] 재편성 준비 과정.................................................................................................... 198

[그림 5-2] 재편성 기초 자료 조사 과정 ................................................................................. 199

[그림 5-3] 데이터 파일 백업.................................................................................................... 201

[그림 5-4] 데이터 복구............................................................................................................. 204

[그림 6-1] PGMRTS00 동작 구조............................................................................................ 218

[그림 6-2] 내부 판독기를 통한 JOB 전송 .............................................................................. 230

Page 8: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서 8

표 목차

[표 0-1] 안내서 규약 .................................................................................................................. 12

[표 0-2] 시스템 사용 환경 ......................................................................................................... 13

[표 0-3] OpenFrame 관련 안내서 .............................................................................................. 14

[표 0-4] 참고 안내서 .................................................................................................................. 14

[표 2-1] 비교연산자 .................................................................................................................... 24

[표 2-2] DUMP/RESTORE 명령어와 옵션................................................................................. 25

[표 2-3] DUMP 와일드카드 ........................................................................................................ 25

[표 2-4] 와일드카드를 이용한 DUMP 필터링 예제.................................................................. 26

[표 2-5] RECFM .......................................................................................................................... 27

[표 2-6] IDCAMS 기능 명령어 ................................................................................................... 29

[표 2-7] IDCAMS 보조 명령어 ................................................................................................... 30

[표 2-8] IDCAMS 명령어 규칙 ................................................................................................... 31

[표 2-9] 카탈로그 엔트리 타입별 ALTER 지원 ........................................................................ 35

[표 2-10] 컨디션 코드 ................................................................................................................ 76

[표 2-11] Ignored ALTER 파라미터 ............................................................................................ 79

[표 2-12] Ignored BLDINDEX 파라미터 ..................................................................................... 79

[표 2-13] Ignored DEFINE 파라미터 .......................................................................................... 80

[표 2-14] Ignored DEFINE ALIAS 파라미터 ............................................................................... 80

[표 2-15] Ignored DEFINE ALTERNATEDINDEX 파라미터....................................................... 81

[표 2-16] Ignored DEFINE CLUSTER 파라미터 ........................................................................ 82

[표 2-17] Ignored DEFINE GENERATIONDATAGROUP 파라미터 ........................................... 82

[표 2-18] Ignored DEFINE NONVSAM 파라미터....................................................................... 82

[표 2-19] Ignored DEFINE PATH 파라미터 ................................................................................ 82

[표 2-20] Ignored DEFINE USERCATALOG 파라미터 .............................................................. 83

[표 2-21] Ignored DELETE 파라미터 ......................................................................................... 83

[표 2-22] Ignored EXPORT 파라미터......................................................................................... 84

[표 2-23] Ignored IMPORT 파라미터 ......................................................................................... 84

[표 2-24] Ignored LISTCAT 파라미터......................................................................................... 84

[표 2-25] Ignored PRINT 파라미터............................................................................................. 85

[표 2-26] Ignored REPRO 파라미터 .......................................................................................... 85

[표 2-27] IEBCOPY 명령어 약자 ............................................................................................... 96

[표 4-1] 데이터 포맷 ................................................................................................................ 149

Page 9: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

OpenFrame 유틸리티 참조 안내서 9

[표 4-2] 필드 길이 별 Digit 수 ................................................................................................ 149

[표 4-3] 미리 정의된 EDIT 마스크 유형................................................................................. 152

[표 4-4] SORT 엔진별 기능 지원 비교표................................................................................ 154

[표 5-1] 데이터베이스 종류에 따른 BLOCK과 RECORD 파라미터 ..................................... 166

[표 5-2] PROCOPT 옵션 .......................................................................................................... 182

[표 5-3] DFSURUL0 컨트롤 문장 ............................................................................................ 202

Page 10: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

안내서에 대하여

OpenFrame 유틸리티 참조 안내서 10

안내서에 대하여

안내서의 대상

본 안내서는 리호스팅 솔루션인 OpenFrame Batch 4.0 버전에서 필요로 하는 각

종 유틸리티 프로그램을 사용하는 사용자를 대상으로 기술한다.

안내서의 전제 조건

본 안내서를 정확히 사용하려면 OpenFrame Batch v4.0의 개념을 이해하고 있어

야 한다. OpenFrame Batch v4.0에 대한 이해를 돕기 위해 “Batch 안내서”를 먼

저 숙지할 것을 권장한다.

안내서의 제한 조건

본 안내서에서는 유틸리티에서 현재 지원하지 않는 기능/옵션/파라미터에 대해

서 별도로 표기하였으며 이에 대한 설명은 생략한다.

Page 11: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

안내서에 대하여

OpenFrame 유틸리티 참조 안내서 11

안내서 구성

유틸리티 참조 안내서는 총 6개의 장으로 구성되어 있다.

각 장의 주요 내용은 다음과 같다.

제1장: OpenFrame Batch v4.0 유틸리티 개요

각 장에서 다뤄질 유틸리티의 전반적인 개요에 대해 기술한다.

제2장: 데이터 셋 유틸리티

데이터 셋 유틸리티 프로그램인 ADRDSSU, IDCAMS, IEBCOPY, IEBEDIT,

IEBGENER, IEBPTPCH, IEHLIST, IEHPROGM을 사용하여 여러가지 데이터

셋 관련 작업을 처리하기 위한 방법에 대해 기술한다.

제3장: 데이터베이스 유틸리티

데이터베이스 유틸리티 프로그램인 DSNTIAUL, DSNUTILB, DSNTEP2,

IKJEFT01을 사용하여 데이터베이스와 관련된 작업을 수행하는 방법에 대해

기술한다.

제4장: 소트 유틸리티

소트 유틸리티 프로그램인 SORT, SYNCHOST를 사용하여 소트 작업을 수

행하는 방법에 대해 기술한다.

제5장: HiDB 유틸리티

HiDB 유틸리티 프로그램인 DBDGENC0, PSBGENC0, DFSILNK0,

DBFUMIN0, DFSRRC00, DFSURG10, DFSURPR0, DFSURRL0, DFSURUL0

를 사용하여 HiDB를 사용하는 방법에 대해 기술한다.

제6장: 기타 유틸리티

사용자의 편의를 위해 제공되는 데이터 셋 유틸리티, 데이터베이스 유틸리

티, 소트 유틸리티 그리고 HiDB 유틸리티 외의 DSDIFF, FTP, ICETOOL,

IEFBR14, PGMRTS00, SASHOST, SDSF, WAAPINIT, WAAPRDME 유틸리티

를 사용하는 방법에 대해 기술한다.

Page 12: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

안내서에 대하여

OpenFrame 유틸리티 참조 안내서 12

안내서 규약

표기 의미

AaBbCc123 명령어, 구문

AaBbCc123 명령어 수행 후 화면에 출력된 결과물

참고: 참고 또는 주의 사항

{ } 필수 인수값

[ ] 옵션 인수값

| 선택 인수값

“ ” (따옴표) 다른 관련 안내서 또는 안내서 내의 다른 장 및 절

언급

하이퍼링크 메일계정, 웹 사이트, 다른 장 및 절 참고

진하게 강조

<AaBbCc123> 프로그램 소스 코드의 파일명, 디렉터리 이름

Courier New 파일, 디렉터리 이름, 환경설정 변수

..., +, * 파라미터 등이 반복되어 나옴

□ 스페이스

이탤릭체 사용자 정의 인수값

[그림 1-1] 그림 이름

[표 1-1] 표 이름

[표 0-1] 안내서 규약

Page 13: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

안내서에 대하여

OpenFrame 유틸리티 참조 안내서 13

시스템 사용 환경

요구사항

Platform IBM AIX 5.x

HP-UX 11.xx

Solaris 9 (SunOS 5.9)

Hardware 최소 120MB 하드디스크 공간

256MB 이상 메모리 공간

1GB 이상 하드디스크와 512MB 이상 메모리 공간 권장

Database Tibero 3.0

Oracle 9i 또는 10g

Compiler MF-Cobol 컴파일러

[표 0-2] 시스템 사용 환경

Page 14: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

안내서에 대하여

OpenFrame 유틸리티 참조 안내서 14

관련 안내서

제품 안내서

OpenFrame Batch 안내서

TACF 운영자 안내서

데이터 셋 안내서

TSAM 안내서

[표 0-3] OpenFrame 관련 안내서

제품 안내서

Mainframe z/OS DFSMS Access Method Services For Catalogs

z/OS DFSMSdfp Utilities

z/OS DFSMSdss Storage Administration Reference

zOS - DSNUTIL

DB2 for z/OS Command Reference

DB2 for OS390 utility

DFSORT Application Programming Guide

IMS V7 Utilities Reference - Database and Transaction

Manager

IMS V7 Application Programming - Database Manager

IMS V7 Utilities Reference – System

[표 0-4] 참고 안내서

Page 15: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제1장 OpenFrame 유틸리티 개요

OpenFrame 유틸리티 참조 안내서 15

제1장 OpenFrame 유틸리티 개요

1.1 유틸리티 소개

OpenFrame 유틸리티 프로그램은 OpenFrame 엔진과 함께 제공되는 사용자 편

의를 위한 프로그램으로 JCL을 통해 배치 JOB으로 실행된다.

예를 들어, 유틸리티 프로그램으로 데이터 셋에 대한 관리 등의 작업을 수행할

수 있다.

본 안내서에서는 2장에서 데이터 셋 관련 유틸리티, 3장에서는 데이터베이스관

련 유틸리티, 4장에서는 소트관련 유틸리티, 5장에서는 HiDB 관련 유틸리티, 6장

에서는 기타 유틸리티를 소개하며, 각 유틸리티 절에서는 유틸리티의 소개, DD

설정, 명령어 설정, 사용예제 및 유의사항을 기술한다.

Page 16: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming
Page 17: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 17

제2장 데이터 셋 유틸리티

2.1 ADRDSSU

ADRDSSU의 DUMP 명령은 지정한 여러 개의 데이터 셋을 하나의 DUMP 데이

터 셋으로 묶어서 저장하고 RESTORE 명령은 DUMP 데이터 셋을 원래의 상태

로 풀어서 복구시킨다. 이때 내부적으로 UNIX에서 제공하는 tar 프로그램을 사

용한다.

참고: tar는 UNIX에서 기본적으로 제공되는 프로그램으로, 주로 여러 개의 파일이나 디렉

터리를 하나의 묶음파일로 변환하거나 묶음 파일을 원래대로 풀어서 복구하는데 사용된다.

DUMP 명령 처리시 지정한 DUMP 대상 데이터 셋의 카탈로그 정보를 별도의

메타정보 파일로 구성하여 DUMP 대상 데이터 셋과 같이 묶어두며, RESTORE

명령 처리시에는 이 메타정보 파일을 먼저 읽어 DUMP 당시의 카탈로그 정보로

복원시킨다.

[그림 2-1] DUMP/RESTORE 개념

참고: OpenFrame의 ADRDSSU 유틸리티 프로그램은 현재 데이터 셋 백업/복원 기능인 DUMP와 RESTORE 명령어만 지원한다.

Page 18: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 18

다음은 DUMP 처리 과정을 나타낸 순서도이다.

[그림 2-2] DUMP 처리 과정

다음은 RESOTRE 처리 과정을 나타낸 순서도이다.

[그림 2-3] RESTORE 처리 과정

Page 19: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 19

DD 설정

데이터 셋 DUMP

- SYSIN DD

DUMP 명령어와 옵션들을 기술한다.

- OUTDD를 위한 DD 이름

SYSIN DD의 DUMP 명령어에서 OUTDD문에 기술한 DD 이름으로 새로 생

성할 DUMP 데이터 셋이 기술된 DD이다.

이때 OUTDD의 RECFM은 반드시 ‘U’로 설정해야 한다.

참고: RECFM에 대해서는 Appendix의 [표 2-5] RECFM을 참고한다.

DUMP 데이터 셋을 삭제할 경우에는 해당 DD에 DUMMY 문장을 기술한다.

데이터 셋 RESTORE

- SYSIN DD

RESTORE 명령어와 옵션들을 기술한다.

- INDD를 위한 DD 이름

SYSIN DD의 RESTORE 명령어에서 INDD문에 기술한 DD 이름으로 복원

대상 DUMP 데이터 셋이 기술된 DD이다.

- OUTDD를 위한 DD 이름

SYSIN DD의 RESTORE 명령어에서 OUTDD문으로 기술한 DD 이름이다.

복원된 데이터 셋을 어느 볼륨에 저장할 것인지 지정한다. OUTDD는 여러

개를 기술할 수 있으며 DSN (Data Set Name)은 기술하지 않는다.

Page 20: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 20

명령어 설정

DUMP

여러 개의 지정한 Non-VSAM 데이터 셋을 하나의 데이터 셋으로 dump한다.

DUMP 명령어 구문은 다음과 같다.

DUMP DATASET(INCLUDE(DATASET NAME,...))

BY(CREDT,연산자,*,-일수)

OUTDD(OUTDD NAME)ALLE ALLD(*)DEL PURGE

다음은 DUMP 명령어의 옵션문장에 대한 설명이다.

- INCLUDE

Dump 대상 데이터 셋을 한 개 이상 지정한다.

ALLE ALLD DEL PURGE 옵션이 기술된 경우, 삭제 대상 dump 데이터 셋을

지정한다.

- OUTDD

새로 생성할 dump 데이터 셋의 DD 이름을 지정한다.

- BY(CREDT,연산자,*,-일수))

INCLUDE 문에서 지정한 데이터 셋 중에서 조건이 일치하는 데이터 셋만

필터링한다.

a) CREDT

Dump 대상 데이터 셋의 생성일자를 의미한다.

b) 연산자

EQ(=), LE(<=), LT(<), GT(>), GE(>=), NE(!=) 중 하나를 선택한다.

연산자에 대한 자세한 내용은 [표 2-1] 비교연산자를 참고한다.

c) *

기준일을 선택한다. *는 현재 일자를 의미한다.

d) 일수

데이터 셋의 생성일자로부터 일수만큼 차감한다.

- ALLE ALLD DEL PURGE

INCLUDE 문에서 지정한 dump 데이터 셋을 삭제한다.

Page 21: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 21

RESTORE

하나의 파일로 dump된 데이터 셋을 원래의 Non-VSAM 데이터 셋으로 복원한다.

RESTORE 명령어 형식은 다음과 같다.

RESTORE DATA(INCLUDE(DATASET NAME,…)

RENUNC((OLD DATASET NAME,NEW DATASET NAME),…)

CATALOG

INDD(INDD NAME)

OUTDD(OUTDD NAME,…)

다음은 RESTORE 명령어의 옵션문장에 대한 설명이다.

- INCLUDE

Dump 데이터 셋에서 복원할 데이터 셋 이름을 한 개 이상 기술한다.

- RENUNC

INCLUDE에 나열한 데이터 셋 이름을 새로운 데이터 셋 이름으로 변경하고

복원 처리한다.

- INDD

복원 대상 입력 데이터 셋의 이름을 지정한다.

- OUTDD

복원된 데이터 셋을 저장할 출력 볼륨을 지정한다.

참고: RESTORE시 INCLUDE 데이터 셋에 대한 필터링 옵션(BY)은 지원하지 않는다. 여유 공간을 최대한 활용하면서 사이즈 초과로 인한 오류를 줄이기 위해, 데이터 셋을 RESTORE하기 전에 OUTDD에 기술한 볼륨 중 여유공간이 가장 큰 볼륨을 선택하여 RESTORE한다.

Page 22: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 22

사용예제

다음은 Non-VSAM 데이터 셋을 DUMP 기능을 이용하여 하나의 데이터 셋으로

묶어주는 예이다.

Dump 대상 데이터 셋인 ADRDSSU.TEST.DATA1, ADRDSSU.TEST.DATA2,

ADRDSSU.TEST.DATA3을 OUTDD에서 설정한 DSN 이름으로 묶어 dump한다.

//***********************************************************

//* ADRDSSU UTIL TEST - DUMP COMMAND

//***********************************************************

//ADRDUMP JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//***********************************************************

//* STEP1. DUMP DATASET

//***********************************************************

//ADRDUMP EXEC PGM=ADRDSSU

//OUTDD DD DSN=ADRDSSU.TEST.DUMP,DISP=(NEW,CATLG),

// DCB=(DSORG=PS,RECFM=U)

//SYSIN DD *

DUMP DATASET(INCLUDE(ADRDSSU.TEST.DATA1, -

ADRDSSU.TEST.DATA2, -

ADRDSSU.TEST.DATA3))

OUTDD(OUTDD)

/*

//SYSPRINT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

Page 23: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 23

다음은 dump된 데이터 셋을 삭제하는 예이다.

Dump된 데이터 셋 중 ADRDSSU.TEST.**의 조건에 해당하는 데이터 셋의 생성

일자가 오늘을 기준으로 10일 이전일자보다 작은 경우만 삭제한다.

//***********************************************************

//* ADRDSSU UTIL TEST - DUMP DELETE COMMAND

//***********************************************************

//ADRDEL JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//***********************************************************

//* STEP1. DELETE TEST DATASET

//***********************************************************

//RESTORE EXEC PGM=ADRDSSU

//SYSPRINT DD SYSOUT=*

//OUT DD DUMMY

//SYSIN DD *

DUMP DATASET(INCLUDE(ADRDSSU.TEST.**)

BY (CREDT,LT,*,-10))

OUTDD(OUT) ALLE ALLD(*) DEL PURGE

/*

//

다음은 dump된 데이터 셋을 Non-VSAM 데이터 셋으로 RESTORE하는 예이다.

Dump 데이터 셋에서 ADRDSSU.TEST.DATA1, ADRDSSU.TEST.DATA2,

ADRDSSU.TEST.DATA3을 ADRDSSU.TEST.DUMP로 복원한다.

단, ADRDSSU.TEST.DATA3은 ADRDSSU.TEST.DATA4로 이름을 변경한 후 복원

한다.

//***********************************************************

//* ADRDSSU UTIL TEST - RESTORE COMMAND

//***********************************************************

//ADRRESTO JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//***********************************************************

//* STEP1. RESTORE TEST DATASET

//***********************************************************

//RESTORE EXEC PGM=ADRDSSU

Page 24: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 24

//TAPE DD DSN=ADRDSSU.TEST.DUMP,DISP=OLD

//DASD DD VOL=SER=100000,UNIT=SYSDA,DISP=OLD

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

RESTORE DATASET(INCLUDE(ADRDSSU.TEST.DATA1,

ADRDSSU.TEST.DATA2,

ADRDSSU.TEST.DATA3 ))

RENUNC(ADRDSSU.TEST.DATA3,ADRDSSU.TEST.DATA4)

CATALOG

INDD(TAPE)

OUTDD(DASD)

/*

//

유의사항

OpenFrame에서 ADRDSSU 유틸리티 프로그램은 논리 처리방식만을 지원하고,

한번에 최대 512개의 Non-VSAM 데이터 셋을 dump할 수 있다.

또한 DUMP시 OUTDD의 RECFM은 반드시 ‘U’로 지정해야 하며, DEL 옵션문장

이 지정된 경우도 삭제대상 데이터 셋의 RECFM이 ‘U’인 경우에만 삭제할 수

있다.

다음은 비교연산자에 대한 표이다.

연산자 부호 의미

EQ = 같다

LE <= 작거나 같다

LT < 작다

GT > 크다

GE >= 크거나 같다

NE != 같지 않다

[표 2-1] 비교연산자

Page 25: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 25

현재 ADRDSSU에서 지원하는 명령어에 대한 옵션 리스트는 다음과 같다.

명령어 옵션(축약명)

DATASET(DS)

INCLUDE(INC)

OUTDD

BY

ALLE ALLD(ALLEXCP ALLDATA)

DUMP

DELELT PURGE(DEL PURGE)

DATASET(DS)

INCLUDE(INC)

RENUNC(RENAMEU)

CATALOG

INDD

RESTORE

OUTDD

[표 2-2] DUMP/RESTORE 명령어와 옵션

Appendix

DUMP문 사용시 dump 대상 데이터 셋에 대해 와일드카드 문자를 이용한 필터

가 가능하다.

필터키 설명

* (single asterisk) 기본적으로 한 개의 qualifier와 매치한다. 또한 한 개의

qualifier내의 0개 이상의 문자와 매치할 수 있다.

** (double asterisk) 0개 이상의 qualifier와 매치한다.

% (percent) Qualifier내의 한 개의 문자와 매치한다.

[표 2-3] DUMP 와일드카드

참고: Qualifier는 period(.) 사이에 기술된 수식어로 데이터 셋 이름을 구성하는 요소를 말

한다. 예를 들어, 데이터 셋 이름이 SYS.LIB인 경우 SYS1과 LIB이라는 두 개의 qualifier를 소유한다고 말한다.

Page 26: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 26

다음의 와일드카드 문자를 이용한 필터링 예를 보여준다.

Filtering

Dataset명

Filtering 대상

Dataset명

Filtering 비대상

Dataset명

SYS1.*.LIST SYS1.TEST.LIST,

SYS1.LIB.LIST

SYS.TEST.LIST.TEMP,

SYS1.LIST

SYS1.LIB.*.* SYS1.LIB.LIST.TEMP,

SYS1.LIB.A.B

SYS1.LIB.LIST,

SYS1.LIB.A.B.C

SYS.*IB.LIST SYS.LIB.LIST,

SYS1.IB.LIST

SYS.LIBA.LIST,

SYS.LIB.LIST.TEMP

**.LIST SYS1.LIST, SYS1.LIB.LIST,

SYS1.A.B.C.LIST

SYS1.LIST.TEMP,

SYS1.LIB.LISTA

USER.LIB.** USER.LIB.LIST.TEMP,

USER.LIB

USER.LIBTEST.LIST,

USER.LIBLIST

SYS1.**.LIST SYS1.A.B.C.LIST,

SYS1.LIST

SYS1.LIST.ERR,

SYS1.TEST.LIST.ERR

**.*LIST SYS1.TEST.LIST,

SYS1.TEST.A.B.OKLIST

SYS1.LIST.ERR,

SYS1.TEST.OKLIST.TEMP

*.*.L*B SYS1.TEST.LIB,

USER.LIB.LISTB, A.B.LB

SYS1.TEST.LIBTEMP,

SYS1.USER.LIB.TEMP

%.LIST A.LIST, B.LIST AA.LIST, BB.LIST, LIST

USER%.* USER1.LIST, USERA.LIST USEROK.LIST,

USER1.OK.LIST,

USER.LIST

*%%* AA, BB, TEST, USER A, B, TEST.USER

[표 2-4] 와일드카드를 이용한 DUMP 필터링 예제

Page 27: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 27

다음은 데이터 셋 레코드 포맷에 대한 설명이다.

RECFM 설명

F (Fixed) 레코드 길이가 고정인 형식이다.

FB (Fixed Blocked) 레코드 길이가 고정이면서 블록을 이룬 형식이다.

V (Variable) 레코드 길이가 가변적인 형식이다.

4byte 가변길이 정보를 포함한다.

VB (Variable Blocked) 레코드 길이가 일정하지 않으면서 블록을 이룬 형식

이다.

U (Undefined) 레코드 형태를 정의할 수 없는 형식이다.

[표 2-5] RECFM

ADRDSSU 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

응용프로그램에서 받은 리턴코드를 반환한다.

단, 프로그램 수행 중 특정 데이터 셋이 존재하지 않는 등의 오류가 발생하였으

나 다른 데이터 셋에 대한 처리는 정상적으로 수행한 경우 리턴코드 8을 반환

한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD에 출력하고, 각 오류에

해당하는 리턴코드를 반환한다.

ADRDSSU 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- 오류가 발생하여 정상적으로 수행하지 않은 오류

리턴코드: 12 (Unrecoverable)

Page 28: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 28

2.2 IDCAMS

IDCAMS는 OpenFrame의 VSAM과 Non-VSAM 데이터 셋 및 카탈로그 정보를

관리하기 위한 유틸리티 프로그램이다.

SYSIN에 입력된 각 명령들은 각각의 명령이 의미하는 작업을 수행하기 위한 명

령 자체와 이를 위한 각종 옵션 또는 파라미터들로 구성되며, IDCAMS는 실행할

명령들을 SYSIN DD로부터 읽어 들여서 동작하게 된다.

OpenFrame의 IDCAMS 프로그램은 기존 Mainframe의 IDCAMS 명령을 그대로

사용하여 OpenFrame의 VSAM 데이터 셋과 Non-VSAM 데이터 셋 그리고 카탈

로그를 대상으로 동작하며, 사용자수준에서 Mainframe의 IDCAMS와 동일한 작

업을 수행한다.

IDCAMS는 두 가지 종류의 명령어로 분류할 수 있다.

기능 명령어

실제로 사용자가 수행하려는 특정 작업을 나타내는 명령어이다.

보조 명령어

일련의 IDCAMS 명령어들의 실행을 제어하기 위한 명령어이다.

다음은 기능 명령어에 대한 설명을 나타낸 표이다.

기능 명령어 기능

ALTER 이미 정의되어 있는 데이터 셋 또는 카탈로그 자체의 속성

을 변경한다.

BLDINDEX 특정 데이터 셋에 대한 보조 인덱스를 생성한다.

DEFINE 다음과 같은 데이터 셋 오브젝트(또는 카탈로그 엔트리)를

정의하기 위해 사용한다.

* ALIAS

* ALTERNATEINDEX

* CLUSTER

* GENERATIONDATAGROUP

* NONVSAM

* PATH

* USERCATALOG|MASTERCATALOG

DELETE VSAM과 Non-VSAM 데이터 셋 및 카탈로그를 제거한다.

Page 29: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 29

기능 명령어 기능

EXPORT 카탈로그와 VSAM 데이터 셋을 이식 가능한 데이터 셋으로

반출하거나 백업 데이터 셋을 생성한다.

IMPORT EXPORT 명령으로 생성된 이식 가능한 카탈로그와 VSAM

데이터 셋을 반입하거나 백업된 상태의 데이터 셋을 원래의

상태로 복원한다.

LISTCAT 카탈로그에 등록된 VSAM과 Non-VSAM 데이터 셋에 대한

정보를 보여준다.

PRINT VSAM과 Non-VSAM 데이터 셋에 저장되어 있는 레코드를

출력하여 보여준다.

REPRO VSAM과 Non-VSAM 데이터 셋 간의 내용을 복사한다.

VERIFY VSAM 데이터 셋의 비정상 종료(close)로 인해 잘못된 데이

터 셋 정보로 카탈로그 되어 있는지 확인하고 올바르게 수

정한다. 또 레코드 수 등의 정보도 정확하게 반영되어 있는

지 확인한다.

참고: VSAM 데이터 셋을 종료 시 해당 데이터 셋의 마지막 위치

와 레코드 수 등의 통계정보가 카탈로그에 저장된다. 즉, 정상적으로 종료되지 않은 경우 이와 같은 카탈로그 정

보와 실제 데이터 셋의 상태 정보가 일치하지 않을 수 있으

므로, VERIFY 명령으로 이러한 불일치를 명시적으로 올바르

게 변경할 수 있다.

[표 2-6] IDCAMS 기능 명령어

보조 명령어 기능

IF-THEN-ELSE 실행된 명령의 컨디션 코드 값(LASTCC 또는 MAXCC)에

따라서 다음에 실행할 명령을 분기하기 위해 사용한다.

Null 아무 동작도 야기하지 않는 문법적인 용도의 명령이다.

IF-THEN-ELSE 명령의 THEN이나 ELSE 다음에 특별한 작

업을 수행하지 않는다는 것을 명시적으로 나타내기 위해서

사용한다.

SET MAXCC나 LASTCC의 값을 특정한 값으로 강제 설정하기

위해 사용한다.

CANCEL 프로그램 실행 중 CANCEL 명령어를 만나면 IDCAMS의 실

행이 중지되고, CANCEL 명령 이후의 나머지 명령들은 처리

Page 30: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 30

되지 않는다.

PARM IDCAMS가 실행되는 동안에 적용되는 몇 가지 처리 옵션

및 파라미터 값을 지정한다. (미지원)

[표 2-7] IDCAMS 보조 명령어

다음은 IDCAMS 명령코딩에 공통으로 적용되는 규약을 정리한 표이다.

규약 설명

하이픈 (-) 하나의 명령을 여러 라인에 걸쳐서 작성할 경우, 라인의 맨

뒤에 하이픈(-)을 입력하고 그 다음라인에 계속 이어서 명

령의 나머지 부분을 코딩한다.

여러 라인에 걸쳐서 작성된 명령어의 맨 마지막 라인에는

하이픈(-)을 코딩하지 않도록 주의한다.

또, 하이픈(-)은 키워드나 파라미터 값의 중간에 코딩 할 수

없으며 일반적으로 키워드나 파라미터 값의 경계가 되는

부분에 라인이 계속 이어진다는 의미로 하이픈(-)을 코딩한

다.

(예 - 여러 라인에 걸쳐서 하나의 명령을 코딩)

LISTCAT ENT( -

TEST.CLUS1 -

TEST.KSDS1 -

TEST.RRDS1 -

TEST.SDS1)

주석 주석은 IDCAMS 명령과 명령 사이에 입력할 수 있다.

단, 키워드나 파라미터 값의 중간에는 주석이 올 수 없다.

주석은 기능은 없지만 하나의 명령으로 간주되기 때문에

명령 중간에 주석을 추가하는 경우에는 해당 라인의 맨 뒤

에 하이픈(-)을 입력해야 한다.

특히 IF-THEN-ELSE 문의 중간에 주석을 사용하는 경우에

는 주석에 의해서 IF-THEN-ELSE 구조가 의도하지 않은 위

치에서 끝나지 않도록 주의해야 한다.

Page 31: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 31

규약 설명

주석은 공백이나 콤마(,)와 같이 IDCAMS 문법에서 필드를

구분하는 역할도 하므로 ‘/*’와 ‘*/’ 사이에 입력한다.

다음은 주석을 기술한 올바른 예이다.

/* This is IDCAMS Comment */

/* This is multi line Comment

comment continued from above line */

LISTCAT ENT( /* Comment 1 */ -

/* Comment 2 */ TEST.CLUS1 -

TEST.KSDS1 /* Comment 3 */ -

TEST.SDS1 /* Comment 4 */ ) /* Comment 5 */

[표 2-8] IDCAMS 명령어 규칙

DD 설정

OpenFrame의 IDCAMS는 JCL을 통해 배치 작업으로 실행하는 방식과 UNIX 시

스템의 명령어 라인에서 직접 실행하는 인터랙티브 방식을 모두 지원한다.

JCL을 통한 JOB 실행(using JCL as JOB)

JCL을 통해서 JOB의 한 스텝으로서 IDCAMS를 실행하는 경우 IDCAMS는 다음

과 같은 DD 문을 사용한다.

- SYSIN DD

IDCAMS가 실행할 명령을 기술한다.

참고: 데이터 셋의 레코드 길이는 72 칼럼을 넘을 수 없으며, 명령이 길어질 경우 하이픈(-)을 사용한다. 하이픈 사용법에 관한 내용은 [표 2-8] IDCAMS 명령어 규칙을 참고한다.

- SYSPRINT DD (또는 SYSOUT DD)

IDCAMS 실행 결과와 실행 중 발생한 주의를 필요로 하는 정보성 메시지,

경고 메시지 그리고 에러 메시지 등을 저장할 데이터 셋을 기술한다.

SYSPRINT DD를 기술하지 않거나 지정 데이터 셋의 할당이나 OPEN에 실

패한 경우 IDCAMS는 아무런 명령도 수행하지 않고 종료되며, 컨디션 코드

16을 반환한다.

Page 32: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 32

- 추가적인 DD (Additional command specific DDs)

IDCAMS 명령 중에서 일부는 JCL에 기술된 DD를 통해서 명령의 대상이

되는 ddname이나 entryname을 간접적으로 지정할 수 있다. 이 경우,

IDCAMS는 데이터 셋을 동적으로 할당하지 않고 JOB의 실행을 제어하는

tjclrun에 의해 JOB 레벨에서 미리 할당된 데이터 셋을 승계 받아 사용한다.

일반적으로 JCL에 기술된 ddname을 이용해서 명령어의 대상이 되는 데이

터 셋을 지정하는 파라미터는 FILE(ddname) 형태의 파라미터 이름을 갖는

다.

반면, IDCAMS에서 동적 할당을 이용하여 데이터 셋을 지정하는 파라미터는

DATASET(entryname) 형태의 파라미터 이름을 갖는다.

다음은 REPRO BLDINDEX PRINT의 파라미터로, JCL에서 할당된 데이터 셋을

승계 받아서 동작하는 예이다.

INFILE(ddname), OUTFILE(ddname)

다음은 REPRO BLDINDEX PRINT의 파라미터로, IDCAMS에서 동적으로 데이터

셋을 할당하여 동작하는 예이다.

INDATASET(entryname), OUTDATASET(entryname)

JCL을 통해서 JOB의 한 스텝으로 IDCAMS를 실행시키기 위해서는 IDCAMS를

호출하는 JOB 스텝에 위에 설명한 DD들을 제공하고 EXEC PGM에 IDCAMS를

지정한 후 해당 JCL을 전송(submit)하면 실행된다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//REPRO EXEC PGM=IDCAMS

//INDD DD DSN=VSAM.KSDS1,DISP=(OLD,KEEP)

//OUTDD DD DSN=VSAM.KSDS2,DISP=SHR

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

REPRO INFILE(INDD) -

OUTFILE(OUTDD) -

SKIP(50000) COUNT(10000)

/*

Page 33: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 33

//

명령어 라인에서 실행(using from Command line)

UNIX 시스템의 명령어 라인에서 IDCAMS를 직접 실행한다. 이 경우 SYSIN DD

및 SYSPRINT DD 대신에 표준 입출력 스트림 (stdin/stdout/stderr)을 사용하여

작동한다. 즉, stdin으로부터 IDCAMS 명령어를 읽어 들여서 명령어 단위로 실행

하고, stdout/stderr로는 작업의 결과 및 에러 메시지를 출력하는 인터랙티브한

인터프리터 방식이다.

결과적으로 UNIX 명령어 라인에서 사용하는 리다이렉션 기능을 이용하여

IDCAMS를 실행한다.

UNIX 시스템의 명령어 라인에서 다음과 같은 명령을 실행 함으로서 IDCAMS는

DEFINE.TEST.CLUS1.CMD라는 VSAM 데이터 셋을 제거하고 다시 정의하는 동

작을 한다. (TEST.CLUS1.CMD는 일반적인 UNIX 텍스트 파일로 아래 예제와 같

은 내용을 담고 있다.)

$ IDCAMS < DEFINE.TEST.CLUS1.CMD

참고: ‘$’는 UNIX 시스템의 명령어 라인 프롬프트 문자를 나타낸다.

다음의 DEFINE.TEST.CLUS1.CMD 파일은 IDCAMS UNIX 명령어 라인에서

stdin 리다이렉션을 보여준다.

DELETE TEST.CLUS1 CLUSTER

DEFINE CLUSTER -

(NAME(TEST.CLUS1) -

VOLUMES(100000) -

INDEXED -

KEYS(07 0) -

CYL (70 10) -

RECORDSIZE(200 200) -

SHR(2 3)) -

DATA (NAME(TEST.CLUS1.DATA) -

CONTROLINTERVALSIZE(4096) ) -

Page 34: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 34

INDEX (NAME(TEST.CLUS1.INDEX) -

CONTROLINTERVALSIZE(4096) )

제약 사항 (Limitation)

DD (즉, ddname)를 통해 할당된 데이터 셋을 승계하여 사용하기 위해서는

OpenFrame 배치 환경, 특히 tjclrun을 필요로 하기 때문에 JCL을 통해 JOB 스

텝으로 IDCAMS를 실행하는 경우에는 가능했던 ddname을 사용한 데이터 셋의

지정이 UNIX 시스템의 명령어 라인에서는 불가능하다.

즉, 이러한 방식으로 실행되는 경우 IDCAMS 명령의 대상이 되는 데이터 셋을

지정하기 위해서는 항상 DATASET(entryname) 형태로 지정하여 사용해야 한다.

기능 명령어

ALTER

DEFINE 문으로 카탈로그에 이미 등록되어 있는 데이터 셋과 카탈로그 엔트리

의 정보 일부를 변경할 수 있다.

카탈로그 엔트리 타입과 카탈로그 엔트리에 해당하는 사용자 데이터 셋에 데이

터가 적재되어 있는지 여부에 따라서 변경 가능한 속성과 변경 불가능한 속성이

있다. (지원 속성에 관해서는 [표 2-9] 카탈로그 엔트리 타입별 ALTER 지원을

참고한다.)

ALTER 명령어 구문은 다음과 같다.

ALTER entryname

[EMPTY|NOEMPTY]

[FILE(ddname)]

[LIMIT(limit)]

[NULLIFY(

[OWNER]

[RETENTION])

[OWNER(ownerid)]

[SCRATCH|NOSCRATCH]

[SHAREOPTIONS(crossregion[ crosssystem])]

[STORAGECLASS(class)]

[STRNO(number)]

Page 35: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 35

[TO(date)|FOR(days)]

[CATALOG(catname)]

ALTER 명령에 다음의 파라미터를 지정하여 ALTER 명령의 대상이 되는 카탈로

그 엔트리를 지정할 수 있다.

- entryname

속성을 변경하고자 하는 기존 데이터 셋이나 카탈로그 엔트리의 entryname

을 지정한다.

- CATALOG(catname)

entryname으로 지정된 카탈로그 엔트리를 찾을 때 사용할 카탈로그를 명시

적으로 지정한다. 지정하지 않는 경우에는 카탈로그 검색 순서에 따라서 결

정된다.

다음은 OpenFrame IDCAMS의 ALTER 명령이 지원하는 각 카탈로그 엔트리 타

입에 따른 변경 가능한 속성을 요약한 표이다.

엔트리

타입

변경가능

속성

AIX

AIX D

ATA

AIX IN

DEX

CLU

STER

CLU

STER D

ATA

CLU

STER IN

DEX

PATH

UC

AT DATA

UC

AT IND

EX

NO

N-VSA

M

GD

G

NEWNAME X X X X X X X - - X -

EMPTY - - - - - - - - - - X

SCRATCH - - - - - - - - - - X

LIMIT - - - - - - - - - - X

OWNER X X X X X X X X - X X

TO(date) X - - X - - X X - X X

FOR(days) X - - X - - X X - X X

NOEMPTY - - - - - - - - - - X

NOSCRATCH - - - - - - - - - - X

NULLIFY X X X X X X X X - X X

OWNER X X X X X X X X - X X

RETIONION X - - X - - X X - X X

[표 2-9] 카탈로그 엔트리 타입별 ALTER 지원

Page 36: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 36

참고: ‘X’로 표시되어 있는 곳이 변경 가능한 속성이다.

변경하고자 하는 카탈로그 엔트리에 새로운 속성값을 지정하기 위해서는 각각의

파라미터 외에도 변경할 대상이 되는 카탈로그 엔트리를 지정하기 위한 파라미

터가 필요하다.

다음은 TESTCAT이라는 카탈로그에 등록된 TEST.GDG1란 이름의 GDG의 최대

세대 수를 255로, 만료일자를 2006년의 300번째 날짜로 속성을 변경하는 예이

다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//ALTGDG EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

ALTER TEST.GDG1 -

LIMIT(255) -

TO(2006300) -

CATALOG(TESTCAT)

/*

//

BLDINDEX

BLDINDEX 명령을 사용하여 기존에 존재하는 데이터 셋에 대한 보조 인덱스를

구성한다. BLDINDEX 명령은 내부적으로 보조 인덱스 클러스터에 하나의 보조

키와 다수개의 기본키로 구성되는 레코드를 적재하는 역할을 담당한다.

BLDINDEX 명령어 구문은 다음과 같다.

BLDINDEX {INFILE(ddname)|INDATASET(entryname)}

{OUTFILE(ddname)|OUTDATASET(entryname)}

[CATALOG(catname)]

BLDINDEX 명령에 지정할 수 있는 파라미터는 다음과 같다.

- INFILE(ddname)|INDATASET(entryname)

보조 인덱스를 구성하는데 사용할 베이스 클러스터를 지정한다.

Page 37: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 37

IDCAMS 호출 전에 실행환경에 의해서 미리 할당된 데이터 셋을 사용하는

경우에는 ddname을 사용하고, IDCAMS 자체적으로 할당하는 경우에는

entryname을 사용한다.

- OUTFILE(ddname)|OUTDATASET(entryname)

BLDINDEX 결과로 구성되는 보조 인덱스 클러스터를 지정한다.

BLDINDEX 전에 보조 인덱스는 미리 DEFINE되어야 한다. 마찬가지로,

IDCAMS 호출 전에 실행환경에 의해서 미리 할당된 데이터 셋을 사용하는

경우에는 ddname을 사용하고, IDCAMS 자체적으로 할당하는 경우에는

entryname을 사용한다.

- CATALOG(catname)

entryname으로 지정된 카탈로그 엔트리를 찾을 때 사용할 카탈로그를 명시

적으로 지정한다. 지정하지 않는 경우에는 카탈로그 검색 순서에 따라서 결

정된다.

다음은 VSAM.KSDS1의 보조 인덱스인 VSAM.AIX1을 구성하는 예이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//BLDAIX EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//BASE DD DSN=VSAM.KSDS1,DISP=OLD

//AIX DD DSN=VSAM.AIX1,DISP=OLD

//SYSIN DD *

BLDINDEX INFILE(BASE) -

OUTFILE(AIX)

/*

//

DEFINE

DEFINE 명령에서 공통적으로 사용 가능한 파라미터는 다음과 같다.

DEFINE Commands NAME(entryname) {CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

Page 38: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 38

TRACKS(primary[ secondary])}

VOLUMES(volser[ volser...])

[ACCOUNT(account–info)]

[BUFFERSPACE(size)]

[BWO(TYPECICS|TYPEIMS|NO)]

[CONTROLINTERVALSIZE(size)]

[DATACLASS(class)]

[ERASE|NOERASE]

[EXCEPTIONEXIT(entrypoint)]

[FILE(ddname)]

[FREESPACE(CI-percent[ CA-percent])]

[FRLOG(NONE[| REDO])]

[LOG(NONE|UNDO|ALL)]

[LOGSTREAMID(logstream)]

[MANAGEMENTCLASS(class)]

[MODEL(entryname[ catname])]

[OWNER(ownerid)]

[RECATALOG|NORECATALOG]

[RECORDSIZE(average maximum)]

[REUSE|NOREUSE]

[SHAREOPTIONS(crossregion[ crosssystem])]

[SPEED|RECOVERY]

[STORAGECLASS(class)]

[TO(date)|FOR(days)]

[WRITECHECK|NOWRITECHECK])

[DATA (...)]

[INDEX (...)]

[CATALOG(catname)]

참고: DEFINE 명령 별로 지정 가능한 실제 파라미터의 종류는 각각의 DEFINE 명령 절

에 따로 표로 제공된다. 여기서는 공통적으로 사용하는 파라미터를 요약하고 각 파라미터에 관해 설명한다.

Page 39: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 39

DEFINE 구문에서 공통적으로 지정할 수 있는 파라미터는 다음과 같다.

- NAME(entryname)

DEFINE 명령으로 생성 또는 정의하려는 카탈로그 객체의 이름을 지정한다.

- CYLINDERS(primary[ secondary])|KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])

VSAM 클러스터 (CLUSTER, ALTERNATEINDEX, USERCATALOG) 생성 시

해당 데이터 셋에 할당할 저장소의 용량을 지정한다.

CYLINDERS, TRACKS는 저장 매체의 종류에 종속적인 단위로 할당을 할

때 사용된다. 나머지는 저장 매체의 종류에 비종속적인 단위로 할당할 때

사용된다. 기본(primary) 할당과 추가(secondary) 할당으로 지정한다.

기본 할당은 데이터 셋 생성시 처음 할당되고 추가 할당은 이후 데이터 셋

에 데이터가 계속 저장되어서 저장소를 추가적으로 할당하는 경우에 사용된

다.

- CONTROLINTERVALSIZE(size)

VSAM 클러스터 (CLUSTER, ALTERNATEINDEX, USERCATALOG)의 컨트롤

인터벌 크기를 지정한다.

컨트롤 인터벌은 Non-VSAM의 BLKSIZE에 해당하는 개념으로 VSAM은 실

제로 디스크에 I/O하는 경우 컨트롤 인터벌 단위로 동작한다.

CONTROLINTERVALSIZE(size)는 512byte에서 8Kbyte 사이에서 512byte의

배수단위로 지정해야 하고, 8Kbyte에서 32Kbyte 사이의 값인 경우는 2Kbyte

의 배수 단위로 지정해야 한다. 그렇지 않은 경우는 내부적으로 해당 범위

에 따라서 지정된 값보다 작지 않은 가장 가까운 512byte나 2Kbyte의 배수

단위의 값으로 결정된다. CONTROLINTERVALSIZE(size)를 지정하지 않으면

VSAM이 적당한 값으로 결정한다.

- DATACLASS(class)

데이터 클래스 값(1-8글자)을 지정한다. 데이터 클래스는 SMS (Storage

Management Subsystem)에서 정의하며 새로운 데이터 셋을 생성시 사용할

여러 가지 속성들을 가지고 있다.

데이터 클래스를 지정하는 경우 데이터 클래스에 정의된 DEFINE 속성들은

지정하지 않아도 된다. 지정한 데이터 클래스에 정의된 속성과 DEFINE 명

령에 명시적으로 지정된 속성이 다른 경우는 DEFINE 명령에 지정된 속성

이 우선한다.

Page 40: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 40

- MANAGEMENTCLASS(class)

관리 클래스 값(1-8글자)을 지정한다. 관리 클래스는 SMS에서 정의하며 생

성되는 데이터 셋의 관리작업에 영향을 주는 TO나 FOR와 같은 여러가지

속성을 가지고 있다.

DEFINE 명령에 TO나 FOR가 명시적으로 지정되어 있고 관리 클래스에서

도 동일한 속성이 있는 경우는 데이터 클래스와는 달리 관리 클래스에 정의

된 값이 우선한다.

- STORAGECLASS(class)

스토리지 클래스 값(1-8)을 지정한다. 스토리지 클래스는 SMS에서 정의하

며 생성되는 데이터 셋에 할당되는 저장소 용량과 관련된 속성을 가지고 있

다. 스토리지 클래스를 지정하는 경우 필수 파라미터인 CYLINDERS와 같은

스토리지 할당 크기를 지정하는 파라미터를 지정하지 않아도 된다. DEFINE

명령에 직접 스토리지 할당량이 지정되고 스토리지 클래스에 정의된 값과

다른 경우 스토리지 클래스에 정의된 값이 우선한다.

- OWNER(ownerid)

데이터 셋의 소유자를 지정한다.

- RECATALOG|NORECATALOG

클러스터나 보조 인덱스의 데이터 및 인덱스 컴포넌트 그리고 Non-VSAM

데이터 셋에 해당하는 카탈로그 엔트리를 기존의 VVDS에 저장되어 있는

정보를 기반으로 다시 생성한다. 클러스터나 보조 인덱스의 경우 VVDS에

존재하는 VVR(VSAM VOLUME RECORD)의 내용이 카탈로그 엔트리 재생

성에 사용된다. 이 때 일부 VVR에 포함되지 않는 정보는 DEFINE 명령을

통해 직접 기술해 주어야 한다.

이러한 파라미터로는 INDEXED, NONINDEXED, NUMBERED 등의 VSAM

레코드 구성을 지정하는 파라미터와 해당 데이터 셋이 원래 생성되었던

VOLUMES 파라미터, VRDS의 경우 RECORDSIZE 파라미터,

ALTERNATEINDEX의 경우 NAME, RELATE, VOLUME 파라미터가 있다.

생성하는 카탈로그 엔트리가 Non-VSAM 데이터 셋인 경우는 VOLUMES 및

DEVICETYPES 파라미터를 DEFINE 명령을 통해 직접 지정해야 한다.

PATH의 경우에는 VVDS에 저장되는 정보가 없으므로 DEFINE 명령에

NAME과 PATHENTRY 파라미터만 지정하면 RECATALOG가 가능하다.

Page 41: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 41

- RECORDSIZE(average maximum)

CLUSTER, ALTERNATEINDEX, USERCATALOG를 생성할 때 해당 데이터

셋에 저장될 레코드의 크기를 average와 maximum으로 지정한다. 두 값을

동일하게 지정하면 고정 길이 레코드 (Fixed Length Record)를 의미한다.

USERCATALOG에 지정된 이 파라미터는 무시된다. USERCATALOG는

VSAM이 처리하는 데이터 셋이기 때문에 VSAM은 USERCATALOG의

RECORDSIZE 파라미터로 항상 (4096 32600)을 사용한다.

CLUSTER에 대해서는 이 파라미터가 생략된 경우 SPANNED 파라미터가

지정되어 있으면 (4096 32600)이 기본값으로 사용되고 그렇지 않은 경우

(4089 4089)가 기본값으로 사용된다.

ALTERNATEINDEX에 대해서 이 파라미터가 생략된 경우는 항상 (4089

32600)이 기본값으로 사용된다.

참고: ALTERNATEINDEX는 일반적으로 많은 수의 NONUNIQUE KEY가 존재하는 점을 고려해서 VSAM 내부적으로 SPANNED가 지정된 KSDS 처럼 처리된다. 즉, ALTERNATEINDEX에는 SPANNED 파라미터는 무시된다.

- TO(date)|FOR(days)

데이터 셋 및 카탈로그 엔트리를 생성할 때 해당 객체의 만료일자를 지정한

다. TO에는 만료일자를, FOR에는 유효일수를 지정한다. FOR의 경우 생성일

로부터 유효일수를 더한 날짜가 만료일자가 된다.

- INDEX (...)

CLUSTER, ALTERNATEINDEX, USERCATALOG와 같이 데이터 컴포넌트와

인덱스 컴포넌트를 가질 수 있는 VSAM 클러스터를 생성하는 경우 데이터

컴포넌트와 인덱스 컴포넌트 각각에 대해서 별도로 위에서 설명한 파라미터

(일부 해당하는 파라미터)를 따로 지정할 수 있다.

예를 들면 저장소 할당 크기를 나타내는 CYLINDERS 파라미터는 DEFINE

CLUSTER시에 CLUSTER의 서브 파라미터로서 지정해도 되고 DATA나

INDEX 컴포넌트의 서브 파라미터로서 지정해도 된다. 이렇게 별도로 지정

한 경우 컴포넌트 별로 따로 적용하는 것이 가능하다면 컴포넌트 별로 다른

값이 적용된다.

- CATALOG(catname)

DEFINE 명령으로 정의하는 카탈로그 엔트리가 등록될 카탈로그 이름을 지

정한다. 생략하면 해당 JOB의 STEPCAT이나 JOBCAT에 지정된 카탈로그

또는 카탈로그 엔트리 이름의 일부를 ALIAS로 사용하는 USERCATALOG가

Page 42: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 42

있는 경우 해당 USERCATALOG에 등록된다. 마지막까지 등록할 카탈로그

가 결정되지 않으면 마스터 카탈로그에 등록한다. (자세한 사항은

OpenFrame 데이터 셋 안내서의 제4장 통합 카탈로그에서 카탈로그 검색

순서를 참고한다.)

DEFINE ALIAS

Non-VSAM 데이터 셋이나 사용자 카탈로그의 별칭으로 사용할 ALIAS를 카탈로

그에 생성한다.

ALIAS에 해당하는 카탈로그 엔트리 역시 원래의 데이터 셋 이름과 별칭만을 포

함하고 있다. 별도의 사용자 데이터를 저장하기 위한 데이터 셋은 존재하지 않

는다.

참고: 사용자 카탈로그를 제외한 VSAM 데이터 셋에 대한 ALIAS는 생성할 수 없다.

DEFINE ALIAS 명령어 구문은 다음과 같다.

DEFINE ALIAS (NAME(aliasname)

RELATE(entryname)

SYMBOLICRELATE(entryname))

[CATALOG(catname)]

DEFINE ALIAS 명령에는 다음과 같은 파라미터를 지정할 수 있다.

- *NAME(aliasname)

생성할 ALIAS 이름을 지정한다.

- RELATE(entryname)

ALIAS가 가리키는 실제 엔트리의 entryname을 지정한다.

- CATALOG(catname)

생성할 ALIAS를 등록할 카탈로그 지정한다.

Page 43: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 43

다음은 TEST.NVSAM1의 ALIAS로 TEST.ALIAS1을 생성하고 TESTCAT 카탈로

그에 등록하는 예이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//DEFALI EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE ALIAS(NAME(TEST.ALIAS1) -

RELATE(TEST.NVSAM1) -

CATALOG(TESTCAT))

/*

//

DEFINE ALTERNATEINDEX

DEFINE ALTERNATEINDEX (이하 AIX) 명령을 이용하여 특정 데이터 셋 (BASE

CLUSTER)에 대한 별도의 인덱스 방법을 제공하는 AIX 데이터 셋을 정의한다.

VSAM은 베이스 클러스터에 레코드가 추가되거나 삭제 또는 변경되는 경우, 이

와 연관된 AIX들에 대해서 자동적으로 변경을 수행하여 AIX가 지속적으로 올바

르게 베이스 클러스터에 대한 별도의 인덱스를 수행할 수 있도록 한다.

내부구조상 AIX 데이터 셋도 하나의 KSDS 클러스터 구조를 갖는 데이터 셋이

므로 DEFINE AIX에 사용되는 대부분의 파라미터는 DEFINE CLUSTER의 파라

미터와 동일하다.

DEFINE AIX 명령어 구문은 다음과 같다.

DEFINE AIX (NAME(entryname)

RELATE(entryname) {CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

VOLUMES(volser[ volser...])

[CONTROLINTERVALSIZE(size)]

[DATACLASS(class)]

Page 44: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 44

[FILE(ddname)]

[KEYS(length offset|64 0)]

[OWNER(ownerid)]

[RECATALOG|NORECATALOG]

[RECORDSIZE(average maximum| 4086 32600)]

[TO(date)|FOR(days)]

[UNIQUEKEY|NONUNIQUEKEY]

[UPGRADE|NOUPGRADE])

[DATA ({CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[VOLUMES(volser[ volser...])]

[CONTROLINTERVALSIZE(size)]

[FILE(ddname)]

[KEYS(length offset)]

[NAME(entryname)]

[OWNER(ownerid)]

[RECORDSIZE(average maximum)]

[UNIQUEKEY|NONUNIQUEKEY]

[INDEX ({CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[VOLUMES(volser[ volser...])]

[CONTROLINTERVALSIZE(size)]

[FILE(ddname)]

[NAME(entryname)]

[OWNER(ownerid)]

[CATALOG(catname)]

Page 45: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 45

DEFINE AIX 명령에 지정할 수 있는 주요 파라미터는 다음과 같다.

- RELATE(entryname)

현재 정의하는 AIX와 연관된 베이스 클러스터 데이터 셋 이름을 지정한다.

베이스 클러스터로 사용할 데이터 셋은 VSAM 데이터 셋 중에서 KSDS와

ESDS 구조의 데이터 셋만 가능하다.

참고: AIX를 정의하기 위해서는 미리 베이스 클러스터로 사용할 데이터 셋을 DEFINE CLUSTER 명령을 이용해서 만들어야 한다.

- UNIQUEKEY|NONUNIQUEKEY

정의하려는 AIX의 키 값이 데이터 셋 전체에서 유일한지 여부를 지정한다.

베이스 클러스터인 KSDS 데이터 셋은 항상 UNIQUEKEY만 지정할 수 있

지만 AIX를 만드는 경우는 NONUNIQUEKEY도 지정할 수 있다.

NONUNIQUEKEY가 지정되면, 하나의 보조키와 여러 개의 기본키로 이루어

진 레코드가 AIX 데이터 셋 클러스터 자체의 레코드로 저장된다.

- RECORDSIZE

AIX 데이터 셋 클러스터 자체의 레코드 크기를 지정한다. SPANNED 파라미

터를 지정한 경우 최대 32760의 값까지 지정할 수 있다.

- UPGRADE

정의하려는 AIX 클러스터의 베이스 클러스터가 변경된 경우 AIX 클러스터

의 내용을 동시에 변경하여 항상 AIX 클러스터의 내용이 베이스 클러스터

에 대해 올바른 보조 인덱스를 유지한다.

다음은 VSAM.KSDS1에 대해 보조 인덱스 VSAM.AIX1을 생성하는 예이다.

보조 인덱스 VSAM.AIX1 레코드의 오프셋 44에서 시작되는 7byte 부분을 보조

키로 한다. 보조키는 유일하지 않으며 베이스 클러스터가 변경될 때 자동적으로

업그레이드된다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//DEFAIX EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE AIX (NAME(VSAM.AIX1) -

RELATE(VSAM.KSDS1) -

UPGRADE -

NUNQK -

Page 46: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 46

KEYS(7 44) -

VOL(VOL100) -

SHR(2 3))

/*

//

DEFINE CLUSTER

DEFINE CLUSTER 명령을 사용해서 VSAM 데이터 셋을 정의하며, 필수적인 속

성과 부가적인 속성들을 함께 지정할 수 있다.

DEFINE CLUSTER 명령어 구문은 다음과 같다.

DEFINE CLUSTER (NAME(entryname)

{CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

VOLUMES(volser[ volser...])

[CONTROLINTERVALSIZE(size)]

[DATACLASS(class)]

[FILE(ddname)]

[INDEXED|LINEAR|NONINDEXED|NUMBERED]

[KEYS(length offset| 64 0]

[MANAGEMENTCLASS(class)]

[OWNER(ownerid)]

[RECATALOG|NORECATALOG]

[RECORDSIZE(average maximum)]

[SPANNED|NONSPANNED]

[STORAGECLASS(class)]

[TO(date)|FOR(days)]

[DATA({CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

Page 47: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 47

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[VOLUMES(volser[ volser...])]

[CONTROLINTERVALSIZE(size)]

[FILE(ddname)]

[KEYS(length offset)]

[NAME(entryname)]

[OWNER(ownerid)]

[RECORDSIZE(average maximum)]

[SPANNED|NONSPANNED]

[INDEX({CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[VOLUMES(volser[ volser...])]

[CONTROLINTERVALSIZE(size)]

[FILE(ddname)]

[NAME(entryname)]

[OWNER(ownerid)]

[CATALOG(catname)]

DEFINE CLUSTER 명령에 지정할 수 있는 주요 파라미터는 다음과 같다.

- INDEXED|NONINDEXED|NUMBERED

KSDS, ESDS, RRDS 등 데이터 셋의 구조를 지정한다.

참고로, VRDS의 경우는 NUMBERED를 지정하고 RECORDSIZE를 가변길

이로 지정한다.

- RECORDSIZE(average maximum)

데이터 당 레코드의 평균 길이와 최대 길이를 지정한다.

참고: 평균 길이와 최대 길이 값을 다른 값으로 지정하면 가변길이 레코드임을 의미

한다.

- KEYS(length offset)

Page 48: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 48

INDEXED 구조에서 데이터 셋의 한 레코드 상에서 키가 되는 부분의 위치

와 키의 길이를 지정한다.

- VOLUMES(volume serial ...)

데이터 셋이 위치할 볼륨을 지정한다.

- CONTROLINTERVALSIZE(size)

VSAM 데이터 셋의 레코드를 관리하기 위해 사용할 블록의 크기를 지정한

다. 지정하지 않으면 다른 파라미터들의 값을 기반으로 VSAM이 내부적으

로 값을 정하게 된다.

SPANNED 파라미터를 지정하지 않은 경우, CONTROLINTERVALSIZE는 최

대길이의 레코드를 충분히 포함할 만큼 크게 지정해야 한다.

- SPANNED

이 파라미터가 정의된 데이터 셋은 CONTROLINTERVALSIZE 보다 더 긴

레코드를 저장할 수 있다.

참고: NUMBERED 구조의 데이터 셋인 RRDS와 VRDS에 대해서는 이 파라미터를 사용할 수 없다.

다음은 VSAM.KSDS1이라는 INDEXED 구조의 데이터 셋을 생성하는 예이다.

VSAM.KSDS1에 저장되는 레코드는 350byte의 고정길이를 갖고 키 필드는 레코

드 상에서 맨 앞의 10byte에 위치하며, VSAM.KSDS1 데이터 셋을 구성하는 인

덱스와 데이터 컴포넌트의 이름을 각각 명시적으로 지정하고 있다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//DEFCLUS EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE CLUSTER (NAME(VSAM.KSDS1) -

INDEXED -

KEYS(10 0) -

VOL(VOL100) -

SPEED -

ORDERED -

SHR(2 3)) -

Page 49: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 49

INDEX (NAME (VSAM.KSDS1.I)) -

DATA (NAME(VSAM.KSDS1.D) -

CISZ(4096) -

RECSZ(350 350))

/*

//

DEFINE GDG (Generation Data Group)

GDG에 해당하는 카탈로그 엔트리를 카탈로그에 생성한다.

GDG에 속하는 하나의 세대(Generation)에 해당하는 Non-VSAM 데이터 셋인

GDS와 달리 GDG에 해당하는 실제 데이터 셋은 존재하지 않는다. GDG 카탈로

그 엔트리는 추후 해당 GDG 그룹에 속하게 될, 여러 GDS를 관리하기 위한 정

보만을 갖는 카탈로그 엔트리이다.

즉, DEFINE GDG를 수행한 결과로는 아무런 데이터 셋도 생성되지 않고, 단순

히 앞으로 해당 GDG 그룹을 관리하기 위한 카탈로그 엔트리가 카탈로그에 추

가될 뿐이다.

DEFINE GDG 명령어 구문은 다음과 같다.

DEFINE GENERATIONDATAGROUP (NAME(entryname)

LIMIT(limit)

[EMPTY|NOEMPTY]

[OWNER(ownerid)]

[TO(date)|FOR(days)])

[CATALOG(catname)]

DEFINE GDG 명령에는 다음과 같은 파라미터를 지정할 수 있다.

- NAME(entryname)

생성할 GDG 베이스의 이름을 지정한다.

- LIMIT(limit)

생성하는 GDG에 몇 개까지의 GDS 멤버를 포함할 수 있는지 그 최대값을

지정한다. 예를 들어 100이라고 지정하면 100개를 초과하는 GDS를 생성할

수 없다. GDG 멤버는 한 개부터 255까지 생성할 수 있다.

- CATALOG(catname)

Page 50: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 50

생성할 GDG 베이스가 등록될 카탈로그의 이름을 지정한다.

- EMPTY|NOEMPTY

GDG 베이스가 GDS 멤버를 포함할 수 있는 최대값에 도달했을 경우 전체

GDS와 GDG 베이스간의 연관(association)을 끊으려면(rolled off status)

EMPTY를 지정한다.

NOEMPTY를 지정하면 가장 오래된 GDS만 연관이 끊기고 새로운 GDS를

베이스에 포함시킨다. GDG 베이스와 연관이 끊어진 GDS는 단순한 Non-

VSAM 데이터 셋으로 간주된다.

- OWNER(ownerid)

생성할 GDG 베이스의 소유자를 명시적으로 지정한다.

- SCRATCH|NOSCRATCH

GDG 베이스에 포함될 수 있는 GDS 멤버 한계에 도달한 경우 EMPTY와

NOEMPTY 속성에 따라서 전체 혹은 가장 오래된 GDS 데이터 셋과 GDG

베이스간의 연관이 끊어질 때 (rolled off), 해당 GDS가 사용하는 데이터를

지울지(SCRATCH) 아니면 그냥 둘지(NOSCRATCH)를 지정한다.

- TO(date)|FOR(days)

GDG 그룹의 유효일을 설정한다. TO를 사용하는 경우 유효일의 마지막 날

짜를 율리우스 날짜 형태로 지정한다. (2006년 1월 1일은 2006001로 지정)

FOR를 사용하는 경우는 날짜수를 지정한다. (30을 지정할 경우 오늘부터

30일간을 의미한다)

다음은 GDS 멤버를 100개까지 포함할 수 있는 TEST.GDG1이라는 이름의

GDG 베이스를 생성하고 2006년 12월 31일까지를 GDG 베이스의 유효기간으로

설정하여 TESTCAT이라는 카탈로그에 등록하는 예이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//DEFGDG EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE GDG (NAME(TEST.GDG1) -

LIMIT(100) -

TO(2006365) -

Page 51: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 51

CATALOG(TESTCAT))

/*

//

DEFINE NONVSAM

일반적인 PS(Physical Sequential) 타입의 Non-VSAM 데이터 셋을 생성하고 만

들어진 데이터 셋을 카탈로그에 등록한다.

참고: GDG에 속하는 하나의 GDS는 Non-VSAM 데이터 셋이기 때문에 DEFINE NONVSAM 명령을 사용해서 GDS를 생성할 수 있다.

DEFINE NONVSAM 명령어 구문은 다음과 같다.

DEFINE NONVSAM (NAME(entryname)

[DEVICETYPE(devtype [devtype ...])

[VOLUMES(volser [volser ...)

[CATALOG(catname [catname ...])

[OWNER(ownerid)]

[RECATALOG|NORECATALOG]

[TO(date)|FOR(days)])

[CATALOG(catname)]

DEFINE NONVSAM 명령에는 다음과 같은 파라미터를 지정할 수 있다.

- NAME(entryname)

만들어질 Non-VSAM 데이터 셋의 이름을 지정한다.

GDG에 속하는 GDS를 생성하기 위해서는 GDGname.GxxxxVyy의 형태로

entryname을 지정해야 한다. 예로, TEST.GDG1.G0001V00에서 Gxxxx는 세

대번호이고, Vyy는 버전번호이다.

참고: 이름 규칙에 대한 자세한 내용은 “데이터 셋 안내서”를 참고한다.

- DEVICETYPES(devtype)

Non-VSAM 데이터 셋이 저장될 볼륨의 디바이스 타입을 지정한다. 3380,

3390, 3480과 같은 디바이스 타입을 지정해야 한다. SYSDA와 같은 에소테

릭 디바이스 그룹(esoteric device group)을 사용할 수 없다.

Page 52: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 52

- VOLUMES(volser)

Non-VSAM 데이터 셋을 저장할 볼륨의 볼륨 일련번호를 지정한다.

- CATALOG(catname)

Non-VSAM 데이터 셋의 카탈로그 엔트리 정보가 등록될 카탈로그를 지정한

다.

- OWNER(ownerid)

Non-VSAM 데이터 셋의 소유자를 명시적으로 지정한다.

- RECATALOG|NORECATALOG

Non-VSAM 데이터 셋에 해당하는 VVDS와 이미 존재하는 데이터 셋을 카

탈로그에만 새로 등록하는 경우에는 RECATALOG를 지정한다. 기본값은

NORECATALOG으로 새로 데이터 셋을 생성한다.

- TO(date)|FOR(days)

Non-VSAM 데이터 셋의 유효일을 설정한다.

TO를 사용하는 경우 유효일의 마지막 날짜를 율리우스 날짜 형태로 지정한

다. (2006년 1월 1일은 2006001로 지정). FOR를 사용하는 경우는 날짜수를

지정한다. (30을 지정할 경우 오늘부터 30일간을 의미한다)

다음은 Non-VSAM 데이터 셋인 TEST.NVSAM1을 생성하고 TESTCAT 카탈로그

에 등록하는 예이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//DEFNVS EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE NONVSAM (NAME(TEST.NVSAM1) -

VOLUMES(100000) -

CATALOG(TESTCAT))

/*

//

Page 53: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 53

DEFINE PATH

DEFINE PATH 명령을 통해서 베이스 클러스터에 대한 직접적인 접근 경로를 정

의하거나 보조 인덱스를 경유하여 베이스 클러스터에 접근하는 간접적인 접근

경로를 정의한다.

참고: DEFINE PATH에 관한 자세한 내용은 “TSAM 안내서”를 참고한다.

DEFINE PATH 명령어 구문은 다음과 같다.

DEFINE PATH (NAME(entryname)

[PATHENTRY(entryname)]

[OWNER(ownerid)]

[RECATALOG|NORECATALOG]

[TO(date)|FOR(days)]

[UPDATE|NOUPDATE]

[CATALOG(catname)]

DEFINE PATH 명령에는 다음과 같은 파라미터를 지정할 수 있다.

- NAME(entryname)

DEFINE PATH문으로 현재 정의하는 PATH의 이름을 지정한다.

- PATHENTRY(entryname)

PATH가 AIX와 베이스 클러스터의 쌍으로 이루어지는 경우에는 AIX 데이터

셋의 이름을 지정한다.

베이스 클러스터 자체에 대한 PATH를 정의하는 경우라면 베이스 클러스터

데이터 셋의 이름을 지정하며 베이스 클러스터 데이터 셋 본래의 인덱스 방

법을 지칭하는 단순한 별칭으로 생각할 수 있다. 하지만, 하나의 베이스 클

러스터에 여러 개의 PATH를 정의할 수 있기 때문에, 실제로 액세스 시에

적용되는 속성을 달리 지정하는 용도로 사용할 수 있다.

- UPDATE|NOUPDATE

NOUPDATE를 지정하면, 해당 PATH를 통해서 베이스 클러스터 데이터 셋

을 변경한 경우, 변경된 베이스 클러스터의 업그레이드 셋에 대한 자동적인

변경 작업이 수행 되지 않는다. UPDATE는 이와 반대의 의미이고 기본값은

UPDATE이다.

Page 54: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 54

다음은 보조 인덱스 VSAM.AIX1을 경유하여 VSAM.AIX1의 베이스 클러스터에

접근하는 접근경로(PATH)인 VSAM.PATH1을 생성하는 예이다.

UPDATE 파라미터가 지정되어 있으므로 이 접근경로를 사용하여 베이스 클러스

터의 내용을 변경하는 경우 VSAM.AIX1 이외의 다른 보조 인덱스에 대해서도

업그레이드 처리가 일어난다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//DEFPATH EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE PATH (NAME(VSAM.PATH1) -

PATHENTRY(VSAM.AIX1) -

UPDATE)

/*

//

다음은 보조 인덱스를 경유하지 않고 직접 베이스 클러스터에 접근하는 접근경

로 VSAM.PATH2를 정의하는 예이다.

UPDATE 파라미터가 지정되어 있으므로 VSAM.KSDS1을 베이스 클러스터로 하

는 보조 인덱스가 존재하는 경우 VSAM.PATH2를 이용하여 베이스 클러스터의

내용이 변경되는 경우 업그레이드처리가 일어난다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//DEFPATH EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE PATH (NAME(VSAM.PATH2) -

PATHENTRY(VSAM.KSDS1) -

UPDATE)

/*

//

Page 55: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 55

DEFINE USERCATALOG/MASTERCATALOG

시스템에서 제공하는 하나의 마스터 카탈로그 외에 여러 개의 사용자 카탈로그

를 별도로 사용할 수 있다.

모든 데이터 셋에 관한 메타정보를 마스터 카탈로그에 모두 등록하는 경우 마스

터 카탈로그의 크기가 너무 커지게 되므로 시스템의 성능저하를 초래할 수 있다.

DEFINE USERCATALOG 명령으로 시스템 마스터 카탈로그와 비슷한 용도로 사

용할 수 있는 사용자 카탈로그를 생성할 수 있다. 이는 마스터 카탈로그의 서브

카탈로그로 생각할 수 있다.

생성된 사용자 카탈로그에 대한 정보는 다시 마스터 카탈로그에 저장된다. 사용

자 카탈로그의 서브 카탈로그로 또 다른 사용자 카탈로그를 생성하는 것은 불가

능하다. 즉, 사용자 카탈로그는 하나의 레벨로만 생성할 수 있으며, 모든 사용자

카탈로그는 마스터 카탈로그에만 등록되고, 다른 사용자 카탈로그에는 등록될

수 없다. 일반적으로 사용자 카탈로그는 사용자 별로 생성하거나 관련 부서 또

는 업무별로 생성한다.

OpenFrame에서는 마스터 카탈로그를 생성하기 위해서 IDCAMS의 DEFINE

MASTERCATALOG 명령을 사용하지 않고, OpenFrame에서 제공되는 mascat이

라는 툴을 사용한다. 반면 사용자 카탈로그를 추가로 생성하는 경우에는

IDCAMS의 DEFINE USERCATALOG 명령을 사용한다.

참고: 마스터 카탈로그 생성과 관련한 자세한 내용은 “툴 참조 안내서”의 “mascat”을 참

고한다.

DEFINE USERCATALOG 명령어 구문은 다음과 같다.

DEFINE USERCATALOG (NAME(entryname)

{CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[CONTROLINTERVALSIZE(size)]

[DATACLASS(class)]

[FILE(ddname)]

Page 56: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 56

[MANAGEMENTCLASS(class)]

[OWNER(ownerid)]

[RECORDSIZE(average maximum|4086 32400)]

[STORAGECLASS(class)]

[TO(date)|FOR(days)]

[DATA ({CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[CONTROLINTERVALSIZE(size)]

[RECORDIZE(average maximum|4086 32400)]

[INDEX ({CYLINDERS(primary[ secondary])|

KILOBYTES(primary[ secondary])|

MEGABYTES(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[CONTROLINTERVALSIZE(size)]

[CATALOG(mastercatname)]

DEFINE USERCATALOG 명령의 주요 파라미터는 다음과 같다.

- NAME(entryname)

생성할 사용자 카탈로그의 이름을 지정한다.

- VOLUME(volser)

사용자 카탈로그가 저장될 볼륨을 지정한다.

- RECORDSIZE(average maximum|4086 32400)

RECORDSIZE 파라미터를 지정할 경우 무시되고, 기본 카탈로그 구조를 갖

는(Basic Catalog Structure) 데이터 셋의 기본적인 레코드 크기가 사용된다.

- CATALOG(mastercatname)

생성된 사용자 카탈로그가 등록될 마스터 카탈로그의 이름을 지정한다. 생

략해도 시스템의 마스터 카탈로그에 자동으로 등록된다.

Page 57: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 57

DELETE

VSAM 데이터 셋과 Non-VSAM 데이터 셋 그리고 이외에 카탈로그된 데이터 셋

항목을 제거하기 위해 DELETE 명령을 사용한다.

DELETE 명령은 이미 존재하는 항목을 지우는 역할을 하기 때문에 많은 파라미

터를 요구하지 않는다. 제거하려는 항목을 지시하는 이름과 해당 항목의 카탈로

그 엔트리 타입만을 필요로 한다.

DELETE 명령어 구문은 다음과 같다.

DELETE (entryname [entryname ...])

[ALIAS|

ALTERNATEINDEX|

CLUSTER|

GENERATIONDATAGROUP|

NONVSAM|

PATH|

TRUENAME|

USERCATALOG]

[FILE(ddname)]

[PURGE|OPURGE]

[CATALOG(catname)]

DELETE 명령에 지정할 수 있는 파라미터는 다음과 같습니다.

- entryname|(entryname [entryname...])

제거할 데이터 셋이나 카탈로그 엔트리의 이름을 지정한다.

괄호 안에 여러 개의 이름을 지정하면 한번의 명령으로 다수의 엔트리를 제

거할 수 있다.

- ALTERNATEINDEX|CLUSTER|PATH|TRUENAME|GENERATIONDATAGROU

P|NONVSAM

제거할 카탈로그 엔트리의 이름 외에 부가적인 엔트리의 타입을 지정한다.

엔트리 타입 지정은 필수적이지 않지만, 엔트리 타입을 지정하면 실수로 이

름이 동일한 의도하지 않은 항목을 제거하는 실수를 방지할 수 있다.

AIX, CLUSTER, PATH, TRUENAME 등은 VSAM 데이터 셋의 엔트리 타입이

고 나머지는 Non-VSAM 데이터 셋의 엔트리 타입이다.

Page 58: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 58

- ERASE|NOERASE

엔트리 타입이 CLUSTER이거나 AIX인 데이터 셋을 제거하는 경우에 해당

데이터 셋의 실제 내용을 0으로 채울지 즉, 지워버릴지 여부를 지정한다.

- PURGE|NOPURGE

데이터 셋을 정의할 때 지정한 사용기간에 관계없이 데이터 셋 엔트리를 제

거할지 여부를 지정한다. PURGE를 지정한 경우 사용기간에 관계없이 데이

터 셋 엔트리를 제거하며, NOPURGE를 지정한 경우는 유지기간이 만료된

엔트리만을 대상으로 제거를 수행하며, 만료되지 않은 엔트리에 대해서는

제거하지 않는다. 생략된 경우 NOPURGE가 지정된 것으로 처리된다.

데이터 셋의 사용기간(retention period)은 DEFINE 명령의 TO 및 FOR 파라

미터로 지정된다.

다음은 VSAM 데이터 셋 엔트리 타입의 VSAM.KSDS1과 VSAM.KSDS2를 지정

한 사용기간에 관계없이 삭제하는 예이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//DELCLUS EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DELETE (VSAM.KSDS1 VSAM.KSDS2) -

CLUSTER -

ERASE -

PURGE

/*

//

EXPORT

EXPORT 명령을 이용하여 VSAM CLUSTER나 ALTERNATE INDEX를 외부로 이

식 가능한 데이터 셋으로 반출할 수 있다. 카탈로그 데이터 셋 자체를 백업하기

위해서 사용된다.

Page 59: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 59

EXPORT 명령어 구문은 다음과 같다.

EXPORT entryname {OUTFILE(ddname)|OUTDATASET(entryname)}

[INFILE(ddname)]

EXPORT 명령에 지정할 수 있는 파라미터는 다음과 같다.

- entryname

EXPORT할 카탈로그 엔트리의 entryname을 지정한다.

- OUTFILE(ddname)|OUTDATASET(entryname)

EXPORT 결과 생성될 데이터 셋을 지정한다.

EXPORT 결과로 생성된 데이터 셋을 카탈로그 상에 새로 만들기를 원하거

나 이미 카탈로그 되어있는 경우는 entryname을 사용하고, 실행환경에서

IDCAMS 호출 전에 미리 할당되어있는 데이터 셋에 생성되기를 원하는 경

우는 ddname을 사용한다.

다음은 카탈로그 TESTCAT을 TESTCAT.BACKUP으로 EXPORT하는 예이다.

즉, 카탈로그의 내용을 반출하여 백업한다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//BACKCAT EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//BACK DD DSN=TESTCAT.BACKUP,DISP=OLD

//SYSIN DD *

EXPORT TESTCAT -

OUTFILE(BACK)

/*

//

IMPORT

IMPORT 명령을 이용하면 EXPORT 명령을 사용해서 생성한 백업이나 외부의

이식 가능한 데이터 셋으로부터 다시 데이터 셋을 복원하거나 새로 생성할 수

있다.

Page 60: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 60

IMPORT 명령어 구문은 다음과 같다.

IMPORT {INFILE(ddname)|INDATASET(entryname)}

{OUTFILE(ddname)|OUTDATASET(entryname)}

[INTOEMPTY]

[OBJECTS((entryname

[MANAGEMENTCLASS(class)]

[NEWNAME(newname)]

[STORAGECLASS(class)]

[VOLUMES(volser[ volser...])])

[(entryname...)...])]

[CATALOG(catname)]

IMPORT 명령에 지정할 수 있는 파라미터는 다음과 같다.

- INFILE(ddname)|INDATASET(entryname)

IMPORT할 소스 데이터 셋을 지정한다.

IDCAMS 호출 전에 실행환경에서 미리 할당된 데이터 셋을 사용하려는 경

우에는 ddname을 지정하고 IDCAMS 내부적으로 할당하려는 경우에는

entryname을 사용한다.

- OUTFILE(ddname)|OUTDATASET(entryname)

IMPORT 결과 생성 및 복구할 대상(target) 데이터 셋을 지정한다.

IDCAMS 호출 전에 실행환경에서 미리 할당된 데이터 셋을 사용하려는 경

우에는 ddname을 지정하고 IDCAMS 내부적으로 할당하려는 경우에는

entryname을 사용한다.

- CATALOG(catname)

IMPORT 과정 중에 카탈로깅이 필요한 경우 사용할 카탈로그를 지정한다.

- OBJECTS((entryname[MANAGEMENTCLASS(class)]

[NEWNAME(entryname)]

[STORAGECLASS(class)]

[VOLUMES(volser)])

[(entryname ...)],( ...))

IMPORT 작업을 수행하는 과정에서 부수적으로 IMPORT 원본 데이터 셋에

기록된 정보 중에서 일부를 변경하는 작업을 수행할 수 있다. 이때 변경하

Page 61: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 61

고자 하는 entryname과 적용할 새로운 속성을 지정한다. 여러 개의

entryname에 대해서 반복적으로 지정할 수 있다.

- INTOEMPTY

IMPORT 결과로 데이터를 받아들이는 데이터 셋이 카탈로그에 등록되어 있

거나 데이터 셋에는 존재하지만 저장 공간이 할당되지 않은 상태인 경우

(empty dataset) IMPORT 명령은 기본적으로 실패하게 된다. 이것을 무시하

고 IMPORT 명령 수행 중에 필요한 저장 공간을 확보하여 명령을 성공시키

기를 원하는 경우는 INTOEMPTY를 지정한다.

다음은 TESTCAT.BACKUP이라는 백업 데이터 셋의 내용을 카탈로그 TESTCAT

으로 반입한다. 즉 TESTCAT.BACKUP에 저장된 내용을 이용하여 카탈로그

TESTCAT을 복원하는 예이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//IMPCAT EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//BACK DD DSN=TESTCAT.BACKUP,DISP=OLD

//SYSIN DD *

IMPORT INFILE(BACK) -

OUTDATASET(TESTCAT)

/*

//

LISTCAT

LISTCAT 명령을 사용해서 카탈로그에 정의된 데이터 셋에 관한 다양한 정보를

출력할 수 있다.

다음과 같은 그룹으로 관련 정보를 정리해서 보여준다.

- 엔트리 객체의 속성

- 생성, 변경, 만료 시간 정보

- 보호(protection) 관련 정보

- 데이터 셋 액세스 통계 정보

- 저장공간 할당 정보

- 데이터 셋의 구조에 관한 정보

Page 62: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 62

LISTCAT 명령어 구문은 다음과 같다.

LISTCAT [ALIAS]

[ALTERNATEINDEX]

[CLUSTER]

[DATA]

[GENERATIONDATAGROUP]

[INDEX]

[NONVSAM]

[PATH]

[USERCATALOG]

[CREATION(days)]

[ENTRIES(entryname[ entryname...])|LEVEL(level)]

[NAME|HISTORY|VOLUME|ALLOCATION|ALL]

[CATALOG(catname)]

LISTCAT 명령에서 지정할 수 있는 파라미터는 다음과 같다.

- [ALTERNATEINDEX][CLUSTER][DATA][INDEX][PATH]

[GENERATIONDATAGROUP][NONVSAM][ALIAS]

지정된 종류의 카탈로그 엔트리에 대해서만 LISTCAT 정보를 출력하도록

하기 위한 파라미터이다.

예를 들어 LISTCAT CLUSTER라고 지정하는 경우 카탈로그 엔트리 타입이

CLUSTER인 엔트리에 대한 정보만 출력한다.

두 개 이상의 엔트리 타입을 지정하는 것도 가능하다. 즉, LISTCAT DATA

INDEX라고 지정하면 카탈로그 엔트리 타입이 DATA이거나 INDEX인 엔트

리에 대한 정보만 출력된다.

파라미터를 지정하지 않는 경우는 카탈로그 엔트리 타입에 대한 필터링을

하지 않고 모든 타입의 엔트리 정보를 모두 출력한다.

이와는 별도로 ENTRIES 파라미터를 지정하는 경우 엔트리 타입이 일치하

더라도 엔트리 이름이 ENTRIES 파라미터에 지정된 이름을 만족하지 않는

엔트리들에 대한 정보는 출력되지 않는다.

- NAME|HISTORY|VOLUME|ALLOCATION|ALL

위의 엔트리 타입 필터 및 ENTRIES 파라미터로 지정되는 엔트리 이름 조

건을 만족하는 카탈로그 엔트리에 대한 정보를 출력하는데 있어서 얼마나

Page 63: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 63

자세한 레벨의 정보까지 출력할 지를 지정한다.

순서대로 NAME을 지정하면 가장 기본적인 정보만이 출력되고 ALL을 지정

하면 모든 해당 엔트리에 대한 정보가 출력된다.

다음은 VSAM.KSDS1의 모든 엔트리에 대한 정보를 출력하는 예이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//LISTC EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

LISTCAT ENTRIES(VSAM.KSDS1) ALL

/*

//

다음은 위의 LISTCAT 명령을 실행한 결과로 출력되는 내용(SYSPRINT)이다.

CLUSTER ------------- VSAM.KSDS1

HISTORY

CREATION -------------- (NULL) DATASET-OWNER ----------- (EMPTY)

RELEASE ------------------- 1 VSAM QUIESCED --------------- (NO)

PROTECTION-PSWD---------- (NULL)

ASSOCIATIONS

DATA ------------ VSAM.KSDS1.D

INDEX ----------- VSAM.KSDS1.I

DATA ---------------- VSAM.KSDS1.D

HISTORY

CREATION --------------- (NULL) DATASET-OWNER ---------- (EMPTY)

RELEASE -------------------- 1

PROTECTION-PSWD ---------- (NULL)

ASSOCIATION

CLUSTER ----------- VSAM.KSDS1

ATTRIBUTES

AVGLRECL ----------------- 350 MAXLRECL ------------------- 350

KEYLEN -------------------- 10 RKP -------------------------- 0

CISIZE ------------------ 4096 INDEXED

Page 64: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 64

NON-SPANNED

STATISTICS

REC-DELETED ---------------- 0 REC-INSERTED ------------- 10445

REC-RETRIEVED -------------- 0 REC-TOTAL ---------------- 10445

REC-UPDATED ---------------- 0 TIMESTAMP ---------------- (NULL)

ALLOCATION

HI-A-RBA ------------------- 0 HI-U-RBA --------------------- 0

VOLUMES

VOLSER ----------------- (TSAM)

INDEX --------------- VSAM.KSDS1.I

HISTORY

CREATION --------------- (NULL) DATASET-OWNER ---------- (EMPTY)

RELEASE -------------------- 1

PROTECTION-PSWD ---------- (NULL)

ASSOCIATION

CLUSTER ----------- VSAM.KSDS1

ATTRIBUTES

AVGLRECL ----------------- 350 MAXLRECL ------------------- 350

KEYLEN -------------------- 10 RKP -------------------------- 0

CISIZE ------------------ 4096

STATISTICS

INDEX:

ENTRIES/SECT ------------ 254 HI-LEVEL-RBA ----------- 12288

LEVELS -------------------- 2 SEQ-SET-RBA ------------- 4096

REC-DELETED ----------------- 0 REC-INSERTED ------------ 10445

REC-RETRIEVED --------------- 0 REC-TOTAL --------------- 10445

REC-UPDATED ----------------- 0 TIMESTAMP --------------- (NULL)

ALLOCATION

HI-A-RBA -------------------- 0 HI-U-RBA ------------------- 0

VOLUMES

VOLSER ---------------------- (TSAM)

PRINT

Page 65: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 65

VSAM 및 Non-VSAM 데이터 셋에 저장되어있는 레코드들을 출력하여 보여준다.

PRINT 명령어 구문은 다음과 같다.

PRINT {INFILE(ddname)|INDATASET(entryname)}

[CHARACTER|DUMP|HEX]

[FROMKEY(key)|FROMADDRESS(address)|FROMNUMBER(number)|SKIP(number)]

[OUTFILE(ddname)]

[TOKEY(key)|TOADDRESS(address)|TONUMBER(number)|COUNT(number)]

PRINT 명령에서 지정 가능한 파라미터는 다음과 같다.

- INFILE(ddname)|INDATASET(entryname)

PRINT 명령을 이용하여 내용을 출력할 데이터 셋을 지정한다.

INFILE(ddname)을 이용해서 지정하는 경우 JCL을 통해 미리 할당된

ddname을 지정해야 한다.

INDATASET(entryname)을 이용해서 지정하는 경우 IDCAMS에서 직접 데이

터 셋을 할당하고 그 내용을 출력한다.

- [CHARACTER|DUMP|HEX]

PRINT 출력내용의 포맷을 지정한다.

CHARACTER를 지정하면 스트링 형태로 레코드의 내용을 출력한다.

DUMP를 지정하면 오른쪽에는 16진수로 왼쪽에는 스트링 형태를 나란히

출력한다.

HEX를 지정하면 16진수 형태로 출력한다.

아무런 포맷도 지정하지 않은 경우는 기본적으로 DUMP 포맷으로 출력한다.

- [FROMKEY(key)|FROMADDRESS(address)|

FROMNUMBER(number)|SKIP(number)]

PRINT문은 REPRO문과 비슷한 파라미터를 통해서 사용자가 출력할 레코

드의 범위를 지정할 수 있다. 각 파라미터의 의미는 REPRO 명령의 해당

파라미터와 동일하다.

- [OUTFILE(ddname)]

PRINT 명령을 통해서 출력한 데이터 셋의 내용을 저장할 별도의 데이터 셋

을 지정하고 JCL을 통해 미리 할당된 ddname을 지정해야 한다.

즉, SYSPRINT가 아닌 다른 DD에 PRINT 결과를 출력할 경우에 사용한다.

Page 66: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 66

이 파라미터를 생략하면 기본적으로 PRINT 명령은 SYSPRINT로 출력한다.

- [TOKEY(key)|TOADDRESS(address)|TONUMBER(number)|COUNT(number)]

PRINT는 REPRO와 비슷한 파라미터를 통해서 출력할 레코드의 범위를 사

용자가 지정할 수 있다. 각 파라미터의 의미는 REPRO 명령의 해당 파라미

터와 동일하다.

다음은 TEST.KSDS1에 저장된 레코드를 DUMP 포맷으로 출력하는 예이다. 출

력되는 레코드의 범위는 키 값이 0000000099인 첫 레코드부터 10개이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//PRINT EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

PRINT INDATASET(TEST.KSDS1) DUMP -

FROMKEY(0000000099) COUNT(10)

/*

//

다음은 위의 JCL을 실행한 결과, SYSPRINT에 출력된 내용이다.

KEY OF RECORD = 30303030303030303939

0000: 3030 3030 3030 3030 3939 7265 636F 7264 *0000000099record*

0010: 3030 3030 3030 3030 3939 *0000000099 *

KEY OF RECORD = 30303030303030313030

0000: 3030 3030 3030 3031 3030 7265 636F 7264 *0000000100record*

0010: 3030 3030 3030 3031 3030 *0000000100 *

KEY OF RECORD = 30303030303030313031

0000: 3030 3030 3030 3031 3031 7265 636F 7264 *0000000101record*

0010: 3030 3030 3030 3031 3031 *0000000101 *

KEY OF RECORD = 30303030303030313032

0000: 3030 3030 3030 3031 3032 7265 636F 7264 *0000000102record*

0010: 3030 3030 3030 3031 3032 *0000000102 *

KEY OF RECORD = 30303030303030313033

0000: 3030 3030 3030 3031 3033 7265 636F 7264 *0000000103record*

Page 67: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 67

0010: 3030 3030 3030 3031 3033 *0000000103 *

KEY OF RECORD = 30303030303030313034

0000: 3030 3030 3030 3031 3034 7265 636F 7264 *0000000104record*

0010: 3030 3030 3030 3031 3034 *0000000104 *

KEY OF RECORD = 30303030303030313035

0000: 3030 3030 3030 3031 3035 7265 636F 7264 *0000000105record*

0010: 3030 3030 3030 3031 3035 *0000000105 *

KEY OF RECORD = 30303030303030313036

0000: 3030 3030 3030 3031 3036 7265 636F 7264 *0000000106record*

0010: 3030 3030 3030 3031 3036 *0000000106 *

KEY OF RECORD = 30303030303030313037

0000: 3030 3030 3030 3031 3037 7265 636F 7264 *0000000107record*

0010: 3030 3030 3030 3031 3037 *0000000107 *

KEY OF RECORD = 30303030303030313038

0000: 3030 3030 3030 3031 3038 7265 636F 7264 *0000000108record*

0010: 3030 3030 3030 3031 3038 *0000000108 *

PRINT 10 record(s)

IDCAMS: PRINT OK

REPRO

DEFINE 명령을 통해서 데이터 셋이 이미 정의되어 있다면, REPRO 명령을 이

용해서 VSAM과 Non-VSAM 데이터 셋의 내용을 다른 데이터 셋에 저장할 수

있다. 이 명령에 사용되는 VSAM 데이터 셋은 카탈로그에 등록되어 있어야 하

며, Non-VSAM 데이터 셋의 경우는 카탈로그에 등록되어 있지 않아도 된다.

Mainframe의 카탈로그는 일반적으로 하나의 KSDS 클러스터에 저장되어 있기

때문에 REPRO 명령은 카탈로그 내용 자체를 복사하는 용도로 사용될 수 있다.

물론, REPRO 명령을 이용하지 않고 일반적인 응용프로그램을 이용해서 레코드

를 데이터 셋에 저장하는 경우도 매우 일반적이다.

반면, REPRO 명령은 레코드의 내용에 상관하지 않고 주로 관리목적으로 데이

터 셋을 복사하는 용도로 사용된다.

REPRO 명령어 구문은 다음과 같다

Page 68: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 68

REPRO {INFILE(ddname)|INDATASET(entryname)}

{OUTFILE(ddname)|OUTDATASET(entryname)}

[ENTRIES(entryname [entryname...])|LEVEL(level)]

[FROMKEY(key)|FROMADDRESS(address)|FROMNUMBER(number)|SKIP(number)]

[MERGECAT|NOMERGECAT]

[REPLACE|NOREPLACE]

[REUSE|NOREUSE]

[TOKEY(key)|TOADDRESS(address)|TONUMBER(number)|COUNT(number)]

REPRO 명령에서 지정 가능한 파라미터는 다음과 같다.

- INFILE(ddname) | INDATASET(entryname)

복사할 원본 데이터 셋을 지정한다.

INFILE의 경우 JCL을 통해서 명시된 ddname을 값으로 지정해야 하는 반면

INDATASET 파라미터를 사용하는 경우에는 데이터 셋의 카탈로그에 등록된

엔트리 이름을 지정해야 한다.

- OUTFILE(ddname) | OUTDATASET(entryname)

원본 데이터 셋을 복사작업을 수행한 후 저장할 대상 데이터 셋을 지정한다.

OUTFILE 파라미터의 값으로는 ddname을 지정해야 하며, OUTDATASET 파

라미터의 값으로는 카탈로그된 엔트리 이름을 지정해야 한다.

- FROMKEY(key)|FROMADDRESS(address)|FROMNUMBER(number)|SKIP(n

umber)

데이터 셋 전체를 모두 복사하지 않고, 해당 데이터 셋의 일부 레코드만을

복사하기 위해 복사할 대상을 한정한다.

각각 특정 키와 주소 그리고 레코드 번호 이후의 레코드를 대상으로 복사하

고, SKIP 파라미터는 첫 레코드부터 number개의 레코드는 복사하지 않고

number개 다음 레코드부터 복사작업의 대상으로 한다. 즉, 복사작업의 시작

이 되는 레코드를 지정한다.

- TOKEY(key)|TOADDRESS(address)|TONUMBER(number)|COUNT(number)

복사작업의 대상이 되는 레코드를 제한한다. 즉, 복사작업의 대상이 되는

마지막 레코드를 지정한다.

- MERGECAT|NOMERGECAT

Page 69: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 69

REPRO 명령으로 일반 데이터 셋 이외에도 카탈로그를 담고 있는 특수한

데이터 셋을 대상으로 복사작업을 수행할 수 있다. 이러한 카탈로그 데이터

셋 간의 카탈로그 레코드 복사작업을 하는 경우에 MERGECAT 파라미터를

지정하면, 소스 카탈로그의 레코드를 타깃 카탈로그로 복사한 후에 소스 카

탈로그 상에서 레코드를 제거한다.

반대로 NOMERGECAT을 지정하는 경우 단순히 복사되고 원본 카탈로그에

서 카탈로그 레코드는 삭제되지 않는다.

이 파라미터가 생략된 경우에는 NOMERGECAT가 기본값으로 사용된다.

참고: NOMERGECAT을 지정하는 경우 타깃 카탈로그는 비어있어야 한다.

- REPLACE|NOREPLACE

소스 데이터 셋을 타깃 데이터 셋으로 복사하는 과정에서 타깃 데이터 셋에

이미 동일한 레코드가 있는 경우의 처리방법을 지정한다.

REPLACE를 지정한 경우 기존의 레코드를 새로운 레코드로 대체한다.

NOREPLACE가 지정된 경우 중복레코드가 발견되었다는 에러 메시지만 나

타나고, 타깃 데이터 셋의 중복레코드에 복사하지 않는다.

즉, 소스 데이터 셋의 해당 레코드는 사용되지 않고 버려진다. 생략 시 기

본 값은 NOREPLACE이다.

- REUSE|NOREUSE

카탈로그가 아닌 VSAM 데이터 셋이 타깃 데이터 셋인 경우에 사용한다.

REUSE를 지정하면 해당 타깃 데이터 셋에 이미 레코드가 들어있더라도 맨

처음부터 레코드를 추가한다. (HURBA를 0인 상태로 열고 쓰기동작을 한

다.) 반대로 NOREUSE를 지정하면 타깃 데이터 셋의 마지막 레코드 이후

부터 레코드를 추가하여 기존에 있던 데이터 셋의 레코드를 놔둔 상태로 타

깃 데이터 셋에 레코드를 복사한다.

참고: 기존 레코드를 REUSE한다기 보다 데이터 셋 레코드를 저장하는데 사용되는 공간을 REUSE한다.

다음은 VSAM.KSDS1 데이터 셋의 50001번 레코드부터 10000개의 레코드를

VSAM.KSDS2 데이터 셋으로 복사하는 예이다.

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//REPRO EXEC PGM=IDCAMS

//INDD DD DSN=VSAM.KSDS1,DISP=(OLD,KEEP)

//OUTDD DD DSN=VSAM.KSDS2,DISP=SHR

Page 70: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 70

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

REPRO INFILE(INDD) -

OUTFILE(OUTDD) -

SKIP(50000) COUNT(10000)

/*

//

VERIFY

응용프로그램에서 VSAM 데이터 셋을 개방하고 사용하는 과정에서 비정상적인

종료에 의해서 종료처리가 정확하게 되지 않은 경우, 해당 VSAM 데이터 셋이

카탈로그에 레코드를 저장하기 위해 사용하는 저장공간에 대한 정보를 부정확한

값으로 기록하는 문제가 발생할 수 있다.

이러한 이유로 카탈로그에 문제가 발생한 경우 VERIFY 명령은 문제가 되는

VSAM 데이터 셋에 대해서 올바른 저장공간 및 상태정보를 나타내고 있는지 확

인하고, 지정된 데이터 셋에 대한 카탈로그 정보가 잘못된 경우 올바른 값으로

갱신한다. 특히 이와 같은 비정상적인 종료가 발생한 경우 카탈로그의

STATISTICS/REC-TOTAL 정보가 실제 VSAM 데이터 셋의 레코드 수와 일치하

지 않을 수 있으나, VERIFY 명령을 수행하면 STATISTICS/REC-TOTAL 정보를

올바른 값으로 갱신할 수 있다.

참고: VERIFY 명령은 VSAM 데이터 셋에 대해서만 동작한다.

VERIFY 명령어 구문은 다음과 같다

VERIFY FILE(ddname)|DATASET(entryname)

다음은 VERIFY 명령어에 대한 파라미터이다.

- FILE(ddname)|DATASET(entryname)

VERIFY 명령의 대상이 되는 데이터 셋을 지정한다.

FILE(ddname)을 사용하는 경우 JCL을 통해 할당된 데이터 셋의 ddname을

지정해야 한다.

DATASET(entryname)을 이용하여 지정하는 경우는 IDCAMS에서 지정된 데

이터 셋을 직접 할당한다.

다음은 TEST.CLUS1 데이터 셋의 카탈로그 정보를 확인하는 예이다.

Page 71: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 71

//JOBA JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1)

//VSTEP EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//TESTDD DD DSN=TEST.CLUS1,DISP=OLD

//SYSIN DD *

VERIFY FILE(TESTDD)

/*

//

보조 명령어 (Modal command)

한번의 IDCAMS 실행으로 여러 개의 IDCAMS 명령을 수행할 수 있다.

보조 명령어는 여러 개의 IDCAMS 명령을 수행하기 위해서 필요한 기능을 제공

하는 명령어로 실제로 카탈로그 엔트리나 오브젝트에 대해 처리하는 기능 명령

어와 구분된다.

IF-THEN-ELSE

실행된 명령의 결과 코드 값(LASTCC 혹은 MAXCC)에 따라서 다음에 실행할

명령을 분기하기 위해서 사용된다.

IF와 THEN 사이에는 조건분기 시에 평가되는 조건을 지정해야 한다. 조건은 컨

디션 코드(Condition Code)와 특정 상수의 비교를 통해서 기술한다.

예를 들면, "LASTCC > 8"이라고 지정하면 컨디션 코드 변수 중의 하나인

LASTCC 값이 8보다 큰 경우를 의미한다.

IF-THEN-ELSE 명령어 구문은 다음과 같다.

IF {Condition Code} {operator} {number}

THEN[ command| DO command set END]

[ELSE[ command| DO command set END]]

Condition Code에 지정 가능한 값과 의미는 다음과 같으며 자세한 설명은 [표

2-10] 컨디션 코드를 참고한다.

- LASTCC

Page 72: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 72

LASTCC는 가장 최근에 실행된 명령의 실행 결과값을 저장하는 IDCAMS에

서 사용하는 변수이다. 성공적인 경우의 LASTCC는 0의 값을 갖고, 무시할

수 있는 경고가 발생한 경우의 값은 4이다. 즉, 심각한 문제가 발생한 경우

더 큰 값을 갖게 된다.

- MAXCC

MAXCC는 현재 실행중인 명령보다 앞서서 실행된 명령의 실행 결과값 중

에서 가장 큰 값을 저장하는데 사용하는 변수이다. 명령 실행의 결과

Condition Code는 심각한 실행 오류가 있는 경우 더 큰 값을 갖게 된다.

- Operator

Operator는 Condition Code의 값을 평가하기 위한 연산자이다.

지정 가능한 값과 의미는 [표 2-1] 비교연산자를 참고한다.

THEN문에는 IF문이 '참'인 경우 실행할 IDCAMS 명령을 기술하고, ELSE문에는

IF문이 '거짓'인 경우 실행할 명령을 기술한다. 만약 IF문이 거짓일 경우 실행할

명령이 없다면 ELSE문을 생략할 수 있다.

IF-THEN-ELSE 구문은 조건에 따라서 다른 명령을 수행하는 하나의 IDCAMS

명령으로 간주된다. 따라서 IF-THEN-ELSE 구문을 여러 라인에 걸쳐서 기술하

는 경우는 하이픈(-)을 적절히 사용해야 한다.

다음은 LASTCC의 값이 8과 동일한 경우, MAXCC에 0을 설정하는 프로그램의

일부분을 예로 보여준다. 실제 IF-THEN 문이 동작하는 것을 보여주기 위해서

일부러 LASTCC를 8로 설정했으며 IF-THEN 문이 실행될 때는 LASTCC 값이 8

이므로 THEN 뒤의 SET MAXCC-0이 실행된다. 이 상태에서 IDCAMS를 종료하

면 최종적인 MAXCC 값을 보고하고 종료하므로 실행된 결과를 확인할 수 있다.

SET LASTCC=8

IF LASTCC=8 THEN SET MAXCC=0

다음은 LASTCC의 값이 4보다 큰 경우, TEST.SDS1의 엔트리 정보를 가져오고

LASTCC가 4보다 크지 않은 경우, TEST.SDS2의 엔트리 정보를 가져오는 예이

다. 일반적으로 SET LASTCC의 위치에 다른 IDCAMS 명령어를 실행하여 그 결

과에 의해서 LASTCC가 설정되고, 그 결과에 따라서 조건적으로 명령을 실행한

다. 본 예제에서는 IF-THEN-ELSE 문의 동작을 테스트하기 위해 강제로 IF 문

Page 73: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 73

전에 LASTCC의 값을 0으로 설정하였다. IF 문의 결과에 따라 TEST.SDS2가

LISTCAT된다.

SET LASTCC=0

IF LASTCC > 4 -

THEN -

LISTCAT ENT(TEST.SDS1)

ELSE -

LISTCAT ENT(TEST.SDS2)

Null

Null은 아무 동작도 발생하지 않는 문법적인 용도의 명령으로 다음과 같은 두

가지 목적으로 사용된다.

첫째는 IF-THEN-ELSE 구문의 문법에 어긋나지 않고 THEN이나 ELSE에 아무

런 명령도 지정하지 않을 경우에 사용한다. 이때, 주의할 점은 THEN이나 ELSE

뒤에서 라인을 변경하는 경우 라인이 계속 이어지는 것을 의미하는 하이픈(-)을

지정하지 않는다. 하이픈(-)을 지정하면 IDCAMS는 THEN이나 ELSE문 다음에

명령이 있는 것으로 가정하고 처리하기 때문에 의도한대로 명령의 분기가 되지

않는다.

또한, NULL이 IF-THEN-ELSE 구문 외에서 사용된 경우는 빈 라인으로 처리된다.

다음은 LASTCC가 4보다 큰 경우에 수행하는 명령은 없으며, LASTCC가 4보다

작은 경우에는 TEST.SDS2의 엔트리 정보를 가져오는 예이다.

SET LASTCC=0

IF LASTCC > 4 -

THEN

ELSE LISTCAT ENT(TEST.SDS2)

SET

MAXCC나 LASTCC의 값을 강제로 특정한 값으로 설정하는데 사용한다.

주로 특정 경고 수준의 컨디션 코드를 무시하고 JCL에서 IDCAMS 이후의 스텝

을 계속 실행하기 위한 용도로 사용된다.

다음은 LASTCC의 값이 8과 동일한 경우, MAXCC의 값을 0으로 강제 설정하는

예이다.

DEL 스텝에서 TEST.SDS1이 없는 경우 DEL 스텝은 반환코드 8을 반환하고 종

Page 74: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 74

료하며 따라서 DEF 스텝은 수행되지 않는다.

TJES의 설정이나 JOB에 기술된 COND에 따라 달라질 수 있지만, RC=8인 경우

DEF 스텝을 처리하지 않고 JOB이 ABEND 처리되는 경우를 방지하려면 위와

같이 MAXCC를 0으로 강제 설정함으로써 뒤따르는 DEF 스텝이 실행되게 할

수 있다.

//DEL EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DELETE TEST.SDS1

IF LASTCC=8 THEN SET MAXCC=0

/*

//DEF EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE NONVSAM (NAME(TEST.SDS1) VOLUMES(100000))

/*

//

CANCEL

CANCEL 명령어를 만나면 IDCAMS의 실행이 종료되어 CANCEL 명령 이후의

나머지 명령은 처리되지 않는다.

다음 예제는 LASTCC가 4인 경우 다음 THEN 명령을 수행하는 중 CANCEL 명

령을 만나 IDCAMS의 실행을 종료하는 프로그램의 일부이다.

LISTCAT ENTRIES(MUST.EXIST.SDS)

IF LASTCC=4 THEN CANCEL

...

LISCAT으로 지정한 카탈로그 엔트리가 존재하지 않는 경우 컨디션 코드는 4이

다. 컨디션 코드가 4인 경우는 메시지 레벨 조건 코드이므로 다음 IDCAMS 명

령을 계속 실행하게 된다.

위의 예제는 MUST.EXIST.SDS 이라는 데이터 셋이 없는 경우 더 이상 다음 명

령을 실행하지 않고 곧 바로 IF 조건이 만족하는 경우 CANCEL 명령을 실행하

Page 75: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 75

여 IDCAMS의 실행을 종료한다.

참고: 더 자세한 컨디션 코드에 관한 사항은 [표 2-10] 컨디션 코드를 참고한다.

현재 IDCAMS의 보조 명령어 중 PARM은 지원하지 않는다.

유의사항

컨디션 코드 (Condition Code)는 IDCAMS가 각각의 명령을 실행한 결과가 정상

인지 아니면 명령실행 중에 에러가 발생했는지를 나타내는 일종의 오류코드이다.

발생 가능한 컨디션 코드는 0, 4, 8, 12, 16이고 큰 값일 수록 명령 실행에 중대

한 문제가 있었음을 나타낸다.

각 컨디션 코드 값에 대한 설명은 다음과 같다.

코드 의미

0 명령을 정상적으로 처리한 경우 반환되는 코드이며, 일부 정보성

메시지가 출력될 수 있다.

4 명령이 완벽하게 처리되지 않았지만, 이를 무시하고 추가적인 명령

을 수행해도 영구적인 에러를 야기하지 않을 것이라고 판단되는 상

태로, 추가적인 명령의 수행이 가능하며 경고성 메시지가 함께 출

력된다.

예를 들면, LISCAT 명령 실행 시 사용자가 지정한 카탈로그 엔트리

가 존재하지 않는 경우 컨디션 코드는 4로 설정되고 다음 메시지가

출력된다.

IDCAMS: No specified catalog entry found:

NOT.EXIST.SDS

8 명령이 의미하는 동작의 일부를 수행하지 않았지만, 결과적으로 사

용자가 원하는 상태와 동일한 결과로 귀결되는 경우에 해당하는 상

태로 추가적인 명령의 수행이 가능하다.

예를 들어 DELETE 명령에 지정한 데이터 셋이 존재하지 않는 경

우 실제로 DELETE 명령의 완전한 실행은 수행되지 않았지만 결과

적으로 지정한 데이터 셋이 없다는 상태는 동일하게 된다. 이 경우

추가적인 명령의 실행에 문제는 없으므로 컨디션 코드는 8로 설정

되고 경고성 메시지가 출력된다.

IDCAMS(WARNING): No such catalog entry -

Page 76: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 76

코드 의미

'NOT.EXIST.SDS'

12 명령의 수행 과정 중 오류가 있어서 꼭 수행되어야 하는 동작이나

기능을 완료할 수 없는 경우에 발생한다. 이러한 오류(logical error)

는 동시에 지정할 수 없는 논리적으로 불일치하는 파라미터를 지정

하는 경우거나, 꼭 지정되어야 하는 필수 파라미터가 생략된 경우,

혹은 데이터 셋의 키 길이, 레코드 크기 등으로 지정한 값이 올바

르지 않을 때 발생한다. 이러한 상황이 발생한 경우 컨디션 코드는

12로 설정되고 오류성 메시지가 출력된다.

IDCAMS(ERROR): {error description or logical error

code}

16 현재 명령을 수행하는 과정에서 심각한 에러가 발생하여, 사용자가

지정한 나머지 명령을 실행할 수 없는 경우에 반환되는 컨디션 코

드 값이다.

다음과 같은 경우에 발생합니다.

- DCAMS의 실행 로그를 사용할 수 없는 경우.

실행 시 출력 메시지가 저장될 출력 데이터 셋을 사용할 수

없는 경우 컨디션 코드 16이 발생한다.

예를 들면, SYSPRINT DD를 열지 못한 경우 IDCAMS는 더 이

상의 실행하지 않고 바로 종료한다.

- IDCAMS 명령을 잘못 코딩한 경우.

특히 IF-THEN-ELSE문을 잘못 코딩하거나 여러 라인에 걸쳐

서 명령을 코딩할 때 '-' (하이픈)을 적절히 사용하지 않은 경우

에 발생한다.

- 시스템 데이터 셋이 망가진 경우.

즉, BCS나 VVDS의 내용에 오류가 존재해서 명령을 수행할

수 없는 경우이며, SYSPRINT DD를 사용할 수 있는 경우라면

다음과 같은 오류 메시지가 출력된다.

IDCAMS(ERROR): {error description or logical error

code} 또는 IDCAMS(FATAL): {error description}

[표 2-10] 컨디션 코드

조건 코드 변수명 (LASTCC와 MAXCC)

Page 77: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 77

IDCAMS는 LASTCC 및 MAXCC라는 변수에 컨디션 코드 값을 저장한다.

LASTCC에는 최근 실행한 명령의 컨디션 코드가 저장되고, MAXCC에는 기존에

발생한 컨디션 코드 중에서 가장 큰 값이 저장된다.

LASTCC 및 MAXCC는 SET 명령을 이용해서 사용자가 직접 설정할 수 있다.

다음은 NOT.EXIST.SDS 데이터 셋을 삭제한 후 LASTCC의 값이 8이면 강제적

으로 MAXCC를 0으로 설정하는 예이다.

DELETE NOT.EXIST.SDS

IF LASTCC = 8 THEN SET MAXCC=0

DEFINE ...

관련 환경설정

idcams.conf

[DEFAULT_USER]

USERNAME={username}

GROUPNAME={groupname}

PASSWORD={password}

IDCAMS는 idcams.conf 설정 파일을 사용한다. 이 설정 파일의 내용을 변경

하여 IDCAMS의 몇 가지 동작을 사용자의 요구에 맞게 조정할 수 있다.

OpenFrame 보안제품인 TACF와 함께 IDCAMS를 연동하는 경우 IDCAMS를 명

령어 라인에서 실행하면, IDCAMS는 사용자이름/기본그룹명/비밀번호의 입력을

기다린다. 매번 사용자이름과 기본그룹명 그리고 비밀번호를 입력하지 않으려면

[DEFAULT_USER] 섹션의 각 항목에 기본적인 사용자 정보를 설정한다.

JCL에 의해서 JOB의 일부 스텝으로 IDCAMS가 실행되는 경우에는 TJES에서

필요한 사용자정보를 제공하므로 별도로 위의 설정을 사용하지 않는다.

[TACF]

CHECK_DSAUTH={YES|NO}

TACF와 IDCAMS를 연동하는 경우 IDCAMS의 각 기능 명령어에서 데이터 셋을

Page 78: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 78

접근할 때 권한 체크를 수행할 지 여부를 설정한다.

다음은 현재 IDCAMS의 명령 중에서 오류를 발생시키지 않도록 형식적으로만

지원하고 있는 파라미터에 대한 표이다.

명령어 파라미터

ALTER [ACCOUNT(account–info)]

[ADDVOLUMES(volser[ volser...])]

[BUFFERSPACE(size)]

[BUFND(number)]

[BUFNI(number)]

[BWO(TYPECICS|TYPEIMS|NO)]

[CCSID(value)]

[CODE(code)]

[ECSHARING|NOECSHARING]

[ERASE|NOERASE]

[EXCEPTIONEXIT(entrypoint)]

[FILEDATA(TEXT|BINARY)]

[FREESPACE(CI-percent[ CA-percent])]

[FRLOG(NONE[ REDO])]

[INHIBIT|UNINHIBIT]

[KEYS(length offset)]

[LOCK|UNLOCK]

[LOG(NONE|UNDO|ALL)]

[LOGSTREAMID(logstream)]

[MANAGEMENTCLASS(class)]

[NULLIFY(

[AUTHORIZATION(MODULE|STRING)]

[BWO]

[CODE]

[EXCEPTIONEXIT]

[LOG]

[LOGSTREAMID]

[RECORDSIZE(average maximum)]

[REMOVEVOLUMES(volser[ volser...])]

Page 79: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 79

명령어 파라미터

[REUSE|NOREUSE]

[ROLLIN]

[SHAREOPTIONS(crossregion[ crosssystem])]

[STORAGECLASS(class)]

[STRNO(number)]

[TYPE(LINEAR)]

[UNIQUEKEY|NONUNIQUEKEY]

[UPDATE|NOUPDATE]

[UPGRADE|NOUPGRADE]

[WRITECHECK|NOWRITECHECK]

[표 2-11] Ignored ALTER 파라미터

명령어 파라미터

BLDINDEX [{EXTERNALSORT|INTERNALSORT}]

[{SORTCALL|NOSORTCALL}]

[SORTDEVICETYPE(device type)]

[SORTFILENUMBER(number)]

[SORTMESSAGEDD(ddname)]

[SORTMESSAGELEVEL({ALL|CRITICAL|NONE})]

[WORKFILES(ddname[ ddname...])

[표 2-12] Ignored BLDINDEX 파라미터

명령어 공통 파라미터

DEFINE command [ACCOUNT(account–info)]

[BUFFERSPACE(size)]

[BWO(TYPECICS|TYPEIMS|NO)]

[ERASE|NOERASE]

[EXCEPTIONEXIT(entrypoint)]

[FILE(ddname)]

[FREESPACE(CI-percent[ CA-percent])]

Page 80: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 80

명령어 공통 파라미터

[FRLOG(NONE[| REDO])]

[LOG(NONE|UNDO|ALL)]

[LOGSTREAMID(logstream)]

[MODEL(entryname[ catname])]

[REUSE|NOREUSE]

[SHAREOPTIONS(crossregion[ crosssystem])]

[SPEED|RECOVERY]

[WRITECHECK|NOWRITECHECK])

[표 2-13] Ignored DEFINE 파라미터

서브 명령어 파라미터

ALIAS (SYMBOLICRELATE(entryname))

[표 2-14] Ignored DEFINE ALIAS 파라미터

서브 명령어 파라미터

ALTERNATEINDE

X

(BUFFERSPACE(size)]

[ERASE|NOERASE]

[EXCEPTIONEXIT(entrypoint)]

[FREESPACE(CI-percent[ CA-percent]| 0 0)]

[MODEL(entryname[ catname])]

[REUSE|NOREUSE]

[SHAREOPTIONS(crossregion[ crosssystem]| 1 3)]

[SPEED|RECOVERY]

[WRITECHECK|NOWRITECHECK])

[DATA (

[ATTEMPTS(number)]

[AUTHORIZATION(entrypoint[ string])]

[BUFFERSPACE(size)]

[CODE(code)]

[ERASE|NOERASE]

Page 81: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 81

서브 명령어 파라미터

[EXCEPTIONEXIT(entrypoint)]

[FREESPACE(CI-percent[ CA-percent])]

[MODEL(entryname [ catname ])]

[REUSE|NOREUSE]

[SHAREOPTIONS(crossregion[ crosssystem])]

[SPEED|RECOVERY]

[WRITECHECK|NOWRITECHECK])]

[INDEX (

[ATTEMPTS(number)]

[AUTHORIZATION(entrypoint[ string])]

[CODE(code)]

[EXCEPTIONEXIT(entrypoint)]

[MODEL(entryname[ catname ])]

[REUSE|NOREUSE]

[SHAREOPTIONS(crossregion[ crosssystem])]

[WRITECHECK|NOWRITECHECK])]

[표 2-15] Ignored DEFINE ALTERNATEDINDEX 파라미터

서브 명령어 파라미터

CLUSTER ([ACCOUNT(account–info)]

[BUFFERSPACE(size)]

[BWO(TYPECICS|TYPEIMS|NO)]

[ERASE|NOERASE]

[EXCEPTIONEXIT(entrypoint)]

[FREESPACE(CI-percent[ CA-percent]|0 0)]

[FRLOG(NONE[| REDO])]

[LOG(NONE|UNDO|ALL)]

[LOGSTREAMID(logstream)]

[MODEL(entryname[ catname])]

[REUSE|NOREUSE]

[SHAREOPTIONS(crossregion[ crosssystem]|1 3)]

[SPEED|RECOVERY]

[WRITECHECK|NOWRITECHECK])

Page 82: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 82

서브 명령어 파라미터

[DATA (

[BUFFERSPACE(size)]

[ERASE|NOERASE]

[EXCEPTIONEXIT(entrypoint)]

[FREESPACE(CI-percent[ CA-percent])]

[MODEL(entryname[ catname])]

[REUSE|NOREUSE]

[SHAREOPTIONS(crossregion[ crosssystem])]

[SPEED|RECOVERY]

[WRITECHECK|NOWRITECHECK])]

[INDEX (

[EXCEPTIONEXIT(entrypoint)]

[MODEL(entryname [ catname])]

[REUSE|NOREUSE]

[SHAREOPTIONS(crossregion[ crosssystem])]

[WRITECHECK|NOWRITECHECK])]

[표 2-16] Ignored DEFINE CLUSTER 파라미터

서브 명령어 파라미터

GENERATIONDATAGROUP ([SCRATCH|NOSCRATCH])

[표 2-17] Ignored DEFINE GENERATIONDATAGROUP 파라미터

서브 명령어 파라미터

NONVSAM ([COLLECTION]

[FILESEQUENCENUMBERS(number[ number...])])

[표 2-18] Ignored DEFINE NONVSAM 파라미터

서브 명령어 파라미터

PATH ([MODEL(entryname[ catname])])

[표 2-19] Ignored DEFINE PATH 파라미터

Page 83: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 83

서브 명령어 파라미터

USERCATALOG ([BUFFERSPACE(size|3072)]

[BUFND(number)]

[BUFNI(number)]

[ECSHARING|NOECSHARING]

[FREESPACE(CI-percent[ CA-percent]|0 0)]

[ICFCATALOG|VOLCATALOG]

[LOCK|UNLOCK]

[MODEL(entryname[ catname])]

[SHAREOPTIONS(crossregion[crosssystem]| 3 4)]

[STRNO(number|2)]

[WRITECHECK|NOWRITECHECK])

[DATA (

[BUFFERSPACE(size)]

[BUFND(number)]

[FREESPACE(CI-percent[ CA-percent]| 0 0)]

[WRITECHECK|NOWRITECHECK])]

[INDEX (

[BUFNI(number)]

[WRITECHECK|NOWRITECHECK])]

[표 2-20] Ignored DEFINE USERCATALOG 파라미터

명령어 파라미터

DELETE [LIBRARYENTRY|

NVR|

PAGESPACE|

VOLUMEENTRY|

VVR]

[ERASE|NOERASE]

[FORCE|NOFORCE]

[PURGE|NOPURGE]

[RECOVERY|NORECOVERY]

[SCRATCH|NOSCRATCH]

[표 2-21] Ignored DELETE 파라미터

Page 84: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 84

명령어 파라미터

EXPORT [CIMODE|RECORDMODE]

[ERASE|NOERASE]

[INHIBITSOURCE|NOINHIBITSOURCE]

[INHIBITTARGET|NOINHIBITTARGET]

[PURGE|NOPURGE]

[TEMPORARY|PERMANENT]

[표 2-22] Ignored EXPORT 파라미터

명령어 파라미터

IMPORT [ALIAS|NOALIAS]

[ERASE|NOERASE]

[LOCK|UNLOCK]

[OBJECTS ([FILE(ddname)])]

[PURGE|NOPURGE]

[SAVRAC|NOSAVRAC]

[표 2-23] Ignored IMPORT 파라미터

명령어 파라미터

LISTCAT [LIBRARYENTRIES(libent)]

[PAGESPACE]

[VOLUMEENTRIES(volent)]

[EXPIRATION(days)]

[FILE(ddname)]

[LIBRARY(libname)]

[OUTFILE(ddname)]

[표 2-24] Ignored LISTCAT 파라미터

Page 85: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 85

명령어 파라미터

PRINT [DBCS]

[INSERTSHIFT((offset1 offset2)[(offset1 offset2 )...])|INSERTALL]

[SKIPDBCSCHECK((offset1 offset2)

[(offset1 offset2)...])|NODBCSCHECK]

[표 2-25] Ignored PRINT 파라미터

명령어 파라미터

REPRO [DBCS]

[ERRORLIMIT(value)]

[FILE(ddname)]

[INSERTSHIFT((offset1 offset2)[(offset1 offset2 )...])| INSERTALL]

[SKIPDBCSCHECK((offset1 offset2)[(offset1 offset2 )...])|

NODBCSCHECK]

[VOLUMEENTRIES(entryname)]

[ENCIPHER

({EXTERNALKEYNAME(keyname)|

INTERNALKEYNAME(keyname)|PRIVATEKEY}

[CIPHERUNIT(number|1)]

[DATAKEYFILE(ddname)|DATAKEYVALUE(value)]

[SHIPKEYNAMES(keyname[ keyname...])]

[STOREDATAKEY|NOSTOREDATAKEY]

[STOREKEYNAME(keyname)]

[USERDATA(value)])]

[DECIPHER

({DATAKEYFILE(ddname)|

DATAKEYVALUE(value)|SYSTEMKEY}

[SYSTEMDATAKEY(value)]

[SYSTEMKEYNAME(keyname)])]

[표 2-26] Ignored REPRO 파라미터

Page 86: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 86

2.3 IEBCOPY

한 개 이상의 PDS에 대해서 멤버들을 전체 또는 일부만 복사하거나 병합하기

위해 사용하는 유틸리티 프로그램이다.

IEBCOPY 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

- PDS에 대해 복사 또는 병합 기능을 수행한다.

- PDS의 특정 멤버만 선택해서 복사하고, 선택된 멤버 이름을 재정의한다.

- PDS의 특정 멤버만 제외하고 복사한다.

- PDS 멤버를 교체한다.

DD 설정

- SYSPRINT DD

IEBCOPY 메시지를 저장하는 데이터 셋을 정의한다.

- SYSUT1 DD 또는 user_defined_name1 DD

PDS 타입의 입력 데이터 셋을 정의한다.

- SYSUT2 DD 또는 user_defined_name2 DD

PDS 타입의 출력 데이터 셋을 정의한다.

- SYSIN DD

IEBCOPY 명령어를 정의한다.

명령어 설정

IEBCOPY에서는 두 가지 방법으로 명령어를 설정할 수 있다.

JCL의 EXEC문의 PARM 파라미터를 이용하여 명령어를 기술하거나 JCL의

SYSIN문에 명령어를 기술할 수 있다.

Page 87: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 87

EXEC PARM 파라미터 설정

EXEC문의 PARM 파라미터 명령어 구문은 다음과 같다.

//[stepname] EXEC PGM=IEBCOPY[,REGION={n|nK|nM}][,PARM=<parms>]

PARM 파라미터의 parms 값으로 다음 세가지 중 하나의 명령어를 설정한다.

- COPY

SYSUT1 데이터 셋을 SYSUT2 데이터 셋으로 복사한다.

- REPLACE

출력 데이터 셋에 있는 멤버와 같은 이름으로 복사할 경우, 이 명령어가 있

으면 오버라이드하고 그렇지 않으면 복사하지 않는다.

- LIST={YES|NO}

복사된 멤버들의 이름을 SYSPRINT에 기록하며, 디폴트는 YES이다.

EXEC문의 PARM 파라미터에 COPY나 REPLACE를 설정하면 SYSIN DD에

설정한 명령어는 무시한다.

COPY

PDS의 멤버를 복사한다.

SYSIN DD의 COPY 명령어 구문은 다음과 같다.

[label] COPY OUTDD=DDNAME,INDD=[(]{DDNAME|(DDNAME,R)}[,...][)]

[,LIST={YES|NO}]

다음은 SYSIN DD의 COPY문의 파라미터에 대한 설명이다.

- OUTDD=DDNAME

출력 데이터 셋을 위한 DD 이름을 기술한다.

- INDD=[(]{DDNAME|(DDNAME,R)}[,...][)]

입력 데이터 셋을 위한 DD 이름을 기술한다.

출력 데이터 셋에 복사하려는 멤버가 이미 존재하고 있는 경우,

R(REPLACE) 파라미터가 있으면 오버라이드하고, 없으면 복사하지 않는다.

- LIST={YES|NO}

SYSPRINT에 복사한 멤버들의 이름을 기록하며, 디폴트는 YES이다. 만약,

Page 88: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 88

LIST가 기술되지 않으면 EXEC PARM의 내용이 적용된다.

INDD

COPY문 다음에 설정하며, 설정한 순서로 입력 데이터 셋을 출력 데이터 셋으

로 새로운 COPY 작업을 수행한다.

COPY 문의 서브 명령어로 쓰이는 INDD에 대해서는 여러 개의 입력 데이터 셋

에 대하여 각각 EXCLUDE문이나 SELECT문을 적용하기 어렵지만, INDD문을

사용하면 여러 개의 입력 데이터 셋에 대하여 각각 EXCLUDE문과 SELECT문

을 사용할 수 있다.

EXCLUDE

COPY 문을 수행하기 전에 입력 데이터 셋에서 특정 멤버를 제외한다.

EXCLUDE 문의 구문은 다음과 같다.

[label] EXCLUDE MEMBER=[(]name1[,name2][,...][)]

다음은 EXCLUDE 문의 파라미터에 대한 설명이다.

- MEMBER

복사하지 않을 멤버의 이름을 기술한다. 해당 멤버들은 COPY문 수행 시

복사대상에서 제외된다.

SELECT

입력 데이터 셋의 특정 멤버를 선택하여 새로운 이름으로 COPY 작업을 수행한

다.

SELECT 문의 구문은 다음과 같다.

[label] SELECT MEMBER=({name1|(name1,newname1[,R])|(name1,,R)}

[,{name2|(name2,newname2[,R])|(name2,,R)}][,...])

Page 89: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 89

다음은 SELECT 문의 파라미터에 대한 설명이다.

- MEMBER

name 필드에 기술한 입력 데이터 셋의 멤버를 newname 필드에서 지정한

새로운 이름으로 복사한다.

R(REPLACE) 파라미터를 선택하면, 입력 데이터 셋의 멤버 이름과 출력 데

이터 셋의 멤버 이름이 같을 경우 입력 데이터 셋의 멤버를 출력 데이터 셋

의 멤버로 오버라이드 하게 된다.

사용예제

다음은 PDS DATASET1을 PDS DATASET2로 전체 데이터 셋을 복사하는 예이

다.

//COPYALL JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//JOBSTEP EXEC PGM=IEBCOPY

//SYSPRINT DD SYSOUT=A

//SYSUT1 DD DSNAME=DATASET1,DISP=(SHR,KEEP)

//SYSUT2 DD DSNAME=DATASET2,UNIT=disk,VOL=SER=200000,

// DISP=(NEW,CATLG))

//SYSIN DD DUMMY

Page 90: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 90

아래처럼 DATASET1의 모든 멤버 A, B, F가 PDS DATASET2로 모두 복사된다.

[그림 2-4] PDS 데이터 셋 복사

다음은 4개의 데이터 셋을 병합하는 예이다. 이미 존재하고 있는 데이터 셋

DATASET5에 DATASET1, DATASET3, DATASET4의 멤버가 복사되어 병합된다.

SYSIN DD의 명령어 INDD 순서에 따라 DATASET1이 먼저 복사되고,

DATASET4, DATASET3의 순서로 복사된다.

//MERGE JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//JOBSTEP EXEC PGM=IEBCOPY

//SYSPRINT DD SYSOUT=A

//IN01 DD DSNAME=DATASET1,DISP=(SHR,KEEP)

//IN02 DD DSNAME=DATASET3,DISP=(SHR,KEEP)

//OUT01 DD DSNAME=DATASET5,DISP=(SHR,KEEP)

//IN03 DD DSNAME=DATASET4,DISP=(SHR,KEEP)

//SYSIN DD *

COPYOPER COPY OUTDD=OUT01

INDD=IN01

INDD=IN03

INDD=IN02

/*

Page 91: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 91

IEBCOPY가 시작되기 전 DATASET5에는 A라는 멤버가 존재하고 있다.

DATASET1이 최초로 복사되는데, A라는 멤버는 이미 OUTPUT에 있고,

REPLACE 조건이 없으므로 A는 복사되지 않고 B와 F만 복사된다. 다음으로

DATASET4가 복사되는데, 멤버 B 역시 이미 OUTPUT에 있으므로 복사되지 않

고, 멤버 D와 X만 복사된다. 마지막으로 DATASET3이 복사된다. 멤버 F와 X가

이미 OUTPUT에 있으므로 복사되지 않고 멤버 C와 Y만 복사된다.

아래 그림은 위의 예제를 실행하면서 출력 데이터 셋에 멤버가 복사되는 과정과

최종 복사된 멤버를 보여준다.

[그림 2-5] 데이터 셋 병합

다음은 입력 데이터 셋에서 특정 멤버를 선택하거나 제외하여 복사하는 예이다.

MERGE EXEC PGM=IEBCOPY

//IN01 DD DSNAME=DATASET4,DISP=(SHR,KEEP)

//IN02 DD DSNAME=DATASET3,DISP=(SHR,KEEP)

//OUT01 DD DSNAME=DATASET6,DISP=(OLD,KEEP)

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

COPYOPER COPY OUTDD=OUT01

Page 92: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 92

INDD=IN01

EXCLUDE MEMBER=X

INDD=IN02

SELECT MEMBER=((F,Z),(C,A,R),(Y,,R))

/*

IEBCOPY가 실행되기 전에 DATASET6에는 멤버 A, K, Y가 있다. INDD=IN01에

의해 먼저 DATASET4가 복사되는데, EXCLUDE문에 의해 멤버 X는 제외하고,

멤버 B와 D가 복사된다. INDD=IN02에 의해 DATASET3이 복사된다. SELECT문

에 의해, 멤버 F가 새로운 이름 Z로 복사되고, 멤버 C가 새로운 이름 A로 복사

된다. 이 때, DATASET6에 이미 멤버 A가 있으므로, 내용을 오버라이드 하게 된

다. 만약 REPLACE가 지정되지 않았다면, 복사하지 않고 다음 처리로 넘어간다.

마지막으로 멤버 Y가 기존 멤버 Y를 오버라이드한다.

아래 그림은 위의 예제를 실행하면서 출력 데이터 셋에 멤버가 복사되는 과정과

최종 복사된 멤버를 보여준다.

[그림 2-6] 특정 멤버 복사

Page 93: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 93

다음은 INDD문을 사용하여 여러 개의 INPUT을 다르게 처리하는 경우의 예이다.

//INDD01 EXEC PGM=IEBCOPY

//IN01 DD DSNAME=DATASET11,DISP=(SHR,KEEP)

//IN02 DD DSNAME=DATASET12,DISP=(SHR,KEEP)

//IN03 DD DSNAME=DATASET13,DISP=(SHR,KEEP)

//OUT01 DD DSNAME=DATASET14,DISP=(OLD,KEEP)

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

COPYOPER COPY OUTDD=OUT01

INDD=IN01

EXCLUDE MEMBER=B

INDD=IN02

SELECT MEMBER=((B,,R),(Y,N))

INDD=IN03

/*

IN01 DD에 정의된 데이터 셋 DATASET11로부터 멤버 B를 제외한 다른 멤버 A

와 C를 복사한다. IN02 DD에 정의된 데이터 셋 DATASET12로부터 멤버 B'를

교체하고, 멤버 Y의 이름을 바꾸어 N으로 복사한다. IN03 DD에 정의된 데이터

셋 DATASET13으로부터 전체 멤버를 복사한다. 단, 같은 이름의 멤버가 이미

존재할 경우 교체하지 않는다.

Page 94: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 94

[그림 2-7] IEBCOPY4

다음은 COPY문의 서브 명령어로 INDD를 사용하는 경우의 예이다.

//INDD02 EXEC PGM=IEBCOPY

//IN01 DD DSNAME=DATASET11,DISP=(SHR,KEEP)

//IN02 DD DSNAME=DATASET12,DISP=(SHR,KEEP)

//IN03 DD DSNAME=DATASET13,DISP=(SHR,KEEP)

//OUT01 DD DSNAME=DATASET14,DISP=(OLD,KEEP)

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

COPYOPER COPY OUTDD=OUT01,INDD=(INO1,(IN02,R),IN03)

/*

IN01 DD에 정의된 데이터 셋 DATASET11로부터 전체 멤버를 복사한다. 단, 같

은 이름의 멤버가 이미 존재할 경우 교체하지 않는다. IN02 DD에 정의된 데이터

Page 95: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 95

셋 DATASET12로부터 전체 멤버를 복사한다. 멤버 B'은 교체된다. IN03 DD에

정의된 데이터 셋 DATASET13으로부터 전체 멤버를 복사한다. 단, 같은 이름의

멤버가 이미 존재할 경우 교체하지 않는다.

[그림 2-8] IEBCOPY5

유의사항

IEBCOPY 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD에 출력하고, 각 오류에

해당하는 리턴코드를 반환한다.

Page 96: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 96

IEBCOPY 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋 관련 (pgmdd, open/close, read/write) 오류

리턴코드: 12 (Unrecoverable)

- SYSIN DD 명령어 문법 오류

리턴코드: 12 (Unrecoverable)

- 기타 IEBCOPY 유틸리티 프로그램 오류

리턴코드: 12 (Unrecoverable)

Appendix

다음과 같은 명령어 약자를 사용할 수 있다.

명령어 약어

COPY C

EXCLUDE E

SELECT S

OUTDD O

INDD I

LIST L

MEMBER M

[표 2-27] IEBCOPY 명령어 약자

2.4 IEBEDIT

SYSIN DD로 기술된 명령에 따라 입력 데이터 셋에 주어진 JCL에서 JOB과

STEP을 발췌하여 출력 데이터 셋으로 새로운 JCL 데이터 셋을 생성하는 JCL

편집 유틸리티 프로그램이다. 모든 선택된 JOB과 STEP은 입력 데이터 셋에 보

이는 것과 같은 순서로 출력 데이터 셋으로 복사된다.

Page 97: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 97

DD 설정

- SYSUT1 DD

JCL이 저장된 입력 데이터 셋을 기술한다.

- SYSUT2 DD

새로 생성된 JCL을 저장할 데이터 셋을 기술한다.

- SYSIN DD

IEBEDIT의 명령어를 기술한다.

참고: SYSUT1, SYSUT2와 SYSIN 데이터 셋의 블록 크기는 80의 배수이어야 한다.

명령어 설정

다음은 SYSIN DD에서 설정하는 IEBEDIT의 명령어이다.

EDIT

어떤 JOB의 어떤 STEP들을 출력 데이터 셋에 포함할지 조건을 명시한다.

EDIT 문을 생략할 경우, 입력 데이터 셋을 출력 데이터 셋으로 복사하게 된다.

EDIT 문의 구문은 다음과 같다.

[label] EDIT [START=jobname]

[,TYPE={POSITION|INCLUDE|EXCLUDE}]

[,STEPNAME=(namelist)]

[,NOPRINT]

다음은 EDIT 문의 파라미터에 대한 설명이다.

- START=jobname

EDIT문을 적용할 jobname을 기술한다.

하나의 EDIT문은 한 개의 JOB에만 적용되며 TYPE과 STEPNAME 없이

START를 기술하면, 해당 JOB과 JOB STEP의 내용이 출력 데이터 셋으로

모두 복사된다.

Page 98: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 98

START에 jobname을 생략할 경우, 첫번째 EDIT문이었다면 첫번째 JOB을,

두번째 JOB부터는 이전의 EDIT문이 지정한 JOB의 다음 JOB을 자동으로

선택한다.

해당 JOB이 정해지면 해당 JOB 문장은 필수적으로 포함되므로 여러 JOB

으로부터 STEP을 발췌하여 하나의 JOB으로 만드는 것은 불가능하다.

- TYPE={POSITION|INCLUDE|EXCLUDE}

EDIT문의 동작을 기술한다. 다음 중 하나의 옵션을 선택한다.

a) POSITION

STEPNAME으로 지정한 STEP을 포함하여 해당 JOB의 모든 스텝을

출력 데이터 셋에 포함하고, 이전의 모든 스텝은 무시한다.

b) INCLUDE

해당 JOB의 STEP중에서 STEPNAME으로 지정한 STEP만을 출력 데

이터 셋에 포함한다.

c) EXLCUDE

해당 JOB의 STEP중에서 STEPNAME으로 지정한 STEP 이외의 모든

STEP을 데이터 셋에 포함한다.

- STEPNAME=(namelist)

인자로 사용할 namelist를 기술한다. STEP의 namelist는 다음의 세가지 방

법을 모두 사용하여 기술할 수 있다.

a) STEP

b) STEPA,STEPB,....

c) STEPA-STEPG (STEPA부터 STEPG까지를 의미)

참고: 콤마(,)와 대쉬(-)를 구분자로 하여 혼용할 수 있다.

- NOPRINT

NOPRINT를 설정하지 않으면 기본적으로 출력 데이터 셋의 내용이

SYSPRINT로 출력된다. 출력 데이터 셋이 SYSPRINT로 출력되지 않도록

하려면 반드시 이 옵션을 설정해야 한다.

사용예제

다음은 SYSUT1 DD로 주어진 JCL을 SYSIN 명령어에 맞춰 EDIT한 후

SYSUT2 DD에 저장하는 예이다.

Page 99: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 99

첫번째 EDIT 문장은 JOB1에서 T12 스텝 이후로만 출력한다.

두번째 EDIT 문장은 JOB2에서 T22와 T23 스텝만을 출력한다.

마지막 EDIT 문장은 JOB2에서 T22와 T23 스텝을 제외한 나머지 스텝을 모두

출력한다.

//STEP1 EXEC PGM=IEBEDIT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

EDIT START=,TYPE=POSITION,STEPNAME=T12

EDIT START=JOB2,TYPE=INCLUDE,STEPNAME=(T22,T23)

EDIT START=JOB2,TYPE=EXCLUDE,STEPNAME=(T22,T23)

/*

//SYSUT1 DD DATA

//JOB1 JOB CLASS=A

//T11 EXEC PGM=IEFBR14

/TEMP1 DD TEMP1

//T12 EXEC PGM=IEFBR14

//TEMP2 DD TEMP2

//T13 EXEC PGM=IEFBR14

//JOB2 JOB CLASS=B

//T21 EXEC PGM=IEBEDIT

//TEMP3 DD TEMP3

//T22 EXEC PGM=IEBEDIT

//TEMP4 DD TEMP4

//TEMP41 DD TEMP41

//T23 EXEC PGM=IEBEDIT

//TEMP5 DD TEMP5

//T24 EXEC PGM=IEBEDIT

//TEMP6 DD TEMP6

/*

//SYSUT2 DD DSNAME=OFTEST.IEBEDIT.OUT2,

// DISP=(NEW,CATLG),DCB=(RECFM=F,LRECL=80,BLKSIZE=80)

Page 100: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 100

다음은 위의 예제에 대한 결과로서 생성된 SYSUT2 JCL이다.

(EDIT START=,TYPE=POSITON,STEPNAME=T12으로 생성)

//JOB1 JOB CLASS=A

//T12 EXEC PGM=IEFBR14

//TEMP2 DD TEMP2

//T13 EXEC PGM=IEFBR14

//JOB2 JOB CLASS=B

(EDIT START=JOB2,TYPE=INCLUDE,STEPNAME=(T22,T23)으로 생성)

//JOB2 JOB CLASS=B

//T22 EXEC PGM=IEBEDIT

//TEMP4 DD TEMP4

//TEMP41 DD TEMP41

//T23 EXEC PGM=IEBEDIT

//TEMP5 DD TEMP5

(EDIT START=JOB2,TYPE=EXCLUDE,STEPNAME=(T22,T23)으로 생성)

//JOB2 JOB CLASS=B

//T21 EXEC PGM=IEBEDIT

//TEMP3 DD TEMP3

//T24 EXEC PGM=IEBEDIT

//TEMP6 DD TEMP6

참고: 더 자세한 IEBEDIT 정보에 대해서는 “IBM OS/390 DFSMSdfp utilities”의 “IEBEDIT”을 참고한다.

Page 101: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 101

2.5 IEBGENER

순차 데이터 셋 또는 PDS의 멤버를 복사하고자 할 때 사용하는 유틸리티 프로

그램으로 ICEGENER 유틸리티 프로그램과 동일한 기능을 제공한다.

IEBGENER 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

- 순차 데이터 셋이나 PDS의 멤버를 복사한다.

- 순차 데이터 셋으로부터 PDS를 생성한다.

- 기존의 PDS에 멤버를 추가한다.

- 입력 레코드를 편집한다.

DD 설정

- SYSPRINT DD

IEBGENER의 메시지가 저장되는 데이터 셋을 정의한다.

- SYSUT1 DD

입력 데이터 셋을 정의하며, 순차 데이터 셋이나 PDS의 멤버가 될 수 있다.

- SYSUT2 DD

출력 데이터 셋을 정의하며, 순차 데이터 셋이나 PDS의 멤버 또는 PDS가

될 수 있다.

- SYSIN DD

IEBGENER의 명령어를 정의한다.

명령어 설정

IEBGENER 유틸리티가 제공하는 기능을 수행하기 위한 명령어를 SYSIN DD에

기술한다. SYSIN DD에 어떠한 명령어도 기술되지 않은 경우는 SYSUT1의 데이

터 셋을 SYSUT2의 데이터 셋으로 복사하는 기능을 제공한다.

Page 102: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 102

다음은 SYSIN DD에서 설정하는 IEBGENER의 명령어이다.

GENERATE

MEMBER와 RECORD의 매개변수에 대한 설정을 한다.

GENERATE 문의 구문은 다음과 같다.

[label] GENERATE [,MAXNAME=n]

[,MAXFLDS=n]

[,MAXGPS=n]

[,MAXLITS=n]

다음은 GENERATE 문의 파라미터에 대한 설명이다.

- MAXNAME=n

최대 멤버 수를 지정한다. 최대 3276개의 멤버를 지정할 수 있다.

- MAXFLDS=n

레코드의 최대 필드 수를 지정한다. 최대 4096개까지 지정할 수 있다.

- MAXGPS=n

레코드의 최대 IDENT 개수를 지정한다. 최대 2520개까지 지정할 수 있다.

- MAXLITS=n

레코드의 필드에서 사용되는 리터럴의 최대 캐릭터 개수를 지정한다. 최대

2730개까지 지정할 수 있다.

MEMBER

PDS의 여러 멤버를 가지고 출력 레코드가 생성될 경우, 생성할 멤버 개수만큼

MEMBER문이 필요하다.

MEMBER 문의 구문은 다음과 같다.

[label] MEMBER NAME=(name[,alias1][,alias2][,...])

Page 103: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 103

다음은 MEMBER 문의 파라미터에 대한 설명이다.

- NAME

생성할 멤버의 이름을 기술한다.

참고: 현재 IEBGENER 유틸리티의 MEMBER문 중 alias는 오류를 발생시키지 않도록 형

식적으로만 지원하고 있다.

RECORD

입력 레코드에 대해서 어떻게 처리할 것인지 조건을 기술한다.

RECORD 문의 구문은 다음과 같다.

[label] RECORD [IDENT=(length,'name',input-location)]

[,FIELD=([length],

[{input-location|'literal'}],

[conversion],

[output-location])]

[,FIELD=...]

다음은 RECORD 문의 파라미터에 대한 설명이다.

- IDENT

MEMBER문이 RECORD문 전에 나왔을 경우, 그 멤버에 복사될 입력 레코

드에 대한 조건을 나타내고, 같은 레코드의 FIELD에 대해서 적용될 입력

레코드를 구별한다.

레코드의 input-location에서 length 만큼의 값과 name 값을 비교하여 값이

같으면 멤버의 마지막 레코드가 되거나 FIELD가 적용되는 마지막 레코드가

된다.

참고: length는 name을 식별하기 위한 길이를 최대 8byte까지 지정할 수 있다. name은 마지막 레코드를 식별하기 위한 값으로서 반드시 하이픈(-) 안에 기술되어

야 한다. Input-location은 입력 레코드에서 name값과 비교할 FIELD의 첫번째 시작위치를 지정한다.

- FIELD

레코드 편집을 위한 정보를 기술한다.

입력 레코드상에서 input-location 위치부터 length만큼의 데이터를 출력 레

코드의 output-location 위치에 쓰거나 리터럴을 length 만큼 출력 레코드의

output-location 위치에 쓴다.

Page 104: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 104

참고: length는 처리되는 입력 필드의 길이 또는 리터럴의 길이를 기술한다. input-location은 처리되는 필드의 시작위치를 지정하고, 리터럴은 output-location에 위치해야 하는 리터럴을 지정한다. conversion 파라미터로 CG, CV, GC, GV, HE, PZ, VC, VG, ZP를 사용할 수 있으나 해당 기능은 무시되며 이외의 값을 사용할 경우 구문 오류가 발생한다. 또, output-location은 출력 레코드에 쓰여

질 시작 위치를 지정한다.

사용예제

다음은 순차 데이터 셋을 복사하는 예이다.

SYSIN DD에 명령어가 기술되어있지 않으므로 순차 데이터 셋인 TEST.INPUT을

TEST.COPY로 복사하고, IEBGENER의 메시지는 JOB에서 사용하는 메시지 클

래스에 저장한다.

//COPY JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//COPYSDS EXEC PGM=IEBGENER

//SYSUT1 DD DSNAME=TEST.INPUT,DISP=(SHR,KEEP)

//SYSUT2 DD DSNAME=TEST.COPY,DISP=(NEW,CATLG),

// DCB=(RECFM=FB,LRECL=120 ,BLKSIZE=120)

//SYSPRINT DD SYSOUT=*

//SYSIN DD DUMMY

다음은 순차 데이터 셋으로 새 멤버를 가지는 PDS를 구성하는 예이다.

순차 데이터 셋인 TEST.INPUT을 MEMBER1, MEMBER2, MEMBER3으로 나누

어 새로 생성한 PDS TEST.PDS01에 저장한다. TEST.INPUT에서 입력 레코드의

30번째 위치부터 37번째까지의 값이 ‘firstxxx’인 레코드가 나올 때까지 순차 검

색하여 첫 레코드가 검색되면 ‘firstxxx’ 레코드를 포함하여 현재까지 검색된 레

코드를 MEMBER1에 복사하고, ‘firstxxx’ 레코드 다음 레코드부터 다시

‘secondxx’ 레코드를 검색하기 시작한다. ‘secondxx’ 레코드가 검색되면 ‘firstxxx’

레코드 이후부터 ‘secondxx’ 레코드를 포함하여 검색한 모든 레코드를

MEMBER2에 복사하고, ‘secondxx’ 레코드 이후의 모든 레코드는 MEMBER3에

복사된다.

Page 105: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 105

//CREATE JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//NEWPDS EXEC PGM=IEBGENER

//SYSUT1 DD DSNAME=TEST.INPUT,DISP=(SHR,KEEP)

//SYSUT2 DD DSNAME=TEST.PDS01,DISP=(NEW,CATLG),

// DCB=(DSORG=PO,RECFM=FB,LRECL=120,BLKSIZE=120)

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

GENERATE MAXNAME=3,MAXGPS=2

MEMBER NAME=MEMBER1

GROUP1 RECORD IDENT=(8,'firstxxx',30)

MEMBER NAME=MEMBER2

GROUP2 RECORD IDENT=(8,'secondxx',30)

MEMBER NAME=MEMBER3

/*

다음은 기존의 PDS에 멤버를 추가하는 예이다.

순차 데이터 셋인 TEST.INPUT2의 레코드에서 15번째 byte부터 25번째 byte까

지 레코드의 값을 ‘endofrecord’와 비교하여 값이 일치하면 검색한 모든 레코드

를 MEMX에 복사하고, ‘endofrecord’ 레코드 이후의 모든 레코드는 MEMY에 복

사한다. 그리고 기존의 PDS TEST.PDS01에 PDS 멤버로 MEMX와 MEMY를 추

가한다.

//MERGE JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//MERGEPDS EXEC PGM=IEBGENER

//SYSUT1 DD DSNAME=TEST.INPUT2,DISP=(SHR,KEEP)

//SYSUT2 DD DSNAME=IEBGENER.TEST.PDS01,DISP=(OLD,KEEP)

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

GENERATE MAXNAME=2,MAXGPS=1

MEMBER NAME=MEMX

GROUP1 RECORD IDENT=(11,'endofrecord',15)

MEMBER NAME=MEMY

/*

Page 106: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 106

다음은 입력 레코드를 수정하는 예이다.

TEST.INPUT3 레코드를 수정하여 TEST.EDIT01로 복사한다.

//EDIT JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//EDIT EXEC PGM=IEBGENER

//SYSUT1 DD DSNAME=TEST.INPUT3,DISP=(SHR,KEEP)

//SYSUT2 DD DSNAME=IEBGENER.TEST.EDIT01,DISP=(NEW,CATLG),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=80)

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

GENERATE MAXGPS=1,MAXFLDS=4,MAXLITS=10

RECORD IDENT=(8,'firstmem',1),FIELD=(50,76,,31),

FIELD=(30,20,,1)

RECORD FIELD=(70,41,,11),FIELD=(10,'**********',,1)

/*

위의 예제에서 두 개의 RECORD문 중, 첫번째 RECORD의 IDENT 조건에 의해

서 순차적으로 입력 레코드의 첫번째 byte부터 8byte의 값으로 'firstmem'이 나

올 때까지, 모든 레코드에 대해 FIELD 조건을 적용한다.

즉, 아래 그림과 같이 입력 레코드의 76번째 byte 위치부터 50 byte 길이만큼의

값을 출력 레코드의 31번째 byte 위치에 복사하고, 입력 레코드의 20번째 byte

위치부터 30 byte 길이의 값을 출력 레코드의 첫번째 byte 위치에 복사한다.

[그림 2-9] 첫번째 입력 레코드 필드 복사

IDENT 조건에 맞는 레코드가 처리되고 난 다음부터는 두번째 RECORD문이 아

래 그림과 같이 적용된다. 입력 레코드의 41번째 byte 위치부터 70 byte 길이만

큼의 값을 출력 레코드의 11번째 byte 위치에 복사하고, 출력 레코드의 처음 10

byte는 리터럴 ‘**********'로 복사한다.

Page 107: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 107

[그림 2-10] 두번째 입력 레코드 필드 복사

유의사항

IEBGENER 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD에 출력하고, 각 오류에

해당하는 리턴코드를 반환한다.

IEBGENER 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋 관련 (pgmdd, open/close, read/write) 오류

리턴코드: 12 (Unrecoverable)

- SYSIN DD 명령어 문법 오류

리턴코드: 12 (Unrecoverable)

- 기타 IEBGENER 유틸리티 프로그램 오류

리턴코드: 12 (Unrecoverable)

참고: 유사한 유틸리티 프로그램으로는 ICEGENER가 있다.

Page 108: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 108

2.6 IEBPTPCH

순차 데이터 셋이나 PDS의 전체 또는 일부를 실제 출력할 형식으로 데이터를

생성하기 위한 유틸리티 프로그램이다.

IEBPTPCH 유틸리티 프로그램은 다음과 같은 경우에 사용될 수 있다.

- 순차 데이터 셋 또는 PDS 전체를 프린트한다.

- PDS의 특정 멤버를 프린트한다.

- 순차 데이터 셋 또는 PDS의 레코드 필드를 편집하여 프린트한다.

DD 설정

- SYSPRINT DD

IEBPTPCH 메시지가 저장되는 데이터 셋을 기술한다.

- SYSUT1 DD

순차 데이터 셋이나 PDS 타입의 입력 데이터 셋을 기술한다.

- SYSUT2 DD

순차 데이터 셋 타입의 출력 데이터 셋을 기술한다.

- SYSIN DD

IEBPTPCH 명령어를 기술한다.

명령어 설정

PRINT

데이터를 프린트한다.

PRINT 명령어 형식은 다음과 같다.

[label] PRINT [PREFORM=A]

[,TYPORG={PS|PO}]

[,CNTRL={n|1}]

Page 109: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 109

[,STRTAFT=n]

[,STOPAFT=n]

[,SKIP=n]

[,MAXNAME=n]

[,MAXFLDS=n]

[,MAXGPS=n]

[,MAXLITS=n]

[,MAXLINE=n]

다음은 PRINT 명령어의 파라미터에 대한 설명이다.

- PREFORM=A

각 레코드의 첫번째 byte가 제어 문자를 의미하는지 기술한다.

즉, 데이터가 이미 프린트될 포맷으로 갖추었고, 그 형태로 프린트 되어야

한다는 것을 의미한다. PREFORM이 기술되면 TYPORG를 제외한 추가적인

PRINT 문의 모든 파라미터 설정은 무시된다.

여기서 A는 ASA 제어 문자를 의미한다.

- TYPORG={PS|PO}

입력 데이터 셋이 순차 데이터 셋(PS)인지 분할 데이터 셋(PO)인지 기술한

다. 디폴트는 PS이다.

- CNTRL={n|1}

라인 스페이스 값을 설정한다.

라인 스페이스로 3을 설정할 경우 첫번째 라인에는 데이터를 쓰고, 두번째

와 세번째 라인에는 공백 라인을 프린트한다. 이와 같은 순서로 다음 데이

터도 프린트된다.

참고: 현재는 라인 스페이스 값을 3까지만 허용한다. 허용범위 이외의 값은 모두 1로 인식하여 처리하게 된다.

- STRTAFT=n

순차 데이터 셋을 프린트하기 전 스킵할 논리 레코드의 개수를 지정한다.

즉, 데이터 셋의 n+1번째 논리 레코드부터 프린트된다.

레코드의 범위는 32767를 초과하지 않으며, 초과할 경우, 레코드가 있는 만

큼만 처리하게 된다.

Page 110: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 110

- STOPAFT=n

프린트되어야 할 순차 데이터 셋의 논리 레코드 개수를 지정한다. 최대

32767개의 논리 레코드를 설정할 수 있다.

만일, STOPAFT문과 RECORD문의 IDENT가 함께 기술되었다면, STOPAFT

에 설정된 값을 만족하거나, IDENT에 의해 구분되는 레코드 그룹의 마지막

일 때, 둘 중 먼저 해당되는 쪽이 나타났을 때, 현재 입력 데이터 셋의 데

이터 처리를 위한 명령어 수행이 종료된다.

- SKIP=n

n번째 레코드마다 프린트되어야 함을 의미한다.

- MAXNAME=n

MEMBER문의 최대 멤버 개수를 지정한다. n은 32767을 넘을 수 없다.

- MAXFLDS=n

RECORD문의 최대 FIELD 파라미터 개수를 지정한다. n은 32767을 넘을

수 없다.

- MAXGPS=n

RECORD문의 최대 IDENT 파라미터 개수를 지정한다. n은 32767을 넘을

수 없다.

- MAXLITS=n

RECORD문의 IDENT 파라미터에 포함될 최대 리터럴 개수를 지정한다. n은

32767을 넘을 수 없다.

- MAXLINE=n

출력될 페이지의 최대 라인 수를 지정한다. 기본값은 60이다.

TITLE

출력되어야 할 타이틀이나 서브타이틀을 기술한다.

IEBPTPCH에서는 TITLE문에서 두 개의 ITEM을 기술할 수 있다. 첫번째 ITEM

문은 타이틀을, 두번째 ITEM문은 서브타이틀을 정의한다. 여기 기술된 타이틀과

서브타이틀은 매 페이지마다 출력된다.

Page 111: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 111

TITLE 명령어 구문은 다음과 같다.

[label] TITLE ITEM=('title'[,output-location])

[,ITEM=...]

다음은 TITLE 명령어의 파라미터에 대한 설명이다.

- ITEM=('title'[,output-location])

a) 'title'

타이틀이나 서브타이틀에 대한 리터럴을 기술한다. (최대 40 byte)

b) output-location

출력 레코드상에서 ITEM의 리터럴이 놓여져야 할 위치를 지정한다.

MEMBER

입력 데이터 셋이 PDS일 경우, 특정 멤버의 데이터만 처리하고자 할 때 사용한

다. MEMBER문을 사용하기 위해서는 PRINT문의 MAXNAME을 설정해야 한다.

MEMBER 명령어 구문은 다음과 같다.

[label] MEMBER NAME=membername

다음은 MEMBER 명령어의 파라미터에 대한 설명이다.

- NAME=membername

PDS에서 프린트되어야 할 멤버 이름을 기술한다.

RECORD

프린트되어야 할 레코드의 그룹을 정의한다.

RECORD 명령어 구문은 다음과 같다.

[label] RECORD [IDENT=(length,'name',input-location)]

[,FIELD=(length,[input-location],

[output-location])]

[,FIELD=…]

Page 112: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 112

다음은 RECORD 명령어의 파라미터에 대한 설명이다.

- IDENT=

레코드 그룹의 마지막 레코드를 식별한다. 레코드의 input-location에서

length 만큼의 값과 name 값을 비교하여 값이 같으면 멤버의 마지막 레코

드가 되거나 FIELD가 적용되는 마지막 레코드가 된다.

IDENT를 사용하기 위해서는 PRINT문의 MAXGPS와 MAXLITS가 기술되어

있어야 한다.

a) Length

마지막 레코드를 식별하기 위한 길이를 지정한다. 최대 8byte까지 지정

할 수 있다.

b) Name

마지막 레코드를 식별하기 위한 값으로 반드시 작은따옴표(‘ ‘) 안에 기

술되어야 한다.

c) input-location

입력 레코드에서 name 값과 처리하고자 하는 데이터의 마지막 레코드

를 식별할 필드의 첫번째 시작위치를 지정한다.

- FIELD=

레코드 편집을 위한 정보를 기술한다. 입력 레코드상에서 input-location 위

치부터 length 만큼의 데이터를 출력 레코드의 output-location 위치에 쓰거

나 리터럴을 length 만큼 출력 레코드의 output-location 위치에 쓴다. FIELD

를 사용하기 위해서는 PRINT문의 MAXFLDS가 기술되어 있어야 한다.

a) length

편집되어 처리되는 입력 필드의 길이 또는 리터럴의 길이를 기술한다.

b) input-location

처리되는 필드의 시작위치를 기술한다.

c) literal

output-location에 위치해야 할 리터럴을 기술한다.

d) output-location

출력 레코드에 기록될 시작위치를 지정한다.

참고: 현재 IEBPTPCH 유틸리티의 RECORD 명령어에서는 다음의 파라미터에 대해서 오

류를 발생시키지 않도록 형식적으로만 지원하고 있으며, CV, PZ, VC, XE 이외의 값

이 사용될 경우 문법적인 오류가 발생한다.

[CONVERSION]

Page 113: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 113

사용예제

다음은 특정 멤버만 선택하여 지정한 프린트 형식으로 데이터를 출력하는 예이

다. IEBCOPY.TEST.INPUT01의 멤버 중 MEMBER2의 레코드가 순차적으로

SYSUT2에 정의된 SYSOUT으로 출력된다.

만일, MEMBER2의 레코드의 21번째 byte부터 8byte의 값이 'ENDRECORD'이면,

이 레코드까지만 출력한다. 이 SYSOUT은 JOB이 종료된 후 OUTPUT

PROCESSING을 통해 프린터기에서 프린트되며, 이 데이터는 한 페이지에 30

라인씩 프린트된다.

//TEST JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//NEWPDS EXEC PGM=IEBPTPCH

//SYSUT1 DD DSNAME=IEBCOPY.TEST.INPUT01,DISP=(SHR,CATLG)

//SYSUT2 DD SYSOUT=A

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

PRINT CNTRL=1,MAXLINE=30

MEMBER NAME=MEMBER2

RECORD IDENT=(8,'ENDRECORD',21)

/*

유의사항

IEBPTPCH 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD에 출력하고, 각 오류에

해당하는 리턴코드를 반환한다.

IEBPTPCH 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋 관련 (pgmdd, open/close, read/write) 오류

리턴코드: 12 (Unrecoverable)

Page 114: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 114

- SYSIN DD 내 명령어 문법 오류

리턴코드: 12 (Unrecoverable)

- 기타 IEBPTPCH 유틸리티 프로그램 오류

리턴코드: 12 (Unrecoverable)

2.7 IEHLIST

PDS의 데이터 셋 정보와 멤버 리스트 또는 볼륨 정보와 볼륨에 포함된 데이터

셋 리스트를 제공하는 유틸리티 프로그램이다.

IEHLIST 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

- PDS 정보와 PDS 멤버 리스트를 확인한다.

- 볼륨의 디스크 정보와 데이터 셋 리스트를 확인한다.

DD 설정

- SYSPRINT DD

IEHLIST 메시지가 저장되는 데이터 셋을 정의한다.

- SYSIN DD

IEHLIST의 명령어를 정의한다.

명령어 설정

LISTPDS

PDS 정보와 멤버 리스트를 보여준다.

LISTPDS 명령어 구문은 다음과 같다.

[label] LISTPDS DSNAME=(name[,name[,...]])

[,VOL=anyname=serial]

다음은 LISTPDS 명령어의 파라미터에 대한 설명이다.

Page 115: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 115

- DSNAME=(name[,name[,...]])

PDS의 데이터 셋 이름을 지정한다. 최대 10개의 데이터 셋 이름을 지정할

수 있다.

- VOL=anyname=serial

DSNAME에 기술한 데이터 셋에 포함된 볼륨 시리얼 즉, 볼륨명을 기술한

다. anyname에 볼륨의 디바이스명을 지정하거나 원하는 이름으로 지정한다.

( 설정한 anyname은 문법을 맞추기 위한 것으로 실제로는 무시된다.)

LISTVTOC

주어진 볼륨에 해당하는 디스크 정보와 데이터 셋 리스트를 보여준다.

LISTVTOC 명령어 구문은 다음과 같다.

[label] LISTVTOC [,VOL=anyname=serial]

[,DSNAME=(name[,name[,...]])

다음은 LISTVTOC 명령어의 파라미터에 대한 설명이다.

- VOL=anyname=serial

조회하고자 하는 볼륨 시리얼을 기술한다. anyname에 볼륨의 디바이스명을

지정하거나 원하는 이름으로 지정한다. (설정한 anyname은 문법을 맞추기

위한 것으로 실제로는 무시된다.)

- DSNAME=(name[,name[,...]

데이터 셋 리스트에 포함할 데이터 셋 이름을 기술한다. 최대 10개의 데이

터 셋 이름을 지정할 수 있다.

만약, DSNAME 파라미터가 없으면 조회하려는 볼륨에 있는 모든 데이터 셋

리스트가 조회된다.

Page 116: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 116

사용예제

다음은 PDS 정보와 멤버 리스트를 확인하는 예이다.

PDS DATASET1과 DATASET2의 정보와 멤버 리스트를 SYSPRINT에 기록한다.

//LISTPDS JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),

// USER=ROOT,PASSWORD=SYS1

//STEP01 EXEC PGM=IEHLIST

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

LISTPDS DSNAME=(DATASET1,DATASET2), VOL=disk=100000

/*

다음은 볼륨의 디스크 정보와 데이터 셋 리스트를 확인하는 예이다.

볼륨 시리얼이 100000인 볼륨에 대한 디스크 정보와 데이터 셋 리스트를

SYSPRINT에 기록한다.

//LISTVOL JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//STEP01 EXEC PGM=IEHLIST

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

LISTVTOC VOL=disk=100000

/*

유의사항

IEHLIST 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우 응

용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD에 출력하고, 각 오류에

해당하는 리턴코드를 반환한다.

Page 117: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 117

IEHLIST 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋 관련 (pgmdd, open/close, read/write) 오류

리턴코드: 12 (Unrecoverable)

- SYSIN DD 명령어 문법 오류

리턴코드: 12 (Unrecoverable)

- 기타 IEBGENER 유틸리티 프로그램 오류

리턴코드: 12 (Unrecoverable)

2.8 IEHPROGM

Non-VSAM 데이터 셋 관리를 위해 사용하는 유틸리티 프로그램이다.

IEHPROGM 시스템 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

- 데이터 셋 또는 PDS의 멤버를 해당 볼륨에서 물리적으로 삭제한다.

- 데이터 셋을 카탈로그 또는 언카탈로그 시킨다.

DD 설정

- SYSPRINT DD

IEHPROGM 메시지가 저장되는 데이터 셋을 지정한다.

- SYSIN DD

IEHPROGM의 명령어를 지정한다.

명령어 설정

SCRATCH

카탈로그에 등록되어있는 데이터 셋이나 PDS 멤버 정보와는 관계없이 디스크

볼륨에 저장된 물리적인 파일 즉, 데이터 셋이나 PDS의 멤버만을 제거한다.

만약, 카탈로그에 저장된 데이터 셋이나 PDS 멤버의 내용도 함께 삭제하고자

하면, SCRATCH문을 설정한 후에 UNCATLG문에 언카탈로그 하고자 하는 데이

Page 118: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 118

터 셋이나 PDS 멤버를 설정한다.

SCRATCH 명령어 구문 다음과 같다.

[label] SCRATCH DSNAME=name,VOL=anyname=serial

[,MEMBER=name]

다음은 SCRATCH 명령어의 파라미터에 대한 설명이다.

- DSNAME=name

삭제하고자 하는 데이터 셋 이름을 지정한다.

- VOL=anyname=serial

삭제하고자 하는 데이터 셋의 볼륨을 지정한다. anyname에 볼륨의 디바이

스명을 지정하거나 원하는 이름으로 지정한다. (설정한 anyname은 문법을

맞추기 위한 것으로 실제로는 무시된다.)

- MEMBER=name

PDS의 멤버만 삭제하고자 할 때 사용하며, 삭제하고자 하는 멤버의 이름을

지정한다.

CATLG

카탈로그에 데이터 셋의 기본정보를 등록한다.

CATLG 명령어 구문은 다음과 같다.

[label] CATLG DSNAME=name,VOL=anyname=serial

다음은 CATLG 명령어의 파라미터에 대한 설명이다.

- DSNAME=name

카탈로그에 등록할 데이터 셋 이름을 지정한다.

- VOL=anyname=serial

데이터 셋의 볼륨을 지정한다. anyname에 볼륨의 디바이스명을 지정하거나

원하는 이름으로 지정한다. (설정한 anyname은 문법을 맞추기 위한 것으로

실제로는 무시된다.)

Page 119: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 119

UNCATLG

UNCATLG문을 사용하여 카탈로그에 등록된 특정 데이터 셋을 삭제할 수는 있

지만 볼륨에 저장되어있는 물리적인 파일은 삭제할 수 없다. 볼륨에 저장되어있

는 파일을 삭제하고자 하면, SCRATCH문을 사용해 물리적 파일을 삭제하고 난

후 UNCATLG문을 사용하여 카탈로그에 등록된 데이터 셋 정보를 삭제한다.

UNCATLG 명령어 구문은 다음과 같다.

[label] UNCATLG DSNAME=name

다음은 UNCATLG 명령어의 파라미터에 대한 설명이다.

- DSNAME=name

카탈로그에서 삭제할 데이터 셋 이름을 지정한다.

사용예제

다음은 카탈로그에 TEST01 데이터 셋을 등록하는 예이다.

/CATALOG JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//STEP1 EXEC PGM=IEHPROGM

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

CATOPER CATLG DSNAME=IEHPROGM.TEST01,VOL=SER=100000

/*

다음은 볼륨에서 TEST01 데이터 셋을 삭제한 후, 카탈로그에 등록되어있는

TEST01 데이터 셋을 삭제하는 예이다.

//CATALOG JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//STEP1 EXEC PGM=IEHPROGM

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DELTOPER SCRATCH DSNAME=IEHPROGM.TEST01,VOL=SER=100000

UNCATLG DSNAME=IEHPROGM.TEST01

/*

Page 120: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제2장 데이터 셋 유틸리티

OpenFrame 유틸리티 참조 안내서 120

유의사항

IEHPROGM 시스템 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행

한 경우 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD에 출력하고, 각 오류에

해당하는 리턴코드를 반환한다.

IEHPROGM 시스템 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋 관련 (pgmdd, open/close, read/write) 오류

리턴코드: 12 (Unrecoverable)

- SYSIN DD 명령어 문법 오류

리턴코드: 12 (Unrecoverable)

- 기타 IEBGENER 유틸리티 프로그램 오류

리턴코드: 12 (Unrecoverable)

참고: 유사한 유틸리티 프로그램으로는 IDCAMS가 있다.

Page 121: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 121

제3장 데이터베이스 유틸리티

3.1 DSNTIAUL

DB2 데이터베이스 테이블에 문제가 발생했을 경우를 대비하여 데이터베이스 테

이블의 데이터와 테이블 구조를 UNIX 파일로 변환하여 백업 파일을 생성해 주

는 언로드 기능을 수행하는 유틸리티 프로그램으로 DB2뿐만 아니라 Oracle에서

도 데이터베이스 테이블을 백업하기 위해 사용된다.

DD 설정

- SYSIN DD

데이터베이스 테이블을 UNIX 파일로 변환하기 위한 입력 데이터 셋을 지정

한다.

- SYSPRINT DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.

- SYSPUNCH DD

추후에 DSNUTILB을 실행하여 데이터베이스의 테이블 구조 백업 파일을 로

드할 때 사용하기 위한 로드정보를 저장할 데이터 셋을 지정한다.

사용하지 않을 경우 DUMMY로 선언한다.

- SYSRECnn DD

출력 데이터 셋을 지정한다.

DSNTIAUL은 한번 수행으로 최대 100개의 백업 파일을 출력 데이터 셋에

생성할 수 있다. 각각의 데이터 셋은 순서대로 SYSIN DD의 입력 데이터 셋

에서 지정한 하나의 SELECT문이나 데이터베이스 테이블 이름에 대해 데이

터 언로드 결과를 저장한다. 즉, 출력 데이터 셋의 개수는 입력 데이터 셋

의 SELECT문 또는 데이터베이스 테이블 이름 개수와 동일해야 한다.

nn은 00 ~ 99까지 설정할 수 있으며, 출력 데이터 셋의 번호를 지정한다.

Page 122: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 122

명령어 설정

DSNTIAUL을 실행하기 위해서는 JCL의 EXEC 문장에 다음과 같이 IKJEFT01을

지정하고, SYSTSIN DD에 DSNTIAUL을 지정해 주어야 한다.

//STEP EXEC PGM=IKJEFT01

//SYSTSIN DD DSN=TEST.RUNLIB.LOAD(DSNTIAUL),DISP=SHR

사용예제

다음은 IKJEFT01 유틸리티 프로그램이 데이터베이스 시스템과 연결한 후,

DSNTIAUL 유틸리티 프로그램을 호출하여 DSN8810.PROJ 라는 데이터베이스

테이블에서 데이터와 테이블 구조를 DSN8UNLD.SYSREC00과

DSN8UNLD.SYSPUNCH로 각각 백업하는 예이다.

//UNLOAD EXEC PGM=IKJEFT01,DYNAMNBR=20

//SYSTSPRT DD SYSOUT=*

//SYSTSIN DD DSN=TEST.RUNLIB.LOAD(DSNTIAUL),DISP=SHR

//SYSPRINT DD SYSOUT=*

//SYSREC00 DD DSN=DSN8UNLD.SYSREC00,

// UNIT=SYSDA,SPACE=(32760,(1000,500)),

// DISP=(NEW,CATLG),VOL=SER=SCR03

//SYSPUNCH DD DSN=DSN8UNLD.SYSPUNCH,

// UNIT=SYSDA,SPACE=(800,(15,15)),DISP=(NEW,CATLG),

// VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=1200

//SYSIN DD *

DSN8810.PROJ

/*

Page 123: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 123

3.2 DSNUTILB

DB2 데이터베이스에 예기치 않은 문제가 발생할 경우 UNIX 파일로 변환해 둔

DB2 데이터베이스 백업 파일을 복원하기 위해 사용하는 유틸리티 프로그램으로

DB2뿐만 아니라 Oracle에서도 사용된다.

DD 설정

- SYSIN DD

UNIX 파일로 백업해 둔 입력 데이터 셋을 복원하기 위해 데이터베이스 테

이블구조를 저장해 둔 파일을 지정하거나 테이블 구조를 직접 정의한다.

한 라인은 최대 72문자를 넘을 수 없으며, 라인 계속 문자로 ^ 을 사용한다.

- SYSPRINT DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.

- SYSREC DD

백업된 데이터의 정보를 담고 있는 입력 데이터 셋을 지정한다.

명령어 설정

DSNUTILB를 실행하기 위해서는 JCL의 EXEC 문장에 다음과 같이 지정해 주어

야 한다.

//STEP EXEC PGM=DSNUTILB

LOAD 명령어 구문은 다음과 같다.

LOAD FROM SYSREC OF ASC

[MODIFIED BY [BINARYNUMERICS][PACKEDDECIMAL]

[STRIPTBLANKS|STRIPTNULLS]]

RECLEN=record_length

MOTHOD L (num1 num2 [, num1 num2 [, ...]])

NULL INDICATORS (num3 [, num3 [, ...]])

Page 124: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 124

INSERT INTO table_name (field_name [, field_name [, ...]]);

다음은 LOAD 명령어 파라미터에 대한 설명이다.

- BINARYNUMERICS

로드 대상이 되는 백업 데이터 셋에 숫자 데이터(정수와 실제 데이터)가 바

이너리 형태로 저장된 경우에 사용한다.

- PACKEDDECIMAL

로드 대상이 되는 백업 데이터 셋에 10진 데이터가 묶음 10진수 형태로 저

장된 경우에 사용한다.

- STRIPTBLANKS| STRIPTNULLS

로드 대상이 되는 백업 데이터 셋에 가변 길이 칼럼이 공백 문자로 채워져

있는 경우에 STRIPTBLANKS를 사용하고, 로드 대상이 되는 백업 데이터

셋에 가변 길이 칼럼이 널 문자로 채워져 있는 경우에는 STRIPTNULLS를

사용한다.

STRIPTBLANKS와 STRIPTNULLS 옵션은 동시에 지정할 수 없으며 둘 중

하나만 지정하여야 한다. 지정하지 않은 경우 기본값은 STRIPTBLANKS이

다.

참고: DSNTIAUL 유틸리티를 실행해서 생성된 백업 데이터 셋을 DSNUTILB 유틸리티 실

행 시 LOAD 데이터 셋으로 사용할 경우에는 반드시 STRIPTBLANKS BINARYNUMERICS PACKEDDECIMAL 옵션을 지정해야 한다.

DSNTIAUL에서 데이터베이스 테이블을 언로드할 때 칼럼 타입이 숫자면 바이너리 형태로 저장하고, 칼럼 타입이 10진수이면 묶음 10진수로 저장하고, 가변길이 칼

럼을 공백 문자로 채워 저장하기 때문에 Load할 때도 이에 맞추어 옵션을 지정해 주어야 한다.

사용예제

다음은 DSNUTILB 유틸리티 프로그램을 실행하여 UNIX 파일로 백업된

DSN8UNLD.SYSREC00 파일을 SYSIN DD에 기술한대로 로드시키는 예이다.

//RUNLOAD EXEC PGM=DSNUTILB

//SYSPRINT DD SYSOUT=*

Page 125: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 125

//SYSUDUMP DD SYSOUT=*

//SYSREC DD DSN=DSN8UNLD.SYSREC00,DISP=(SHR,KEEP)

//SYSIN DD *

LOAD FROM SYSREC OF ASC

MODIFIED BY STRIPTBLANKS BINARYNUMERICS PACKEDDECIMAL RECLEN=892

METHOD L (1 32,33 46,48 55,56 56,58 312,314 329,331 346,348 602,604 858^

,860 891) NULL INDICATORS (0,47,0,57,313,330,347,603,859,892)

INSERT INTO OFRAME.SMB_R_HISTORY (RESHISID,CHANGETIME,INSTDATE,INSTFLAG^

,VERSION,HOSTNAME,LOGNAME,SITEUSERID,DESC1,RESID);

/*

//

3.3 DSNTEP2

데이터베이스 SQL 쿼리를 실행하기 위한 목적으로 사용하는 유틸리티 프로그램

이다.

DD 설정

- SYSIN DD

실행하고자 하는 데이터베이스 SQL 쿼리를 포함하고 있는 입력 데이터 셋

을 지정하거나 실행할 SQL 쿼리를 직접 정의한다.

한 라인은 최대 72문자를 넘을 수 없으며, 라인 계속 문자로 ^ 을 사용한다.

- SYSPRINT DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.

명령어 설정

DSNTEP2를 실행하기 위해서는 JCL의 EXEC 문장에 다음과 같이 IKJEFT01을

지정하고, SYSTSIN DD에 DSNTEP2를 지정해 주어야 한다.

//STEP EXEC PGM=IKJEFT01

Page 126: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 126

//SYSTSIN DD DSN=TEST.RUNLIB.LOAD(DSNTEP2),DISP=SHR

사용예제

다음은 IKJEFT01 유틸리티 프로그램이 데이터베이스 시스템과 연결한 후,

DSNTEP2 유틸리티 프로그램을 호출하여 SYSIN DD에 기술된 SQL 쿼리를 실

행하고, 실행 결과를 TEST.RUNLIB.LOAD에 출력하는 예이다.

//RUNTEP2 EXEC PGM=IKJEFT01,DYNAMNBR=20

//SYSTSPRT DD SYSOUT=*

//SYSTSIN DD DSN=TEST.RUNLIB.LOAD(DSNTEP2),DISP=SHR

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

SELECT * FROM DSN8810.PROJ;

/*

3.4 IKJEFT01

IKJEFT01 유틸리티 프로그램은 데이터베이스를 사용하는 배치 응용프로그램을

JCL로 실행 시키려고 할 때, 응용프로그램이 실행되기 전에 데이터베이스 시스

템으로 접속해주는 TSO 터미널 감시 유틸리티 프로그램이다.

데이터베이스를 사용하는 업무용 코볼 응용프로그램의 소스에 데이터베이스 시

스템 접속에 필요한 시스템 이름, 사용자 이름, 패스워드 등과 같은 정보를 코

딩 하지 않고, 데이터베이스 시스템 접속에 필요한 모든 정보는 IKJEFT01 유틸

리티 프로그램의 입력 스크립트에 지정한다.

IKJEFT01 유틸리티 프로그램을 통해서 배치 응용프로그램을 실행시키기 위해서

는 배치 응용프로그램을 Shared Object의 형태로 컴파일 해야 한다.

참고: 배치 응용프로그램을 컴파일하는 방법에 대해서는 “마이그레이션 안내서”를 참고

하기 바란다.

Mainframe에서는 TSO Attachment Facility를 사용하여 DB2와 접속한 후, DB2 응

Page 127: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 127

용프로그램을 실행시킨다. TSO Attachment Facility는 TSO 터미널이나 배치 프로

그램에서 DB2에 접근할 수 있도록 해주는 DB2 모듈이다.

IKJEFT01 유틸리티 프로그램은 TSO 터미널 감시 프로그램으로서 TSO 명령어

를 사용하여 배치 작업을 처리할 수 있도록 한다. OpenFrame에서 제공하는

IKJEFT01 유틸리티 프로그램은 단지 배치 응용프로그램을 실행시키기 위한 데

이터베이스와의 접속 기능만을 제공하며, DB2 시스템 명령어는 무시된다.

DD 설정

- SYSTSIN DD

IKJEFT01 유틸리티 프로그램의 입력 스크립트를 지정해 주는 DD이다.

(IKJEFT01 유틸리티 프로그램에서 사용하는 TSO 스크립트에 대한 설명은

‘명령어 설정’ 참고)

- SYSTSPRT DD

IKJEFT01 유틸리티 프로그램의 처리 결과나 오류 메시지가 출력된다. 단,

SYSTSPRT DD가 준비되기 전에 발생하는 오류 메시지는 SYSOUT DD로

출력된다.

명령어 설정

DSN

TSO 명령어인 DSN은 새로운 DSN(DB2 Command Processor) 세션을 시작한다.

다음과 같은 DSN 서브 명령어를 사용할 수 있다.

- RUN: 사용자 응용프로그램 실행

- END: 데이터베이스 접속 종료 및 TSO 복귀

Page 128: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 128

참고: 현재 IKJEFT01 유틸리티의 DSN 명령어에서는 다음의 서브 명령어에 대해서 오류

를 발생시키지 않도록 형식적으로만 지원하고 있다.

ABEND: DSN 세션을 종료하고 ABEND 코드를 리턴 BIND: 응용프로그램 패키지 또는 플랜 생성 DCLGEN: SQL 문장과 정의 테이블 생성 FREE: 응용프로그램 패키지 또는 플랜 삭제 REBIND: 기존 패키지 또는 플랜 재생성 SPUFI: SQL 파일을 입력으로 받아 SQL 프로세서 실행

DSN 세션이 연결되어있는 동안에는 데이터베이스 명령어와 주석을 입력할 수

있다.

참조: 데이터베이스 명령어는 하이픈(-)으로 시작하고 주석은 별표(*)로 시작한다.

DSN 세션이 연결되어있는 동안 OpenFrame에서 사용할 수 있는 데이터베이스

명령어는 다음과 같다.

- DISPLAY: 데이터베이스에 대한 상태 정보 출력

- START: 지정된 데이터베이스 사용

- STOP: 지정된 데이터베이스 사용안함

참고: Mainframe에서 제공하는 데이터베이스 명령어는 많지만, 그 중에서 자주 사용되는 몇몇 데이터베이스 명령어에 대해서는 OpenFrame에서 오류를 발생시키지 않도록 형식적으로 지원하고 있다.

DSN 명령어 구문은 다음과 같다.

DSN [SYSTEM(DSN|subsystem-name)]

[RETRY(0|integer)]

다음은 DSN 명령어 파라미터에 대한 설명이다.

- SYSTEM(subsystem-name)

데이터베이스 서브시스템의 이름을 지정한다.

값을 지정하지 않은 경우 디폴트로 SYSTEM(DSN)를 사용하며, 지정된 데

이터베이스 서브시스템 이름은 ikjeft01.conf 파일에 설정되어있어야 한

다.

Page 129: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 129

- RETRY(integer)

데이터베이스 서브시스템의 접속 시도 횟수를 지정한다.

접속 시도는 매 30초마다 일어나며, 값을 지정하지 않은 경우 디폴트로

RETRY(0)이 적용되어 최대 120번 접속을 시도한다.

참고: 현재 IKJEFT01 유틸리티의 DSN 명령어에서는 다음의 파라미터에 대해서 오류를 발생시키지 않도록 형식적으로만 지원하고 있다.

[TEST(integer)], [GROUP(YES|NO)], [ASUSER(userid)]

RUN

DSN 서브 명령어인 RUN은 SQL 문장을 포함하는 응용프로그램을 실행한다.

RUN 서브 명령어 구문은 다음과 같다.

RUN PROGRAM(program-name)

[PLAN(plan-name)]

[LIBRARY(library-name)]

[PARMS(parameter-string)]

RUN [LIBRARY(library-name)]

[PARMS(parameter-string)]

다음은 RUN 서브 명령어 파라미터에 대한 설명이다.

- PROGRAM(program-name)

실행시키려고 하는 프로그램 이름을 지정한다.

- LIBRARY(library-name)

프로그램을 포함하고 있는 데이터 셋의 이름을 지정한다.

- PARMS(parameter-string)

응용프로그램에 전달되어야 하는 파라미터 리스트를 지정한다.

참고: 현재 IKJEFT01 유틸리티의 DSN의 서브명령어 중 RUN 명령어에서는 다음의 파라

미터에 대해서 오류를 발생시키지 않도록 형식적으로만 지원하고 있다.

CP PLAN(plan-name)

Page 130: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 130

END

DSN 서브 명령어인 END는 DSN 세션을 종료하고 TSO로 복귀한다.

END 서브 명령어 구문은 다음과 같다.

END

사용예제

다음은 DSN 세션에 대한 예로, MYDB 시스템으로 접속을 실패할 경우 매 30초

마다 최대 5번까지 접속을 시도 한다.

DSN SYSTEM (MYDB) RETRY (5)

다음은 DSN 시스템으로 접속하여 TEST.RUNLIB.LOAD 라이브러리에 있는

COBTEST1 프로그램을 실행시키는 예이다.

DSN SYSTEM (DSN)

RUN PROGRAM (COBTEST1) LIB ('TEST.RUNLIB.LOAD')

다음은 DSN 시스템으로 접속하여 'TEST.RUNLIB.LOAD' 라이브러리에 있는

COBTEST2 프로그램을 실행시키고 COBTEST2 프로그램의 파라미터로

'1234567890'을 전달한다.

DSN SYSTEM (DSN)

RUN PROGRAM (COBTEST2) PLAN (COBTEST2) -

LIB ('TEST.RUNLIB.LOAD') PARMS ('1234567890')

유의사항

IKJEFT01 유틸리티 프로그램은 SYSTSIN DD에 TSO 스크립트 대신 실행 가능

한 바이너리 오브젝트가 주어진 경우, 주어진 바이너리 오브젝트를 실행시켜 준

다. IKJEFT01 유틸리티 프로그램은 SYSTSIN DD에 쉘 스크립트를 기술하고, 프

로그램의 파라미터로 'SHELL'을 전달받은 경우, 주어진 쉘 스크립트를 실행시켜

준다.

Page 131: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 131

DSN 명령어와 DSN 서브 명령어를 사용할 때에는 다음과 같은 파싱 규칙이 적

용된다.

- 한 명령어를 다음 라인에 계속해서 적을 때에는 현재 라인의 마지막에 하이

픈(-)을 적어준다.

다음은 여러 라인에 이어서 사용한 DSN 서브 명령어의 예이다.

RUN PROGRAM(TECA251) -

PLAN(TECA251) -

LIB('MI.PROG.CLINK') -

PARM('2')

IKJEFT01 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSTSPRT DD로 출력하고, 각 오류에

해당하는 리턴코드를 반환한다. 단, SYSTSPRT DD가 준비되기 전에 발생한 오

류 메시지는 SYSOUT DD에 출력한다.

IKJEFT01 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋 인증관련 준비과정 실패

리턴코드: 12 (Unrecoverable)

- SYSTSIN DD가 제공되지 않은 경우

리턴코드: 12 (Unrecoverable)

- SYSTSPRT DD가 제공되지 않은 경우

리턴코드: 12 (Unrecoverable)

- SYSTSPRT DD를 열지 못하는 오류

리턴코드: 16 (System Fault)

- SYSTSIN DD의 파일을 찾지 못하는 오류

리턴코드: 12 (Unrecoverable)

- SYSTSIN DD의 바이너리 형식 체크 오류

리턴코드: 16 (System Fault)

- 지원하지 않는 SYSTSIN DD의 바이너리 형식

리턴코드: 12 (Unrecoverable)

Page 132: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 132

- SYSTSIN DD를 열지 못한 경우

리턴코드: 16 (System Fault)

- Temporary file을 생성하지 못한 경우

리턴코드: 16 (System Fault)

- SYSTSIN DD에서 읽기 오류가 발생한 경우

리턴코드: 16 (System Fault)

- SYSTSIN DD 스크립트 파싱 오류

리턴코드: 12 (Unrecoverable)

- 적합하지 않은 TSO 명령어

리턴코드: 12 (Unrecoverable)

- RUN 명령에 PROGRAM이 기술되지 않은 경우

리턴코드: 12 (Unrecoverable)

- RUN 명령에 기술된 PROGRAM을 못찾은 경우

리턴코드: 12 (Unrecoverable)

- 실행시켜야 할 응용프로그램을 못찾은 경우

리턴코드: 12 (Unrecoverable)

- 응용프로그램의 바이너리 형식 체크 오류

리턴코드: 16 (System Fault)

- 지원하지 않는 응용프로그램 바이너리 형식

리턴코드: 12 (Unrecoverable)

- 데이터베이스 시스템 설정 읽기 오류

리턴코드: 16 (System Fault)

- 프로세스 분기(fork) 실패

리턴코드: 16 (System Fault)

- 입/출력 리다이렉트 실패

리턴코드: 16 (System Fault)

- 데이터베이스 접속 실패

리턴코드: 12 (Unrecoverable)

- 동적 메모리 로드(dlopen) 실패

리턴코드: 12 (Unrecoverable)

- 엔트리 포인트 검색(dlsym) 실패

리턴코드: 12 (Unrecoverable)

Page 133: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 133

관련 환경설정

IKJEFT01 유틸리티 프로그램은 별도의 설정 파일인 ikjeft01.conf에서 데이

터베이스의 시스템 이름과 데이터베이스 접속에 필요한 정보를 기술한다.

다음은 전형적인 ikjeft01.conf 설정 파일의 예이다.

[SYSTEM:DBPA]

DBTYPE=ORACLE

DBAUTH=PUBLIC

DATABASE=ora920

USERNAME=igkang

PASSWORD=whoknows

# ENPASSWD=

[SHARED_OBJECT]

DB_USE=YES

SYSTEM=DBPA

[SYSTEM:{system}]

특정 데이터베이스 시스템에 접속하기 위한 정보를 지정해 준다.

- DBTYPE=ORACLE

ORACLE, DB2, CYBASE 등 데이터베이스 유형을 지정해 준다.

- DBAUTH=INDIVIDUAL

INDIVIDUAL, PUBLIC 등 데이터베이스 인증방법을 지정해 준다.

- DATABASE=ora920

TSO 세션이 연결되어 있는 동안 사용될 데이터베이스 이름을 지정해 준다.

- USERNAME=igkang

인증방법이 PUBLIC인 경우, 데이터베이스 접속에 사용 될 사용자 이름을

지정한다

Page 134: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제3장 데이터베이스 유틸리티

OpenFrame 유틸리티 참조 안내서 134

- PASSWORD=whoknows

인증방법이 PUBLIC인 경우, 데이터베이스 접속에 사용 될 패스워드를 지정

한다.

- ENPASSWD=xxxx

인증방법이 PUBLIC인 경우, enpasswd라는 툴 프로그램을 사용하여 생성된

데이터베이스 접속에 사용될 암호화된 패스워드가 입력된다.

[SHARED_OBJECT]

데이터베이스 시스템 이름이 지정되지 않은 경우 기본적으로 사용할 데이터베이

스 시스템 이름을 지정해 준다.

- DB_USE=YES

데이터베이스를 사용할지 여부를 설정한다.

- SYSTEM=DBPA

기본적으로 사용할 데이터베이스 시스템 이름을 입력한다.

[REPORT_DBCONN]

데이터베이스 접속에 대한 별도의 로그를 작성하고 싶은 경우에 Shared Object

로 만든 로그 기록 함수를 등록하는 섹션이다.

다음은 로그 기록 함수의 프로토타입을 보여준다. IKJEFT01 유틸리티 프로그램

이 실행될 때마다 REPORT_DBCONN 함수가 호출되어, 로그를 위한 정보를 받

을 수 있으며, MODULE 항목에 Shared Object의 위치를 등록한다.

int REPORT_DBCONN(char *job_id, char *job_name, char *step_name, char *pgm_name);

MODULE=$(OPENFRAME_HOME)/lib/IKCONN.so

참고: 유사한 유틸리티 프로그램으로는 PGMRTS00(Runtime Environment Control Program)과 DFSRRC00(HiDB Region Control Program)이 있다.

Page 135: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 135

제4장 소트 유틸리티

4.1 SORT

SORT는 입력 데이터 셋(SORTIN, SORTINnn)을 주어진 명령에 따라 정렬, 병합,

복사, 필터, 재편집, 합계 등을 수행하여, 출력 데이터 셋(SORTOUT, OUTFIL

dataset)을 생성하는 Mainframe의 DFSORT에 대응하는 유틸리티 프로그램이다.

이 유틸리티는 서드 파티 SORT 솔루션을 이용하여 실제 동작을 수행한다. 현

재는 Tmaxsoft 사의 ProSort 및 syncsort 사의 syncsort를 지원한다.

참고: Sort 솔루션에 따라 SORT 문법 중 일부가 지원되지 않을 수 있다. Appendix의 SORT 솔루션 별 지원항목을 참조하여 프로젝트의 상황에 맞추어 SORT 솔루션을 선택한다.

SORT 유틸리티 프로그램은 다음과 같은 주요기능을 제공한다.

- SORT

정렬을 수행하기 위한 입력 데이터 셋의 레코드를 주어진 키에 따라 오름차

순 혹은 내림차순으로 정렬하여 출력 데이터 셋으로 출력한다.

- MERGE

SORTINnn에 주어진 입력 데이터 셋에 대하여 병합기능을 수행하기 위해

주어진 키로 이미 정렬된 두 개 이상의 입력 데이터 셋을 하나의 정렬된 출

력 데이터 셋으로 병합하여 출력한다.

- COPY

복사를 수행하기 위하여 입력 데이터 셋의 모든 레코드를 출력 데이터 셋으

로 복사한다.

SORT 유틸리티 프로그램으로 위의 세가지 주요기능 외에도 다음과 같은 기능

을 수행할 수 있다.

- 입력 레코드 필터 (Conditional INPUT Filtering)

입력 레코드 재편집(Input Record Reformatting)를 수행하기 전, INCLUDE,

OMIT, SKIPREC, STOPAFT 옵션으로 주어진 조건을 만족하는 입력 레코드

만을 포함하거나 제외하는 방법으로 필터한다.

Page 136: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 136

- 입력 레코드 재편집 (Input Record Reformatting)

SORT나 MERGE 또는 COPY를 수행하기 전, INREC 옵션으로 입력 레코드

필터를 통과한 레코드를 주어진 형식에 따라 재편집한다. 이러한 과정을 통

해 입력 레코드에서 불필요한 필드를 제거하여 실제로 SORT나 MERGE 또

는 COPY를 수행 시 성능을 향상시킬 수 있다.

- 필드 합계 (Field Summation)

SORT나 MERGE를 수행하면서 키 값이 일치한다고 판명된 하나 이상의 레

코드에 대해서 SUM 옵션을 이용하여 주어진 필드의 값을 모두 더한다. 이

때 옵션으로 EQUALS가 설정되어 있으면, 필드의 값을 모두 더한 후, 키

값이 동일한 레코드들 중 첫번째 레코드만 SORTOUT으로 지정된 출력 데

이터 셋으로 출력되고, 나머지 레코드는 버려진다.

- 출력 레코드 재편집 (Output Record Reformatting)

SORT나 MERGE 또는 COPY를 수행한 후, OUTREC 옵션을 이용하여 주

어진 형식에 따라 레코드를 재편집한다. 재편집한 레코드가 SORTOUT으로

출력되거나 OUTFIL 옵션의 입력 레코드가 된다.

- 출력 레코드 복사 (Output Duplication)

OUTFIL 옵션을 이용하여 SORTOUT으로 쓰여질 레코드를 입력 레코드로

하여 여러 개의 outfil DD로 출력하는 역할을 한다. 입력 레코드 필터와 출

력 레코드 재편집 과정이 이 단계에서 다시 한번 적용될 수 있다.

DD 설정

- SYSIN DD

SORT의 동작방식을 기술한다.

- SORTIN DD

SORT나 COPY를 수행하기 위한 입력 데이터 셋을 기술한다.

- SORTINnn DD

MERGE를 수행하기 위한 입력 데이터 셋을 기술한다.

최대 16개의 데이터 셋을 하나로 병합할 수 있다. (nn은 01-16)

Page 137: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 137

- SORTOUT DD

SORT, COPY, MERGE를 수행한 결과를 저장할 출력 데이터 셋을 기술한다.

- SORTWKxx DD

SORT를 수행하기 위해 필요한 임시 작업공간을 지정한다. (xx는 01, 02, 03

중 하나의 값을 갖는다.)

- outfil DD

OUTFIL 명령어 처리 결과를 저장할 데이터 셋을 기술한다. 단, outfil DD명

은 OUTFIL 명령어에서 FNAMES를 통해 지정한 이름과 동일해야 한다.

명령어 설정

SORT

SORTIN에 기술한 입력 데이터 셋을 출력 데이터 셋으로 정렬한다.

SORT 명령어 구문은 다음과 같다.

SORT FIELDS=(p,m,f,s[p,m,f,s[,...]])|(p,m,s[p,m,s[,...]]),

FORMAT=f|COPY[,option[,option[,...]]]

다음과 같은 옵션을 설정한다.

option=[[EQUALS|NOEQUALS]|FILSZ=[x|Ex|Ux]|

SIZE=[x|Ex|Ux]|SKIPREC=x|STOPAFT=x]

다음은 SORT 명령어 파라미터에 대한 설명이다.

- FIELDS

필드를 정렬하기 위한 키 필드를 지정한다.

키 필드의 시작위치와 길이, 포맷, 정렬기준을 지정할 수 있다.

여러 개의 키 필드를 지정하여 동일한 키 값을 가진 레코드에 대해서 추가

적으로 정렬을 수행할 수 있으며, 이때 다음 우선순위 필드의 키 값을 비교

하여 레코드를 정렬하게 된다.

a) p

필드의 시작위치를 기술한다.

Page 138: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 138

b) m

필드의 길이를 기술한다.

c) f

필드 포맷을 기술한다. (자세한 사항은 [표 4-1] 데이터 포맷을 참고한

다.)

d) s

오름차순(A)과 내림차순(D) 중에서 정렬기준을 기술한다.

e) FORMAT

FORMAT이 주어진 경우에는 앞의 필드 설정에서 f가 빠지게 되며, 모

든 키의 포맷이 FORMAT에 주어진 f로 일괄적으로 설정된다.

f) COPY

입력 데이터 셋의 모든 레코드가 출력 데이터 셋으로 복사된다.

g) option

- EQUALS|NOEQUALS

EQUALS가 주어지면 안정적인 정렬을 하고, 이외의 경우에는 불안

정한 정렬을 한다.

참고: 안정적인 정렬(Stable sort)은 정렬을 수행 시, 모든 키 값이 동일한 레코드

들을 정렬수행 전의 원래 레코드 순서대로 출력하는 것으로, 정렬시 성능

에 부정적인 영향을 끼칠 수 있다.

- FILSZ, SIZE

SORT를 수행할 대략적인 레코드 개수를 지정한다.

SORT에서 해당 필드에 대한 설정은 무시되며. x는 레코드 개수이

다.

- SKIPREC

INCLUDE/OMIT 명령어 수행 전에 몇 개의 입력 레코드를 삭제

(discard)할 것인지 지정한다. x는 레코드 개수이다.

- STOPAFT

INCLUDE/OMIT 단계를 통과한 레코드를 몇 개까지 INREC 이후의

단계로 넘길지 지정한다. x는 레코드 개수이다.

참고: 자세한 내용은 IBM사의”DFSORT Application Programming Guide”를 참고한다.

Page 139: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 139

MERGE

SORTINnn에 기술한 입력 데이터 셋을 출력 데이터 셋으로 병합할 때 사용한다.

MERGE 명령어 구문은 다음과 같다.

MERGE FIELDS=(p,m,f,s[p,m,f,s[,...]])|(p,m,s[p,m,s[,...]]),

FORMAT=f|COPY|[,option[,option[,...]]]

다음과 같은 option을 정정한다.

option=[[EQUALS|NOEQUALS]|FILSZ=[x|Ex|Ux]|

SIZE=[x|Ex|Ux]|SKIPREC=x|STOPAFT=x]

다음은 MERGE 명령어 파라미터에 대한 설명이다.

- FIELDS

필드를 병합하기 위해 키 필드를 지정한다.

키 필드의 시작위치와 길이, 포맷, 정렬기준을 지정할 수 있다.

여러 개의 키 필드를 지정하여 동일한 키 값을 가진 레코드에 대해서 추가

적으로 정렬을 수행할 수 있으며, 이때 다음 우선순위 필드의 키 값을 비교

하여 레코드를 정렬하게 된다.

a) p

필드의 시작위치를 기술한다.

b) m

필드의 길이를 기술한다.

c) f

필드 포맷을 기술한다. ([표 4-1] 데이터 포맷을 참고한다.)

d) s

오름차순(A)과 내림차순(D) 중에서 정렬기준을 기술한다.

e) FORMAT

FORMAT이 주어진 경우에는 앞의 필드 설정에서 f가 빠지게 되며, 모

든 키의 포맷이 FORMAT에 주어진 f로 일괄적으로 설정된다.

f) COPY

SORTIN의 모든 레코드가 SORTOUT으로 복사된다.

g) option

- EQUALS|NOEQUALS

EQUALS가 주어지면 안정적인 정렬을 하고, 이외의 경우에는 불안

정한 정렬을 한다.

Page 140: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 140

참고: 안정적인 정렬(Stable sort)은 정렬을 수행 시, 모든 키 값이 동일한 레코

드들을 정렬수행 전의 원래 레코드 순서대로 출력하는 것으로, 정렬시 성능에 부정적인 영향을 끼칠 수 있다.

- FILSZ, SIZE

SORT를 수행할 대략적인 레코드 개수를 지정한다.

SORT에서 해당 필드에 대한 설정은 무시되며. x는 레코드 개수이

다.

- SKIPREC

INCLUDE/OMIT 명령 수행 전에 몇 개의 입력 레코드를 삭제할 것

인지 지정한다. x는 레코드 개수이다.

- STOPAFT

INCLUDE/OMIT 단계를 통과한 레코드를 몇 개까지 INREC 이후의

단계로 넘길지 지정하는 옵션이다. x는 레코드 개수이다.

RECORD

레코드의 특성을 지정한다.

RECORD 명령어 구문은 다음과 같다.

RECORD [,LENGTH=[L1|(L1,L2,L3,L4,L5)]]

다음은 RECORD 문의 파라미터에 대한 설명이다.

- TYPE

현재 사용되지 않으며 파라미터 설정은 무시된다.

- L1

입력 레코드 길이를 지정한다.

SORTIN의 lrecl (logical record length)이 주어지지 않았을 때 사용할 수 있다.

- L3

Output record length를 지정한다. SORTOUT의 lrecl (logical record lenght)이

주어지지 않았을 때 사용될 수 있다.

참고: 현재 SORT 유틸리티의 RECORD 명령어에서는 다음의 파라미터에 대해서 오류를 발생시키지 않도록 형식적으로만 지원하고 있다.

TYPE=[F|V|D]], LENGTH=[L2|L4|L5]

Page 141: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 141

INCLUDE

조건에 맞는 레코드만을 대상으로 정렬하거나 병합 또는 복사를 수행하기 위해

사용한다.

INCLUDE 명령어 구문은 다음과 같다.

INCLUDE COND=[logical_expression

[,FORMAT=f]|ALL|(ALL)|NONE|(NONE)]

다음과 같은 logical expression을 설정한다.

logical_expression=relational_condition

[,relational_condition2[,....]]

다음과 같은 relational condition을 제공한다.

relational_condition=([format_field|field],

[EQ|NE|GT|GE|LT|LE],

[format_field|field|constant])

다음과 같은 relational condition2를 설정한다.

relational_condition2=[AND|OR],

([relational_condition2|relational_condition])

다음과 같은 format_field를 설정한다.

format_field=field,f

다음과 같은 field를 설정한다.

field=p,m

Page 142: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 142

다음은 INCLUDE 문의 파라미터에 대한 설명이다.

- logical expression

정렬, 병합 또는 복사를 수행할 레코드의 조건을 지정한다.

logical expression의 각 relational condition의 진리값을 논리 연산한 진리값

이 true일 때 조건을 만족한다.

- EQ: 두 필드의 값이 동일할 때 true이다.

- NE: 두 필드의 값이 다를 때 true이다.

- GT: 앞 필드 값이 뒤 필드의 값보다 클 때 true이다.

- GE: 앞 필드의 값이 뒤 필드의 값보다 크거나 같을 때 true이다.

- LT: 앞 필드의 값이 뒤 필드의 값보다 작을 때 true이다.

- LE: 앞 필드의 값이 뒤 필드의 값보다 크거나 작을 때 true이다.

- AND는 &로, OR는 |로 대치될 수 있다.

- p: 필드의 시작위치를 지정한다.

- m: 필드의 길이를 지정한다.

- f: 필드 포맷을 지정한다. (자세한 사항은 [표 4-1] 데이터 포맷을 참고한다.)

OMIT

조건에 해당하는 레코드를 제외한다.

OMIT 명령어 구문은 다음과 같다.

OMIT COND=[logical_expression

[,FORMAT=f]|ALL|(ALL)|NONE|(NONE)]

다음과 같은 logical expression을 설정한다.

logical_expression=relational_condition

[,relational_condition2[,....]]

다음과 같은 relational condition을 설정한다.

relational_condition=([format_field|field],

[EQ|NE|GT|GE|LT|LE],[format_field|field|constant])

Page 143: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 143

다음과 같은 relational condition2를 설정한다.

relational_condition2=[AND|OR],

([relational_condition2|relational_condition])

다음과 같은 format_field를 설정한다.

format_field = field,f

다음과 같은 field를 설정한다.

field = p,m

다음은 OMIT 문의 파라미터에 대한 설명이다.

- logical expression

정렬, 병합 또는 복사를 수행할 레코드의 조건을 지정한다

logical expression의 각 relational condition의 진리값을 논리 연산한 진리값

이 true일 때 조건을 만족한다.

- EQ: 두 필드의 값이 동일할 때 true이다.

- NE: 두 필드의 값이 다를 때 true이다.

- GT: 앞 필드 값이 뒤 필드의 값보다 클 때 true이다.

- GE: 앞 필드의 값이 뒤 필드의 값보다 크거나 같을 때 true이다.

- LT: 앞 필드의 값이 뒤 필드의 값보다 작을 때 true이다.

- LE: 앞 필드의 값이 뒤 필드의 값보다 크거나 작을 때 true이다.

- AND는 &로, OR는 |로 대치될 수 있다.

- p: 필드의 시작위치를 지정한다.

- m: 필드의 길이를 지정한다.

- f: 필드 포맷을 지정한다. (자세한 사항은 [표 4-1] 데이터 포맷을 참고한다.)

INREC

정렬이나 병합 또는 복사를 수행하기 전에 주어진 형식에 따라 입력 레코드를

재편집한다. 이 명령어는 정렬이나 병합 또는 복사를 수행 시 처리할 데이터 양

을 줄이는 용도로 사용한다.

Page 144: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 144

INREC 명령어 구문은 다음과 같다.

INREC FIELDS=(reformat_command[,reformat_command[,....]])

reformat_command=[c:]s|p,m|p,m,f|p,m,f,edit|p,m,f,to

다음은 INREC 명령어 파라미터에 대한 설명이다.

입력 레코드는 INREC FIELDS에 정의된 필드 항목의 순서대로 재나열한 후 포

맷을 변환하고 필드에 추가되어 재편집된 입력 레코드를 구성한다.

- [c:]

c: 옵션 바로 다음에 올 필드의 재편집된 입력 레코드에서의 위치를 정의한

다. 이 옵션으로 인해 정의되지 않는 구간이 생긴다면 그 구간은 빈칸으로

채워진다.

- s

Seperation field로 문자열이나 16진수를 기술한다.

- p

해당 필드의 입력 레코드에서의 시작위치를 기술한다.

- m

필드의 길이를 기술한다.

- f

필드의 포맷을 기술한다..

- edit

필드가 변환될 형식을 정의한다. 미리 정의된 edit문도 있다. (자세한 사항은

[표 4-3] 미리 정의된 EDIT 마스크 유형을 참조한다.)

- to

필드가 변환될 포맷을 정의한다.

OUTREC

정렬이나 병합 또는 복사를 수행한 후, SORTOUT이나 OUTFIL에서 지정한 데이

터 셋으로 결과를 전달하기 전에 레코드를 재편집한다. 사용법은 INREC과 동일

하다.

SUM

정렬이나 병합 시에 키가 동일한 레코드를 하나의 레코드로 합치고, 주어진 필

드의 값은 합한다.

Page 145: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 145

SUM 명령어 구문은 다음과 같다.

SUM FIELDS=(p,m,f,[p,m,f[,...]])|(p,m[,p,m[,...]),

FORMAT=f|NONE|(NONE)

다음은 SUM 명령어의 파라미터에 대한 설명이다.

- p: 합계를 수행할 필드의 시작위치를 지정한다.

참고: INREC 옵션이 있었다면, 재편집된 입력 레코드에 위치하며 INREC 옵션이 없

었다면 입력 레코드상에 위치한다.

- m: 합계를 수행할 필드의 길이를 지정한다.

- f: 필드의 포맷을 지정한다. 모든 필드의 포맷이 동일하다면 FORMAT=f 의

형태로 한번에 지정할 수 있다. 합계를 수행해야 하므로 필드의 포맷은 BI,

FI, FL, PD, ZD만 지원된다. (자세한 사항은 [표 4-1] 데이터 포맷을 참고한

다.)

- NONE|(NONE): 키가 동일한 레코드들 중 한 개만 남긴다. 단, 필드값에 대

한 합계는 수행하지 않는다.

OUTFIL

SORTOUT을 여러 개의 outfil DD에 기술한 데이터 셋에 저장한다. 레코드를 필

터하고 재편집하기 위해 사용할 수 있다.

OUTFIL 명령어 구문은 다음과 같다.

OUTFIL param[,param[,...]]

param-FNAMES = ddname|include|omit|outrec|STARTREC=x|ENDREC=x

다음은 OUTFIL 명령어 파라미터에 대한 설명이다.

- FNAMES

outfil 결과가 저장될 ddname을 지정한다.

- INCLUDE

outfil 처리 중 INCLUDE에 기술된 logical condition이 true인 레코드만 결과

에 포함한다. (INCLUDE 명령문에서 INCLUDE COND= 대신 INCLUDE=을

써야 하는 점을 제외하고는 동일하다.)

Page 146: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 146

- OMIT

outfil 처리 중 INCLUDE에 기술된 logical condition이 false인 레코드만 결과

에 포함한다. (OMIT 명령문에서 OMIT COND= 대신 OMIT=을 써야 하는 점

을 제외하고는 동일하다.)

- OUTREC

outfil 처리 중에 레코드 필터 과정(INCLUDE/OMIT/STARTREC/ENDREC)

을 통과한 레코드를 OUTFIL DD에 기록하기 전에 주어진 형식에 맞게 재편

집한다. (OUTREC 명령문에서 OUTREC COND= 대신 OUTREC=을 써야 하

는 점을 제외하고는 동일하다.)

- STARTREC=x

처리할 레코드의 시작 번호를 지정한다.

- ENDREC=x

처리할 레코드의 마지막 번호를 지정한다.

END

END문 이후로는 명령어를 처리하지 않으며 부가적인 파라미터는 없다.

참고: 현재 SORT 유틸리티에서는 다음의 명령어에 대해서 오류를 발생시키지 않도록 형

식적으로만 지원하고 있다.

DEBUG- 현재 지원되는 파라미터로는 ABEND가 있다. INPFIL

사용예제

다음은 OFTEST.SORT.IN00을 OFTEST.SORT.OUT00.SORT로 복사하는 예이다.

//SORT EXEC PGM=SORT,REGION=2M

//SYSIN DD *

SORT FIELDS=COPY

/*

//SYSOUT DD SYSOUT=*

//SORTIN DD DSN=OFTEST.SORT.IN00,DISP=(OLD)

Page 147: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 147

//SORTOUT DD DSN=OFTEST.SORT.OUT00.SORT,

// DISP=(NEW,CATLG,DELETE),RECFM=FB,LRECL=80

다음은 1바이트부터 7바이트까지를 문자 키로 하여 OFTEST.SORT.IN00를 오름

차순으로 정렬한 후 OFTEST.SORT.OUT00.SORT로 복사하는 예이다.

//SORT EXEC PGM=SORT,REGION=2M

//SYSIN DD *

SORT FIELDS=(1,7,CH,A)

/*

//SYSOUT DD SYSOUT=*

//SORTIN DD DSN=OFTEST.SORT.IN00,DISP=(OLD)

//SORTOUT DD DSN=OFTEST.SORT.OUT00.SORT,

// DISP=(NEW,CATLG,DELETE),RECFM=FB,LRECL=80

다음은 1바이트부터 7바이트 까지를 문자 키로 하여 OFTEST.SORT.IN00.01과

OFTEST.SORT.IN00.02를 오름차순으로 정렬한 후 OFTEST.SORT.OUT00으로

병합하는 예이다.

//MERGE EXEC PGM=SORT,REGION=2M

//SYSIN DD *

MERGE FIELDS=(1,7,CH,A)

/*

//SORTIN01 DD DSN=OFTEST.SORT.IN00.01,DISP=(OLD)

//SORTIN02 DD DSN=OFTEST.SORT.IN00.02,DISP=(OLD)

//SYSOUT DD SYSOUT=*

//SORTOUT DD DSN=OFTEST.SORT.OUT00.MERGE,

// DISP=(NEW,CATLG,DELETE),RECFM=FB,LRECL=80

유의사항

SORTIN과 SORTOUT과 같은 경우에는 SORTOUT 내용을 잠시 저장할 중간 파

일이 필요할 수 있다. 대용량 정렬의 경우, 디스크 공간 부족으로 인한 에러를

야기할 수 있으므로 사전에 고려하여 정렬시 사용할 작업 디스크 공간을 충분히

Page 148: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 148

확보해야 한다.

참고: 작업 디스크 공간이 충분하지 못하면 정렬 작업을 실패할 수 있다.

SORT 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우 배치

응용프로그램에서 받은 리턴코드 0을 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSTSPRT DD로 출력하고, 각 오류에

해당하는 리턴코드를 반환한다.

SORT 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- 정렬 엔진 에러 (SYSIN 명령어 파싱 에러 등)

리턴코드: 12

- 시스템 에러 (OpenFrame 라이브러리 에러와 UNIX 시스템 호출 에러 등)

리턴코드: 16

Appendix

다음은 데이터 포맷에 대한 표이다.

포맷 설명

CH ASCII 또는 EBCDIC의 기본 병합순서를 가지는 문자로

sort.conf에 기술되어있다.

AC ASCII 병합순서를 가지는 문자이다.

UC[0-9] 사용자정의 병합순서를 가지는 문자로 sort.conf의

[SEQUENCE] 섹션에 정의된 병합순서를 사용한다.

ZD

(Zoned Decimal,

Signed)

십진수의 각 1자리가 그 숫자에 해당하는 8비트 ASCII

값으로 변환된다.

부호는 주어진 숫자의 1자리(10^0)를 표현하는 byte에 내

장되며, 내장된 byte의 상위 4비트가 0011(0x3)이면 +를,

0111(0x7)이면 -를 의미한다.

예) +237 -> 0x323337, -237 ->0x323377

PD

(Packed Decimal,

Signed)

십진수의 각 1자리는 4비트 바이너리로 저장되는데 이 값

은 해당 숫자를 이진수로 변환한 값의 하위 4비트이다.

부호 역시 4비트 바이너리로 저장되며 최하위 4비트에 저

Page 149: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 149

포맷 설명

장된다. 0xC가 +이며 0xD가 -를 의미한다.

예) +237 → 0x237C, -237 → 0x237D

FI

(Fixed Signed

Integer)

숫자가 그에 상응하는 이진수로 표현된다.

부호 비트는 최상위 비트이며, 0이면 +, 1이면 -이다. 음수

는 2의 보수 형태로 표현된다.

예) +247 → 0x00F7, 0000000011110111B,

-247 → 0xFF09, 1111111100001001B

BI

(Binary Unsigned

Integer)

바이너리로 표현된 모든 데이터를 의미한다.

[표 4-1] 데이터 포맷

숫자 필드를 필요로 하는 digits (Digits needed for Numeric fields)

숫자 필드인 ZD, PD, BI, FI는 각각 저장하고 있는 숫자를 표현하기 위해 필요한

digit 수를 알아야 TO나 EDIT문을 이용하여 포맷을 변환할 때 출력될 길이를 알

수 있으며, 레코드 포맷 이후의 레코드 구조를 정확히 알 수 있다.

다음은 각 포맷의 필드 길이에 따라 필요한 digit 수를 정리한 표이다.

포맷 필드 길이 필요 digit 수

ZD M m

PD M 2m-1

BI,FI 1 3

BI,FI 2 5

BI,FI 3 8

BI,FI 4 10

[표 4-2] 필드 길이 별 Digit 수

Page 150: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 150

EDIT

EDIT 명령어 구문은 다음과 같다.

EDIT syntax Mn|EDIT=(pattern)

[,SIGNS=(lp,ln,tp,tn)]

다음은 EDIT 문의 파라미터에 대한 설명이다

- pattern

I, T, S, CR과 프린트 가능한 문자로 주어진 숫자 필드가 변환될 편집 패턴

을 정의한다. 변환할 숫자 필드(ZD, PD, BI, FI 등)에 저장된 값의 digit과 편

집 패턴의 I, T는 뒤에서부터 하나씩 매치되어 변환된다. 변환할 숫자 필드

값의 절대값 길이보다 I, T가 많은 경우에는 초과된 부분이 제거된 패턴을

내부적으로 사용하게 된다. 부호를 나타내는 부분은 보존된다.

예를 들면, 1,2,PD, edit=(SIT.TTTT), SIGNS=(+,-, ,)은 주어진 숫자 필드의 포

맷이 PD이기에 실제로 저장된 숫자의 절대값의 길이는 3이다. 편집 패턴은

SIT.TTTT로 I와 T의 수가 6으로 3을 초과하므로 앞의 IT.T는 버려지고,

STTT를 편집 패턴으로 사용하게 된다.

a) I는 중요하지 않은 digit을 나타낸다. I에 해당하는 digit이 의미 없는

leading 0이라면 공백으로 대체된다.

b) T는 중요한 digit을 나타낸다. T에 해당하는 digit은 leading 0일지라도 0

으로 표시된다.

c) S는 부호를 의미하며, 패턴의 제일 앞에 등장하면 선행 부호(leading

sign)로 SIGNS 옵션의 lp, ln으로 대치된다. 패턴의 제일 마지막에 등장

하면, 종지 부호 (tailing sign)로 SIGNS 옵션의 tp, tn으로 대치된다. 만

약 SIGNS 옵션이 주어지지 않았다면 무시된다.

d) CR은 숫자 필드의 값이 음수였을 때, 우측에 CR이라고 표시되며, 양수

이면 우측에 공백 2개로 표시된다.

- Mn

미리 정의된 편집 패턴이다. (0 <= n <= 26) Mn에는 기본값으로 적용되는

SIGNS가 존재한다. [표 4-3] 미리 정의된 EDIT 마스크 유형을 참고한다.

- SIGNS

부호를 표시하는 문자를 정의한다.

a. lp는 값이 양수일 때 EDIT 결과의 맨 앞에 위치하는 부호문자를 정의

한다.

b. tp는 값이 양수일 때 EDIT 결과의 맨 뒤에 위치하는 부호문자를 정의

한다.

Page 151: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 151

c. ln는 값이 음수일 때 EDIT 결과의 맨 앞에 위치하는 부호문자를 정의

한다.

d. tn는 값이 음수일 때 EDIT 결과의 맨 뒤에 위치하는 부호문자를 정의

한다.

예제 마스크 유형 표시

값 결과

M0 IIIIIIIIIIIIIITS (,,blank,-) +070531 70531□

-00004 4-

M1 TTTTTTTTTTTTTTTS (,,blank,-) -00632 00632-

+00003 00003□

M2 I,III,III,III,IIT.TTS (,,blank,-) +1324050 13,240.50□

-0030 0.30-

M3 I,III,III,III,IIT.TTCR (,,,,) -000478 4.78CR

+0123456 1,234.56□□

M4 SI,III,III,III,IIT.TT (blank,(,blank,)) +012345 +123.45

-0001 -0.01

M5 SI,III,III,III,IIT.TTS (,,,,) -456 (4.56)

+123400 □1,234.00□

M6 III-TTT-TTTT (,,,,) 0102345678 10-234-5678

102345678 10-234-5678

M7 TTT-TT-TTTT (,,,,) 010234567 010-23-4567

12345678 012-34-5678

M8 IT:TT:TT (,,,,) 090909 9:09:09

111111 11:11:11

M9 IT/TT/TT (,,,,) 801208 80/12/08

070608 7/06/08

M10 IIIIIIIIIIIIIIT (,,,,) 009876 9876

000000 0

M11 TTTTTTTTTTTTTTT (,,,,) 0100 0100

09876 09876

M12 SIII,III,III,III,IIT (blank,-,,) +987654321 □987,654,321

-0098765 -98,765

Page 152: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 152

예제 마스크 유형 표시

값 결과

M13 SIII.III.III.III.IIT (blank,-,,) +9876543 □9.876.543

-0098765 -98.765

M14 SIII III III III IITS (blank,(,blank,)) +9876543 9 876 543□

-0098765 (98 765)

M15 III III III III IITS (,,blank,-) +9876543 9 876 543□

-0098765 98 765-

M16 SIII III III III IIT (blank,-,,) +9876543 □9 876 543

-0098765 -98 765

M17 SIII’III’III’III’IIT (blank,-,,) +98765 □9’876’543

-0098765 -98’765

M18 SI,III,III,III,IIT.TT (blank,-,,) +0987654 □9,876.54

-9876543 -98,765.43

M19 SI.III.III.III.IIT,TT (blank,-,,) +0987654 □9.876,54

-9876543 -98.765,43

M20 SI III III III IIT,TTS (blank,(,blank,)) +0987654 □9 876,54□

-9876543 (98 765,43)

M21 I III III III IIT,TTS (,,blank,-) +0987654 9 876,54□

-9876543 □98 765,43-

M22 SI III III III IIT,TT (blank,-,,) +0987654 □9 876,54

-9876543 -98 765,43

M23 SI’III’III’III’IIT.TT (blank,-,,) +0987654 □9’876.54

-9876543 -98’765.43

M24 SI’III’III’III’IIT,TT (blank,-,,) +0987654 □9’876,54

-9876543 -98’765,43

M25 SIIIIIIIIIIIIIIT (blank,-,,) +09876 □9876

-00009 -9

M26 STTTTTTTTTTTTTTT (+,-,,) 09876 +09876

-00009 -00009

[표 4-3] 미리 정의된 EDIT 마스크 유형

Page 153: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 153

다음은 SORT 엔진별 기능을 비교한 표이다.

○는 지원, X는 미지원, P는 부분지원을 의미하며, 각 기능의 세부옵션은 지원

하지 않는 부분이 있을 수 있다. OpenFrame에서는 현재 SORT 유틸리티의 옵

션 중 오류를 발생시키지 않도록 형식적으로만 지원하는 기능도 지원된다고 표

시하였다. 지원 비교표에 언급되지 않은 OPTION은 지원하지 않는다.

DFSORT 기능 ProSort 비고 syncsort 비고

SORT

COPY

MERGE

ALTSEQ ○ X

INCLUDE/OMIT

OUTFIL INCLUDE/OMIT

P

지원: comparison

bit logic test

미지원:

substring comparison

date comparison

P

지원: comparison

substring comparison

미지원:

bit logic test

date comparison

INREC

OUTREC ○

OUTFIL OUTREC ○ ○

OUTFIL ○ ○

SKIPREC

STOPAFT

STARTREC/ENDREC

X

OUTFIL SAVE ○ X

OUTFIL LINES X X

OUTFIL HEADER1 ○ X

OUTFIL TRAILER1

P

지원: COUNT

TOTAL

AVG

미지원: MIN

MAX

X

OUTFIL HEADER3 ○ X

OUTFIL TRAILER3 ○ X

Page 154: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 154

DFSORT 기능 ProSort 비고 syncsort 비고

OUTFIL SECTION ○ X

SUM ○ ○

User Collating Sequence

지원 X

OPTION

P

지원: EQUALS

NOEQUALS

SKIPREC

STOPAF

P

지원: EQUALS

NOEQUALS

SKIPREC

STOPAFT

RECORD ○ ○

[표 4-4] SORT 엔진별 기능 지원 비교표

참고: 더 자세한 DFSORT에 대해서는 IBM사의”DFSORT Application Programming Guide”

를 참고한다.

Page 155: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 155

4.2 SYNCHOST

UNIX syncsort 명령어에 따라 inDD의 데이터를 처리하여 outDD로 저장하는 유

틸리티 프로그램이다.

DD 설정

- SYSIN DD

syncsort 명령어를 기술한다. 단, /OUTFILE과 /INFILE에는 실제 데이터

셋의 파일 경로(filepath)가 아닌 JCL에서 기술한 inDD와 outDD를 사용해야

한다.

- inDD DD

입력 데이터 셋을 기술한다. SYSIN DD의 /INFILE에 입력 데이터 셋을 지

정하기 위해 사용한다.

- outDD DD

출력 데이터 셋을 기술한다. SYSIN DD의 /OUTFILE에 출력 데이터 셋을

지정하기 위해 사용한다.

명령어 설정

syncsort에서 지원하는 모든 명령어를 지원한다.

다만, /INFILE과 /OUTFILE 문장에는 UNIX 파일경로가 아닌 JCL에 기술한

OpenFrame 데이터 셋의 DD를 명시해야 한다. /INFILE과 /OUTFILE의 옵션

중 레코드 길이나 파일 포맷은 이 유틸리티 프로그램에서 DD의 DCB 정보에

맞게 설정하므로 기술하지 않는다.

Page 156: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 156

사용예제

다음은 SYSIN DD에 주어진 syncsort 명령어에 따라 OFTET.SYNCHOST.IN00을

다음은 syncsort 명령어에 따라 입력 파일을 1byte부터 7byte까지를 문자 키로

하여 OFTEST.SYNCHOST.IN00을 오름차순으로 정렬한 후

OFTEST.SYNCHOST.OUT00로 저장하는 예이다.

//SYNCHOST EXEC PGM=SYNCHOST

//IN00 DD DSN=OFTEST.SYNCHOST.IN00

//OUT00 DD DSN=OFTEST.SYNCHOST.OUT00

//SYSIN DD *

/INFILE IN00

/DATASIZE 1 MEGABYTES

/MEMORY 2 MEGABYTES

/COLLATINGSEQUENCE DEFAULT ASCII

/WORKSPACE /home/ofbatch/openframe/temp/sortwork

/STABLE

/FIELDS

F_KEY_1 1 CHAR 7

/KEYS F_KEY_1 ASCENDING

/OUTFILE OUT00

/*

//SYSOUT DD SYSOUT=*

유의사항

inDD나 outDD가 VSAM 데이터 셋 타입인 경우, SORT가 처리할 수 있는 UNIX

파일로 변환하거나 UNIX 파일을 VSAM으로 변환하는 과정이 필요하므로 inDD

나 outDD가 Non-VSAM인 경우에 비해 수행 시간이 길어질 수 있다.

OpenFrame 엔진에서 지원하는 데이터 셋과 syncsort에서 사용하는 파일의 형

식이 다를 수 있으므로, 사용자가 그 파급 효과를 정확히 예측하지 못한다면 압

축 파일 옵션을 사용하지 않을 것을 권장한다.

Page 157: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제4장 소트 유틸리티

OpenFrame 유틸리티 참조 안내서 157

참고: syncsort에 대한 더 자세한 내용은 Syncsort사의 UNIX용 “syncsort manual”을 참고

한다.

Page 158: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming
Page 159: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 159

제5장 HiDB 유틸리티

5.1 DBDGENC0

DBD 스크립트 어셈블리 컴파일 프로그램인 DBDGENC0 유틸리티 프로그램은

라이브러리 링크 에디터 프로그램인 DFSINLK0와 함께 DBDGEN 프로시저에서

사용된다.

HiDB 데이터베이스의 스키마를 정의하는 프로그램인 DBDGEN 프로시저는 아

래와 같이 두 개의 스텝으로 이루어져 있으며, 다음은 DBDGENC0 프로그램과

DFSILNK0 프로그램을 동시에 실행시키는 DBDGEN 프로시저의 내용을 보여주

는 예이다.

// PROC MBR=TEMPNAME,SOUT=A,RGN=4M,SYS2=

//C EXEC PGM=DBDGENC0,REGION=&RGN,PARM='OBJECT,NODECK'

//SYSLIB DD DSN=IMS.&SYS2MACLIB,DISP=SHR

//SYSLIN DD UNIT=SYSDA,DISP=(,PASS),

// SPACE=(80,(100,100),RLSE),

// DCB=(BLKSIZE=80,RECFM=F,LRECL=80)

//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,

// SPACE=(121,(300,300),RLSE,,ROUND)

//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),

// SPACE=(CYL,(10,5))

//L EXEC PGM=DFSILNK0,PARM='XREF,LIST',-

COND=(0,LT,C),REGION=120K

//SYSLIN DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE)

//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,

// SPACE=(121,(90,90),RLSE)

//SYSLMOD DD DSN=IMS.&SYS2DBDLIB(&MBR),DISP=SHR

//SYSUT1 DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),

// SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)

Page 160: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 160

위 DBDGEN 프로시저의 첫번째 과정인 C 스텝은 어셈블리 스텝으로 HiDB 데

이터베이스 정의 스크립트를 컴파일 하기 위해 DBDGENC0 프로그램을 실행한

다.

두번째 스텝인 L 스텝은 DFSILNK0 프로그램을 실행시키는 Link-Edit 스텝으로

앞의 어셈블리 스텝에서 생성된 오브젝트 모듈을 시스템 라이브러리로 복사하는

작업을 수행한다. OpenFrame에서는 DFSILNK0 유틸리티 프로그램이 DBD 오브

젝트 모듈에 대한 Link-Edit 작업을 수행한다.

DD 설정

- SYSIN DD

HiDB 데이터베이스 정의 스크립트를 포함하는 입력 데이터 셋을 지정한다.

- SYSLIN DD

DBDGENC0 유틸리티 프로그램에서 생성한 오브젝트 모듈을 저장하는 데

이터 셋을 지정한다.

명령어 설정

DBD 문장

기술하고 있는 데이터베이스의 이름을 지정해 주고 데이터베이스의 구조에 대한

DL/I 정보를 제공해 준다. 하나의 데이터베이스 정의 스크립트에는 하나의 DBD

문장을 사용할 수 있다.

DBD 문에 다음과 같이 데이터베이스 이름과 접근방식을 기술한다.

HSAM 데이터베이스를 위한 DBD 문장

DBD NAME=dbname1,ACCESS=HSAM

HISAM 데이터베이스를 위한 DBD 문장

DBD NAME=dbname1,ACCESS=(HISAM[,VSAM])

[,PASSWD={NO|YES}]

[,VERSION='n']

Page 161: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 161

HDAM 데이터베이스를 위한 DBD 문장

DBD NAME=dbname1,ACCESS=(HDAM,{VSAM|OSAM}),RMNAME=(mod[,anch,rbn,bytes])

[,PASSWD={NO|YES}]

[,VERSION='n']

HIDAM 데이터베이스를 위한 DBD 문장

DBD NAME=dbname1,ACCESS=(HIDAM,{VSAM|OSAM})

[,PASSWD={NO|YES}]

[,VERSION='n']

DEDB 데이터베이스를 위한 DBD 문장

DBD NAME=dbname1,ACCESS=DEDB,RMNAME=(mod,...XCI)

[,VERSION='n']

INDEX 데이터베이스를 위한 DBD 문장

DBD NAME=(dbname1[,dbname2]),ACCESS=(INDEX,VSAM)

[,PASSWD={NO|YES}]

LOGICAL 데이터베이스를 위한 DBD 문장

DBD NAME=dbname1,ACCESS=LOGICAL

다음은 DBD 문의 파라미터에 대한 설명이다.

- NAME=dbname

현재 기술하고 있는 데이터베이스의 DBD명을 지정해 준다. 단, PSB명과 중

복된 이름을 사용할 수 없다.

참고: DBD명과 PSB명은 IMS 시스템에 유일한 이름으로 등록되어야 한다.

- ACCESS=access_method_type

이 데이터베이스에서 사용되는 DL/I 접근방식과 데이터 셋 접근방식을 지정

해 준다. 다음과 같은 값을 사용할 수 있다.

a) HSAM

이 데이터베이스에서 접근방식으로 HSAM(Hierarchical Sequential

Access Method)을 사용한다.

Page 162: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 162

b) HISAM

이 데이터베이스에서 접근방식으로 HISAM(Hierarchical Indexed

Sequential Access Method)을 사용한다.

c) HDAM

이 데이터베이스에서 접근방식으로 HDAM(Hierarchical Direct Access

Method)을 사용한다.

d) HIDAM

이 데이터베이스에서 접근방식으로 HIDAM(Hierarchical Indexed Direct

Access Method)을 사용한다.

e) DEDB

이 데이터베이스에서 접근방식으로 DEDB(Data Entry Database)가 사용

한다.

f) INDEX

HIDAM 데이터베이스에서의 루트 세그먼트에 대한 일차 인덱스를 정의

하거나, HDAM 또는 HIDAM 데이터베이스에서의 이차 인덱스를 정의할

때 사용한다.

g) LOGICAL

현재 기술하고 있는 데이터베이스는 LOGICAL 데이터베이스라는 것을

의미한다.

참고: 데이터 셋 접근방식 중 OSAM은 현재 OpenFrame에서 지원되지 않으며, OSAM이 접근방식 타입으로 설정된 경우, 문법적으로 오류는 발생하지 않는

다. VSAM에 대한 내용은 OpenFrame 안내서 중 “데이터 셋 안내서”를 참고한다.

- RMNAME=

ACCESS 파라미터 값으로 HDAM 또는 DEDB가 지정이 되었을 때, 데이터

베이스 안에 저장되는 데이터를 관리하는 정보를 지정해 준다. 이 정보에

의해 임의추출 (Randomizer) 모듈이 동작하는 방식이 결정된다.

참고: 자세한 내용은 “HiDB 안내서”를 참고한다.

- PASSWD

VSAM 패스워드로 DBD명을 사용할 지의 여부를 결정한다. NO가 디폴트이

다.

참고: OpenFrame의 VSAM 제품에서는 VSAM 패스워드를 지원하지 않는다.

- VERSION

DBD를 식별할 수 있는 문자열을 최대 255자까지 지정할 수 있다.

Page 163: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 163

DATASET 문장

DATASET 문장은 데이터베이스 안에서의 데이터 셋 그룹을 정의한다.

DATASET 문의 구문은 다음과 같다.

HSAM 데이터베이스를 위한 DATASET 문장

DATASET DD1=ddname1,DD2=ddname2

[,BLOCK=(blkfact1,blkfact2)]

[,RECORD=(reclen1,reclen2)]

HISAM 데이터베이스를 위한 DATASET 문장

DATASET DD1=ddname1,OVFLW=ddname3

[,BLOCK=(blkfact1,blkfact2)]

[,SIZE=(size1,size2)]

[,RECORD=(reclen1,reclen2)]

HDAM 또는 HIDAM 데이터베이스를 위한 DATASET 문장

DATASET DD1=ddname1

[,BLOCK=size0]

[,SIZE=(,size1)]

[,SCAN=cyls]

[,FRSPC=(fbff,fspf)]

[,SEARCHA=0|1|2]

INDEX 데이터베이스를 위한 DATASET 문장

DATASET DD1=ddname1,OVFLW=ddname3

[,BLOCK=(blkfact1,blkfact2)]

[,SIZE=(size1,size2)]

[,RECORD=(reclen1,reclen2)]

LOGICAL 데이터베이스를 위한 DATASET 문장

DATASET LOGICAL

Page 164: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 164

다음은 DATASET 문의 파라미터에 대한 설명이다.

- DATASET

DATASET 문장의 시작을 알려준다.

- LOGICAL

LOGICAL 데이터베이스를 정의하고 있다는 것을 알려준다.

- DD1=ddname1

데이터 셋 그룹의 첫번째 데이터 셋의 DD명을 지정한다. 데이터베이스 유

형에 따라 다음과 같은 의미를 가진다.

a) HSAM

입력 데이터 셋의 DD명

b) HISAM

데이터 셋 그룹 중 기본 데이터 셋의 DD명

c) HDAM

데이터 셋 그룹 중 데이터 셋의 DD명

d) HIDAM

데이터 셋 그룹 중 데이터 셋의 DD명

e) INDEX

기본 데이터 셋의 DD명

- DD2=ddname2

HSAM 데이터베이스 유형에서 출력 데이터 셋의 DD명을 지정한다.

- OVFLW

HISAM 데이터베이스 유형에서 오버플로우 데이터 셋의 DD명을 지정한

다.

유일한 키를 갖지 않는 인덱스 포인터 세그먼트를 저장하는 INDEX 데이

터베이스 유형에서 오버플로우 데이터 셋의 DD명을 지정한다.

- BLOCK

데이터 셋을 사용함에 있어서의 블록 팩터(blocking factors)를 지정해 준

다. 블록 팩터의 의미는 [표 5-1] 데이터베이스 종류에 따른 BLOCK과

RECORD 파라미터를 참고한다.

Page 165: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 165

- SIZE

DBDGEN 프로시저에서 VSAM 컨트롤 인터벌 크기나 블록 사이즈를 반

복해서 정의할 때 사용한다. [표 5-1] 데이터베이스 종류에 따른 BLOCK과

RECORD 파라미터를 참고한다.

- RECORD

옵션 파라미터로 논리 레코드의 크기를 지정하기 위해서 사용한다. 이 파

라미터의 의미는 [표 5-1] 데이터베이스 종류에 따른 BLOCK과 RECORD

파라미터를 참고한다.

- FRSPC

HDAM 또는 HIDAM 데이터베이스 유형에서 여유공간을 얼마만큼 유지할

지를 결정한다.

참고: 현재 DBDGENCO 유틸리티의 DATASET 명령어에서는 다음의 파라미터에 대해서 오류를 발생시키지 않도록 형식적으로만 지원하고 있다.

[,SCAN=cyls] [,SEARCHA=0|1|2]

데이터베이스 유형 BLOCK과 RECORD 설명

HSAM BLOCK=

blkfact1: 입력 데이터 셋에 대한 블록 팩터는 항상 1이다.

blkfact2: 출력 데이터 셋에 대한 블록 팩터는 항상 2이다.

RECORD=

reclen1: 입력 데이터 셋의 레코드 크기를 지정

reclen2: 출력 데이터 셋의 레코드 크기를 지정

HSAM은 Unblocked I/O를 사용한다. 따라서 LRECL과

BLKSIZE 의 값은 동일하게 지정해준다.

HISAM BLOCK=

blkfact1: 기본 데이터 셋에 대한 블록 팩터 지정

blkfact2: 오버플로우 데이터 셋에 대한 블록 팩터 지정

RECORD=

reclen1: 기본 데이터 셋의 레코드 크기 지정

reclen2: 오버플로우 데이터 셋의 레코드 크기 지정

HIDAM/HDAM BLOCK=

size0: 오버헤드가 없는 VSAM 데이터 셋 크기

Page 166: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 166

데이터베이스 유형 BLOCK과 RECORD 설명

RECORD= 무시된다.

DEDB BLOCK=, RECORD= 무효(Invalid)

INDEX BLOCK=

blkfact1: 기본 데이터 셋에 대한 블럭 팩터 지정

blkfact2: 오버플로우 데이터 셋에 대한 블럭 팩터 지정

RECORD=

reclen1: 기본 데이터 셋의 레코드 크기 지정

reclen2: 오버플로우 데이터 셋의 레코드 크기 지정

LOGICAL BLOCK=, RECORD= 무효(Invalid)

[표 5-1] 데이터베이스 종류에 따른 BLOCK과 RECORD 파라미터

AREA 문장

DEDB 데이터베이스는 AREA 문장을 사용해서 데이터를 저장할 데이터 셋 영역

을 정의한다. DEDB를 정의하는 DBDGEN 입력 스크립트를 작성할 때, 모든

AREA 문장은 DBD 문장과 첫번째 SEGM 문장 사이에 위치해야 한다.

AREA 문의 구문은 다음과 같다.

DEDB 데이터베이스를 위한 AREA 문장

AREA DD1=ddname1

[,DEVICE=nnnn],

SIZE=size1,

UOW=(number1,overflow1),

ROOT=(number2,overflow2)

다음은 AREA 문의 파라미터에 대한 설명이다.

- DD1=ddname1

정의된 영역의 DD명을 지정한다.

- DEVICE

물리적인 저장장치의 디바이스 유형을 지정한다. 파리미터를 지정하지 않을

경우 디폴트로는 3380이 사용된다.

Page 167: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 167

- SIZE

컨트롤 인터벌 크기를 지정한다. 512Byte, 1KB, 2KB, 4KB, 8KB, 28KB의 값

을 사용할 수 있다. VSAM 데이터 셋의 컨트롤 인터벌 크기와 동일하게 지

정한다.

참고: 컨트롤 인터벌 크기에 대한 자세한 내용은 “데이터 셋 안내서”의 “VSAM”을 참

고한다.

- UOW

한 개의 UOW(Unit of Work)에 사용되는 컨트롤 인터벌의 개수를 지정한다.

a) number1

한 개의 UOW에 사용되는 컨트롤 인터벌의 개수를 지정한다.

2부터 32767까지의 숫자를 사용할 수 있다.

b) overflow1

한 UOW 안에 있는 오버플로우 섹션에서 사용될 컨트롤 인터벌의 개수

를 지정한다. number1에 지정된 숫자보다 작은 값으로 설정한다.

- ROOT

DEDB AREA에 대한 속성을 정의한다.

a) number2

DEDB AREA에서 사용될 UOW의 개수를 지정해 준다.

b) overflow2

독립적인 오버플로우 파트에 사용될 UOW의 개수를 지정해 준다.

SEGM 문장

SEGM 문장은 데이터베이스의 세그먼트를 정의한다. 한 데이터베이스 안에서

세그먼트의 계층, 세그먼트의 물리적인 속성, 그리고 다른 세그먼트와의 관계

등을 정의한다.

SEGM 문의 구문은 다음과 같다.

HSAM 데이터베이스를 위한 SEGM 문장

SEGM NAME=segname1,PARENT=segname2,BYTES=max_bytes

[,FREQ=frequency]

Page 168: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 168

HISAM 데이터베이스를 위한 SEGM 문장

SEGM NAME=segname1,-

PARENT=(segname2[(lpsegname,[{VIRTUAL|PHYSICAL}],dbname1)]),-

BYTES=max_bytes

[,min_bytes]

[,FREQ=frequency]

[,{POINTER|PTR}={LPARNT|CTR|PAIRED}]

[,RULES=([{L|P|V}{L|P|V|B}{L|P|V}],

[{LAST|FIRST|HERE}])]

HDAM 또는 HIDAM 데이터베이스를 위한 SEGM 문장

SEGM NAME=segname1,-

PARENT=(segname2[,{SNGL|DBLE}]-

[(lpsegname,[{VIRTUAL|PHYSICAL}],dbname1)]),-

BYTES=max_bytes[,min_bytes]

[,{POINTER|PTR}={HIER|HIERBWD|TWIN|TWINBWD|NOTWIN},

{LTWIN|LTWINBWD},{LPARNT|CTR|PAIRED}]

[,RULES=([{L|P|V}{L|P|V|B}{L|P|V}],[{LAST|FIRST|HERE}])]

DEDB 데이터베이스를 위한 SEGM 문장

SEGM NAME=segname1,PARENT=(segname2[,{SNGL|DBLE}]),-

BYTES=max_bytes,min_bytes,TYPE={DIR|SEQ}

[,RULES={HERE|LAST|FIRST}]

[,SSPTR=n]

INDEX 데이터베이스를 위한 SEGM 문장

SEGM NAME=segname1

[,PARENT=0],-

BYTES=max_bytes

[,FREQ=frequency]

Page 169: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 169

다음은 SEGM 문의 파라미터에 대한 설명이다.

- NAME=

현재 정의하고 있는 세그먼트의 이름을 지정해 준다.

- PARENT=

현재 정의하고 있는 세그먼트의 부모 세그먼트를 지정해 준다.

물리적인 부모 세그먼트와 논리적인 부모 세그먼트를 지정할 수 있다.

- BYTES=

세그먼트의 데이터 부분의 크기를 지정해 준다.

- TYPE=

DEDB 데이터베이스의 종속 세그먼트의 유형을 지정한다. 아래의 두 유형

중 하나를 선택할 수 있다.

a) SEQ

현재 세그먼트를 순차 독립 세그먼트(Sequential Dependent Segment)로

지정한다.

b) DIR

현재 세그먼트를 직접 독립 세그먼트(Direct Dependent Segment)로 지

정한다.

- FREQ=

HSAM, HISAM 또는 INDEX 데이터베이스에서 같은 부모 세그먼트 인스턴

스 밑에 존재하는 세그먼트 인스턴스의 추정 개수를 지정해 준다.

- POINTER=

현재 정의하는 세그먼트의 데이터 앞부분에 저장될 포인터들을 지정해 준다.

이 포인터들은 현재 세그먼트 인스턴스를 부모 세그먼트 또는 트윈 세그먼

트와 관계를 맺게 해준다.

아래의 포인터 유형 중 하나의 값을 가질 수 있다.

a) HIER[H]

4 byte Hierarchic Forward Pointer를 가진다.

b) HIERBWD[HB]

4 byte Hierarchic Forward Pointer와 4 byte Hierarchic Backward Pointer

를 가진다. Hierarchic Backward Pointer는 삭제할 때 성능을 향상시킨다.

Page 170: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 170

c) TWIN[T]

4 byte Physical Twin Forward Pointer를 가진다.

d) TWINBWD[TB]

4 byte Physical Twin Forward Pointer와 4 byte Physical Twin Backward

Pointer를 가진다. Twin Backward Pointer는 삭제할 때 성능을 향상시킨

다.

e) NOTWIN[NT]

Physical Twin Forward Pointer를 사용하지 않도록 설정한다. 물리적인

부모 세그먼트가 2개 이상의 자식 세그먼트를 갖지 않는다면 NOTWIN

설정을 사용할 수 있다.

f) LTWIN[LT]

실제 논리 자식(Real Logical Child) 세그먼트를 정의할 때 사용한다.

4 byte Logical Twin Forward Pointer를 가진다.

g) LTWINBWD[LTB]

실제 논리 자식(Real Logical Child) 세그먼트를 정의할 때 사용한다.

4 byte Logical Twin Forward Pointer와 4 byte Logical Twin Backward

Pointer를 가진다. 논리 자식을 삭제할 때 좋은 성능을 낸다.

h) LPARNT[LP]

4 byte Logical Parent Pointer를 가진다.

i) CTR[C]

4 byte 카운터 필드를 가진다. 카운터는 포인터로 연결되지 않는

HISAM 데이터베이스의 논리 부모 세그먼트에 필요하다.

j) PAIRED

이 세그먼트는 양방향 논리 관계(Bidirectional Logical Relationship)에 포

함되어 있음을 나타낸다.

- RULES=

세그먼트에 대한 추가(Insert), 삭제(Delete), 변경(Replace) 명령 시, 지켜야

하는 규칙을 지정한다.

a) FIRST

새로운 세그먼트 인스턴스는 물리 트윈 세그먼트의 제일 앞에 삽입된다.

b) LAST

새로운 세그먼트 인스턴스는 물리 트윈 세그먼트의 제일 뒤에 삽입된다.

c) HERE

새로운 세그먼트 인스턴스는 현재 물리 트윈 세그먼트의 앞에 삽입된다.

Page 171: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 171

- SOURCE=

두 가지 용도로 사용된다.

첫째는 가상 논리 자식 세그먼트를 정의할 때 실제 논리 자식 세그먼트와

연결하기 위해 사용하고, 또 한가지는 LOGICAL 데이터베이스의 세그먼트

를 정의할 때, 물리 데이터베이스의 세그먼트와 연결하기 위해 사용한다.

- SSPTR=

Subset Pointer의 개수를 지정해준다. 0부터 8까지의 숫자를 지정할 수 있다.

0을 지정하면 Subset Pointer가 생성되지 않는다.

LCHILD 문장

LCHILD 문장은 다음과 같은 것들을 정의한다.

- 두 개의 세그먼트간 논리 관계(Logical Relationship)를 정의한다.

- 두 개의 세그먼트간 HIDAM 일차 인덱스 또는 이차 인덱스를 정의한다.

LCHILD 문의 구문은 다음과 같다.

HISAM 데이터베이스를 위한 LCHILD 문장

LCHILD NAME=(segname1,dbname)

[,{POINTER|PTR}={DBLE|NONE|SYMB}]

[,PAIR=segname2]

[,RULES={LAST|FIRST|HERE}]

HDAM 또는 HIDAM 데이터베이스를 위한 LCHILD 문장

LCHILD NAME=(segname1,dbname)

[,{POINTER|PTR}={DBLE|NONE|INDX|SYMB}]

[,PAIR=segname2]

[,RULES={LAST|FIRST|HERE}]

INDEX 데이터베이스를 위한 LCHILD 문장

LCHILD NAME=(segname1,dbname)

[,{POINTER|PTR}={SNGL|SYMB}],-

INDEX=fldname

Page 172: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 172

다음은 LCHILD 문의 파라미터에 대한 설명이다.

- NAME=

segname1에 논리 자식이나 인덱스 포인터 또는 인덱스 대상의 이름을 지

정한다. dbname은 segname1에 지정한 세그먼트가 정의되어 있는 데이터베

이스 명을 지정한다.

- POINTER=

논리 관계 또는 인덱스 관계에서 사용되는 포인터를 지정한다.

a) SNGL

4 byte Logical Child First Pointer가 사용된다. 논리 관계 또는 인덱스 관

계에서 사용된다.

b) DBLE

논리 부모 세그먼트에 4 byte Logical Child First Pointer와 4 byte Logical

Child Last Pointer가 저장된다.

c) NONE

논리 부모 세그먼트에 Logical Child Pointer가 저장되지 않는다.

d) INDX

HIDAM 데이터베이스에서 루트 세그먼트와 일차 인덱스를 연결하기 위

해 사용된다.

e) SYMB

직접적인 Pointer 대신 연쇄 키를 사용한 이차 인덱스를 지정하기 위해

서 사용된다.

- PAIR=

양방향 논리 관계에서 물리적인 또는 가상적인 페어(Pair) 세그먼트를 지정

하기 위해 사용된다.

- INDEX=

INDEX 데이터베이스의 LCHILD 문장에서 사용되며, fldname은 HIDAM 주요

인덱스의 루트 세그먼트를 지정하거나, HIDAM 이차 인덱스의 XDFLD를 나

타낸다.

- RULES=

논리 관계에서 논리 자식 트윈들 사이에서의 삽입순서를 결정한다.

a) FIRST

새로운 논리 인스턴스는 모든 논리 트윈 인스턴스의 맨 앞에 삽입된다.

Page 173: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 173

b) LAST

새로운 논리 인스턴스는 모든 논리 트윈 인스턴스의 제일 뒤에 삽입된

다.

c) HERE

새로운 논리 인스턴스는 현재 논리 트윈 인스턴스의 앞에 삽입된다.

FIELD 문장

FIELD 문장은 한 세그먼트 안에서의 필드를 정의한다.

FIELD 문의 구문은 다음과 같다.

HSAM 데이터베이스를 위한 FIELD 문장

FIELD NAME=(fldname1[,SEQ,{U|M}]),-

BYTES=bytes,-

START=startpos

[,TYPE={C|X|P}]

HISAM 데이터베이스를 위한 FIELD 문장

FIELD NAME={(fldname1[,SEQ,{U|M}])|systrelfldname},-

BYTES=bytes,-

START=startpos

[,TYPE={C|X|P}]

HDAM 또는 HIDAM 데이터베이스를 위한 FIELD 문장

FIELD NAME={(fldname1[,SEQ,{U|M}])|systrelfldname},-

BYTES=bytes,-

START=startpos

[,TYPE={C|X|P}]

DEDB 데이터베이스를 위한 FIELD 문장

FIELD NAME=(fldname1[,SEQ,U]),-

BYTES=bytes,

START=startpos

[,TYPE={C|X|P}]

Page 174: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 174

INDEX 데이터베이스를 위한 FIELD 문장

FIELD NAME=(fldname1[,SEQ,{U|M}]),-

BYTES=bytes,-

START=startpos

[,TYPE={C|X|P}]

다음은 FIELD 문의 파라미터에 대한 설명이다.

- NAME=

한 세그먼트에서 정의되는 필드의 이름을 지정한다.

a) SEQ

현재 정의되는 필드가 순서 필드임을 알려준다.

b) U, M

순서의 유형을 지정한다.

U는 순서 필드에 유일한 값만이 저장됨을 알려준다.

M은 순서 필드에 같은 값이 여러 번 저장될 수 있는 것을 알려준다.

c) systrelfldname

시스템 연관 필드를 정의한다. 이차 인덱스에서만 사용될 수 있고, 두

가지 유형이 있다.

- BYTES=

현재 정의하는 필드의 크기를 지정한다.

- START=

현재 정의하는 필드의 시작 위치를 지정한다.

- TYPE=

현재 정의하는 필드의 데이터 타입을 지정한다. 아래와 같은 상수를 사용할

수 있다.

X: Hexadecimal data

P: Packed decimal data

C: Alphanumeric data or a combination of types of data

XDFLD 문장

XDFLD 문장은 이차 인덱스 관계에서 사용되는 색인 필드를 정의한다.

Page 175: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 175

XDFLD 문의 구문은 다음과 같다.

HISAM 데이터베이스를 위한 XDFLD 문장

XDFLD NAME=fldname

[,SEGMENT=segname]

[,CONST=char],

SRCH=list1

[,SUBSEQ=list2]

[,DDATA=list3]

[,NULLVAL=value1]

HDAM 또는 HIDAM 데이터베이스를 위한 XDFLD 문장

XDFLD NAME=fldname[,SEGMENT=segname]

[,CONST=char],

SRCH=list1

[,SUBSEQ=list2]

[,DDATA=list3]

[,NULLVAL=value1]

다음은 XDFLD 문의 파라미터에 대한 설명이다.

- NAME=

색인 데이터 필드의 이름을 지정한다.

- SEGMENT=

인덱스 소스 세그먼트의 이름을 지정한다.

- SRCH=

인덱스 소스 세그먼트의 필드 리스트를 지정한다.

- SUBSEQ=

이차 인덱스의 Subsequence Field를 지정한다.

- DDATA=

이차 인덱스의 Duplicate Data Field를 지정한다.

Page 176: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 176

참고: 현재 DBDGENC0 유틸리티의 XDFLD 명령어에서 다음의 파라미터는 지원하지 않

는다.

[,CONST=char], [,NULLVAL=value1]

DBDGEN, FINISH, END 문장

DBD 생성 컨트롤 문장에는 세 가지 추가적인 컨트롤 문장이 더 있다. 이 중

DBDGEN 문장과 END 문장은 반드시 사용되어야 하지만, FINISH 문장은 선택

적으로 사용할 수 있다.

DBDGEN 문장은 DBD 생성 컨트롤 문의 마지막을 나타낸다.

FINISH 문장은 선택적이며 호환성을 위해 존재한다.

END 문장은 어셈블리 입력 문장의 마지막을 나타낸다.

사용예제

다음은 DBDGEN 프로시저를 사용한 JCL 예이다.

//DBDGEN JOB MSGLEVEL=1

// EXEC DBDGEN,MBR=

//C.SYSIN DD *

DBD NAME=SKILLINV,ACCESS=HIDAM

DATASET DD1=SKLHIDAM,BLOCK=1648,SCAN=5

SEGM NAME=SKILL,BYTES=31,PTR=T,PARENT=0

LCHILD NAME=(INDE,INDEXDB),PTR=INDX

FIELD NAME=(TYPE,SEQ,U),BYTES=21,START=1,TYPE=C

FIELD NAME=SDCODE,BYTES=10,START=22,TYPE=C

SEGM NAME=NAME,BYTES=20,PTR=T,PARENT=((SKILL,SNGL))

FIELD NAME=(STDCLEVL,SEQ,U),BYTES=20,START=1,TYPE=C

SEGM NAME=EXPR,BYTES=20,PTR=T,PARENT=((NAME,SNGL))

FIELD NAME=PREVJOB,BYTES=10,START=1,TYPE=C

Page 177: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 177

FIELD NAME=CLASSIF,BYTES=10,START=11,TYPE=C

SEGM NAME=EDUC,BYTES=75,PTR=T,PARENT=((NAME,SNGL))

FIELD NAME=GRADLEVL,BYTES=10,START=1,TYPE=C

FIELD NAME=SCHOOL,BYTES=65,START=11,TYPE=C

DBDGEN

FINISH

END

/*

유의사항

DBDGENC0 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경

우 배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드를 반환한다.

DBDGENC0 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- SYSLIN DD를 제공하지 않는 오류

리턴코드: 12 (Unrecoverable)

- SYSLIN DD를 열지 못하는 오류

리턴코드: 16 (System Fault)

- SYSLIN DD 유형 오류

리턴코드: 12 (Unrecoverable)

- SYSIN DD를 복사하지 못하는 오류

리턴코드: 16 (System Fault)

- SYSIN DD 스크립트 파싱 오류

리턴코드: 12 (Unrecoverable)

Page 178: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 178

Appendix

DBDGENC0 유틸리티 프로그램으로 생성된 오브젝트 모듈을 시스템 라이브러

리로 복사하는 작업은 DFSILNK0 유틸리티 프로그램으로 수행한다.

참고: 유사한 유틸리티 프로그램으로는 PSBGENC0(PSB Assembly Compiler)이 있다.

더 자세한 Mainframe의 IMS 데이터베이스 스키마 생성 과정에 대해서는 다음의

IBM 안내서를 참고한다.

IMS Version7 Administration Guide: Database Manager

IMS Version7 Application Programming: Database Manager

IMS Version7 Utilities Reference: System

5.2 PSBGENC0

PSB 스크립트 어셈블리 컴파일 프로그램인 PSBGENC0 유틸리티 프로그램은

라이브러리 링크 에디터 프로그램인 DFSINLK0와 함께 PSBGEN 프로시저에서

사용된다.

HiDB 데이터베이스의 뷰를 정의하는 프로그램인 PSBGEN 프로시저는 응용프로

그램이 사용하는 HiDB 자원을 정의해준다. 다음은 PSBGENC0 프로그램과

DFSILNK0 프로그램을 동시에 실행시키는 PSBGEN 프로시저의 내용을 보여주

는 예로 아래와 같이 두 개의 스텝으로 이루어져 있다.

// PROC MBR=TEMPNAME,SOUT=A,RGN=4M,SYS2=

//C EXEC PGM=PSBGENC0,REGION=&RGN,PARM='OBJECT,NODECK'

//SYSLIB DD DSN=IMS.&SYS2MACLIB,DISP=SHR

//SYSLIN DD UNIT=SYSDA,DISP=(,PASS),

// SPACE=(80,(100,100),RLSE),

// DCB=(BLKSIZE=80,RECFM=F,LRECL=80)

//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,

// SPACE=(121,(300,300),RLSE,,ROUND)

//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),

// SPACE=(CYL,(10,5))

//L EXEC PGM=DFSILNK0,PARM='XREF,LIST',

Page 179: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 179

COND=(0,LT,C),REGION=120K

//SYSLIN DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE)

//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,

// SPACE=(121,(90,90),RLSE)

//SYSLMOD DD DSN=IMS.&SYS2PSBLIB(&MBR),DISP=SHR

//SYSUT1 DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),

// SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)

위 PSBGEN 프로시저의 첫번째 과정인 C 스텝은 어셈블리 컴파일 스텝으로

SYSIN으로 입력된 PSB 정의 스크립트를 컴파일 하기 위해 PSBGENC0 유틸리

티 프로그램을 실행시켜 오브젝트 모듈을 생성한다.

두번째 과정인 L 스텝은 Link-Edit 스텝으로 첫번째 과정인 어셈블리 컴파일 스

텝에서 생성된 오브젝트 모듈을 시스템 라이브러리로 복사하는 작업을 수행한다.

시스템 라이브러리로 복사된 PSB 오브젝트 모듈은 응용프로그램에서 사용될 수

있다. OpenFrame에서는 DFSILNK0 프로그램이 PSB 오브젝트 모듈에 대한

Link-Edit 작업을 수행한다.

DD 설정

- SYSIN DD

PSB 어셈블리 컴파일러로 컴파일 하기 위한 PSB 스크립트 입력 데이터 셋

을 지정한다.

- SYSLIN DD

PSBGENC0 유틸리티 프로그램에서 생성한 오브젝트 모듈을 저장하는 데이

터 셋을 지정한다.

명령어 설정

Alternate PCB 문장

현재 입력 메시지의 출처 이외의 목적지를 기술하기 위해 사용한다.

Alternate PCB 문의 구문은 다음과 같다.

Page 180: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 180

PCB TYPE=TP

[,{LTERM|NAME}=name]

[,ALTRESP={NO|YES}]

[,SAMETRM={NO|YES}]

[,MODIFY={NO|YES}]

[,EXPRESS={NO|YES}]

[,PCBNAME=pcbname]

[,LIST={YES|NO}]

다음은 Alternate PCB 문의 파라미터에 대한 설명이다.

- TYPE=TP

모든 Alternate PCB에 대한 필수 파라미터이다.

- {LTERM|NAME}=

메시지가 출력될 목적지의 이름을 지정한다. 논리 터미널 이름(LTERM=)이

나 트랜잭션 코드(NAME=)를 지정할 수 있다.

- ALTRESP=

이 Alternate PCB가 I/O PCB 대신 사용될 수 있는지 지정한다.

- SAMETRM=

여기에 사용된 논리 터미널이 실제 물리 터미널에 할당되어 있는지 지정한

다.

- MODIFY=

이 Alternate PCB가 변경 가능한지 지정한다.

- EXPRESS=

응용프로그램이 ABEND되었을 때, 이 Alternate PCB에서 나온 메시지가 목

적 터미널로 보내져야 하는지 아니면 제거될 지 여부를 지정한다.

- PCBNAME=

PCB의 이름을 지정해 준다. 매크로 어셈블러 레이블로 대체할 수 있다.

- LIST=

Page 181: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 181

응용프로그램이 실행될 때, 응용프로그램의 진입 포인트로 전달되는 PCB

목록에 리스트가 포함될 지 여부를 결정한다.

Database PCB 문장

두 번째 유형의 PCB 문장은 DL/I 또는 FastPath 데이터베이스를 위한 PCB를

기술한다.

Database PCB 문의 구문은 다음과 같다.

PCB TYPE=DB,

{DBDNAME|NAME}=name

[,PCBNAME=pcbname]

[,PROCOPT=nnnn]

[,SB={NO|COND}],

KEYLEN=value

[,POS={SINGLE|MULTIPLE}]

[,PROCSEQ=index_dbname]

[,VIEW=MSDB]

[,LIST={YES|NO}]

다음은 Database PCB 문의 파라미터에 대한 설명이다.

- TYPE=DB

모든 DL/I 데이터베이스 PCB에 대한 필수 파라미터이다.

- {DBDNAME|NAME}=

응용프로그램을 위한 실제 데이터베이스 구조에 대한 뷰를 나타내는 논리

데이터 구조의 물리 데이터베이스 이름 또는 논리 데이터베이스 이름을 지

정한다.

- PCBNAME=

PCB의 이름을 지정한다.

- PROCOPT=

PCB 처리 파라미터를 지정한다. 최대 4개의 알파벳 문자를 사용하여 설정

할 수 있으며, 다음과 같은 알파벳 문자를 지원한다.

Page 182: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 182

옵션 설명

G “Get” 기능

I “Insert” 기능

R “Replace” 기능. Get 기능을 포함한다.

D “Delete” 기능. Get 기능을 포함한다.

A “Get”, “Insert”, “Replace”, “Delete” 4가지 기능을 모두 포함한

다. (기본 설정값)

P ‘D’ 기능을 설정할 때 ‘P’도 함께 설정한다.

L 데이터베이스를 로드하는 “Load” 기능 (단, HIDAM 제외)

GS 오름차순으로만 세그먼트를 가져오는 기능 (HSAM만 해당)

LS 오름차순으로만 세그먼트를 로드하는 기능 (HIDAM, HDAM)

[표 5-2] PROCOPT 옵션

- SB=

순차 버퍼링(Sequential Bufferring) 기법을 사용할 지의 여부를 결정한다. (지

원안함)

- KEYLEN=

가장 긴 연쇄 키의 크기를 지정해 준다.

- POS=

논리 데이터 구조에서 한 개 또는 여러 개의 포지셔닝을 지원할 지를 지정

해 준다.

- PROCSEQ=

데이터베이스에 접근하기 위한 이차 인덱스 이름을 지정해 준다.

- VIEW=MSDB

MSDB 커밋 뷰를 제공한다. (지원하지 않음)

- LIST=

응용프로그램이 실행될 때, 응용프로그램의 진입 포인트로 전달되는PCB 목

록에 포함될 지 여부를 결정한다.

Page 183: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 183

SENSEG 문장

SENSEG 문장은 계층적으로 연결되어 있는 데이터 세그먼트를 정의하기 위해

사용한다.

SENSEG 명령어 구문은 다음과 같다.

SENSEG NAME=name,

PRENT=name,

PROCOPT=nnnn,

SSPTR=((n,{r|u}),...)

[,INDICES=list1]

다음은 SENSEG 명령어의 파라미터에 대한 설명이다.

- NAME=

DBD를 생성할 때 SEGM 문장을 통해 정의되었던 세그먼트의 이름을 지정

한다.

참고: SEGM 문장에 정의하는 세그먼트 이름에 대한 자세한 내용은 “5.1 DBDGENC0”의 명령어 설정을 참고한다.

- PARENT=

현재 세그먼트의 부모 세그먼트를 적어준다.

- PROCOPT=

연관된 응용프로그램에서 사용될 세그먼트 처리 파라미터를 지정해 준다.

PCB 문장의 PROCOPT 파라미터와 동일한 의미를 갖는다.

- SSPTR=

Subset Pointer의 개수와 해당 Pointer에 대한 민감도(Sensitivity)를 지정해준

다. 최대 8개의 Subset Pointer가 정의될 수 있다. 민감도로는 R(Read) 또는

U(Update)를 지정해 준다.

- INDICES=

어떤 2차 인덱스가 인덱스 세그먼트에 대한 검색 필드를 담고 있는지 지정

한다.

Page 184: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 184

SENFLD 문장

SENSEG 문장과 함께 사용되어 응용프로그램에서 어떤 필드를 사용할 수 있는

지 지정해 준다.

SENFLD 문의 구문은 다음과 같다.

SENFLD NAME=name,

START=startpos

[,{REPLACE|REPL}={YES|NO}]

다음은 SENFLD 문의 파라미터에 대한 설명이다.

- NAME=

DBD를 생성할 때 FIELD 문장으로 정의되었던 필드의 이름을 지정한다.

참고: FIELD 문장에 정의하는 필드 이름에 대한 자세한 내용은 “5.1 DBDGENC0”의 명령어 설정을 참고한다.

- START=

사용자 I/O 영역에서 해당 필드의 시작 위치를 지정한다.

- {REPLACE|REPL}=

REPLACE 요청을 통해 해당 필드가 변경될 수 있는 지의 여부를 결정한다.

PSBGEN 문장

응용프로그램의 속성을 지정해 준다.

PSBGEN 문의 구문은 다음과 같다.

PSBGEN PSBNAME=name

[,LANG={COBOL|PL/I|ASSEM|PASCAL|blank}]

[,MAXQ={0|nr}]

[,CMPAT={NO|YES}]

[,IOASIZE=value]

[,SSASIZE=value]

[,IOEROPN={n|(n,WTOR)}]

[,OLIC={NO|YES}]

[,GSROLBOK={NO|YES}]

[,LOCKMAX={0|n}]

Page 185: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 185

다음은 PSBGEN 문의 파라미터에 대한 설명이다.

- PSBNAME=

현재 정의하는 PSB의 이름을 지정해 준다.

- LANG=

메시지 프로그램 또는 배치 프로그램이 작성된 컴파일러 언어를 지정해 준

다.

- MAXQ=

Qx 명령어 코드를 포함한 데이터베이스 호출의 최대 개수를 지정해 준다.

- CMPAT=

BMP 프로그램 또는 MSG 프로그램에서의 호환성을 표시한다. 만약

CMPAT=YES이면 해당 PSB는 맨 앞에 I/O PCB를 포함하고 있는 것으로

간주된다.

- IOASIZE=

응용프로그램에서 사용하는 I/O 영역의 최대 크기를 지정해 준다.

- SSASIZE=

응용프로그램에서 사용하는 SSA의 최대 길이를 지정해 준다.

- LOCKMAX=

응용프로그램이 동시에 획득할 수 있는 LOCK의 최대 개수를 지정한다.

참고: 현재 DBDGENC0 유틸리티의 PSBGEN 명령어에서 다음의 파라미터는 지원하지 않는다.

[,IOEROPN={n|(n,WTOR)}] [,OLIC={NO|YES}][,GSROLBOK={NO|YES}]

END 문장

모든 PSB 생성 유틸리티 컨트롤 문장은 END 문장으로 종료되어야 한다.

Page 186: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 186

사용예제

다음은 PSBGEN 프로시저를 사용한 JCL 예이다.

//PSBGEN JOB MSGLEVEL=1

// EXEC PSBGEN,MBR=APPLPGM1

//C.SYSIN DD *

PCB TYPE=TP,NAME=OUTPUT1,PCBNAME=OUTPCB1

PCB TYPE=TP,NAME=OUTPUT2,PCBNAME=OUTPCB2

PCB TYPE=DB,DBDNAME=PARTMSTR,PROCOPT=A,KEYLEN=100

SENSEG NAME=PARTMAST,PARENT=0,PROCOPT=A

SENSEG NAME=CPWS,PARNET=PARTMAST,PROCOPT=A

SENSEG NAME=POLN,PARENT=PARTMAST,PROCOPT=A

SENSEG NAME=OPERTON=PARENT=PARTMAST,PROCOPT=A

SENSEG NAME=INVSTAT,PARENT=OPERTON,PROCOPT=A

SENSEG NAME=OPERSGMT,PARENT=OPERTON

PSBGEN LANG=COBOL,PSBNAME=APPLPGM1

END

/*

유의사항

PSBGENC0 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드를 반환한다.

PSBGENC0 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- SYSLIN DD를 제공하지 않는 오류

리턴코드: 12 (Unrecoverable)

Page 187: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 187

- SYSLIN DD를 열지 못하는 오류

리턴코드: 16 (System Fault)

- SYSLIN DD 유형 오류

리턴코드: 12 (Unrecoverable)

- SYSIN DD를 복사하지 못하는 오류

리턴코드: 16 (System Fault)

- SYSIN DD 스크립트 파싱 오류

리턴코드: 12 (Unrecoverable)

Appendix

PSBGENC0 유틸리티 프로그램으로 생성된 오브젝트 모듈을 시스템 라이브러리

로 복사하는 작업은 DFSILNK0 유틸리티 프로그램으로 수행한다.

더 자세한 Mainframe의 PSB 생성 과정에 대해서는 다음의 IBM 안내서를 참고

한다.

IMS Version7 Administration Guide: Database Manager

IMS Version7 Application Programming: Database Manager

IMS Version7 Utilities Reference: System

참고: 유사한 유틸리티 프로그램으로는 DBDGENC0(DBD Assembly Compiler)이 있다.

5.3 DFSILNK0

라이브러리 링크 에디터인 DFSILNK0 유틸리티 프로그램은 다음과 같이 사용된

다.

- DBD 어셈블리 컴파일 프로그램인 DBDGENC0 프로그램과 같이 DBDGEN

프로시저에서 사용된다.

- PSB 어셈블리 컴파일 프로그램인 PSBGENC0 프로그램과 같이 PSBGEN

프로시저에서 사용된다.

DBD 스크립트 또는 PSB 스크립트의 어셈블리 컴파일을 수행하면 오브젝트 모

듈이 생성된다. DFSILNK0 프로그램은 이렇게 생성된 오브젝트 모듈을 시스템

Page 188: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 188

라이브러리로 복사하는 작업을 수행한다. 시스템 라이브러리로 복사된 오브젝트

모듈은 이 후에 응용프로그램에서 사용할 수 있게 된다.

DD 설정

- SYSLIN DD

어셈블리 컴파일 스텝에서 만들어진 오브젝트 모듈을 지정해 준다.

- SYSLMOD DD

최종적으로 복사되어야 하는 시스템 라이브러리 데이터 셋을 지정해 준다.

명령어 설정

DFSILNK0 유틸리티 프로그램에서 따로 설정해야 하는 컨트롤 명령어는 없다.

사용예제

다음은 DBDGEN 프로시저에서 DFSILNK0 유틸리티 프로그램을 이용하여 각

스텝에서 생성된 오브젝트 모듈을 시스템 라이브러리로 복사하는 JCL 예이다.

// PROC MBR=TEMPNAME,SOUT=A,RGN=4M,SYS2=

//C EXEC PGM=DBDGENC0,REGION=&RGN,PARM='OBJECT,NODECK'

//SYSLIB DD DSN=IMS.&SYS2MACLIB,DISP=SHR

//SYSLIN DD UNIT=SYSDA,DISP=(,PASS),

// SPACE=(80,(100,100),RLSE),

// DCB=(BLKSIZE=80,RECFM=F,LRECL=80)

//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,

// SPACE=(121,(300,300),RLSE,,ROUND)

//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),

// SPACE=(CYL,(10,5))

//L EXEC PGM=DFSILNK0,PARM='XREF,LIST',

COND=(0,LT,C),REGION=120K

//SYSLIN DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE)

Page 189: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 189

//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,

// SPACE=(121,(90,90),RLSE)

//SYSLMOD DD DSN=IMS.&SYS2DBDLIB(&MBR),DISP=SHR

//SYSUT1 DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),

// SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)

다음은 PSBGEN 프로시저에서 DFSILNK0 유틸리티 프로그램을 이용하여 각 스

텝에서 생성된 오브젝트 모듈을 시스템 라이브러리로 복사하는 JCL 예이다.

// PROC MBR=TEMPNAME,SOUT=A,RGN=4M,SYS2=

//C EXEC PGM=PSBGENC0,REGION=&RGN,PARM='OBJECT,NODECK'

//SYSLIB DD DSN=IMS.&SYS2MACLIB,DISP=SHR

//SYSLIN DD UNIT=SYSDA,DISP=(,PASS),

// SPACE=(80,(100,100),RLSE),

// DCB=(BLKSIZE=80,RECFM=F,LRECL=80)

//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,

// SPACE=(121,(300,300),RLSE,,ROUND)

//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),

// SPACE=(CYL,(10,5))

//L EXEC PGM=DFSILNK0,PARM='XREF,LIST',

COND=(0,LT,C),REGION=120K

//SYSLIN DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE)

//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,

// SPACE=(121,(90,90),RLSE)

//SYSLMOD DD DSN=IMS.&SYS2PSBLIB(&MBR),DISP=SHR

//SYSUT1 DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),

// SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)

Page 190: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 190

유의사항

DFSILNK0 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드를 반환한다.

DFSILNK0 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- SYSLIN DD를 제공하지 않는 오류

리턴코드: 12 (Unrecoverable)

- SYSLMOD DD를 제공하지 않는 오류

리턴코드: 12 (Unrecoverable)

- SYSLIN DD를 열지 못하는 오류

리턴코드: 16 (System Fault)

- SYSLMOD DD를 열지 못하는 오류

리턴코드: 16 (System Fault)

- SYSLIN DD 유형 오류

리턴코드: 12 (Unrecoverable)

- SYSLMOD DD 유형 오류

리턴코드: 12 (Unrecoverable)

- SYSLIN DD를 복사하지 못하는 오류

리턴코드: 16 (System Fault)

Appendix

DFSILNK0 유틸리티 프로그램으로 오브젝트 모듈을 시스템 라이브러리로 복사

하기 전 DBDGENC0 (DBD Assembly Compiler) 프로그램이나 PSBGENC0 (PSB

Assembly Compiler) 프로그램으로 어셈블리 컴파일 스텝을 거치게 된다.

Page 191: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 191

5.4 DBFUMIN0

하나 또는 여러 개의 DEDB AREA 데이터 셋을 초기화할 때 사용하는 유틸리티

프로그램이다.

DEDB AREA는 그 역할과 특성과 따라 다음과 같이 세가지 영역으로 구성된다.

- Root Addressable Part

데이터가 먼저 기록되는 기본적인 영역인 Base Section과 할당된 Base

Section의 용량 초과시 기록되는 Dependent Overflow Section으로 나뉜다.

- Independent overflow Part

Root Addressable Part의 Overflow Section 용량이 초과된 경우 사용하는 영

역이다.

- Sequential dependent Part

DEDB 정의 시 사용여부를 선택적으로 지정할 수 있으며, 데이터가 순차적

으로 저장되기 때문에 데이터 수집이나 로그 같은 대용량 데이터의 삽입 속

도를 높이기 위해 사용된다.

DBFUMIN0 유틸리티 프로그램은 내부적으로 DEDB의 최소작업단위인 CI영역을

분석하여 각 영역별 Prefix와 Suffix 포맷에 따라 레코드의 포인터 연결작업 및

데이터 초기화 작업을 진행한다.

DD 설정

- ACBLIB DD

초기화 대상 데이터베이스 정보를 가지고 있는 ACBLIB의 DBD 멤버에 대

해 기술한다.

- areaname DD

초기화 대상 데이터 셋의 정보를 가지고 있다.

- SYSPRINT DD

DBFUMIN0 실행 중 발생하는 에러 메시지를 출력할 데이터 셋을 기술한다.

Page 192: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 192

- CONTROL DD

DBFUMIN0에서 필요한 입력 컨트롤 문을 기술한다.

명령어 설정

DBFUMIN0에서는 사용하는 CONTROL 문장은 다음과 같다.

AREA=[areaname DD|ALL]

- areaname DD

초기화 대상 areaname DD명을 기술한다. 최대 8자의 areaname DD명을 지

정할 수 있으며, 한번에 한 개의 areaname DD만 지정할 수 있다.

- ALL

기술된 DEDB 내의 모든 area를 초기화할 때 사용한다.

사용예제

다음은 DEDB 내의 모든 AREA를 초기화하는 예이다.

//DBFUMIN0 JOB

//FORMAT EXEC PGM=DBFUMIN0

//ACBLIB DD DSNAME=DEDB.ACBLIB(AREA01),DISP=SHR

//DEDB1 DD DSNAME=IMS.TEST.DEDB1,DISP=OLD

//DEDB2 DD DSNAME=IMS.TEST.DEDB2,DISP=OLD

//DEDB3 DD DSNAME=IMS.TEST.DEDB3,DISP=OLD

//SYSPRINT DD SYSOUT=*

//CONTROL DD *

AREA=ALL

/*

Page 193: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 193

유의사항

DEDB AREA를 초기화하기 전 ACBLIB의 DBD 멤버가 존재해야 하며, 여러 개

의 area를 초기화하는 도중 에러가 발생하면 초기화 진행을 중단한다.

DBFUMIN0 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드를 반환한다.

DBFUMIN0 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- DEDB area 초기화 실패

리턴코드: 8 (Error during format processing)

참고: IBM의 DBRC RECON 데이터 셋 기능은 지원하지 않는다.

5.5 DFSRRC00

HiDB 리전 컨트롤 프로그램인 DFSRRC00 유틸리티 프로그램은 HiDB를 사용하

는 배치 응용프로그램을 JCL로 실행시킬 때, 프로그램이 실행되기 전 사용하려

고 하는 HiDB 자원을 미리 준비해준다.

실제로 실행하려고 하는 배치 응용프로그램이나 HiDB 유틸리티 프로그램에 대

한 정보는 DFSRRC00 유틸리티 프로그램을 실행할 때 JCL의 실행 파라미터로

전달해 준다.

DFSRRC00 유틸리티 프로그램을 통해서 배치 응용프로그램을 실행시키기 위해

서는 배치 응용프로그램을 Shared Object의 형태로 컴파일 해야 한다.

참고: 배치 응용프로그램을 컴파일하는 방법에 대해서는 “마이그레이션 안내서”를 참고

한다.

Page 194: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 194

DD 설정

- DFSVSAMP DD

DL/I 버퍼 핸들러에서 필요로 하는 버퍼 풀 정보를 기술한다.

- DFSRESLB DD

리소스 데이터를 포함하는 IMS 시스템 라이브러리를 지정해 준다.

- IMS DD

DBD나 PSB를 포함하는 IMS 시스템 라이브러리를 지정해 준다.

참고: DFSRRC00 유틸리티 프로그램에서 사용하는 DD에 대한 자세한 정보는 “HiDB 안

내서”를 참고한다.

명령어 설정

DFSRRC00 유틸리티 프로그램은 JCL의 프로그램 실행 파라미터로 유틸리티

프로그램의 실행을 제어한다.

BMP 리전

온라인 배치 프로그램인 BMP 프로그램을 실행한다. BMP 프로그램을 실행시키

기 위해 다음과 같은 파라미터 리스트를 필요로 한다.

BMP 리전 문의 구문은 다음과 같다.

'BMP,pgm-name,psb-name,...'

다음은 BMP 리전 문의 파라미터에 대한 설명이다.

- BMP

BMP 프로그램을 실행한다는 것을 알려주기 위해 첫번째 파라미터로 BMP

리전을 지정한다.

- pgm-name

실행시키려고 하는 BMP 프로그램의 이름을 지정한다.

Page 195: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 195

- psb-name

실행시키려고 하는 BMP 프로그램에서 사용하는 PSB 이름을 지정한다.

DLI Region

HiDB를 사용하는 순수 배치 프로그램을 실행한다. 배치 프로그램을 실행시키기

위해 다음과 같은 파라미터 리스트를 필요로 한다.

'DLI,pgm-name,psb-name,...'

다음은 DLI 리전 문의 파라미터에 대한 설명이다.

- DLI

배치 프로그램을 실행한다는 것을 알려주기 위해 첫번째 파라미터로 DLI

리전을 지정한다.

- pgm-name

실행시키려고 하는 배치 프로그램의 이름을 지정한다.

- psb-name

실행시키려고 하는 배치 프로그램에서 사용하는 PSB 이름을 지정한다.

ULU 리전

HiDB 관련 유틸리티 프로그램을 실행한다. 유틸리티 프로그램을 실행시키기 위

해 다음과 같은 파라미터 리스트를 필요로 한다.

'ULU,util-name,...'

다음은 ULU 리전 문의 파라미터에 대한 설명이다.

- ULU

유틸리티 프로그램을 실행한다는 것을 알려주기 위해 첫번째 파라미터로

ULU 리전을 지정한다.

- util-name

실행시키려고 하는 HiDB 유틸리티의 이름을 지정해 준다.

Page 196: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 196

사용예제

다음은 DFSRRC00 유틸리티 프로그램을 사용하여 HiDB Prereorganization 유틸

리티 프로그램인 DFSURPR0 유틸리티 프로그램을 실행시키는 JCL 예이다.

//RLUTIL JOB 1,1,MSGLEVEL=1

//*

//STEP1 EXEC PGM=DFSRRC00,PARM='ULU,DFSURPR0'

//STEPLIB DD DSNAME=IMS.SDFSRESL,DISP=SHR

//DFSRESLB DD DSNAME=IMS.SDFSRESL,DISP=SHR

//IMS DD DSNAME=IMS.DBDLIB,DISP=SHR

//SYSPRINT DD SYSOUT=A,DCB=BLKSIZE=1200

//DFSURCDS DD DSNAME=IMS.RLCDS,DISP=(NEW,KEEP),

// UNIT=SYSDA,VOL=SER=IMSMSC,DCB=(BLKSIZE=1600),

// SPACE=(CYL,1)

//SYSIN DD *,DCB=BLKSIZE=80

DBIL=PAYRbbbb,SKILLINV

/*

유의사항

DFSRRC00 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드를 반환한다.

DFSRRC00 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋 인증관련 준비과정 실패

리턴코드: 12 (Unrecoverable)

- 프로그램 파라미터 개수 지정 오류

리턴코드: 12 (Unrecoverable)

Page 197: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 197

- 파라미터에 리전을 잘못 찾은 오류

리턴코드: 12 (Unrecoverable)

- 실행시켜야 할 응용프로그램을 못 찾은 오류

리턴코드: 12 (Unrecoverable)

- 응용프로그램의 바이너리 형식 체크 오류

리턴코드: 16 (System Fault)

- 지원하지 않는 응용프로그램 바이너리 형식

리턴코드: 12 (Unrecoverable)

- 프로세스 분기(fork) 실패

리턴코드: 16 (System Fault)

- 입력/출력 리다이렉트 실패

리턴코드: 16 (System Fault)

- 동적 메모리 로드(dlopen) 실패

리턴코드: 12 (Unrecoverable)

- 엔트리 포인트 검색(dlsym) 실패

리턴코드: 12 (Unrecoverable)

Appendix

DFSRRC00 유틸리티 프로그램을 사용하는 HiDB 유틸리티 프로그램으로는

DFSURPR0(HiDB Preorganization Utility), DFSURUL0(HISAM Reorganization

Unload Utility), DFSURRL0(HISAM Reorganization Reload Utility) 등이 있다.

참고: 유사한 유틸리티 프로그램으로는 PGMRTS00(Runtime Environment Control Program)과 IKJEFT01(TSO Terminal Monitor Program)이 있다.

5.6 DFSURPR0

HiDB 재편성 준비작업(Pre-organization)을 위한 유틸리티 프로그램이다.

이 유틸리티 프로그램은 HiDB 재편성 준비 작업으로서 정보수집(Prefix

Resolution)을 위한 유틸리티 프로그램인 DFSURG10에서 사용하는 컨트롤 데이

터 셋을 생성하기 위한 목적으로 실행된다.

다음은 HiDB 재편성 작업 과정으로, 모든 과정은 순서대로 진행되어야 성공적

Page 198: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 198

으로 재편성을 완료할 수 있다.

[그림 5-1] 재편성 준비 과정

DD 설정

- IMS DD

유틸리티 프로그램에서 사용할 DBD 정보를 담고 있는 PDS 라이브러리를

지정한다.

- SYSIN DD

유틸리티 컨트롤 문을 담고 있는 입력 데이터 셋을 지정한다.

- SYSPRINT DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.

- DFSURCDS DD

유틸리티 프로그램을 실행한 후 생성되는 출력 데이터 셋을 지정한다. 여기

서 생성되는 출력 데이터 셋은 정보 수집 유틸리티 프로그램인 DFSURG10

에서 사용하기 위한 컨트롤 데이터 셋이다.

명령어 설정

JCL의 EXEC 문에 다음과 같이 지정해 준다.

//STEP EXEC PGM=DFSRRC00,PARM='ULU,DFSURPR0'

SYSIN DD에 DFSURPR0 컨트롤 문을 기술한다.

- DBIL=[database_name]

재편성 대상이 되는 데이터베이스 이름을 기술한다.

Page 199: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 199

사용예제

다음은 JS1PDBD라는 이름으로 DBD에 선언된 HiDB를 재편성하기 위해 정보를

수집하고, 수집한 정보를 DFSURCDS DD로 지정한 TEST.HISAM.JS1CDS라는

이름의 데이터 셋에 저장하는 예이다.

//ESTEP EXEC PGM=DFSRRC00,PARM='ULU,DFSURPR0'

//IMS DD DSN=TEST.DFSUR.DBDLIB,DISP=SHR

//SYSPRINT DD SYSOUT=*

//DFSURCDS DD DSN=TEST.HISAM.JS1CDS,DISP=(NEW,CATLG),

// DCB=(RECFM=FB,BLKSIZE=1600),SPACE=(CYL,1)

//SYSIN DD *

DBIL=JS1PDBD

/*

5.7 DFSURG10

HiDB의 I/O 최적화를 목적으로 재편성을 위한 정보를 수집하는 유틸리티 프로

그램이다.

HiDB 재편성에 필요한 데이터 정보를 수집하여 재편성 언로드 (Reorganization

Unload) 유틸리티 프로그램인 DFSURUL0에서 사용하는 이차 인덱스 작업 데이

터 셋(secondary index work dataset)을 생성하기 위한 목적으로 실행된다.

[그림 5-2] 재편성 기초 자료 조사 과정

참고: HiDB는 하나의 인덱스를 사용하는 마스터 인덱스(master index) 또는 일차 인덱스

(primary index)와 마스터 인덱스를 제외한 두 개 이상의 인덱스를 일컫는 이차 인

덱스(secondary index)가 있다.

HiDB가 2차 인덱스를 사용하는 경우, 데이터베이스 언로드 작업에서 2차 인덱스

에 대한 정보를 저장하기 위해 사용되는 데이터 셋을 2차 인덱스 작업 데이터 셋

이라 한다.

Page 200: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 200

DD 설정

- SYSPRINT DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.

- DFSURCDS DD

재편성 준비작업 유틸리티 프로그램인 DFSURPR0에서 생성된 컨트롤 데이

터 셋을 지정한다.

- DFSURIDX DD

유틸리티 프로그램을 실행한 후 생성되는 출력 데이터 셋을 지정한다.

여기서 생성되는 출력 데이터 셋은 재편성 언로드 유틸리티 프로그램인

DFSURUL0에서 사용하기 위한 이차 인덱스 작업 데이터 셋이다.

명령어 설정

JCL의 EXEC 문에 다음과 같이 지정해 준다.

//STEP EXEC PGM=DFSURG10

DFSURG10 유틸리티 프로그램을 실행하기 위해 위와 같이 JCL의 EXEC 문을

설정하는 것 외의 별도의 명령어 설정은 없다.

사용예제

다음은 HiDB 재편성 준비작업 유틸리티 프로그램인 DFSURPR0에서 생성된

TEST.HISAM.JS1CDS를 재편성하기 위한 준비작업으로 DFSURG10 프로그램을

실행 후 TEST.HISAM.JS1IDX를 생성하는 예이다.

//EXSTEP EXEC PGM=DFSURG10

//SYSPRINT DD SYSOUT=*

//DFSURCDS DD DSN=TEST.HISAM.JS1CDS,DISP=(OLD,KEEP)

//DFSURIDX DD DSN=TEST.HISAM.JS1IDX,

// DISP=(NEW,CATLG),

DCB=(LRECL=900,BLKSIZE=1008,RECFM=FB)

Page 201: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 201

참고: DFSURPR0 유틸리티 프로그램과 DFSURUL0 유틸리티 프로그램에 대한 자세한 내용은 “DFSURPR0”과 “DFSURUL0”을 참고한다.

5.8 DFSURUL0

HISAM 재편성 언로드(Reorganization Unload) 유틸리티 프로그램이다.

이 유틸리티 프로그램은 HISAM 재편성 리로드 유틸리티 프로그램인

DFSURRL0에서 사용하기 위한 재편성된 출력 데이터 셋을 생성하는 목적으로

사용된다.

[그림 5-3] 데이터 파일 백업

DD 설정

- IMS DD

유틸리티 프로그램에서 사용할 DBD 정보를 담고 있는 PDS 라이브러리를

지정한다.

- SYSPRINT DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.

- SYSIN DD

유틸리티 컨트롤 문을 담고 있는 입력 데이터 셋을 지정한다.

- vsamksds DD

재편성 대상이 되는 VSAM KSDS 데이터 셋을 지정한다.

JCL에 기술된 DD명은 사용할 DBD에 정의된 DD명, 그리고 SYSIN DD의

유틸리티 컨트롤 문에 기술된 VSAM KSDS DD명과 일치해야 한다.

여기에서 지정하는 VSAM KSDS 데이터 셋은 HISAM 데이터베이스의 일차

데이터 셋 즉, HISAM 데이터베이스의 일차 인덱스 정보를 갖고 있는

VSAM KSDS을 의미한다.

Page 202: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 202

- dataout1 DD

첫번째 재편성된 출력 데이터 셋을 지정한다.

- dataout2 DD

두번째 재편성된 출력 데이터 셋을 지정한다.

두번째 재편성된 출력 데이터 셋은 첫번째로 재편성된 출력 데이터 셋과 같

은 내용을 저장하게 되며, 첫번째로 재편성된 출력 데이터 셋이 분실 또는

손상되었을 경우를 대비한 백업용 데이터 셋으로 사용한다.

- indexwrkds DD

재편성 대상이 되는 HISAM이 이차 인덱스를 사용하는 경우, 정보 수집 유

틸리티 프로그램인 DFSURG10을 실행한 결과 생성된 이차 인덱스 작업 데

이터 셋을 지정한다.

명령어 설정

JCL의 EXEC문에 다음과 같이 DFSRRC00의 실행 파라미터로 지정해 준다.

//STEP EXEC PGM=DFSRRC00,PARM='ULU,DFSURUL0'

SYSIN DD 칼럼에 다음의 오프셋에 설정할 수 있는 DFSURUL0 컨트롤 문을 기

술한다.

오프셋 설명

1 'X' 문자를 사용한다.

2 1 또는 2 숫자를 사용하여 재편성 출력 데이터 셋의 개수를 지

정한다.

3 'M' 또는 작은 따옴표에 스페이스 문자(' ')를 입력한다

4-12 사용할 DBD명을 지정한다.

13-21 재편성 대상이 되는 VSAM KSDS의 DD명을 지정한다.

22-30 첫번째 재편성 출력 데이터 셋의 DD명을 지정한다.

31-39 두번째 재편성 출력 데이터 셋의 DD명을 지정한다. 만약 오프

셋 2에 지정된 값이 1일 경우에는 이 위치에 공백문자를 지정

한다.

40-48 이차 인덱스 작업 데이터 셋의 DD명을 지정한다.

[표 5-3] DFSURUL0 컨트롤 문장

Page 203: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 203

- OPTIONS= (STATS|NSTAT)

HISAM 언로드 작업의 수행 결과, 통계 정보를 출력할지 여부를 지정하는

옵션 문으로, STATS로 설정할 경우 통계 정보를 출력한다. OpenFrame에서

이 옵션을 사용시 파싱 에러는 발생하지 않으나 특별한 기능을 수행하지는

않는다.

사용예제

다음은 TEST.HISAM.KSDS라는 이름의 HISAM 데이터베이스 내용을

TEST.HISAM.JS1OUT1이라는 데이터 셋에 언로드하는 예이다.

추후에 이 TEST.HISAM.JS1OUT1이라는 데이터 셋을 이용하여

TEST.HISAM.KSDS라는 HISAM 데이터베이스의 리로드 작업을 수행할 수 있다.

//EXSTEP EXEC PGM=DFSRRC00,PARM='ULU,DFSURUL0'

//IMS DD DSN=TEST.DFSUR.DBDLIB,DISP=SHR

//SYSPRINT DD SYSOUT=*

//DFSURIDX DD DSN=TEST.HISAM.JS1IDX, DISP=(OLD,KEEP),

// DCB=(LRECL=900,BLKSIZE=1008,RECFM=FB)

//JS1SEGA1 DD DSN=TEST.HISAM.KSDS,DISP=SHR

//JS1OUT1 DD DSN=TEST.HISAM.JS1OUT1,DISP=(NEW,CATLG),

// SPACE=(CYL,(5,5))

//* +----1----+----2----+----3----+----4----+----5----+----6

//SYSIN DD *

OPTIONS=STATS

X1 JS1PDBD1 JS1SEGA1 JS1OUT1 DFSURIDX

/*

유의사항

DFSURUL0 유틸리티 프로그램은 PSINDEX 데이터베이스를 언로드할 수 없다.

PSINDEX 데이터베이스를 언로드하기 위해서는 HD 재편성 언로드 유틸리티 프

로그램을 사용해야 한다.

Page 204: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 204

참고: DFSURG10 유틸리티 프로그램과 DFSURRL0 유틸리티 프로그램에 대한 자세한 내용은 “DFSURG10”과 “DFSURUL0”을 참고한다.

5.9 DFSURRL0

HISAM 재편성 리로드 유틸리티 프로그램이다.

이 유틸리티 프로그램은 HISAM 재편성 언로드 유틸리티 프로그램인

DFSURUL0에서 생성한 재편성된 출력 데이터 셋을 이용해서 HISAM 데이터 셋

을 리로드하기 위한 목적으로 사용된다.

[그림 5-4] 데이터 복구

DD 설정

- IMS DD

유틸리티 프로그램에서 사용할 DBD 정보를 담고 있는 PDS 라이브러리를

지정한다.

- SYSPRINT DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.

- SYSIN DD

유틸리티 컨트롤 문 정보를 담고 있는 입력 데이터 셋을 지정한다.

- DFSUIN01 DD

HISAM 재편성 언로드 유틸리티 프로그램인 DFSURUL0에서 생성된 재편성

출력 데이터 셋을 지정한다.

- vsamout1 DD

재편성 대상이 되는 VSAM KSDS 데이터 셋을 지정한다. JCL에 기술된 DD

Page 205: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 205

명은 데이터 셋 언로드시에 사용한 DBD에 정의된 DD명과 일치하여야 한

다.

명령어 설정

JCL의 EXEC문에 다음과 같이 DFSRRC00의 실행 파라미터로 지정해 준다.

//STEP EXEC PGM=DFSRRC00,PARM='ULU,DFSURRL0'

SYSIN DD에 DFSURRL0 control statements를 기술한다.

- OPTIONS= (STATS|NSTAT)

HISAM 리로드 수행 결과, 통계정보를 출력여부를 지정하는 옵션 문으로,

STATS로 설정할 경우 통계정보를 출력한다. OpenFrame에서 이 옵션을 사

용시 파싱 에러는 발생하지 않으나 특별한 기능을 수행하지는 않는다.

사용예제

다음은 TEST.HISAM.DS라는 이름의 HISAM을 백업 데이터인

TEST.HISAM.JS1OUT1 데이터 셋을 이용하여 리로드하는 예이다.

//EXSTEP EXEC PGM=DFSRRC00,PARM='ULU,DFSURRL0'

//IMS DD DSN=TEST.DFSUR.DBDLIB,DISP=SHR

//SYSPRINT DD SYSOUT=*

//DFSUIN01 DD DSN=TEST.HISAM.JS1OUT1,

// DISP=(OLD,KEEP)

//JS1SEGA1 DD DSN=TEST.HISAM.DS,DISP=OLD

//SYSIN DD *

OPTIONS=STATS

/*

유의사항

DFSURRL0 유틸리티 프로그램은 PSINDEX 데이터베이스를 리로드할 수 없다.

Page 206: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제5장 HiDB 유틸리티

OpenFrame 유틸리티 참조 안내서 206

PSINDEX 데이터베이스를 리로드하기 위해서는 HD 재편성 리로드 유틸리티 프

로그램을 사용해야 한다.

참고: DFSURUL0 유틸리티 프로그램에 대한 자세한 내용은 “DFSURUL0”을 참고한다.

Page 207: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 207

제6장 기타 유틸리티

6.1 DSDIFF

데이터 셋의 레코드별 차이점을 보여주는 유틸리티 프로그램이다.

OpenFrame 설치 후 또는 유틸리티나 라이브러리 등의 각종 모듈을 업데이트한

후에 실시하는 검증 테스트로서, 수행 결과 데이터 셋이 예상대로 생성이 되었

는지 확인하기 위한 용도로 사용할 수 있다

DD 설정

- SYSIN DD

비교 대상 데이터 셋의 DDNAME 리스트를 기술한다.

리스트의 구분자로 콤마(,)를 사용한다. (예, AA,BB,CC: AA와 BB 그리고 CC

를 비교한다.)

- TARGET DD

비교할 데이터 셋을 정의한다. 이 비교 데이터 셋은 SYSIN DD에 기술한

DDNAME 리스트에 포함되어야 한다.

명령어 설정

SYSIN DD에 기술하는 데이터 셋 리스트의 구문은 다음과 같다.

ddname,ddname[ddname,....]

DSDIFF 유틸리티 프로그램에서 위와 같이 SYSIN DD에 데이터 셋 리스트를 기

술하는 것 외에 설정해야 하는 명령어는 없다.

Page 208: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 208

사용예제

다음은 EXPECTED, INREC, SUM DD 세 개의 레코드를 비교하여 차이점을 보

여주는 예이다.

//DSDIFF EXEC PGM=DSDIFF,REGION=2M

//SYSIN DD *

EXPECTED,INREC,SUM

/*

//SYSOUT DD SYSOUT=*

//EXPECTED DD DSN=OFTEST.SORT.OUT01.EXPECTED,DISP=OLD

//INREC DD DSN=OFTEST.SORT.OUT01.INREC,DISP=OLD

//SUM DD DSN=OFTEST.SORT.OUT01.SUM,DISP=OLD

유의사항

레코드 길이가 다르면 가장 짧은 레코드의 레코드 길이까지의 데이터가 모두 일

치하더라도, 서로 다른 레코드로 판단한다.

DSDIFF 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우 배

치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSOUT DD로 출력하고 각 오류에 해

당하는 리턴코드를 반환한다.

DSDIFF 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- 레코드에서 한 개 이상의 차이가 있을 경우

리턴코드: 4

- SYSIN으로 주어진 DDNAME이 존재하지 않거나, 데이터 셋 I/O 오류 등

의 OpenFrame 혹은 UNIX 에러

리턴코드: 16

Page 209: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 209

6.2 FTP

배치 JOB에서 FTP 서버와의 통신을 위한 유틸리티 프로그램이다.

DD 설정

- INPUT DD (or SYSIN DD)

FTP 유틸리티 컨트롤 문을 지정한다.

- SYSPRINT DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.

명령어 설정

FTP를 실행하기 위해서는 JCL의 EXEC 구문에 다음과 같이 지정한다.

//STEP EXEC PGM=FTP

INPUT DD (or SYSIN DD)에 FTP 컨트롤 문을 기술한다.

- [connect_ip]

INPUT DD의 첫 부분에 FTP 서버 연결을 위한 IP를 설정하며 FTP 연결을

위한 필수 항목이다.

- [user_id][password]

INPUT DD의 connect_ip 다음에 반드시 FTP 서버 인증을 위한 사용자 아이

디와 비밀번호를 기술해야 하며 FTP 연결을 위한 필수 항목이다.

- [KSC5601(NOTYPE]|[BIN]|[ASC]

바이너리 형식이나 아스키 형식으로 파일을 전송하기 위해 포맷을 지정한다.

- [CD directory]

FTP 서버 연결 후 이동할 디렉터리를 지정한다.

Page 210: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 210

- [PUT ‘dataset_name’ unix_filename] | [APPEND ‘dataset_name’ unix_filename]

| [GET unix_filename ‘dataset_name’]

FTP의 PUT/APPEND/GET 기능을 수행한다.

- [QUIT]

INPUT DD의 마지막 부분에 기술하여 FTP 연결을 종료한다.

사용예제

다음은 127.0.0.1 FTP 서버에 연결하여 home/ftptest/temp 디렉터리로

<FTPTEST01.TXT>파일을 업로드하는 예이다.

//PMFTP EXEC PGM=FTP

//INPUT DD *

127.0.0.1

ftptest ftptest

KSC5601 (NOTYPE

CD /home/ftptest/temp/

PUT 'FTPTEST01' /home/ftptest/temp/FTPTEST01.TXT

QUIT

/*

//SYSPRINT DD SYSOUT=*

/*

6.3 ICETOOL

DFSORT 유틸리티 프로그램을 이용하여 1개의 JOB STEP에서 복수의 데이터

셋을 다양한 방법으로 출력하기 위해 사용하는 유틸리티 프로그램이다.

TOOLIN DD로 주어진 명령어에 따라 DFSORT 유틸리티 프로그램을 이용하여

데이터를 처리한다.

ICETOOL 유틸리티 프로그램은 다음과 같은 주요기능을 제공한다.

Page 211: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 211

- 정렬된 입력 데이터 셋의 복사본을 생성한다.

- 수정되었거나 수정되지 않은 입력 데이터 셋의 복사본을 생성한다.

- 문자와 숫자 필드값 또는 유일한 값이 발생한 총 횟수 등의 다양한 기준으

로 입력 데이터 셋을 포함하고 있는 출력 데이터 셋을 생성한다.

DD 설정

- TOOLIN DD

ICETOOL 명령어를 기술한다.

- DFSMSG DD

ICETOOL이 DFSORT 프로그램을 내부적으로 사용하면서 출력되는 메시지

를 저장한다.

- TOOLMSG DD

ICETOOL의 출력 메시지를 저장한다.

- inDD DD

ICETOOL의 입력 데이터 셋을 기술한다. TOOLIN에서 FROM(inDD)를 통해

inDD를 사용하도록 지정한다.

- outDD DD

ICETOOL의 COPY, SELECT, SORT 수행에서 사용할 출력 데이터 셋을 기

술한다. TOOLIN에서 TO(outDD)를 통해 outDD를 사용하도록 지정한다.

- saveDD DD

ICETOOL의 SELECT 수행에서 사용할 출력 데이터 셋을 기술한다. TOOLIN

에서 DISCARD(saveDD)를 통해 saveDD를 사용하도록 지정한다.

- xxxxCNTL

ICETOOL의 SORT나 COPY 수행에서 사용할 DFSORT 명령어를 기술한다.

TOOLIN에서 USING xxxx를 통해 xxxxCNTL DD를 사용하도록 지정한다.

Page 212: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 212

명령어 설정

COPY

inDD로 주어진 입력 데이터를 한 개 이상의 outDD로 복사한다. USING 절을 통

해 xxxxCNTL을 사용하여 DFSORT를 구동할 수도 있다.

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

COPY FROM(inDD)

TO(outDD,[outDD,...])|

USING(xxxx)|

{TO(outDD,[outDD,....]) USING(xxxx)}

[VSAMTYPE(x)]

[SERIAL]

다음은 COPY 명령어 파라미터에 대한 설명이다.

- FROM(inDD)

COPY 문을 수행할 입력 데이터 셋을 지정한다.

- TO(outDD)

COPY 문을 수행한 후 저장할 출력 데이터 셋을 지정한다. outDD에는

모두 동일한 결과가 저장된다.

- USING(xxxxCNTL)

xxxxCNTL DD로 주어진 DFSORT 명령을 기술한 xxxxCNTL DD을 명시

한다.

참고: 현재 ICETOOL 유틸리티의 COPY 명령어에서는 다음의 파라미터에 대해서 오류를 발생시키지 않도록 형식적으로만 지원하고 있다.

[VSAMTYPE(x)] [SERIAL]

SELECT

inDD로 주어진 입력 데이터를 주어진 조건에 따라 필터하여 toDD에 저장하거나

필터를 통과하지 못한 데이터를 saveDD에 저장할 수 있다.

Page 213: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 213

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

SELECT FROM(indd)

TO(outdd)|DISCARD(savedd)|{TO(outdd) DISCARD(savedd)}

ON(p,m,f)[,ON(p,m,f),...]

ALLDUPS|NODUPS|HIGHER(x)|LOWER(x)|EQUAL(x)|FIRST|

LAST|FIRSTDUP|LASTDUP

[VSAMTYPE(x)]

[UZERO]

다음은 SELECT 명령어 파라미터에 대한 설명이다.

- FROM

입력 데이터 셋 이름을 기술한다.

- TO

필터된 레코드를 저장할 출력 데이터 셋 이름을 기술한다.

- DISCARD

필터 후 버려질 레코드를 저장할 데이터 셋 이름을 기술한다.

- ON

SELECT 문이 적용될 필드를 정의한다. p byte부터 m byte만큼 f 포맷에 대

해 SELECT 문을 적용한다.

- ALLDUPS

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 중복되는 레코드만 저

장한다.

- NODUPS

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 중복되지 않는 레코드

만 저장한다.

- HIGHER(x)

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 x번 초과로 나타나는

레코드만 저장한다.

Page 214: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 214

- LOWER(x)

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 x번 미만으로 나타나는

레코드만 저장한다.

- EQUAL(v)

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 x번 나타나는 레코드만

저장한다.

- FIRST

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 유일한 레코드와 중복

되는 레코드 중에서 위에서부터 첫번째 레코드만 저장한다.

- LAST

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 유일한 레코드와 중복

되는 레코드 중에서 위에서부터 마지막 레코드만 저장한다.

- FIRSTDUP

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 중복되는 레코드 중에

서 위에서부터 첫번째 레코드만 저장한다.

- LASTDUP

ON으로 지정된 필드의 값이 입력 데이터 셋 내에서 중복되는 레코드 중

에서 위에서부터 마지막 레코드만 저장한다.

참고: 현재 ICETOOL 유틸리티의 SELECT 명령어에서는 다음의 파라미터에 대해서 오류

를 발생시키지 않도록 형식적으로만 지원하고 있다.

[VSAMTYPE(x)] [UZERO]

사용예제

다음은 OFTEST.ICETOOL.IN00을 CPY1CNTL DD에 주어진 DFSORT 스크립트

를 이용하여 OFTEST.ICETOOL.OUT00.COPY로 복사하는 예이다.

//ICECOPY EXEC PGM=ICETOOL,REGION=2M

//ICEIN DD DNS=OFTEST.ICETOOL.IN00,DISP=(OLD,KEEP,KEEP),

RECFM=FB,LRECL=80

Page 215: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 215

//ICEOUT DD DSN=OFTEST.ICETOOL.OUT00.COPY,

DISP=(NEW,CATLG,DELETE),

// RECFM=FB,LRECL=80

//TOOLMSG DD SYSOUT=*

//DFSMSG DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//TOOLIN DD *

COPY FROM(ICEIN) TO(ICEOUT) USING(CPY1)

/*

//CPY1CNTL DD *

SORT FIELDS=COPY

/*

다음은 OFTEST.ICETOOL.IN01을 CPY1CNTL DD에 주어진 DFSORT 스크립트

를 이용하여 OFTEST.ICETOOL.OUT01.ICECPY1과

OFTEST.ICETOOL.OUT01.ICECPY2로 복사한다.

OFTEST.ICETOOL.OUT01.ICECPY2에서 레코드의 16번째 byte부터 2byte

(16~17byte)를 문자키로 전체 데이터 셋에서 중복하면

OFTEST.ICETOOL.OUT01.ICETO로 저장하고, 중복하지 않으면

OFTEST.ICETOOL.OUT01.ICESAVE에 저장한다.

//ICECOPY EXEC PGM=ICETOOL,REGION=2M

//ICEIN DD DNS=OFTEST.ICETOOL.IN01,DISP=(OLD,KEEP,KEEP),

RECFM=FB,LRECL=80

//ICECPY1 DD DSN=OFTEST.ICETOOL.OUT01.ICECPY1,

// DISP=(NEW,CATLG,DELETE),RECFM=FB,LRECL=80

//ICECPY2 DD DSN=OFTEST.ICETOOL.OUT01.ICECPY2,

// DISP=(NEW,CATLG,DELETE),RECFM=FB,LRECL=80

//ICETO DD DSN=OFTEST.ICETOOL.OUT01.ICETO,

// DISP=(NEW,CATLG,DELETE),RECFM=FB,LRECL=80

//ICESAVE DD DSN=OFTEST.ICETOOL.OUT01.ICESAVE,

// DISP=(NEW,CATLG,DELETE),RECFM=FB,LRECL=80

//TOOLMSG DD SYSOUT=*

//DFSMSG DD SYSOUT=*

Page 216: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 216

//SYSOUT DD SYSOUT=*

//TOOLIN DD *

COPY FROM(ICEIN) TO(ICECPY1,ICECPY2) USING(CPY1)

SELECT FROM(ICECPY2) TO(ICETO) DISCARD(ICESAVE) ON(16,2,CH) NODUPS

/*

//CPY1CNTL DD *

SORT FIELDS=COPY

/*

Appendix

ICETOOL 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드 16을 반환한다.

참고 : 더 자세한 ICETOOL에 대해서, IBM DFSORT 안내서를 참고한다.

Syncsort 유틸리티 프로그램에 대한 자세한 사항은, Syncsort Inc.사의 “syncsort manual” 을 참고한다.

6.4 IEFBR14

JCL에 기술된 내용들이 정상적으로 실행되고 있는지 확인하기 위해 사용하는

테스트 유틸리티 프로그램이다. 실제로 유틸리티 내부적으로 하는 작업은 없다.

JCL이 전송된 이후에 JOB 큐에서 JOB이 정상적으로 실행되고, tjclrun이 기동되

어 JCL에 기술된 DD에 데이터 셋 할당이 이루어진 후, IEFBR14 유틸리티 프로

그램이 정상적으로 실행되는지 확인할 수 있다.

Page 217: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 217

DD 설정

IEFBR14 유틸리티 프로그램에서 설정해야 할 DD는 없다

명령어 설정

IEFBR14 유틸리티 프로그램에서 따로 설정해야 하는 명령어는 없다

사용예제

다음은 JCL이 실행된 후에 DATASET1이 생성되고 DATASET2가 삭제되는 예이

다.

//LISTPDS JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//STEP01 EXEC PGM=IEFBR14

//NEW DD DSNAME=DATASET1,DISP=(NEW,KEEP),

// DCB=(RECFM=FB,LRECL=100,BLKSIZE=1000)

//DELETE DD DSNAME=DATASET2,DISP=(OLD,DELETE)

//SYSPRINT DD SYSOUT=*

//SYSIN DD DUMMY

유의사항

IEFBR14 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

6.5 PGMRTS00

Shared object로 컴파일된 배치 응용프로그램을 JCL로 실행시키려고 할 때,

OpenFrame 배치 엔진 모듈인 JCL Runner에 의해 간접적으로 실행되는 실행

환경 제어 유틸리티 프로그램이다.

Page 218: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 218

JCL의 EXEC 구문에서 PGM 파라미터 값으로 shared object로 컴파일된 배치

응용프로그램을 지정할 경우, JCL Runner가 PGMRTS00 유틸리티 프로그램을

우선 실행시킨다. 실행된 PGMRTS00 유틸리티 프로그램은 shared object로 컴

파일된 배치 응용프로그램을 동적으로 메모리에 로드하여 엔트리 포인트를 찾아

호출한 후 응용프로그램을 실행시켜준다.

다음은 PGMRTS00 유틸리티 프로그램의 동작방법이다.

[그림 6-1] PGMRTS00 동작 구조

1. JCL Runner는 실행시키려는 응용프로그램의 바이너리 형식을 검사한다.

2. 응용프로그램의 바이너리 형식이 shared object인 경우, JCL Runner는

PGMRTS00 유틸리티 프로그램을 실행하고 응용프로그램을 동적으로 실행

시킨다.

3. 응용프로그램의 바이너리 형식이 shared object가 아닌 경우, JCL Runner는

PGMRTS00 유틸리티 프로그램을 통하지 않고 바로 응용프로그램을 실행시

킨다.

Page 219: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 219

DD 설정

PGMRTS00 유틸리티 프로그램에서 단독으로 사용하는 DD 설정은 없으며, 최

종적으로 실행되는 배치 응용프로그램에서 필요로 하는 DD를 자동으로 설정해

준다.

명령어 설정

PGMRTS00 유틸리티 프로그램에서 따로 설정해야 하는 명령어는 없다.

사용예제

사용자가 PGMRTS00 유틸리티 프로그램을 직접 JCL에 기술해서 사용하는 경

우는 없다.

유의사항

PGMRTS00 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드를 반환한다.

PGMRTS00 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋 인증관련 준비과정 실패

리턴코드: 12 (Unrecoverable)

- 프로그램 파라미터 개수 지정 오류

리턴코드: 12 (Unrecoverable)

- 실행시켜야할 응용프로그램을 찾지 못하는 오류

리턴코드: 12 (Unrecoverable)

Page 220: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 220

- 응용프로그램의 바이너리 형식 체크 오류

리턴코드: 16 (System Fault)

- 지원하지 않는 응용프로그램 바이너리 형식

리턴코드: 12 (Unrecoverable)

- 프로세스 분기(fork) 실패

리턴코드: 16 (System Fault)

- 입/출력 리다이렉트 실패

리턴코드: 16 (System Fault)

- 동적 메모리 로드(dlopen) 실패

리턴코드: 12 (Unrecoverable)

- 엔트리 포인트 검색(dlsym) 실패

리턴코드: 12 (Unrecoverable)

Appendix

JCL Runner의 설정 파일인 tjclrun.conf 파일에서 PGMRTS00 유틸리티 프

로그램에 대한 설정을 할 수 있다.

Shared object로 만들어진 배치 응용프로그램을 JCL에서 직접 실행할 수 있도록

하기 위해서는 설정 파일의 [PGM]에 다음과 같은 항목을 추가한다.

[PGM] USE_PGMRTS00=YES

USE_PGMRTS00 항목이 별도로 설정되지 않은 경우 디폴트로 NO가 설정된다.

참고: 유사한 유틸리티 프로그램으로는 IKJEFT01(TSO Terminal Monitoring Program)과 DFSRRC00(HiDB Region Control Program)이 있다.

Page 221: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 221

6.6 SASHOST

UNIX의 SASHOST 유틸리티 프로그램인 SAS를 실행하기 위해 OpenFrame과

연계를 해주는 유틸리티 프로그램이다.

DD 설정

- STEPLIB DD

SAS 프로그램의 path를 지정하기 위한 데이터 셋을 정의한다. SAS 프로그

램의 경로(path)가 이미 지정되어 있으면 경로를 지정하지 않아도 된다.

- SASLIST DD

SAS의 표준출력(stdout) 메시지가 저장되는 데이터 셋을 정의한다.

- SASLOG DD

SASHOST의 메시지가 저장되는 데이터 셋을 정의한다. SAS의 표준에러

(stderr) 메시지도 저장된다.

- SYSIN DD

SAS 명령어를 기록한다.

- INPUTDD DD

SAS에서 사용할 INPUT DD를 지정한다. INPUT DD 이름에는 제약이 없으나,

EXEC의 PARM에서 INPUT=INPUT DD 이름을 지정해주어야 한다.

- OUTPUTDD DD

SAS에서 사용할 OUTPUT DD을 지정한다. OUTPUT DD 역시 이름에는 제

약이 없으나, EXEC의 PARM에서 OUTPUT=OUTPUT DD 이름을 지정해주

어야 한다.

Page 222: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 222

명령어 설정

SASHOST 유틸리티 프로그램에서 SAS를 사용하기 위해 다음과 같은 부분을

설정해야 한다.

INFILE

SAS에서 사용할 입력 파일을 지정하는 곳으로, SASHOST를 통하여 SAS를 사

용 할 경우 INPUT DD를 지정해주어야 한다. SASHOST에서는 INPUT DD 부분

을 아래의 내용으로 SAS 명령어의 첫 줄에 추가하여 실행한다.

FILENAME INDATA ("INPUT DD의 실제 unix filepath")

RECFM=F, LRECL=100;

INDATA = INPUT DD name

RECFM,LRECL = INPUT DD property

FILE

SAS에서 사용할 출력 파일을 지정하는 곳으로, SASHOST를 통하여 SAS를 사

용 할 경우 OUTPUT DD를 지정해주어야 한다. SASHOST에서는 OUTPUT DD

부분을 아래의 내용으로 SAS 명령어의 첫 줄에 추가하여 실행한다.

FILENAME OUTDATA ("OUTPUT DD의 실제 unix filepath")

RECFM=F, LRECL=100;

OUTDATA = OUTPUT DD name

RECFM,LRECL = OUTPUT DD property

Data format PD (Pack Decimal)

SAS의 스크립트에서 PD로 선언된 데이터 타입은 S370FPD로 변경해야 한다

SAS의 UNIX 버전 PD 포맷은 저장 시 마지막 비트에 'C' 또는 'D' 등의 부호비

트가 설정되지 않는 관계로 기존 Mainframe PD 포맷과 호환이 안되나

S370FPD 포맷으로 변경해주면 기존 IBM의 PACK DECIMAL 형태로 사용할 수

있다.

SYSIN

SAS에서 실행할 스크립트를 기술한다.

SYSIN은 SASHOST에서 임시 파일을 만들어 SAS 인자로 실행을 한다.

아래와 같은 옵션으로 SAS가 실행되며 script_temp_filepath는 SASHOST에서

Page 223: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 223

SYSIN에 INFILE과 FILE의 내용을 추가하여 임시로 생성한 파일이다.

sas sas -stdio -nodms -nonews script_temp_filepath

사용예제

다음은 SASTEST라는 JOB을 구동하여서, SASHOST를 실행하는 JCL이다.

//****************************************************

//* SASHOST test jcl

//*

//****************************************************

//SASTEST JOB CLASS=A,MSGCLASS=Y

//STEP1 EXEC PGM=SASHOST,PARM='INPUT=INDATA,OUTPUT=OUTDATA'

//************************************************

//STEPLIB DD DSN=SAS6.LIBRARY,DISP=(SHR,KEEP,KEEP)

//******************************************************

//SASLIST DD SYSOUT=*

//SASLOG DD SYSOUT=*

//******************************************************

//INDATA DD DSN=SAS.SAMPLE.DATA,DISP=(SHR,KEEP,KEEP)

//OUTDATA DD DSN=SAS.SAMPLE.OUTDATA,DISP=(NEW,CATLG,DELETE)

//********************************************************

//SYSIN DD DSN=SAS.SCRIPT.DATA

//

관련 환경설정

sashost.conf [UTIL_RETURN] SASHOST

SAS에서 반환한 값을 설정 값으로 변경해서 반환한다. ‘-‘를 구분자로 앞의 값은

SAS에서 반환한 값이고, 뒤의 값은 SASHOST에서 변경할 값이다.

Page 224: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 224

예)

SASHOST=4-0;2-0,16-255

위와 같이 설정한 경우 SAS에서 4를 반환하면 SASHOST는 0으로 변경해서 반

환한다. 또한 SAS에서 16를 반환하면 SASHOST는 255으로 변경해서 반환하게

된다.

sashost.conf [TAPE_DEVICE] SAS_INPUT

압축을 푸는 명령어이다. SAS에 INPUT FILENAME을 설정할 때 INPUT DD의

실제 파일경로를 지정하는데, INPUT DD가 테이프 데이터 셋인 경우에는 실제

파일이 압축되어있기 때문에 압축을 푸는 명령어를 추가해서 FILENAME으로 설

정해 준다.

SAS_INPUT이 설정되어 있지 않은 경우 SASHOST에서는 테이프 데이터 셋을

임시파일로 압축을 풀고 FILENAME으로 임시파일경로를 설정해준다.

예)

cat %s | gzip -d

위와 같이 설정이 된 경우 FILENAME INDATA PIPE 'cat "INPUT DD의 실제

unix filepath" | gzip -d;' RECFM=F, LRECL=100; 이렇게 SAS 명령어

에 설정해 준다.

sashost.conf [TAPE_DEVICE] SAS_OUTPUT

압축을 하는 명령어이다. SAS에 OUTPUT FILENAME을 설정할 때 OUTPUT DD

의 실제 파일경로를 지정하는데, OUTPUT DD가 테이프 데이터 셋인 경우 실제

파일이 압축되어야 하기 때문에 압축을 하는 명령어를 추가해서 FILENAME으로

설정해 준다.

SAS_OUTPUT이 설정되어 있지 않은 경우 SASHOST에서는 테이프 데이터셋에

대해서 SAS 종료 후에 출력 파일을 압축을 한다.

예)

cat | gzip -1 > %s

위와 같이 설정이 된 경우 FILENAME OUTDATA PIPE 'cat | gzip -1 >

"OUTPUT DD의 실제 unix filepath"' RECFM=F, LRECL=100; 이렇게 SAS

명령어에 설정해 준다.

Page 225: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 225

유의사항

현재 지원하는 SAS 버전은 UNIX SAS9로, CONFIG, SASAUTOS, SASHELP,

SASMSG, SASPARM, WORK 등과 같은 DD들은 더 이상 지원하지 않는다.

SASHOST의 리턴 코드는 SAS에서 받은 리턴 코드를 반환하며 환경 설정에 따

라서 변경하여 반환할 수도 있다.

참고: 더 자세한 SAS 명령어에 대해서는 UNIX 버전의 “SAS 안내서”를 참고하기 바란다.

6.7 SDSF

사용자가 입력한 명령어를 스크립트 형태로 작성하여 배치 JOB을 컨트롤할 수

있는 유틸리티 프로그램이다.

SDSF에서는 다음과 같은 기능을 지원한다.

- HOLD 상태의 JOB을 검색하여 JOB을 START 시킨다.

참고: TSO 환경의 ISPF는 지원하지 않는다.

DD 설정

- ISFIN DD

SDSF에서 사용할 스크립트를 지정한다.

- ISFOUT DD

SDSF에서 출력하는 메시지를 저장할 데이터 셋을 지정한다.

Page 226: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 226

명령어 설정

HOLD 상태의 JOB을 검색하여 JOB을 START 시키기 위한 명령어이다.

- I

ISPF의 입력 패널에서 실행전의 JOB의 상태를 보여준다.

- PREFIX 패턴

HOLD 상태의 JOB을 검색하기 위하여 PREFIX 패턴으로 주어진 문자열을

기반으로 일차적인 검색을 시작한다.

- FIND 패턴

PREFIX 패턴으로 검색한 JOB 중에서 FIND 패턴으로 주어진 문자열을 기

반으로 실제 구동시킬 HOLD 상태의 JOB을 찾는다.

- ++A

HOLD 상태의 JOB을 실제로 START 시킨다.

사용예제

다음은SDSF00라는 JOB을 구동하면서, SDSFHOLD라는 HOLD 상태의 JOB을

START 시키는 예이다.

#############################################################

## SDSF00 - start a holded job via

SDSF ##

#############################################################

//*

#############################################################

## SDSFHOLD - dummy job for sdsf test. submitted as

hold ##

#############################################################

//SDSFHOLD JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),TYPRUN=HOLD

//STEP1 EXEC PGM=IEFBR14

Page 227: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 227

//*

#############################################################

## SDSF00 - start a holded job via

SDSF ##

#############################################################

//SDSF00 JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//START EXEC PGM=SDSF

//SYSOUT DD SYSOUT=*

//ISFOUT DD SYSOUT=*

//ISFIN DD *

I

PREFIX SDSF

FIND SDSFHOLD

++A

/*

6.8 WAAPINIT

Non-VSAM 데이터 셋을 초기화 시키는 유틸리티 프로그램이다.

단순히 데이터 셋의 모든 내용을 삭제하고 비어있는 데이터 셋으로 초기화 시킨

다.

DD 설정

- SYSPRINT DD

WAAPINIT 메시지를 저장하는 데이터 셋을 지정한다.

- SYSUT01 DD

초기화시켜야 할 데이터 셋 이름을 지정한다.

Page 228: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 228

명령어 설정

WAAPINIT 유틸리티 프로그램에서 따로 설정해야 하는 명령어는 없다.

사용예제

다음은 Non-VSAM 데이터 셋인 DATASET1을 초기화 시키는 예이다.

//INIT JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//STEP1 EXEC PGM=WAAPINIT

//SYSPRINT DD SYSOUT=*

//SYSUT01 DD DSNAME=DATASET1,DISP=(OLD,KEEP)

//SYSIN DD DUMMY

유의사항

WAAPINIT 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경우

배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드를 반환한다.

WAAPINIT 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋(pgmdd, open/close, read/write) 관련 오류

리턴코드: 12 (Unrecoverable)

- 기타 WAAPINIT 유틸리티 프로그램 오류

리턴코드: 12 (Unrecoverable)

참고: 유사한 유틸리티 프로그램으로는 IDCAMS가 있다.

Page 229: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 229

6.9 WAAPRDME

특정한 PDS의 멤버로 등록된 JCL을 선택하여 내부 판독기(internal reader)를 통

해 전송시키는 유틸리티 프로그램이다.

처리해야 할 JCL은 EXEC 구문의 PARM 파라미터를 이용하여 선택한다. JCL

이름은 해당 JCL에 기술한 JOBNAME과 동일해야 한다

WAAPRDME가 실행되는 시점에서 선택된 JCL 이름과 동일한 JOBNAME이

JOB 큐에 존재하면 WAAPRDME는 해당 JCL을 처리하지 않고, SYSEXEC DD

에 정의된 데이터 셋에서 삭제한다. SYSEXEC DD가 정의되지 않았으면 삭제되

지 않는다.

DD 설정

- INLIB DD

JCL을 포함하고 있는 PDS 데이터 셋을 정의한다.

- INTRDR DD

내부 판독기 처리를 위한 SYSOUT을 정의한다. 반드시 INTRDR 속성을 지

정해주어야 JCL이 INTRDR에 정의된 SYSOUT으로 복사되어 JOB이 끝난

후 내부 판독기에 의해 처리된다.

- SYSEXEC DD

PDS 데이터 셋을 등록한다. INTRDR DD에 정의된 SYSOUT으로 복사된

JCL은 SYSEXEC DD에 정의된 PDS에서 삭제된다. 삭제할 필요가 없으면

기술하지 않는다.

- SYSPRINT DD

WAAPRDME 메시지가 저장되는 데이터 셋을 정의한다.

명령어 설정

WAAPRDME 유틸리티 프로그램에서 따로 설정해야 하는 명령어는 없다.

Page 230: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 230

사용예제

다음은 JOB1, JOB2, JOB3을 내부 판독기를 통하여 전송시키는 예이다.

//SUBMIT JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//STEP1 EXEC PGM=WAAPRDME,PARM=('JOB1,JOB2,JOB3')

//INLIB DD DSN=SYS3.EXECJCL,DISP=SHR

//INTRDR DD SYSOUT=(A,INTRDR)

//SYSEXEC DD DSN=SYS4.EXECJCL,DISP=SHR

//SYSUDUMP DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

[그림 6-2] 내부 판독기를 통한 JOB 전송

EXEC 구문의 PARM 파라미터를 통해 JOB1, JOB2, JOB3을 선택한다. INLIB DD

에 정의된 SYS3.EXECJCL의 멤버 중 JOB1, JOB2, JOB3이 INTRDR DD에 정의

된 SYSOUT으로 복사된다. INTRDR에서는 SYSOUT=(A,INTRDR)처럼 INTRDR

속성을 부여해야만 한다. SYSEXEC에 정의된 SYS4.EXECJCL 데이터 셋에서

복사가 끝난 JCL JOB1, JOB2, JOB3이 삭제된다. JOB SUBMIT가 종료되면

INTRDR DD에 의해 정의된 SYSOUT은 내부 판독기를 통해 새로운 JOB으로

전송된다.

Page 231: 유틸리티 참조 안내서 - TmaxSoft · 2019-04-09 · DFSORT Application Programming Guide IMS V7 Utilities Reference - Database and Transaction Manager IMS V7 Application Programming

제6장 기타 유틸리티

OpenFrame 유틸리티 참조 안내서 231

유의사항

처리해야 할 JCL 이름은 해당 JCL에 기술된 JOBNAME과 일치해야 한다. 일치

하지 않을 경우, 수행되어야 할 JCL이 수행되지 않거나 같은 JOB이 반복해서

실행될 수 있다.

WAAPRDME 유틸리티 프로그램이 배치 응용프로그램을 정상적으로 실행한 경

우 배치 응용프로그램에서 받은 리턴코드를 반환한다.

오류가 발생한 경우 해당 오류 메시지를 SYSPRINT DD로 출력하고 각 오류에

해당하는 리턴코드를 반환한다.

WAAPRDME 유틸리티 프로그램에서 발생할 수 있는 오류는 다음과 같다.

- OpenFrame 시스템 라이브러리 초기화 실패

리턴코드: 16 (System Fault)

- 데이터 셋(pgmdd, open/close, read/write) 관련 오류

리턴코드: 12 (Unrecoverable)

- INLIB DD에 정의된 데이터 셋에서 PARM에 기술된 JCL member를 찾지 못

하는 오류

리턴코드:4 (Warning)

- 기타 WAAPRDME 유틸리티 프로그램 오류

리턴코드: 12 (Unrecoverable)