안내서

Similar documents
OpenFrame

안내서

Microsoft Word - AnyLink Introduction v3.2.3.doc

안내서

OpenFrame

Tmax

개발및운영 Tibero DB Link (Tibero To Oracle) - Local 방식

API 매뉴얼

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

DBMS & SQL Server Installation Database Laboratory

JVM 메모리구조

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

슬라이드 1

튜닝및모니터링 HP JVM 튜닝옵션

PowerPoint 프레젠테이션

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

인디쓔피-IOM핸돜벁닄큐1014pdf, page Preflight ( IOM핸돜벁닄큐__1014 )

Tablespace On-Offline 테이블스페이스 온라인/오프라인

MySQL-.. 1

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

[JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step

슬라이드 1

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

PowerPoint Presentation

마리오와 소닉 리우 올림픽™

강의 개요

개발및운영 Tibero Perl 연동

Microsoft Word - PLC제어응용-2차시.doc

PowerPoint Template

금오공대 컴퓨터공학전공 강의자료

RHEV 2.2 인증서 만료 확인 및 갱신

쉽게 풀어쓴 C 프로그래밊

USER GUIDE

윈백및업그레이드 Tibero Flashback 가이드

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

OpenFrame

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

OpenFrame

Microsoft PowerPoint - [2009] 02.pptx

adfasdfasfdasfasfadf

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

untitled

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

안내서

untitled

Microsoft PowerPoint - additional01.ppt [호환 모드]

PowerPoint 프레젠테이션

untitled

Tibero

개발및운영 Eclipse 를이용한 ANT 활용방법

BMP 파일 처리

Microsoft PowerPoint - chap06-2pointer.ppt

2012-민간네트워크-05_중국

: Symantec Backup Exec System Recovery 8:

PowerPoint 프레젠테이션

untitled

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Hardware Manual TSP100

슬라이드 1

Microsoft PowerPoint - ch07 - 포인터 pm0415

Remote UI Guide

C# Programming Guide - Types

スライド タイトルなし

Backup Exec

API 매뉴얼

chap 5: Trees

금오공대 컴퓨터공학전공 강의자료

FY2005 LIG

OCW_C언어 기초

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

untitled

ISP and CodeVisionAVR C Compiler.hwp

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

피해자식별PDF용 0502

System Recovery 사용자 매뉴얼

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

P2WW HNZ0

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Tibero HiDB

PowerPoint Presentation

Microsoft PowerPoint - Java7.pptx

로거 자료실

Getting Started Guide

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

Visual Basic 반복문

목차 1. 노드매니저종류 Java Type SSH Type 노드설정파일및로깅 nodes.xml jeusnm.properties <servername>.properties...

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

Microsoft PowerPoint - 알고리즘_2주차_1차시.pptx

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

P2WW HNZ0

PowerPoint 프레젠테이션

Transcription:

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

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 2 OpenFrame 유틸리티참조안내서

연락처 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: info@tmax.co.kr 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: info@tmaxsoft.com 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: newjersey@tmaxsoft.com 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: info.jp@tmaxsoft.com Website: http://www.tmaxsoft.co.jp OpenFrame 유틸리티참조안내서 3

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: info.cn@tmaxsoft.com 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: info.cn@tmaxsoft.com Website: http://www.tmaxsoft.com.cn 4 OpenFrame 유틸리티참조안내서

내용목차 안내서에대하여... 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 OpenFrame 유틸리티참조안내서 5

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 6 OpenFrame 유틸리티참조안내서

그림목차 [ 그림 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 OpenFrame 유틸리티참조안내서 7

표목차 [ 표 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 8 OpenFrame 유틸리티참조안내서

[ 표 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 OpenFrame 유틸리티참조안내서 9

안내서에대하여 안내서에대하여 안내서의대상 본안내서는리호스팅솔루션인 OpenFrame Batch 4.0 버전에서필요로하는각 종유틸리티프로그램을사용하는사용자를대상으로기술한다. 안내서의전제조건 본안내서를정확히사용하려면 OpenFrame Batch v4.0 의개념을이해하고있어 야한다. OpenFrame Batch v4.0 에대한이해를돕기위해 Batch 안내서 를먼 저숙지할것을권장한다. 안내서의제한조건 본안내서에서는유틸리티에서현재지원하지않는기능 / 옵션 / 파라미터에대해 서별도로표기하였으며이에대한설명은생략한다. 10 OpenFrame 유틸리티참조안내서

안내서에대하여 안내서구성 유틸리티참조안내서는총 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 유틸리티를사용하는방법에대해기술한다. OpenFrame 유틸리티참조안내서 11

안내서에대하여 안내서규약 표기 AaBbCc123 의미 명령어, 구문 AaBbCc123 명령어수행후화면에출력된결과물 참고 : 참고또는주의사항 { } 필수인수값 [ ] 옵션인수값 선택인수값 ( 따옴표 ) 다른관련안내서또는안내서내의다른장및절언급 하이퍼링크 메일계정, 웹사이트, 다른장및절참고 진하게 강조 <AaBbCc123> 프로그램소스코드의파일명, 디렉터리이름 Courier New 파일, 디렉터리이름, 환경설정변수..., +, * 파라미터등이반복되어나옴 스페이스 이탤릭체 사용자정의인수값 [ 그림 1-1] 그림이름 [ 표 1-1] 표이름 [ 표 0-1] 안내서규약 12 OpenFrame 유틸리티참조안내서

안내서에대하여 시스템사용환경 요구사항 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] 시스템사용환경 OpenFrame 유틸리티참조안내서 13

안내서에대하여 관련안내서 제품 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] 참고안내서 14 OpenFrame 유틸리티참조안내서

제 1 장 OpenFrame 유틸리티개요 제 1 장 OpenFrame 유틸리티개요 1.1 유틸리티소개 OpenFrame 유틸리티프로그램은 OpenFrame 엔진과함께제공되는사용자편의를위한프로그램으로 JCL을통해배치 JOB으로실행된다. 예를들어, 유틸리티프로그램으로데이터셋에대한관리등의작업을수행할수있다. 본안내서에서는 2장에서데이터셋관련유틸리티, 3장에서는데이터베이스관련유틸리티, 4장에서는소트관련유틸리티, 5장에서는 HiDB 관련유틸리티, 6장에서는기타유틸리티를소개하며, 각유틸리티절에서는유틸리티의소개, DD 설정, 명령어설정, 사용예제및유의사항을기술한다. OpenFrame 유틸리티참조안내서 15

제 2 장데이터셋유틸리티 제 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 명령어만지원한다. OpenFrame 유틸리티참조안내서 17

제 2 장데이터셋유틸리티 다음은 DUMP 처리과정을나타낸순서도이다. [ 그림 2-2] DUMP 처리과정 다음은 RESOTRE 처리과정을나타낸순서도이다. [ 그림 2-3] RESTORE 처리과정 18 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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) 은기술하지않는다. OpenFrame 유틸리티참조안내서 19

제 2 장데이터셋유틸리티 명령어설정 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 데이터셋을삭제한다. 20 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 한다. OpenFrame 유틸리티참조안내서 21

제 2 장데이터셋유틸리티 사용예제 다음은 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=* 22 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 다음은 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 OpenFrame 유틸리티참조안내서 23

제 2 장데이터셋유틸리티 //TAPE //DASD DD DSN=ADRDSSU.TEST.DUMP,DISP=OLD 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] 비교연산자 24 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 현재 ADRDSSU 에서지원하는명령어에대한옵션리스트는다음과같다. 명령어옵션 ( 축약명 ) DUMP RESTORE DATASET(DS) INCLUDE(INC) OUTDD BY ALLE ALLD(ALLEXCP ALLDATA) DELELT PURGE(DEL PURGE) DATASET(DS) INCLUDE(INC) RENUNC(RENAMEU) CATALOG INDD 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 를소유한다고말한다. OpenFrame 유틸리티참조안내서 25

제 2 장데이터셋유틸리티 다음의와일드카드문자를이용한필터링예를보여준다. 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 필터링예제 26 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 다음은데이터셋레코드포맷에대한설명이다. RECFM 설명 F (Fixed) 레코드길이가고정인형식이다. FB (Fixed Blocked) 레코드길이가고정이면서블록을이룬형식이다. V (Variable) 레코드길이가가변적인형식이다. 4byte 가변길이정보를포함한다. VB (Variable Blocked) 레코드길이가일정하지않으면서블록을이룬형식 이다. U (Undefined) 레코드형태를정의할수없는형식이다. [ 표 2-5] RECFM ADRDSSU 유틸리티프로그램이배치응용프로그램을정상적으로실행한경우응용프로그램에서받은리턴코드를반환한다. 단, 프로그램수행중특정데이터셋이존재하지않는등의오류가발생하였으나다른데이터셋에대한처리는정상적으로수행한경우리턴코드 8을반환한다. 오류가발생한경우해당오류메시지를 SYSPRINT DD에출력하고, 각오류에해당하는리턴코드를반환한다. ADRDSSU 유틸리티프로그램에서발생할수있는오류는다음과같다. - 오류가발생하여정상적으로수행하지않은오류리턴코드 : 12 (Unrecoverable) OpenFrame 유틸리티참조안내서 27

제 2 장데이터셋유틸리티 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 데이터셋및카탈로그를제거한다. 28 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 기능명령어 기능 EXPORT IMPORT LISTCAT PRINT 카탈로그와 VSAM 데이터셋을이식가능한데이터셋으로 반출하거나백업데이터셋을생성한다. EXPORT 명령으로생성된이식가능한카탈로그와 VSAM 데이터셋을반입하거나백업된상태의데이터셋을원래의 상태로복원한다. 카탈로그에등록된 VSAM 과 Non-VSAM 데이터셋에대한 정보를보여준다. 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 명령이후의나머지명령들은처리 OpenFrame 유틸리티참조안내서 29

제 2 장데이터셋유틸리티 되지않는다. PARM IDCAMS 가실행되는동안에적용되는몇가지처리옵션 및파라미터값을지정한다. ( 미지원 ) [ 표 2-7] IDCAMS 보조명령어 다음은 IDCAMS 명령코딩에공통으로적용되는규약을정리한표이다. 규약하이픈 (-) 설명하나의명령을여러라인에걸쳐서작성할경우, 라인의맨뒤에하이픈 (-) 을입력하고그다음라인에계속이어서명령의나머지부분을코딩한다. 여러라인에걸쳐서작성된명령어의맨마지막라인에는하이픈 (-) 을코딩하지않도록주의한다. 또, 하이픈 (-) 은키워드나파라미터값의중간에코딩할수없으며일반적으로키워드나파라미터값의경계가되는부분에라인이계속이어진다는의미로하이픈 (-) 을코딩한다. ( 예 - 여러라인에걸쳐서하나의명령을코딩 ) LISTCAT ENT( - TEST.CLUS1 - TEST.KSDS1 - TEST.RRDS1 - TEST.SDS1) 주석주석은 IDCAMS 명령과명령사이에입력할수있다. 단, 키워드나파라미터값의중간에는주석이올수없다. 주석은기능은없지만하나의명령으로간주되기때문에명령중간에주석을추가하는경우에는해당라인의맨뒤에하이픈 (-) 을입력해야한다. 특히 IF-THEN-ELSE 문의중간에주석을사용하는경우에는주석에의해서 IF-THEN-ELSE 구조가의도하지않은위치에서끝나지않도록주의해야한다. 30 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 규약 설명 주석은공백이나콤마 (,) 와같이 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을반환한다. OpenFrame 유틸리티참조안내서 31

제 2 장데이터셋유틸리티 - 추가적인 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 //REPRO //INDD //OUTDD JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1) EXEC PGM=IDCAMS DD DSN=VSAM.KSDS1,DISP=(OLD,KEEP) DD DSN=VSAM.KSDS2,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO INFILE(INDD) - OUTFILE(OUTDD) - SKIP(50000) COUNT(10000) /* 32 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 // 명령어라인에서실행 (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) ) - OpenFrame 유틸리티참조안내서 33

제 2 장데이터셋유틸리티 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)] 34 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 [TO(date) FOR(days)] [CATALOG(catname)] ALTER 명령에다음의파라미터를지정하여 ALTER 명령의대상이되는카탈로그엔트리를지정할수있다. - entryname 속성을변경하고자하는기존데이터셋이나카탈로그엔트리의 entryname 을지정한다. - CATALOG(catname) entryname으로지정된카탈로그엔트리를찾을때사용할카탈로그를명시적으로지정한다. 지정하지않는경우에는카탈로그검색순서에따라서결정된다. 다음은 OpenFrame IDCAMS의 ALTER 명령이지원하는각카탈로그엔트리타입에따른변경가능한속성을요약한표이다. 엔트리타입변경가능속성 GDG NON-VSAM UCAT INDEX UCAT DATA PATH CLUSTER INDEX CLUSTER DATA CLUSTER AIX INDEX AIX DATA AIX 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 지원 OpenFrame 유틸리티참조안내서 35

제 2 장데이터셋유틸리티 참고 : 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) 보조인덱스를구성하는데사용할베이스클러스터를지정한다. 36 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 IDCAMS 호출전에실행환경에의해서미리할당된데이터셋을사용하는 경우에는 ddname 을사용하고, IDCAMS 자체적으로할당하는경우에는 entryname 을사용한다. - OUTFILE(ddname) OUTDATASET(entryname) BLDINDEX 결과로구성되는보조인덱스클러스터를지정한다. BLDINDEX 전에보조인덱스는미리 DEFINE되어야한다. 마찬가지로, IDCAMS 호출전에실행환경에의해서미리할당된데이터셋을사용하는경우에는 ddname을사용하고, IDCAMS 자체적으로할당하는경우에는 entryname을사용한다. - CATALOG(catname) entryname으로지정된카탈로그엔트리를찾을때사용할카탈로그를명시적으로지정한다. 지정하지않는경우에는카탈로그검색순서에따라서결정된다. 다음은 VSAM.KSDS1 의보조인덱스인 VSAM.AIX1 을구성하는예이다. //JOBA //BLDAIX JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1) EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //BASE //AIX DD DSN=VSAM.KSDS1,DISP=OLD 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]) OpenFrame 유틸리티참조안내서 37

제 2 장데이터셋유틸리티 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 명령절에따로표로제공된다. 여기서는공통적으로사용하는파라미터를요약하고각파라미터에관해설명한다. 38 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 명령에지정된속성이우선한다. OpenFrame 유틸리티참조안내서 39

제 2 장데이터셋유틸리티 - 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가가능하다. 40 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 - 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 가 OpenFrame 유틸리티참조안내서 41

제 2 장데이터셋유틸리티 있는경우해당 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를등록할카탈로그지정한다. 42 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 다음은 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)] OpenFrame 유틸리티참조안내서 43

제 2 장데이터셋유틸리티 [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)] 44 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 - OpenFrame 유틸리티참조안내서 45

제 2 장데이터셋유틸리티 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]) 46 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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) OpenFrame 유틸리티참조안내서 47

제 2 장데이터셋유틸리티 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)) - 48 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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) OpenFrame 유틸리티참조안내서 49

제 2 장데이터셋유틸리티 생성할 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) - 50 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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) 을사용할수없다. OpenFrame 유틸리티참조안내서 51

제 2 장데이터셋유틸리티 - 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)) /* // 52 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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이다. OpenFrame 유틸리티참조안내서 53

제 2 장데이터셋유틸리티 다음은보조인덱스 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) /* // 54 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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)] OpenFrame 유틸리티참조안내서 55

제 2 장데이터셋유틸리티 [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) 생성된사용자카탈로그가등록될마스터카탈로그의이름을지정한다. 생략해도시스템의마스터카탈로그에자동으로등록된다. 56 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 데이터셋의엔트리타입이다. OpenFrame 유틸리티참조안내서 57

제 2 장데이터셋유틸리티 - 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를외부로이식가능한데이터셋으로반출할수있다. 카탈로그데이터셋자체를백업하기위해서사용된다. 58 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 명령을사용해서생성한백업이나외부의이식가능한데이터셋으로부터다시데이터셋을복원하거나새로생성할수있다. OpenFrame 유틸리티참조안내서 59

제 2 장데이터셋유틸리티 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 원본데이터셋에기록된정보중에서일부를변경하는작업을수행할수있다. 이때변경하 60 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 고자하는 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) 관련정보 - 데이터셋액세스통계정보 - 저장공간할당정보 - 데이터셋의구조에관한정보 OpenFrame 유틸리티참조안내서 61

제 2 장데이터셋유틸리티 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 파라미터로지정되는엔트리이름조건을만족하는카탈로그엔트리에대한정보를출력하는데있어서얼마나 62 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 자세한레벨의정보까지출력할지를지정한다. 순서대로 NAME 을지정하면가장기본적인정보만이출력되고 ALL 을지정 하면모든해당엔트리에대한정보가출력된다. 다음은 VSAM.KSDS1 의모든엔트리에대한정보를출력하는예이다. //JOBA //LISTC JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1) EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * LISTCAT ENTRIES(VSAM.KSDS1) ALL /* // 다음은위의 LISTCAT 명령을실행한결과로출력되는내용 (SYSPRINT) 이다. CLUSTER ------------- VSAM.KSDS1 HISTORY CREATION -------------- (NULL) RELEASE ------------------- 1 DATASET-OWNER ----------- (EMPTY) 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 OpenFrame 유틸리티참조안내서 63

제 2 장데이터셋유틸리티 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 64 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 결과를출력할경우에사용한다. OpenFrame 유틸리티참조안내서 65

제 2 장데이터셋유틸리티 이파라미터를생략하면기본적으로 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* 66 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 명령어구문은다음과같다 OpenFrame 유틸리티참조안내서 67

제 2 장데이터셋유틸리티 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 68 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 //REPRO //INDD //OUTDD JOB OBM,CLASS=B,MSGCLASS=X,MSGLEVEL=(1,1) EXEC PGM=IDCAMS DD DSN=VSAM.KSDS1,DISP=(OLD,KEEP) DD DSN=VSAM.KSDS2,DISP=SHR OpenFrame 유틸리티참조안내서 69

제 2 장데이터셋유틸리티 //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 데이터셋의카탈로그정보를확인하는예이다. 70 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 //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 OpenFrame 유틸리티참조안내서 71

제 2 장데이터셋유틸리티 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 문 72 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 전에 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을반환하고종 OpenFrame 유틸리티참조안내서 73

제 2 장데이터셋유틸리티 료하며따라서 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 명령을실행하 74 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 여 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 - OpenFrame 유틸리티참조안내서 75

제 2 장데이터셋유틸리티 코드 의미 '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를사용할수있는경우라면다음과같은오류메시지가출력된다. [ 표 2-10] 컨디션코드 IDCAMS(ERROR): {error description or logical error code} 또는 IDCAMS(FATAL): {error description} 조건코드변수명 (LASTCC 와 MAXCC) 76 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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 의각기능명령어에서데이터셋을 OpenFrame 유틸리티참조안내서 77

제 2 장데이터셋유틸리티 접근할때권한체크를수행할지여부를설정한다. 다음은현재 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...])] 78 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 명령어 파라미터 [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])] OpenFrame 유틸리티참조안내서 79

제 2 장데이터셋유틸리티 명령어 공통파라미터 [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] 80 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 서브명령어 파라미터 [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]) OpenFrame 유틸리티참조안내서 81

제 2 장데이터셋유틸리티 서브명령어 파라미터 [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 파라미터 82 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 서브명령어 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 파라미터 OpenFrame 유틸리티참조안내서 83

제 2 장데이터셋유틸리티 명령어 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 파라미터 84 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 명령어 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 파라미터 OpenFrame 유틸리티참조안내서 85

제 2 장데이터셋유틸리티 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문에명령어를기술할수있다. 86 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 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이다. 만약, OpenFrame 유틸리티참조안내서 87

제 2 장데이터셋유틸리티 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)}][,...]) 88 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 다음은 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 //SYSUT2 DD DSNAME=DATASET1,DISP=(SHR,KEEP) DD DSNAME=DATASET2,UNIT=disk,VOL=SER=200000, // DISP=(NEW,CATLG)) //SYSIN DD DUMMY OpenFrame 유틸리티참조안내서 89

제 2 장데이터셋유틸리티 아래처럼 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 //IN02 DD DSNAME=DATASET1,DISP=(SHR,KEEP) 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 /* 90 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 IEBCOPY가시작되기전 DATASET5에는 A라는멤버가존재하고있다. DATASET1이최초로복사되는데, A라는멤버는이미 OUTPUT에있고, REPLACE 조건이없으므로 A는복사되지않고 B와 F만복사된다. 다음으로 DATASET4가복사되는데, 멤버 B 역시이미 OUTPUT에있으므로복사되지않고, 멤버 D와 X만복사된다. 마지막으로 DATASET3이복사된다. 멤버 F와 X가이미 OUTPUT에있으므로복사되지않고멤버 C와 Y만복사된다. 아래그림은위의예제를실행하면서출력데이터셋에멤버가복사되는과정과최종복사된멤버를보여준다. [ 그림 2-5] 데이터셋병합 다음은입력데이터셋에서특정멤버를선택하거나제외하여복사하는예이다. MERGE //IN01 //IN02 //OUT01 EXEC PGM=IEBCOPY DD DSNAME=DATASET4,DISP=(SHR,KEEP) DD DSNAME=DATASET3,DISP=(SHR,KEEP) DD DSNAME=DATASET6,DISP=(OLD,KEEP) //SYSPRINT DD SYSOUT=* //SYSIN DD * COPYOPER COPY OUTDD=OUT01 OpenFrame 유틸리티참조안내서 91

제 2 장데이터셋유틸리티 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] 특정멤버복사 92 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 다음은 INDD 문을사용하여여러개의 INPUT 을다르게처리하는경우의예이다. //INDD01 //IN01 //IN02 //IN03 //OUT01 EXEC PGM=IEBCOPY DD DSNAME=DATASET11,DISP=(SHR,KEEP) DD DSNAME=DATASET12,DISP=(SHR,KEEP) DD DSNAME=DATASET13,DISP=(SHR,KEEP) 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으로부터전체멤버를복사한다. 단, 같은이름의멤버가이미존재할경우교체하지않는다. OpenFrame 유틸리티참조안내서 93

제 2 장데이터셋유틸리티 [ 그림 2-7] IEBCOPY4 다음은 COPY 문의서브명령어로 INDD 를사용하는경우의예이다. //INDD02 //IN01 //IN02 //IN03 //OUT01 EXEC PGM=IEBCOPY DD DSNAME=DATASET11,DISP=(SHR,KEEP) DD DSNAME=DATASET12,DISP=(SHR,KEEP) DD DSNAME=DATASET13,DISP=(SHR,KEEP) 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에정의된데이터 94 OpenFrame 유틸리티참조안내서

제 2 장데이터셋유틸리티 셋 DATASET12 로부터전체멤버를복사한다. 멤버 B' 은교체된다. IN03 DD 에 정의된데이터셋 DATASET13 으로부터전체멤버를복사한다. 단, 같은이름의 멤버가이미존재할경우교체하지않는다. [ 그림 2-8] IEBCOPY5 유의사항 IEBCOPY 유틸리티프로그램이배치응용프로그램을정상적으로실행한경우 응용프로그램에서받은리턴코드를반환한다. 오류가발생한경우해당오류메시지를 SYSPRINT DD에출력하고, 각오류에해당하는리턴코드를반환한다. OpenFrame 유틸리티참조안내서 95