148
OpenFrame 유틸리티 참조 안내서 OpenFrame/Batch for VOS3 2.0 Copyright © 2009 TmaxSoft Co., Ltd. All Rights Reserved.

유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

  • Upload
    leque

  • View
    237

  • Download
    6

Embed Size (px)

Citation preview

Page 1: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

OpenFrame

유틸리티 참조 안내서

OpenFrame/Batch for VOS3 2.0

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

Page 2: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

Copyright Notice

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

대한민국 경기도 성남시 분당구 서현동 263 분당스퀘어(AK프라자) 12층 우)463-824

Restricted Rights Legend

All TmaxSoft Software (Tmax OpenFrame®) and documents are protected by copyright laws and the Protection

Act of Computer Programs, and international convention. TmaxSoft 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 transmitted, copied, deployed, or reproduced in any form or

by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd.

이 소프트웨어(Tmax OpenFrame®) 사용설명서의 내용과 프로그램은 저작권법, 컴퓨터프로그램보호법 및 국제

조약에 의해서 보호받고 있습니다. 사용설명서의 내용과 여기에 설명된 프로그램은 TmaxSoft Co., Ltd.와의 사용

권 계약 하에서만 사용이 가능하며, 사용권 계약을 준수하는 경우에만 사용 또는 복제할 수 있습니다. 이 사용설명

서의 전부 또는 일부분을 Tmaxsoft의 사전 서면 동의 없이 전자, 기계, 녹음 등의 수단을 사용하여 전송, 복제, 배

포, 2차적 저작물작성 등의 행위를 하여서는 안 됩니다.

Trademarks

Tmax® and Tmax OpenFrame®are registered trademarks of TmaxSoft Co., Ltd. Other products, titles or services

may be registered trademarks of their respective companies.

Tmax®와 Tmax OpenFrame®은 TmaxSoft Co., Ltd.의 등록 상표입니다. 기타 모든 제품들과 회사 이름은 각각 해

당 소유주의 상표로서 참조용으로만 사용됩니다.

Open Source Software Notice

This product includes open source software developed and/or licensed by "OpenSSL", "RSA Data Security, Inc.",

"Apache Foundation", and "Jean-loup Gailly and Mark Adler". Information about the aforementioned and the related

open source software can be found in the "${INSTALL_PATH}/license/oss_licenses" directory.

본 제품은 “OpenSSL”, “RSA Data Security, Inc.”, “Apache Foundation” 및 “Jean-loup Gailly와 Mark Adler”에 의

해 개발 또는 라이선스된 오픈 소스 소프트웨어를 포함합니다. 관련 상세 정보는 제품의 디렉터리 “${IN

STALL_PATH}/license/oss_licenses”에 기재된 사항을 참고해 주십시오.

안내서 정보

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

발행일: 2009-11-30

소프트웨어 버전: OpenFrame/Base v5.1, Batch for VOS3 v2.0

안내서 버전: v2.1.2

Page 3: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

내용 목차

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

제1장 개요 ................................................................................................................................. 1

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

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

2.1. JSCVSUT .................................................................................................................... 3

2.2. JSDEDIT ................................................................................................................... 63

2.3. JSDPCPY .................................................................................................................. 69

2.4. JSDPRNT .................................................................................................................. 77

2.5. JSDSCPY .................................................................................................................. 83

2.6. JSDUPDT .................................................................................................................. 89

2.7. JSFCTLG .................................................................................................................. 96

2.8. JSFDCDP .................................................................................................................. 99

2.9. JSFILST .................................................................................................................. 105

2.10. JSFMOVE .............................................................................................................. 109

제3장 기타 유틸리티 ............................................................................................................... 119

3.1. DSDIFF ................................................................................................................... 119

3.2. EZTPA00 ................................................................................................................. 120

3.3. FTP ......................................................................................................................... 123

3.4. JDJDUMMY ............................................................................................................. 126

3.5. PGMRTS00 ............................................................................................................. 127

3.6. SDSF ...................................................................................................................... 130

색인 .......................................................................................................................................... 133

OpenFrame iii

Page 4: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에
Page 5: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

그림 목차

[그림 2.1] PDS 데이터 셋 복사 ................................................................................................... 72

[그림 2.2] 데이터 셋 병합 ........................................................................................................... 73

[그림 2.3] 특정 멤버 복사 ........................................................................................................... 74

[그림 2.4] INDD 문을 사용하여 INPUT 처리 ................................................................................ 75

[그림 2.5] COPY 문의 서브 명령어로 INDD를 사용하는 경우 ........................................................ 76

[그림 2.6] 1번째 입력 레코드 필드 복사 ...................................................................................... 88

[그림 2.7] 2번째 입력 레코드 필드 복사 ...................................................................................... 88

[그림 3.1] EZTAP00 동작 ......................................................................................................... 121

[그림 3.2] PGMRTS00 동작 구조 .............................................................................................. 128

OpenFrame v

Page 6: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에
Page 7: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

안내서에 대하여

안내서의 대상

본 안내서는 리호스팅 솔루션인 Tmax OpenFrame®(이하 OpenFrame)/Batch 시스템을 사용하는 사용자

를 대상으로 기술한다.

안내서의 전제 조건본 안내서를 정확히 사용하려면 OpenFrame/Batch 의 개념을 이해하고 있어야 한다. OpenFrame/Batch

에 대한 이해를 돕기 위해 OpenFrame 안내서 중 “Batch 안내서”를 먼저 숙지할 것을 권장한다.

안내서의 제한 조건본 안내서에서는 유틸리티에서 현재 지원하지 않는 기능, 옵션, 파라미터에 대해 별도로 표기하였으며 이

에 대한 설명은 생략한다.

안내서에 대하여 vii

Page 8: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

안내서 구성

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

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

● 제1장: 개요

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

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

데이터 셋 유틸리티 프로그램을 사용하여 여러가지 데이터 셋 관련 작업을 처리하기 위한 방법에 대해

기술한다.

● 제3장: 기타 유틸리티

사용자의 편의를 위해 제공되는 데이터 셋 유틸리티 외의 유틸리티를 사용하는 방법에 대해 기술한다.

viii OpenFrame 유틸리티 참조 안내서

Page 9: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

안내서 규약

의미표기

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

Ctrl과 C를 동시에 누름<Ctrl>+C

GUI의 버튼 또는 메뉴 이름[Button]

강조진하게

다른 관련 안내서 또는 안내서 내의 다른 장 및 절 언급" "(따옴표)

화면 UI에서 입력 항목에 대한 설명'입력항목'

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

메뉴의 진행 순서>

하위 디렉터리 또는 파일 있음+----

하위 디렉터리 또는 파일 없음|----

참조 또는 주의사항참고

그림 이름[그림 1.1]

표 이름[표 1.1]

명령어, 명령어 수행 후 화면에 출력된 결과물, 예제코드AaBbCc123

필수 인수 값{ }

옵션 인수 값[ ]

선택 인수 값|

안내서에 대하여 ix

Page 10: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

시스템 사용 환경

요구 사항

IBM AIX 5.xPlatform

HP-UX 11.xx

Solaris 9 (SunOS 5.9)

Linux IA64 2.6.x

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

256MB 이상 메모리 공간

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

Tibero 3.0Database

Oracle 9i 또는 10g

COBOL2002Compiler

x OpenFrame 유틸리티 참조 안내서

Page 11: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

관련 안내서

설명안내서

OpenFrame/Base를 구성하는 전반적인 기능에 대해 기술한 안내서이다.OpenFrame

Base 안내서

OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해서 기

술한 안내서이다.

OpenFrame

JCL 문법 안내서

OpenFrame 데이터 셋에 대한 소개와 데이터 셋 종류 및 카탈로그 방법 등에

대해 기술한 안내서이다.

OpenFrame

데이터 셋 안내서

Mainframe 환경의 리소스를 OpenFrame 환경으로 마이그레이션 할 때 필요

한 정보와 전환절차 또는 주의사항 등에 대해 기술된 안내서이다.

OpenFrame

마이그레이션 안내서

OpenFrame 시스템을 운용하는데 사용하는 다양한 툴 프로그램에 대해 기술

된 안내서이다.

OpenFrame

툴 참조 안내서

참고 문헌

안내서제품

VOS3 시스템 유틸리티/독립 유틸리티 해설 문법서 6190-3-224-C0Mainframe

VOS3 데이터 셋 유틸리티 해설 문법서 6190-3-225-D0

VOS3 VSAM 유틸리티 해설 문법서 6190-3-223-E0

CA-EasyTrieve Plus Reference Guide 6.4

Communications Server IP User's Guide and Commands

안내서에 대하여 xi

Page 12: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

연락처

Korea

TmaxSoft Co., Ltd

263 BundangSquare (AK Plaza) 12th floor, Seohyeon-dong, Bundang-gu,

Seongnam-si, Gyeonggi-do, 463-824

South Korea

Tel: +82-31-8018-1000

Fax: +82-31-8018-1115

Email: [email protected]

Web (Korean): http://www.tmax.co.kr

기술지원: http://technet.tmaxsoft.com

USA

TmaxSoft, Inc.

560 Sylvan Avenue Englewood Cliffs, NJ 07632

U.S.A

Tel: +1-201-567-8266

Fax: +1-201-567-7339

Email: [email protected]

Web (English): 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]

Web (Japanese): http://www.tmaxsoft.co.jp

xii OpenFrame 유틸리티 참조 안내서

Page 13: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

China

TmaxSoft China Co., Ltd.

Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan,

Chaoyang District, Beijing, China, 100027

China

Tel: +86-10-6410-6145~8

Fax: +86-10-6410-6144

Email: [email protected]

Web (Chinese): http://www.tmaxsoft.com.cn

안내서에 대하여 xiii

Page 14: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에
Page 15: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

제1장 개요

본 장에서는 OpenFrame에서 제공하는 유틸리티에 대해 소개한다.

1.1. 유틸리티 소개OpenFrame 유틸리티 프로그램은 OpenFrame 엔진과 함께 제공되는 사용자 편의를 위한 프로그램으로

JCL을 통해 Batch JOB으로 실행된다.

유틸리티 프로그램은 다음과 같이 분류된다.

● 데이터 셋 유틸리티

● 소트 유틸리티

● 기타 유틸리티

각 유틸리티에 대한 설명은 해당 절에서 자세하게 기술한다.

참고

소트 유틸리티에 대해서는 OpenFrame 안내서 중 "SORT 유틸리티 참조 안내서"를 참고한다.

제1장 개요 1

Page 16: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에
Page 17: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

제2장 데이터 셋 유틸리티

본 장에서는 데이터 셋 유틸리티에 대해 기술한다.

2.1. JSCVSUTJSCVSUT는 OpenFrame의 VSAM과 Non-VSAM 데이터 셋 및 카탈로그 정보를 생성하고 관리하기 위한

유틸리티 프로그램이다.

SYSIN DD에 입력된 각 명령은 각각의 명령이 의미하는 작업을 수행하기 위한 명령어와 이를 위한 각종

옵션 또는 파라미터들로 구성된다. JSCVSUT는 실행할 명령들을 SYSIN DD에서 읽어 들여 동작한다.

OpenFrame의 JSCVSUT 프로그램은 기존 Mainframe의 JSCVSUT 명령을 그대로 사용하여 OpenFrame

의 VSAM 데이터 셋과 Non-VSAM 데이터 셋 그리고 카탈로그를 대상으로 동작한다. 사용자 입장에서

Mainframe의 JSCVSUT와 동일한 작업을 수행한다.

JSCVSUT는 2가지 종류의 명령어로 분류된다.

● 기능 명령어

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

설명명령어

이미 정의되어 있는 데이터 셋 또는 카탈로그 자체의 속성을 변경한다.ALTER

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

데이터 셋의 카탈로그 정보와 VTOC 정보를 비교한다.CHECKCAT

다음과 같은 데이터 셋 오브젝트(또는 카탈로그 엔트리)를 정의하기 위해 사용한다.DEFINE

- ALIAS

- ALTERNATEINDEX

- CLUSTER

- GENERATIONDATAGROUP

- NONVSAM

- PATH

- USERCATALOG|MASTERCATALOG

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

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

Page 18: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명명령어

카탈로그와 VSAM 데이터 셋을 이식 가능한 데이터 셋으로 반출하거나 백업 데이터

셋을 생성한다.

EXPORT

CHECKCAT 명령에 사용되는 데이터 셋의 카탈로그 정보 및 VTOC 정보를 추출한다.EXTRACT

EXPORT 명령으로 생성된 이식 가능한 카탈로그와 VSAM 데이터 셋을 반입하거나

백업된 상태의 데이터 셋을 원래의 상태로 복원한다.

IMPORT

카탈로그에 등록된 VSAM과 Non-VSAM 데이터 셋에 대한 정보를 보여준다.LISTCAT

볼륨에 등록된 VSAM과 Non-VSAM 데이터 셋에 대한 정보를 보여준다.LISTENT

카탈로그 상태에 대한 정보를 보여준다.LISTST

VSAM과 Non-VSAM 데이터 셋에 저장되어 있는 레코드를 출력하여 보여준다.PRINT

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

카탈로그를 분할 또는 병합한다.SPLITMRG

카탈로그에 등록된 VSAM과 Non-VSAM 데이터 셋을 검색한다.SRCHCAT

VSAM 데이터 셋의 비정상 종료(close)로 인해 잘못된 데이터 셋 정보로 카탈로그 되

어 있는지 확인하고 올바르게 수정한다. 또한 레코드 수 등의 정보도 정확하게 반영되

어 있는지 확인한다.

VERIFY

VSAM 데이터 셋을 종료할 때 해당 데이터 셋의 마지막 위치와 레코드 수 등의 통계

정보가 카탈로그에 저장된다. 정상적으로 종료되지 않은 경우 카탈로그 정보와 실제

데이터 셋의 상태 정보가 일치하지 않을 수 있으므로, VERIFY 명령으로 이러한 불일

치를 올바르게 변경할 수 있다.

● 보조 명령어

JSCVSUT 명령어들의 실행을 제어하기 위한 보조 성격의 명령어이다.

설명명령어

실행된 명령의 컨디션 코드 값(LASTCC 또는 MAXCC)에 따라 다음에 실행할 명령을

분기하기 위해 사용한다.

IF-THEN-ELSE

아무 동작도 발생시키지 않는 문법적 용도의 명령이다.Null

IF-THEN-ELSE 명령의 THEN이나 ELSE 다음에 특별한 작업을 수행하지 않는다는

것을 명시적으로 나타내기 위해서 사용한다.

MAXCC나 LASTCC의 값을 특정한 값으로 강제 설정하기 위해 사용한다.SET

프로그램 실행 중 CANCEL 명령어를 만나면 JSCVSUT의 실행이 중지되고, CANCEL

명령 이후의 나머지 명령들은 처리되지 않는다.

CANCEL

JSCVSUT가 실행되는 동안에 적용되는 옵션 및 파라미터 값을 지정한다. 현재는 지

원하지 않는다.

PARM

4 OpenFrame 유틸리티 참조 안내서

Page 19: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

JSCVSUT을 이용하여 코딩할 때 공통적으로 적용되는 규약은 다음과 같다.

● 하이픈(-)

하나의 명령을 여러 라인에 걸쳐서 작성할 경우, 라인의 맨 뒤에 하이픈(-)을 입력하고 그 다음 라인에

계속 이어서 명령의 나머지 부분을 코딩한다.

하이픈(-)은 키워드나 파라미터 값의 중간에 코딩할 수 없으며 일반적으로 키워드나 파라미터 값의 경

계가 되는 부분에 라인이 계속 이어진다는 의미로 사용한다.

하이픈(-)을 사용하여 코딩하는 예는 다음과 같다.

LISTCAT ENT( -

TEST.CLUS1 -

TEST.KSDS1 -

TEST.RRDS1 -

TEST.SDS1

주의

여러 라인에 걸쳐서 작성된 명령어의 맨 마지막 라인에는 하이픈(-)을 코딩하지 않도록 주의한다.

● 주석

주석은 JSCVSUT 명령 사이에 입력할 수 있다. 단, 키워드나 파라미터 값의 중간에는 주석이 올 수 없

다. 또한, 주석의 시작 문자 '/*'는 라인의 1번째 컬럼에 기술할 수 없다.

주석에 특별한 기능은 없지만 하나의 명령으로 간주되기 때문에 명령 중간에 주석을 추가하는 경우에

는 해당 라인의 맨 뒤에 하이픈(-)을 입력해야 한다.

주석은 공백이나 콤마(,)와 같이 JSCVSUT 문법에서 필드를 구분하는 역할도 하므로 ‘/*’와 ‘*/’ 사이에

입력한다.

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

/* This is JSCVSUT Comment */

/* This is multi line Comment comment continued from above line */

LISTCAT ENT( /* Comment 1 */ -

TEST.KSDS1 /* Comment 3 */ -

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

주의

IF-THEN-ELSE 문의 중간에 주석을 사용하는 경우에는 주석에 의해서 IF-THEN-ELSE 구조가 의도

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

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

Page 20: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

DD 설정

OpenFrame의 JSCVSUT는 JCL을 통해 Batch 작업으로 실행하는 방식과 UNIX 시스템의 명령어 라인에

서 직접 실행하는 인터랙티브 방식을 모두 지원한다.

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

JCL을 통해서 JOB의 한 STEP으로서 JSCVSUT를 실행하는 경우 JSCVSUT는 다음과 같은 DD 문을 사

용한다.

설명항목

JSCVSUT가 실행할 명령을 기술한다.SYSIN DD

데이터 셋의 레코드 길이는 72 칼럼을 넘을 수 없으며, 명령이 길어질 경우 하이픈(-)

을 사용한다.

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

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

SYSPRINT DD

또는

SYSPRINT DD를 기술하지 않거나 지정 데이터 셋의 할당, 열기에 실패한 경우

JSCVSUT는 아무런 명령도 수행하지 않고 종료되며 컨디션 코드 16을 반환한다.

SYSOUT DD

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

이나 entryname을 간접적으로 지정할 수 있다. 이 경우 JSCVSUT는 데이터 셋을 동

추가적인 DD

적으로 할당하지 않고 JOB의 실행을 제어하는 tjclrun에 의해 JOB 레벨에서 미리 할

당된 데이터 셋을 승계받아 사용한다.

일반적으로 명령어의 대상이 되는 데이터 셋을 지정하는 파라미터는 JCL에 기술된

ddname을 이용하여 FILE(ddname) 형태의 파라미터 이름을 갖는다.

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

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

다음은 앞에서 설명한 추가적인 DD에 대한 예로, REPRO BLDINDEX PRINT의 파라미터를 이용하여 JCL

에서 할당된 데이터 셋을 승계받아서 동작하도록 한다.

INFILE(ddname), OUTFILE(ddname)

다음은 REPRO BLDINDEX PRINT의 파라미터로, JSCVSUT에서 동적으로 데이터 셋을 할당하여 동작하

는 예이다.

INDATASET(entryname), OUTDATASET(entryname)

6 OpenFrame 유틸리티 참조 안내서

Page 21: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

JCL을 통해서 JOB의 한 STEP으로 JSCVSUT를 실행시키기 위해서는 JSCVSUT를 호출하는 JOB STEP

에 앞에서 설명한 DD를 기술하고 EXEC PGM에 JSCVSUT를 지정한 후 해당 JCL을 전송(submit)한다.

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

//REPRO EXEC PGM=JSCVSUT

//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)

/*

//

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

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

에 표준 입출력 스트림 (stdin/stdout/stderr)을 사용하여 작동한다. 즉, stdin으로부터 JSCVSUT 명령어를

읽어 들여 명령어 단위로 실행하고, stdout/stderr로는 작업의 결과 및 에러 메시지를 출력하는 인터랙티브

한 인터프리터 방식이다.

UNIX 시스템의 명령어 라인에 다음과 같은 명령을 실행하면 JSCVSUT는 DEFINE.TEST.CLUS1.CMD라

는 VSAM 데이터 셋을 제거하고 다시 정의하는 동작을 한다.

$ JSCVSUT < DEFINE.TEST.CLUS1.CMD

TEST.CLUS1.CMD는 일반적인 UNIX 텍스트 파일로 아래와 같은 내용을 담고 있다. DE

FINE.TEST.CLUS1.CMD 파일은 JSCVSUT UNIX 명령어 라인에서 stdin 리다이렉션을 보여준다.

DELETE TEST.CLUS1 CLUSTER

DEFINE CLUSTER -

(NAME(TEST.CLUS1) -

VOLUMES(100000) -

INDEXED -

KEYS(07 0) -

CYL (70 10) -

RECORDSIZE(200 200)) -

DATA (NAME(TEST.CLUS1.DATA) -

CONTROLINTERVALSIZE(4096) ) -

INDEX (NAME(TEST.CLUS1.INDEX) -

CONTROLINTERVALSIZE(4096) )

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

Page 22: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

제약 사항(Limitation)

DD(ddname)를 통해 할당된 데이터 셋을 승계하여 사용하기 위해서는 OpenFrame/Batch 환경, 특히 tjclrun

을 필요로 한다. 따라서 JCL을 통해 JOB STEP으로 JSCVSUT를 실행하는 경우에 가능했던 ddname을

사용한 데이터 셋의 지정이 UNIX 시스템의 명령어 라인에서는 불가능하다.

UNIX 명령어를 실행하는 경우 JSCVSUT 명령의 대상이 되는 데이터 셋을 지정하기 위해서는 항상

DATASET(entryname) 형태로 지정하여 사용해야 한다.

기능 명령어

ALTER

DEFINE 문으로 카탈로그에 이미 등록되어 있는 데이터 셋과 카탈로그 엔트리의 정보 일부를 변경할 수

있다.

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

참고

PDS 멤버에 대한 ALTER 문은 지원하고 있지 않다.

ALTER entryname

[NEWNAME(entryname)]

[EMPTY|NOEMPTY]

[LIMIT(limit)]

[NULLIFY(

[OWNER]

[RETENTION]

)

[OWNER(ownerid)]

[SCRATCH|NOSCRATCH]

[TO(date)|FOR(days)]

[CATALOG(catname)]

설명항목

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

다.

entryname

변경하고자 하는 엔트리명의 새로운 이름을 지정한다. (약어: NEWNM)NEWNAME

PDS 멤버에 대한 ALTER 구문은 지원하고 있지 않다.(entryname)

세대 데이터 그룹에 존재하는 세대 데이터 셋의 수가 제한값을 초과했을 때, 기존에

존재하는 세대 데이터 셋을 어떻게 삭제할지를 결정한다.

EMPTY|

NOEMPTY

8 OpenFrame 유틸리티 참조 안내서

Page 23: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

- EMPTY: 기존의 모든 세대 데이터 셋을 삭제한다. (약어: EMP)

- NOEMPTY: 기존의 세대 테이터 셋 중 가장 오래된 데이터 셋을 삭제한다. (약어:

NEMP)

OpenFrame에서는 NOEMPTY 기능만 지원하고 있다.

세대 데이터 그룹에 존재할 수 있는 최대 세대 수를 지정한다. (약어: LIM)LIMIT(limit)

이 값은 1~255 범위 내에서만 지정할 수 있다.

LIMIT으로 지정한 값보다 실제 세대 데이터 그룹에 존재하는 세대 데이터 셋이 많은

경우, 데이터 셋의 수가 LIMIT에 지정한 값이 될 때까지, 가장 오래된 데이터 셋부터

삭제한다.

무효 대상을 결정한다. (약어: NULL)NULLIFY

- OWNER: 소유자 식별명을 무효로 한다.

- RETENTION: TO 또는 FOR 파라미터로 지정된 만기 일자를 무효로 한다. (약어:

RETN)

변경될 엔트리의 소유자를 지정한다.OWNER

세대 데이터 셋이 삭제될 때 VTOC에 등록된 데이터 셋 정보도 모두 삭제할지를 결정

한다.

SCRATCH|

NOSCRATCH

- SCRATCH: VTOC에 등록된 세대 데이터 셋의 정보도 삭제한다. (약어: SCR)

- NOSCRATCH: VTOC에 등록된 세대 데이터 셋의 정보를 삭제하지 않는다. 하지만

카탈로그에 등록된 정보는 삭제되었기 때문에, 카탈로그를 통한 데이터 셋으로의 접

근은 할 수 없다. (약어: NSCR)

OpenFrame에서는 SCRATCH 기능만 지원하고 있다. GDS가 카탈로그로부터 등록

을 해제하면 볼륨에 있는 데이터 셋도 함께 삭제한다.

수정하려는 엔트리에 대한 보존 기간을 지정한다.TO(date)|

- TO: 보존 기간을 [yy]yyddd 형식으로 지정한다.FOR(days)

- FROM: 보존 일수를 0~9999 범위 내에서 지정한다. 9999를 지정하면 영구 보존된

다.

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

정한다. 지정하지 않는 경우에는 카탈로그 검색 순서에 따라 결정된다. (약어: CAT)

CATALOG

(catname)

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

Page 24: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

카탈로그 엔트리 타입과 카탈로그 엔트리에 해당하는 사용자 데이터 셋에 데이터가 적재되어 있는지 여

부에 따라서 변경 가능한 속성과 변경 불가능한 속성이 있다.

다음은 OpenFrame JSCVSUT의 ALTER 명령이 지원하는 각 카탈로그 엔트리 타입에 따른 변경 가능한

속성을 요약한 표이다. ‘O’로 표시되어 있는 곳이 변경 가능한 속성이다.

GDGNON-

VSAM

UCAT

IN

DEX

UCAT

DATA

PATHCLUS

TER

IN

DEX

CLUS

TER

DATA

CLUS

TER

AIX

IN

DEX

AIX

DATA

AIX엔트리 타입

변경가능 속성

-O--O------NEWNAME

O----------EMPTY

O----------NOEMPTY

O----------LIMIT

OO--O------NULLIFY

OO--O------OWNER

OO--O------RETENTION

O----------SCRATCH

O----------NOSCRATCH

OO--O------TO

OO--O------FOR

참고

본 안내서에서 다루지 않은 파라미터에 대해서는 Hitachi의 "VOS3 VSAM Utility"를 참고한다.

변경하고자 하는 카탈로그 엔트리에 새로운 속성값을 지정하기 위해서는 각 파라미터 외에도 변경할 대

상이 되는 카탈로그 엔트리를 지정하기 위한 파라미터가 필요하다.

다음은 TESTCAT이라는 사용자 카탈로그에 등록된 TEST.GDG1란 이름의 GDG의 최대 세대 수를 255

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

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

//ALTGDG EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

ALTER TEST.GDG1 -

LIMIT(255) -

TO(2006300) -

CATALOG(TESTCAT)

10 OpenFrame 유틸리티 참조 안내서

Page 25: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

/*

//

BLDINDEX

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

령은 내부적으로 보조 인덱스 클러스터에 하나의 보조키와 다수개의 기본키로 구성되는 레코드를 적재하

는 역할을 담당한다.

BLDINDEX는 BIX라는 약어를 사용할 수 있다.

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

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

{OUTFILE(ddname)|OUTDATASET(entryname)}

[CATALOG(catname)]

설명항목

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

- INFILE: JSCVSUT 호출 전에 실행환경에 의해서 미리 할당된 데이터 셋을

사용하는 경우에는 ddname을 사용한다. (약어: IFILE)

INDATASET(entryname)

- INDATASET: JSCVSUT 자체적으로 데이터 셋을 할당하는 경우에는 entry

name을 사용한다. (약어: IDS)

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

전에 보조 인덱스는 미리 DEFINE되어야 한다.

OUTFILE(ddname)|

OUTDATASET(entry

name) - OUTFILE: JSCVSUT 호출 전에 실행환경에 의해서 미리 할당된 데이터 셋

을 사용하는 경우에는 ddname을 사용한다. (약어: ODS)

- OUTDATASET: JSCVSUT 자체적으로 데이터 셋을 할당하는 경우에는

entryname을 사용한다. (약어: ODS)

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

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

된다. (약어: CAT)

CATALOG(catname)

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

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

//BLDAIX EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

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

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

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

Page 26: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

//SYSIN DD *

BLDINDEX INFILE(BASE) -

OUTFILE(AIX)

/*

//

CHECKCAT

CHEKCCAT 명령을 사용하여 카탈로그 정보를 VTOC 정보와 비교한다.

다음은 CHECKCAT 명령의 2가지 기능이다.

● VSAM 데이터 셋 및 Non-VSAM 데이터 셋의 비교

EXTRACT 명령으로 추출한 데이터 셋의 카탈로그 정보와 VTOC 정보를 비교한다.

비교한 정보를 토대로 불일치한 데이터 셋에 대하여 복구하기 위한 VSAM 유틸리티 명령어를 생성하고

지정된 데이터 셋에 출력한다.

● VSAM 데이터 셋의 비교

EXTRACT 명령으로 추출한 데이터 셋의 카탈로그 정보와 VTOC 정보를 비교한다.

VSAM 데이터 셋 및 Non-VSAM 데이터 셋의 비교를 위한 CHECKCAT 명령어 구문은 다음과 같다.

CHECKCAT CATFILE(ddname)

VOLFILE(ddname)

CMDFILE1(ddname)

CMDFILE2(ddname)

CMDFILE3(ddname)

CMDFILE4(ddname)

[IGNORE|NOIGNORE]

[LIMIT(limit)]

[LIST|NOLIST]

설명항목

EXTRACT 명령으로 추출한 카탈로그 정보를 포함하고 있는 Non-VSAM 데이터

셋의 ddname을 지정한다. (약어: CFILE)

CATFILE(ddname)

EXTRACT 명령으로 추출한 VTOC 정보를 포함하고 있는 Non-VSAM 데이터 셋

의 ddname을 지정한다. (약어: VFILE)

VOLFILE(ddname)

VSAM 데이터 셋에 대한 DEFINE 관련 명령어가 출력되는 Non-VSAM 데이터

셋의 ddname을 지정한다. 출력 데이터 셋은 80Byte 고정장 블록 형식이어야 한

다. (약어: CMD1)

CMDFILE1(ddname)

12 OpenFrame 유틸리티 참조 안내서

Page 27: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

VSAM 데이터 셋에 대한 DELETE 관련 명령어가 출력되는 Non-VSAM 데이터

셋의 ddname을 지정한다. 출력 데이터 셋은 80Byte 고정장 블록 형식이어야 한

다. (약어: CMD2)

CMDFILE2(ddname)

Non-VSAM 데이터 셋에 대한 DEFINE 관련 명령어가 출력되는 Non-VSAM 데

이터 셋의 ddname을 지정한다. 출력 데이터 셋은 80Byte 고정장 블록 형식이어

야 한다. (약어: CMD3)

CMDFILE3(ddname)

Non-VSAM 데이터 셋에 대한 DELETE 관련 명령어가 출력되는 Non-VSAM 데

이터 셋의 ddname을 지정한다. 출력 데이터 셋은 80Byte 고정장 블록 형식이어

야 한다. (약어: CMD4)

CMDFILE4(ddname)

카탈로그에 등록된 데이터 셋 중에 VOLFILE 파라미터로 지정한 볼륨에 해당하

는 엔트리만을 비교할지를 결정한다.

IGNORE|

NOIGNORE

- IGNORE: VOLFILE 파라미터에 지정한 볼륨에 해당하는 엔트리만 비교한다.

(약어: IGN)

- NOIGNORE: 카탈로그에 등록되어 있는 모든 엔트리에 대하여 비교한다. (약

어: NIGN)

기본값은 NOIGNORE이다.

CHECKCAT의 CMDFILE 데이터 셋에 생성되는 DEFINE GENERATIONDATA

GROUP 구문의 최대 세대 수를 지정한다. 이 파라미터를 생략하면 기본값인 255

가 지정된다. (약어: LIM)

LIMIT(limit)

비교한 결과값의 출력 방식을 결정한다.LIST|

- LIST: 모든 엔트리에 대한 결과를 출력한다.NOLIST

- NOLIST: 불일치 엔트리에 대한 결과만 출력한다. (약어: NLIST)

기본값은 NOLIST이다.

VSAM 데이터 셋의 비교를 위한 CHECKCAT 명령어 구문은 다음과 같다.

CHECKCAT CATALOG(catname)

FILE(ddname[ ddname...])

[IGNORE|NOIGNORE]

[LIST|NOLIST]

설명항목

비교 대상 VSAM 데이터 셋 엔트리를 포함하고 있는 카탈로그를 지정한다. (약어:

CAT)

CATALOG(cat

name)

비교 대상 VSAM 데이터 셋 엔트리를 포함하고 있는 볼륨의 ddname을 지정한다.FILE(ddname)

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

Page 28: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

카탈로그에 등록된 데이터 셋 중에 VOLFILE 파라미터로 지정한 볼륨에 해당하는 엔

트리만을 비교할지를 결정한다.

IGNORE|

NOIGNORE

- IGNORE: VOLFILE 파라미터에 지정한 볼륨에 해당하는 엔트리만 비교한다. (약어:

IGN)

- NOIGNORE: 카탈로그에 등록되어 있는 모든 엔트리에 대하여 비교한다. (약어:

NIGN)

기본값은 NOIGNORE이다.

비교한 결과값의 출력 방식을 결정한다.LIST|

- LIST: 모든 엔트리에 대한 결과를 출력한다.NOLIST

- NOLIST: 불일치 엔트리에 대한 결과만 출력한다. (약어: NLIST)

기본값은 NOLIST이다.

다음은 CHECKCAT 명령어로 USER.CAT1 사용자 카탈로그에 등록되어 있는 VSAM 데이터 셋 엔트리와

볼륨 일렬 번호가 100000과 200000인 볼륨에 들어있는 VSAM 데이터 셋 엔트리를 비교하는 예이다.

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

//CHECKCAT EXEC PGM=JSCVSUT

//VOLIN1 DD VOL=SER=100000,DISP=OLD

//VOLIN2 DD VOL=SER=200000,DISP=OLD

//SYSPRINT DD SYSOUT=A

//SYSIN DD *

CHECKCAT -

CATALOG(USER.CAT1) -

FILE(VOLIN1 VOLIN2) -

LIST

/*

//

DEFINE

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

DEFINE NAME(entryname)

{CYLINDERS(primary[ secondary])|

RECORDS(primary[ secondary)|

TRACKS(primary[ secondary)}

{VOLUMES(volser[ volser...]|

DEVICETYPE(devtype)})

14 OpenFrame 유틸리티 참조 안내서

Page 29: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[CONTROLINTERVALSIZE(size)]

[OWNER(ownerid)]

[RECORDSIZE(average maximum)]

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

[DATA (...)]

[INDEX (...)]

[CATALOG(catname)]

참고

DEFINE 명령별로 지정 가능한 실제 파라미터의 종류는 각각의 DEFINE 명령 절에서 설명한다. 본

절에서는 공통적으로 사용하는 파라미터에 관해 설명한다.

DEFINE의 약어로 DEF를 사용할 수 있다.

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

설명항목

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

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

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

CYLINDERS|

RECORDS|

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

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

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

TRACKS

(primary[ secondary])

기본 할당은 데이터 셋을 생성할 때 처음 할당되는 것을 의미하고 추가 할당은

이후 데이터 셋에 데이터가 계속 저장되어 저장소를 추가적으로 할당하는 경우

를 의미한다.

(약어: CYL | REC | TRK)

VOLUMES, DEVICETYPE 중 원하는 항목을 지정한다.VOLUMES(volser[

volser...])|- VOLUMES: 데이터 셋을 생성하는 경우 데이터 셋을 저장할 볼륨의 볼륨 일련

번호를 지정한다. (약어: VOL)DEVICETYPE(dev

type)- DEVICETYPE: 엔트리가 존재하는 볼륨의 장치 타입을 지정한다. 단, OpenFrame

에서는 이 옵션을 지원하고 있지 않다. (약어: DEVT)

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

인터벌 크기를 지정한다.

CONTROLINTERVAL

SIZE(size)

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

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

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

Page 30: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

CONTROLINTERVALSIZE는 512Byte에서 8KByte 사이에서 512Byte의 배수단

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

단위로 지정해야 한다. 그렇지 않은 경우 내부적으로 해당 범위에 따라서 지정된

값보다 작지 않은 가장 가까운 512Byte나 2 KByte의 배수단위의 값으로 결정된

다. CONTROLINTERVALSIZE를 지정하지 않으면 VSAM이 임의의 적당한 값으

로 결정한다.

(약어: CISZ 또는 CNVSZ)

데이터 셋의 소유자를 지정한다.OWNER(ownerid)

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

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

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

RECORDSIZE

(average maximum)

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

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

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

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

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

가 기본값으로 사용된다.

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

이 기본값으로 사용된다.

ALTERNATEINDEX는 일반적으로 많은 수의 NONUNIQUE KEY가 존재하는 점

을 고려해서 VSAM 내부적으로 SPANNED가 지정된 KSDS처럼 처리된다. AL

TERNATEINDEX에는 SPANNED 파라미터는 무시된다.

(약어: RECSZ)

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

- TO: 만료일자를 지정한다.FOR(days)

- FOR: 유효일수를 지정한다. 생성일로부터 유효일수를 더한 날짜가 만료일자

가 된다.

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

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

DATA(parameters)

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

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

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

CLUSTER할 때 CLUSTER의 서브 파라미터로서 지정해도 되고 DATA나 INDEX

16 OpenFrame 유틸리티 참조 안내서

Page 31: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

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

넌트 별로 따로 적용하는 것이 가능하다면 컴포넌트 별로 다른 값이 적용된다.

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

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

CATALOG(catname)

탈로그 엔트리 이름의 일부를 ALIAS로 사용하는 USERCATALOG가 있는 경우

해당 USERCATALOG에 등록된다. 마지막까지 등록할 카탈로그가 결정되지 않

으면 마스터 카탈로그에 등록한다. (약어: CAT)

자세한 사항은 "OpenFrame 데이터 셋 안내서"의 "제4장 통합 카탈로그"에서 카

탈로그 검색 순서를 참고한다.

DEFINE ALIAS

Non-VSAM 데이터 셋이나 사용자 카탈로그의 별칭으로 사용할 ALIAS를 카탈로그에 생성한다.

ALIAS에 해당하는 카탈로그 엔트리 역시 원래의 데이터 셋 이름과 별칭만을 포함하고 있다. 별도의 사용

자 데이터를 저장하기 위한 데이터 셋은 존재하지 않는다.

참고

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

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

DEFINE ALIAS (NAME(aliasname)

RELATE(entryname))

[CATALOG(catname)]

설명항목

생성할 ALIAS 이름을 지정한다. ALIAS 이름은 등록될 카탈로그 내에서 유일해

야 한다.

NAME(aliasname)

ALIAS가 가리키는 실제 엔트리의 entryname을 지정한다. (약어: REL)RELATE(entryname)

생성할 ALIAS를 등록할 카탈로그 지정한다. (약어: CAT)CATALOG(catname)

사용자 카탈로그에 대한 ALIAS를 생성하는 경우 마스터 카탈로그를 지정한다.

다음은 TEST.NVSAM1의 ALIAS로 TEST.ALIAS1을 생성하고 TESTCAT 카탈로그에 등록하는 예이다.

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

//DEFALI EXEC PGM=JSCVSUT

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

Page 32: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

//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의 파라미터와 동일하다.

ALTERNATEINDEX 명령어의 약어로 AIX를 사용한다.

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

DEFINE ALTERNATEINDEX (NAME(entryname)

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

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

{VOLUMES(volser[ volser...])|

DEVICETYPE(devtype)}

[CONTROLINTERVALSIZE(size)]

[ERASE|NOERASE]

[KEYS(length offset|64 0)]

[OWNER(ownerid)]

[RECORDSIZE(average maximum| 4086 32600)]

[TO(date)|FOR(days)]

[UNIQUEKEY|NONUNIQUEKEY]

[UPGRADE|NOUPGRADE])

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

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[{VOLUMES(volser[ volser...])|

DEVICETYPE(devtype)}]

[CONTROLINTERVALSIZE(size)]

[ERASE|NOERASE]

[KEYS(length offset)]

[NAME(entryname)]

18 OpenFrame 유틸리티 참조 안내서

Page 33: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[OWNER(ownerid)]

[RECORDSIZE(average maximum)]

[UNIQUEKEY|NONUNIQUEKEY])]

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

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[{VOLUMES(volser[ volser...])|

DEVICETYPE(devtype)}]

[CONTROLINTERVALSIZE(size)]

[NAME(entryname)]

[OWNER(ownerid)])]

[CATALOG(catname)]

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

설명항목

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

어: REL)

RELATE(entryname)

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

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

AIX를 정의하기 위해서는 미리 베이스 클러스터로 사용할 데이터 셋을 DEFINE

CLUSTER 명령을 이용해서 만들어야 한다.

베이스 클러스터 데이터 레코드 내에서 AIX로 사용할 키 필드를 입력한다.KEYS(length offset)

생략할 경우 length와 offset 기본값은 다음과 같다.

- length: 64

- offset: 0

AIX 데이터 셋 클러스터 자체의 레코드 크기를 지정한다. (약어: RECSZ)RECORDSIZE

생략할 경우 average와 maximum의 기본값은 다음과 같다.(average maximum)

- average: 4,086

- maximum: 32,600

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

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

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

NONUNIQUEKEY

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

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

기본값은 NONUNIQUEKEY이다.

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

Page 34: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

(약어: UNQK | NUNQK)

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

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

바른 보조 인덱스를 유지한다.

UPGRADE|

NOUPGRADE

기본값은 UPGRADE이다.

(약어: UPG | NUPG)

엔트리 타입이 CLUSTER이거나 AIX인 데이터 셋을 카탈로그로부터 삭제할 때

컴포넌트도 함께 삭제할지를 결정한다.

ERASE|

NOERASE

- ERASE: 엔트리를 삭제할 때 그에 따른 컴포넌트도 함께 삭제한다. (약어: ERAS)

- NOERASE: 엔트리만 삭제하고 그에 따른 컴포넌트는 삭제하지 않는다. (약어:

NERAS)

OpenFrame에서는 엔트리를 삭제할 때 컴포넌트도 같이 삭제하고 있다. 따라서

NOERASE 옵션을 지정해도 ERASE 옵션과 동일하게 동작한다.

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

보조 인덱스 VSAM.AIX1 레코드의 오프셋 44에서 시작되는 7 Byte 부분을 보조키로 한다. 보조키는 유일

하지 않으며 베이스 클러스터가 변경될 때 자동적으로 업그레이드된다.

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

//DEFAIX EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE AIX (NAME(VSAM.AIX1) -

RELATE(VSAM.KSDS1) -

UPGRADE -

KEYS(7 44) -

VOL(VOL100))

/*

//

DEFINE CLUSTER

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

함께 지정할 수 있다.

CLUSTER 명령어의 약어로 CL을 사용할 수 있다.

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

20 OpenFrame 유틸리티 참조 안내서

Page 35: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

DEFINE CLUSTER (NAME(entryname)

{CYLINDERS(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

{VOLUMES(volser[ volser...])|

DEVICETYPE(devtype)}

[CONTROLINTERVALSIZE(size)]

[ERASE|NOERASE]

[INDEXED|NONINDEXED|NUMBERED]

[KEYS(length offset| 64 0]

[OWNER(ownerid)]

[RECORDSIZE(average maximum)]

[SPANNED|NONSPANNED]

[TO(date)|FOR(days)]

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

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[{VOLUMES(volser[ volser...])|

DEVICETYPE(devtype)}]

[CONTROLINTERVALSIZE(size)]

[ERASE|NOERASE]

[KEYS(length offset)]

[NAME(entryname)]

[OWNER(ownerid)]

[RECORDSIZE(average maximum)]

[SPANNED|NONSPANNED]

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

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[{VOLUMES(volser[ volser...])|

DEVICETYPE(devtype)}]

[CONTROLINTERVALSIZE(size)]

[NAME(entryname)]

[OWNER(ownerid)]

[CATALOG(catname)]

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

설명항목

데이터 셋이 위치할 볼륨을 지정한다. (약어: VOL)VOLUMES(volser[

volser...])

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

어: CISZ 또는 CNVSZ)

CONTROLINTERVAL

SIZE(size)

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

정하게 된다.

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

Page 36: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

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

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

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

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

다.

NONINDEXED|

NUMBERED

기본값은 INDEXED이다.

(약어: IXD | NIXD | NUMD)

KSDS 데이터 레코드의 키 필드 정보를 입력한다.KEYS(length offset)

키 필드를 입력할 경우 오프 셋과 길이의 합이 가장 짧은 레코드 길이를 초과해

서는 안된다. 키 길이는 1~255 Byte 범위 내에서 지정할 수 있다.

생략할 경우 length와 offset의 기본값은 다음과 같다.

- length: 64

- offset: 0

데이터당 레코드의 평균 길이와 최대 길이를 지정한다. (약어: RECSZ)RECORDSIZE

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

다.

(average maximum)

NONSPANNED 경우 기본값은 다음과 같다.

- average: 4,089

- maximum: 4,089

SPANNED 경우 기본값은 다음과 같다.

- average: 4,086

- maximum: 32,600

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

드를 저장할 수 있다.

SPANNED|

NONSPANNED

기본값은 NONSPANNED이다.

NUMBERED 구조의 데이터 셋인 RRDS와 VRDS에 대해서는 이 파라미터를 사

용할 수 없다.

(약어: SPND | NSPND)

22 OpenFrame 유틸리티 참조 안내서

Page 37: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

엔트리 타입이 CLUSTER이거나 AIX인 데이터 셋을 카탈로그로부터 삭제할 때

컴포넌트도 함께 삭제할지를 결정한다.

ERASE|

NOERASE

- ERASE: 엔트리를 삭제할 때 그에 따른 컴포넌트도 함께 삭제한다. (약어: ERAS)

- NOERASE: 엔트리만 삭제하고 그에 따른 컴포넌트는 삭제하지 않는다. (약어:

NERAS)

OpenFrame에서는 엔트리를 삭제할 때 컴포넌트도 같이 삭제하고 있다. 따라서

NOERASE 옵션을 지정해도 ERASE 옵션과 동일하게 동작한다.

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

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

//DEFCLUS EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE CLUSTER (NAME(VSAM.KSDS1) -

INDEXED -

KEYS(10 0) -

VOL(VOL100)) -

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

DATA (NAME(VSAM.KSDS1.D) -

CISZ(4096) -

RECSZ(350 350))

/*

//

VSAM.KSDS1에 저장되는 레코드는 350Byte의 고정길이를 갖고 키 필드는 레코드 상에서 맨 앞의 10Byte

에 위치하며, VSAM.KSDS1 데이터 셋을 구성하는 인덱스와 데이터 컴포넌트의 이름을 각각 명시적으로

지정하고 있다.

DEFINE GDG(Generation Data Group)

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

GDG의 한 세대(Generation)에 해당하는 Non-VSAM 데이터 셋 GDS와 달리 GDG에 해당하는 실제 데이

터 셋은 존재하지 않는다. GDG 카탈로그 엔트리는 추후 해당 GDG 그룹에 속하게 될 여러 GDS를 관리하

기 위한 정보만을 갖는 카탈로그 엔트리이다.

DEFINE GDG를 수행한 결과로는 아무런 데이터 셋도 생성되지 않고, 단순히 해당 GDG 그룹을 관리하기

위한 카탈로그 엔트리가 카탈로그에 추가된다.

GENERATIONDATAGROUP 명령어의 약어로 GDG를 사용할 수 있다.

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

Page 38: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

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

DEFINE GENERATIONDATAGROUP (NAME(entryname)

LIMIT(limit)

[EMPTY|NOEMPTY]

[OWNER(ownerid)]

[SCRATCH|NOSCRATCH]

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

[CATALOG(catname)]

설명항목

생성할 GDG 베이스의 이름을 지정한다.NAME(entryname)

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

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

GDG 멤버는 1부터 255까지 생성할 수 있다. (약어: LIM)

LIMIT(limit)

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

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

지정한다.

EMPTY|

NOEMPTY

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

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

이터 셋으로 간주된다.

기본값은 NOEMPTY이다.

OpenFrame에서는 NOEMPTY 기능만 지원하고 있다.

(약어: EMP | NEMP)

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

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

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

SCRATCH|

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

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

기본값은 NOSCRATCH이다.

OpenFrame에서는 SCRATCH 기능만 지원하고 있다. GDS가 카탈로그로부터

등록을 해제하면 볼륨에 있는 데이터 셋도 함께 삭제한다.

(약어: SCR | NSCR)

GDG 그룹의 유효일을 설정한다.TO(date)|

- TO: 유효일의 마지막 날짜를 율리우스 날짜 형태로 지정한다. (2006년 1월 1일

은 2006001로 지정)

FOR(days)

24 OpenFrame 유틸리티 참조 안내서

Page 39: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

- FOR: 날짜수를 지정한다. (30을 지정할 경우 오늘부터 30일 간을 의미)

생성할 GDG 베이스가 등록될 카탈로그의 이름을 지정한다. (약어: CAT)CATALOG(catname)

다음은 GDS 멤버를 100개까지 포함할 수 있는 TEST.GDG1이라는 이름의 GDG 베이스를 생성하고 2006

년 12월 31일까지를 GDG 베이스의 유효기간으로 설정하여 TESTCAT이라는 카탈로그에 등록하는 예이

다.

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

//DEFGDG EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE GDG (NAME(TEST.GDG1) -

LIMIT(100) -

TO(2006365)) -

CATALOG(TESTCAT)

/*

//

DEFINE NONVSAM

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

로그에 등록한다.

NONVSAM 명령어의 약어로 NVSAM를 사용할 수 있다.

참고

GDG에 속하는 하나의 GDS는 Non-VSAM 데이터 셋이기 때문에 DEFINE NONVSAM 명령을 사용

해서 GDS를 생성할 수 있다.

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

DEFINE NONVSAM (NAME(entryname)

[DEVICETYPE(devtype[ devtype ...])]

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

[OWNER(ownerid)]

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

[CATALOG(catname)]

설명항목

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

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

Page 40: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

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

name을 지정해야 한다. 예를 들면 TEST.GDG1.G0001V00에서 Gxxxx는 세대

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

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

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

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

스 그룹(esoteric device group)은 사용할 수 없다. (약어: DEVT)

DEVICETYPE

(devtype[ devtype...])

Non-VSAM 데이터 셋을 저장할 볼륨의 볼륨 일련번호를 지정한다. (약어: VOL)VOLUMES

(volser[ volser...])

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

Non-VSAM 데이터 셋의 유효일을 설정한다.TO(date)|

- TO: 유효일의 마지막 날짜를 율리우스 날짜 형태로 지정한다. (2006년 1월 1일

은 2006001로 지정)

FOR(days)

- FOR: 날짜수를 지정한다. (30을 지정할 경우 오늘부터 30일간을 의미)

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

(약어: CAT)

CATALOG(catname)

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

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

//DEFNVS EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE NONVSAM (NAME(TEST.NVSAM1) -

VOLUMES(100000)) -

CATALOG(TESTCAT)

/*

//

DEFINE PATH

DEFINE PATH 명령을 통해서 베이스 클러스터에 대한 직접적인 접근 경로를 정의하거나 보조 인덱스를

경유하여 베이스 클러스터에 접근하는 간접적인 접근 경로를 정의한다.

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

DEFINE PATH (NAME(entryname)

[PATHENTRY(entryname)]

26 OpenFrame 유틸리티 참조 안내서

Page 41: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[OWNER(ownerid)]

[TO(date)|FOR(days)]

[UPDATE|NOUPDATE]

[CATALOG(catname)]

설명항목

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

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

의 이름을 지정한다.

PATHENTRY(entry

name)

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

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

칭하는 단순한 별칭으로 생각할 수 있다. 하지만 하나의 베이스 클러스터에 여러

개의 PATH를 정의할 수 있기 때문에 실제로 액세스할 때 적용되는 속성을 달리

지정하는 용도로 사용할 수 있다.

접근 경로의 소유자를 명시적으로 지정한다.OWNER(ownerid)

접근 경로의 유효일을 설정한다.TO(date)|

- TO: 유효일의 마지막 날짜를 율리우스 날짜 형태로 지정한다. (2006년 1월 1일

은 2006001로 지정)

FOR(days)

- FOR: 날짜수를 지정한다. (30을 지정할 경우 오늘부터 30일간을 의미)

- NOUPDATE: 해당 PATH를 통해서 베이스 클러스터 데이터 셋을 변경한 경우

변경된 베이스 클러스터의 업그레이드 셋에 대한 자동적인 변경 작업이 수행되

지 않는다.

UPDATE|

NOUPDATE

- UPDATE: 해당 PATH를 통해서 베이스 클러스터 데이터 셋을 변경한 경우 변

경된 베이스 클러스터의 업그레이드 셋에 대한 자동적인 변경 작업이 수행된다.

기본값은 UPDATE이다.

(약어: UPD | NUPD)

다음은 보조 인덱스 VSAM.AIX1을 경유하여 VSAM.AIX1의 베이스 클러스터에 접근하는 접근경로(PATH)

인 VSAM.PATH1을 생성하는 예이다.

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

//DEFPATH EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE PATH (NAME(VSAM.PATH1) -

PATHENTRY(VSAM.AIX1) -

UPDATE)

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

Page 42: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

/*

//

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

우 VSAM.AIX1 이외의 다른 보조 인덱스에 대해서도 업그레이드 처리가 일어난다.

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

하는 예이다.

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

//DEFPATH EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE PATH (NAME(VSAM.PATH2) -

PATHENTRY(VSAM.KSDS1) -

UPDATE)

/*

//

UPDATE 파라미터가 지정되어 있으므로 VSAM.KSDS1을 베이스 클러스터로 하는 보조 인덱스가 존재하

는 경우 VSAM.PATH2를 이용하여 베이스 클러스터의 내용이 변경되는 경우 업그레이드 처리가 일어난

다.

참고

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

DEFINE USERCATALOG/MASTERCATALOG

시스템에서 제공하는 하나의 마스터 카탈로그 외에 여러 개의 사용자 카탈로그를 별도로 사용할 수 있다.

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

요 이상으로 커지게 되므로 시스템의 성능저하를 초래할 수 있다.

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

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

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

로그로 또 다른 사용자 카탈로그를 생성하는 것은 불가능하다. 사용자 카탈로그는 한 레벨로만 생성할 수

있으며, 모든 사용자 카탈로그는 마스터 카탈로그에만 등록되고, 다른 사용자 카탈로그에는 등록될 수 없

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

MainFrame에서는 타입 1과 타입 2 두 가지 카탈로그 타입이 존재한다. 하지만 OpenFrame은 타입 2 카탈

로그만 지원하기 때문에, 타입 1 관련 유틸리티 명령어 또는 파라미터 등을 지원하지 않는다. MainFrame

에서 타입 1 카탈로그를 사용하고 있을 때에는 CNVTCAT 명령어를 사용하여 타입 1 카탈로그를 타입 2

카탈로그로 변환하여 OpenFrame으로 이관해야 한다.

28 OpenFrame 유틸리티 참조 안내서

Page 43: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

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

을 사용하지 않고, OpenFrame에서 제공되는 mascat이라는 툴을 사용한다. 반면 사용자 카탈로그를 추가

로 생성하는 경우에는 JSCVSUT의 DEFINE USERCATALOG 명령을 사용한다.

USERCATALOG 명령어의 약어로 UCAT를 사용할 수 있다.

참고

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

다.

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

DEFINE USERCATALOG (NAME(entryname)

{CYLINDERS(primary[ secondary])|

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

VOLUME(volser)

[CONTROLINTERVALSIZE(size)]

[OWNER(ownerid)]

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

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

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[CONTROLINTERVALSIZE(size)])]

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

RECORDS(primary[ secondary])|

TRACKS(primary[ secondary])}

[CONTROLINTERVALSIZE(size)])]

[CATALOG(mastercatname)]

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

설명항목

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

사용자 카탈로그가 저장될 볼륨을 지정한다. (약어: VOL)VOLUME(volser)

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

도 시스템의 마스터 카탈로그에 자동으로 등록된다. (약어: CAT)

CATALOG(mastercat

name)

참고

본 안내서에서 언급되지 않은 항목에 대한 설명은 Hitachi의 "VOS3 VSAM Utility"를 참고한다.

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

Page 44: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

DELETE

VSAM 데이터 셋과 Non-VSAM 데이터 셋 그리고 이외에 카탈로그된 데이터 셋 항목을 제거하기 위해

DELETE 명령을 사용한다.

DELETE 명령은 이미 존재하는 항목을 지우는 역할을 하기 때문에 많은 파라미터를 요구하지 않는다. 제

거하려는 항목의 이름과 해당 항목의 카탈로그 엔트리 타입만을 필요로 한다.

DELETE 명령어의 약어로 DEL을 사용할 수 있다.

PDS 멤버에 대한 DELETE 구문은 지원하고 있지 않다. PDS 멤버명을 지정해도 PDS 전체를 삭제한다.

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

DELETE (entryname[ entryname...])

[ALIAS|

ALTERNATEINDEX|

CLUSTER|

GENERATIONDATAGROUP|

NONVSAM|

PATH|

USERCATALOG]

[ERASE|NOERASE]

[CATALOG(catname)]

설명항목

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

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

거할 수 있다.

ALIAS는 ALIAS 엔트리 타입이다.ALIAS|

제거할 카탈로그 엔트리의 엔트리 타입을 지정한다.ALTERNATEINDEX|

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

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

CLUSTER|

GENERATIONDATA

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

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

(약어: ALIAS | AIX | CL | GDG | NVSAM | PATH | UCAT)PATH|

USERCATALOG

엔트리 타입이 CLUSTER이거나 AIX인 데이터 셋을 카탈로그로부터 삭제할

때 컴포넌트도 함께 삭제할지를 결정한다.

ERASE|

NOERASE

30 OpenFrame 유틸리티 참조 안내서

Page 45: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

- ERASE: 엔트리를 삭제할 경우 그에 따른 컴포넌트도 함께 삭제한다. (약어:

ERAS)

- NOERASE: 엔트리만 삭제하고 그에 따른 컴포넌트는 삭제하지 않는다. (약

어: NERAS)

OpenFrame에서는 엔트리를 삭제할 경우 컴포넌트도 같이 삭제하고 있다.

따라서 NOERASE 옵션을 지정해도 ERASE 옵션과 동일하게 동작한다.

삭제할 카탈로그 엔트리 정보가 등록되어 있는 카탈로그를 지정한다. (약어:

CAT)

CATALOG(catname)

다음은 VSAM 데이터 셋 엔트리 타입의 VSAM.KSDS1과 VSAM.KSDS2를 지정한 사용기간에 관계없이

삭제하는 예이다.

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

//DELCLUS EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DELETE (VSAM.KSDS1 VSAM.KSDS2) -

CLUSTER -

ERASE

/*

//

EXPORT

EXPORT 명령을 이용하여 VSAM CLUSTER나 ALTERNATE INDEX를 외부로 이식 가능한 데이터 셋으

로 반출할 수 있다. 카탈로그 데이터 셋 자체를 백업하기 위해서 사용된다.

EXPORT 명령어의 약어로 EXP을 사용할 수 있다.

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

EXPORT entryname {OUTFILE(ddname)|OUTDATASET(entryname)}

[INFILE(ddname)]

설명항목

EXPORT할 카탈로그 엔트리의 entryname을 지정한다.entryname

EXPORT 결과로 생성될 데이터 셋을 지정한다.OUTFILE(ddname)|

EXPORT 결과로 생성된 데이터 셋을 카탈로그 상에 새로 만들기를 원하거나

이미 카탈로그 되어있는 경우는 entryname을 사용하고, 실행환경에서

OUTDATASET(entry

name)

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

Page 46: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

JSCVSUT를 호출하기 전에 미리 할당되어있는 데이터 셋에 생성되기를 원

하는 경우는 ddname을 사용한다.

(약어: OFILE | ODS)

EXPORT할 데이터 셋을 지정한다. (약어: IFILE)INFILE(ddname)

INFILE(ddname)으로 데이터 셋을 지정하는 경우 ddname은 JSCVSUT를 호

출한 JCL의 DD 문을 통해 할당된 ddname을 지정해야 한다.

엔트리 타입이 CLUSTER이거나 AIX인 데이터 셋을 카탈로그로부터 삭제할

때 컴포넌트도 함께 삭제할지를 결정한다.

ERASE|

NOERASE

- ERASE: 엔트리를 삭제할 경우 그에 따른 컴포넌트도 함께 삭제한다. (약어:

ERAS)

- NOERASE: 엔트리만 삭제하고 그에 따른 컴포넌트는 삭제하지 않는다. (약

어: NERAS)

OpenFrame에서는 엔트리를 삭제할 경우 컴포넌트도 같이 삭제하고 있다.

따라서 NOERASE 옵션을 지정해도 ERASE 옵션과 동일하게 동작한다.

다음은 카탈로그 TESTCAT을 TESTCAT.BACKUP으로 EXPORT하는 예이다. 카탈로그의 내용을 반출하

여 백업한다.

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

//BACKCAT EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//BACK DD DSN=TESTCAT.BACKUP,DISP=OLD

//SYSIN DD *

EXPORT TESTCAT -

OUTFILE(BACK)

/*

//

EXTRACT

EXTRACT 명령은 CHECKCAT 명령(데이터 셋의 카탈로그 정보와 VTOC 정보 비교)의 처리 대상이 되는

VSAM 또는 Non-VSAM 데이터 셋의 카탈로그 정보 및 VTOC 정보를 추출한다.

추출해낸 정보는 지정한 데이터 셋에 출력한다. 이 출력 데이터 셋은 CHECKCAT 명령어(데이터 셋의 카

탈로그 정보와 VTOC 정보 비교)의 입력 데이터 셋이 된다.

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

32 OpenFrame 유틸리티 참조 안내서

Page 47: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

EXTRACT {CATFILE(ddname[ ddname ...])|

VOLFILE(ddname[ ddname ...])}

OUTFILE(ddname)

설명항목

- CATFILE: CHECKCAT 명령어의 처리 대상이 되는 VSAM 또는 Non-VSAM

데이터 셋의 카탈로그 정보를 추출하는 경우, 카탈로그를 정의한 DD명을 지

정한다. (약어: CFILE)

CATFILE(ddname[

ddname ...])|

VOLFILE(ddname[

ddname ...]) - VOLFILE: CHECKCAT 명령어의 처리 대상이 되는 VSAM 또는 Non-VSAM

데이터 셋의 VTOC 정보를 추출하는 경우, VTOC을 정의한 DD명을 지정한

다. (약어: VFILE)

추출해낸 VSAM 또는 Non-VSAM 데이터 셋의 카탈로그 또는 VTOC 정보를

저장할 출력 데이터 셋의 DD명을 지정한다. (약어: OFILE)

OUTFILE(ddname)

다음은 사용자 카탈로그 TESTCAT1과 TESTCAT2에 존재하는 데이터 엔트리의 카탈로그 정보를

CAT.EXTRACT 데이터 셋으로 출력하는 예이다.

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

// EXEC PGM=JSCVSUT

//CAT001 DD DSN=TESTCAT1,DISP=OLD

//CAT002 DD DSN=TESTCAT2,DISP=OLD

//SYSPRINT DD SYSOUT=*

//EXOUT DD DSN=CAT.EXTRACT,DISP=OLD

//SYSIN DD *

EXTRACT CATFILE(CAT001 CAT002) -

OUTFILE(EXOUT)

/*

//

IMPORT

IMPORT 명령을 이용하면 EXPORT 명령을 사용해서 생성한 백업이나 외부의 이식 가능한 데이터 셋으

로부터 다시 데이터 셋을 복원하거나 새로 생성할 수 있다.

IMPORT 명령어의 약어로 IMP를 사용할 수 있다.

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

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

{OUTFILE(ddname)|OUTDATASET(entryname)}

[OBJECTS((entryname

[NEWNAME(newname)]

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

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

Page 48: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[(entryname...)...])]

[CATALOG(catname)]

설명항목

IMPORT할 소스 데이터 셋을 지정한다.INFILE(ddname)|

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

우에는 ddname을 지정하고 JSCVSUT 내부적으로 할당하려는 경우에는

entryname을 사용한다.

INDATASET(entryname)

(약어: IFILE | IDS)

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

우에는 ddname을 지정하고 JSCVSUT 내부적으로 할당하려는 경우에는

entryname을 사용한다.

OUTFILE(ddname)|

OUTDATASET(entry

name)

(약어: OFILE | ODS)

IMPORT 작업을 수행하는 과정에서 부수적으로 IMPORT 원본 데이터 셋에

기록된 정보 중에서 일부를 변경하는 작업을 수행할 수 있다.

OBJECTS(entryname ...)

변경하고자 하는 entryname과 적용할 새로운 속성을 지정한다. 여러 개의

entryname에 대해서 반복적으로 지정할 수 있다. (약어: OBJ)

엔트리 타입이 CLUSTER 이거나 AIX인 데이터 셋을 카탈로그로부터 삭제할

때 컴포넌트도 함께 삭제할지를 결정한다.

ERASE|

NOERASE

- ERASE: 엔트리를 삭제할 경우 그에 따른 컴포넌트도 함께 삭제한다. (약어:

ERAS)

- NOERASE: 엔트리만 삭제하고 그에 따른 컴포넌트는 삭제하지 않는다. (약

어: NERAS)

OpenFrame에서는 엔트리를 삭제할 경우 컴포넌트도 같이 삭제하고 있다.

따라서 NOERASE 옵션을 지정해도 ERASE 옵션과 동일하게 동작한다.

IMPORT 과정 중에 카탈로깅이 필요한 경우 사용할 카탈로그를 지정한다.

(약어: CAT)

CATALOG(catname)

다음은 TESTCAT.BACKUP이라는 백업 데이터 셋의 내용을 카탈로그 TESTCAT으로 IMPORT하는 예이

다. TESTCAT.BACKUP에 저장된 내용을 이용하여 카탈로그 TESTCAT을 복원한다.

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

//IMPCAT EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//BACK DD DSN=TESTCAT.BACKUP,DISP=OLD

//SYSIN DD *

34 OpenFrame 유틸리티 참조 안내서

Page 49: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

IMPORT INFILE(BACK) -

OUTDATASET(TESTCAT)

/*

//

LISTCAT

LISTCAT 명령을 사용해서 카탈로그에 정의된 데이터 셋에 관한 다양한 정보를 출력할 수 있다.

다음과 같은 그룹으로 관련 정보를 정리해서 보여준다.

● 엔트리 객체의 속성

● 생성시간, 변경시간, 만료시간 정보

● 보호(protection) 관련 정보

● 데이터 셋 액세스 통계 정보

● 저장공간 할당 정보

● 데이터 셋의 구조에 관한 정보

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

LISTCAT [ALIAS]

[ALTERNATEINDEX]

[CLUSTER]

[DATA]

[GENERATIONDATAGROUP]

[INDEX]

[NONVSAM]

[PATH]

[USERCATALOG]

[{ENTRIES|DSNAME|DATASET}(entryname[ entryname...])|LEVEL(level)]

[NAME|HISTORY|VOLUME|ALLOCATION|ALL]

[CATALOG(catname)]

설명항목

지정된 종류의 카탈로그 엔트리에 대해서만 LISTCAT 정보를 출력하도록 하

기 위한 파라미터이다.

ALIAS

ALTERNATEINDEX,

예를 들어 LISTCAT CLUSTER라고 지정하는 경우 카탈로그 엔트리 타입이

CLUSTER인 엔트리에 대한 정보만 출력한다.CLUSTER,

DATA,

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

Page 50: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

2개 이상의 엔트리 타입을 지정하는 것도 가능하다. LISTCAT DATA INDEX

라고 지정하면 카탈로그 엔트리 타입이 DATA이거나 INDEX인 엔트리에 대

한 정보만 출력된다.

GENERATIONDATA

GROUP,

INDEX,

파라미터를 지정하지 않는 경우 카탈로그 엔트리 타입에 대한 필터링을 하지

않고 모든 타입의 엔트리 정보를 모두 출력한다.NONVSAM,

PATH,이와는 별도로 ENTRIES 파라미터를 지정하는 경우 엔트리 타입이 일치하더

라도 엔트리 이름이 ENTRIES 파라미터에 지정된 이름을 만족하지 않는 엔

트리들에 대한 정보는 출력되지 않는다.

USERCATALOG

다음은 각 파라미터의 약어이다.

- ALTERNATEINDEX 약어: AIX

- CLUSTER 약어: CL

- GENERATIONDATAGROUP 약어: GDG

- INDEX 약어: IX

- NONVSAM 약어: NVSAM

- USERCATALOG 약어: UCAT

LISTCAT 명령의 대상이 되는 카탈로그 엔트리명을 지정한다.{EN

TRIES|DSNAME|DATASET}- ENTRIES, DSNAME, DATASET: 카탈로그에 존재하는 엔트리 이름 중에서

지정된 entryname과 이름이 일치하고 세그먼트 개수도 일치하는 이름만 명

령의 대상으로 지정된다. (약어: ENT, DS)

(entryname[ entry

name...])|

- LEVEL: 카탈로그에 존재하는 엔트리 이름 중에서 지정된 entryname과 이

름의 앞부분이 일치하는 이름이 명령의 대상으로 지정된다. 사용자가 지정한

LEVEL(level)|

ALLENTRIESentryname의 세그먼트 개수보다 많은 세그먼트 개수를 갖는 이름들도 명령

의 대상으로 지정된다. (약어: LVL)

ENTRIES와 LEVEL의 사용 예는 다음과 같다.

카탈로그가 다음의 엔트리 이름들을 가지고 있는 경우

1. A.A.B

2. A.B.B

3. A.B.B.C

4. A.B.B.C.C

5. A.C.C

6. A.D

36 OpenFrame 유틸리티 참조 안내서

Page 51: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

7. A.E

8. A

ENTRIES(A.*)를 지정한 경우, 6, 7이 명령의 대상으로 선택된다.

ENTRIES(A.*.B)를 지정한 경우, 1, 2가 명령의 대상으로 선택된다.

LEVEL(A.*.B)를 지정한 경우, 1, 2, 3, 4가 명령의 대상으로 선택된다.

LEVEL(A)를 지정한 경우, 1,2,3,4,5,6,7 이 모두 명령의 대상으로 선택된다.

*는 해당 세그먼트의 모든 이름과 일치한다.

- ALLENTRIES: 카탈로그에 존재하는 모든 엔트리에 대한 리스트를 출력할

때 사용한다. (약어: ALLENT)

위의 엔트리 타입 필터 및 ENTRIES 파라미터로 지정되는 엔트리 이름 조건

을 만족하는 카탈로그 엔트리에 대한 정보를 출력하는데 있어서 얼마나 자세

한 레벨의 정보까지 출력할지를 지정한다.

NAME|

HISTORY|

VOLUME|순서대로 NAME을 지정하면 가장 기본적인 정보만이 출력되고 ALL을 지정

하면 모든 해당 엔트리에 대한 정보가 출력된다.ALLOCATION|

다음은 각 파라미터의 약어이다.ALL

- HISTORY 약어: HIST

- VOLUME 약어: VOL

- ALLOCATION 약어: ALLOC

LISTCAT 명령의 대상이 카탈로그의 이름을 지정한다. 위의 ENTRIES나

LEVEL로 지정하는 entryname은 여기에서 지정하는 카탈로그에서 검색된

다. (약어: CAT)

CATALOG(catname)

다음은 VSAM.KSDS1의 모든 엔트리에 대한 정보를 출력하는 예이다.

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

//LISTC EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

LISTCAT ENTRIES(VSAM.KSDS1) ALL

/*

//

다음은 앞의 LISTCAT 명령을 실행한 결과로 출력되는 내용(SYSPRINT)이다.

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

Page 52: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

CLUSTER ------------- VSAM.KSDS1

HISTORY

CREATION -------------- (NULL) DATASET-OWNER ----------- (EMPTY)

EXPIRATION ------------ (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)

EXPIRATION ------------- (EMPTY) RELEASE -------------------- 1

PROTECTION-PSWD ---------- (NULL)

ASSOCIATION

CLUSTER ----------- VSAM.KSDS1

ATTRIBUTES

AVGLRECL ----------------- 350 MAXLRECL ------------------- 350

KEYLEN -------------------- 10 RKP -------------------------- 0

AXRKP ---------------------- 0 CISIZE ------------------ 4096

INDEXED

UNIQUEKEY

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

DEVTYPE --------------- (NULL) VOLSER ----------------- (TSAM)

INDEX --------------- VSAM.KSDS1.I

HISTORY

CREATION --------------- (NULL) DATASET-OWNER ---------- (EMPTY)

EXPIRATION ------------- (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

38 OpenFrame 유틸리티 참조 안내서

Page 53: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

REC-UPDATED ----------------- 0 TIMESTAMP --------------- (NULL)

ALLOCATION

HI-A-RBA -------------------- 0 HI-U-RBA ------------------- 0

VOLUMES

DEVTYPE --------------- (NULL) VOLSER ----------------- (TSAM)

LISTENT

LISTENT 명령은 지정한 카탈로그에 등록된 엔트리의 목록을 보여준다. 볼륨 일렬 번호를 지정한 경우에

는 카탈로그에 등록된 엔트리 중 지정한 볼륨에 존재하는 엔트리에 대한 목록을 보여준다.

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

LISTENT CATFILE(ddname)

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

설명항목

출력하려는 엔트리가 등록되어 있는 카탈로그의 ddname을 지정한다. (약어:

CFILE)

CATFILE(ddname)

출력하려는 엔트리의 볼륨 일렬 번호를 지정한다. 볼륨을 지정하지 않으면

카탈로그에 등록된 모든 엔트리를 출력한다. (약어: VOL)

VOLUMES(volser[

volser...])

다음은 USER.CAT1 이라는 사용자 카탈로그에 등록되어 있는 엔트리 중 지정한 볼륨에 존재하는 엔트리

를 출력한다.

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

// EXEC PGM=JSCVSUT

//CAT DD DSN=USER.CAT1,DISP=OLD

//SYSPRINT DD SYSOUT=A

//SYSIN DD *

LISTENT CATFILE(CAT) -

VOLUMES(100000 200000)

/*

//

다음은 앞의 LISTENT 명령을 실행한 결과로 출력되는 내용(SYSPRINT)이다.

LISTENT CATFILE(CAT)

LISTING FROM CATALOG ----- USER.CAT1

CLUSTER -------- VSAM.KSDS1

DATA -------- VSAM.KSDS1.DAT

VOLUME

VOLSER ------------------- (NULL)

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

Page 54: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

INDEX ------- VSAM.KSDS1.IDX

VOLUME

VOLSER ------------------- (NULL)

THE NUMBER OF ENTRIES PROCESSED WAS:

CLUSTER ----- 1

DATA -------- 1

GDG --------- 0

INDEX ------- 1

AIX --------- 0

PATH -------- 0

NONVSAM ----- 0

PAGESPACE --- 0

USERCATALOG - 0

TOTAL ------- 3

LISTST

카탈로그에 대한 정보를 출력한다.

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

LISTST {CATALOG(catname)|

ALLCATALOGS}

설명항목

출력 대상을 결정한다.CATALOG(catname)|

- CATALOG: 출력하려는 카탈로그의 이름을 지정한다. (약어: CAT)ALLCATALOGS

- ALLCATALOGS: 시스템에서 사용 중인 모든 카탈로그에 대한 정보를 출력

할 때 지정한다. (약어: ALLCAT)

기본값은 ALLCATALOGS이다.

다음은 USER.CAT1 이라는 사용자 카탈로그의 정보를 출력하는 예이다.

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

// EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=A

//SYSIN DD *

LISTST CAT(USER.CAT1)

/*

//

40 OpenFrame 유틸리티 참조 안내서

Page 55: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

다음은 앞의 LISTENT 명령을 실행한 결과로 출력되는 내용(SYSPRINT)이다.

LISTST CATALOG(USER.CAT1)

*** STATUS ***

USER.CAT1 --------------------------------- RELEASE

< CATALOG-TYPE > < CATALOG-STATUS >

USER-CATALOG USABLE

< VOLUME > < UNIT >

100000 3380

< USING JOB >

N/A

출력된 예에서 사용자 카탈로그명 옆에 "RELEASE"라고 명시된 부분은 RESTRICT/RELEASE 명령에 의

한 카탈로그의 사용이 제한 또는 해제되는 것을 의미한다. 하지만 OpenFrame에서는 카탈로그에 대한 사

용을 제한하는 기능을 제공하지 않으므로, 카탈로그는 항상 RELEASE인 접근 가능한 상태이다.

USING JOB 섹션에는 현재 카탈로그가 사용하고 있는 JOB 리스트를 보여 주지만, 현재 이 기능은 제공하

지 않고 있다.

PRINT

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)|

- INFILE: JCL을 통해 미리 할당된 ddname을 지정해야 한다. (약어: IFILE)INDATASET(entryname)

- INDATASET: JSCVSUT에서 직접 데이터 셋을 할당하고 그 내용을 출력한

다. (약어: IDS)

PRINT 출력내용의 포맷을 지정한다.CHARACTER|

- CHARACTER: 스트링 형태로 레코드의 내용을 출력한다. (약어: CHAR)DUMP|

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

Page 56: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

- DUMP: 오른쪽에는 16진수로 왼쪽에는 스트링 형태를 나란히 출력한다.HEX

- HEX: 16진수 형태로 출력한다.

아무런 포맷도 지정하지 않은 경우는 기본적값으로 DUMP가 적용된다.

PRINT 문은 사용자가 출력할 레코드의 범위를 지정할 수 있다. 각 파라미터

의 의미는 다음과 같다.

FROMKEY(key)|

FROMADDRESS(ad

dress)| - FROMKEY: 입력 데이터 셋이 키 순서 데이터 셋(KSDS), ALTERNATEIN

DEX, 또는 카탈로그 일 때 지정할 수 있다. 입력된 키를 갖는 레코드부터 출FROMNUMBER(num

ber)|력을 시작한다. 키 값을 갖는 레코드가 없는 경우, 그보다 큰 키 값으로 검색

한다. 만약 지정한 키의 길이가 실제 테이터에 정의된 키 길이보다 길다면 아

무 레코드도 출력하지 않는다. (약어: FKEY)SKIP(number)

- FROMADDRESS: 입력 데이터 셋이 엔트리 순서 데이터 셋(ESDS), 키 순

서 데이터 셋(KSDS), 컴포넌트, 카탈로그일 때 지정할 수 있다. 출력하고 싶

은 1번째 레코드의 RBA(Relative Byte Address)를 지정한다. (약어: FADDR)

- FROMNUMBER: 입력 데이터 셋이 상대 데이터 셋(RRDS) 일 때 지정 할

수 있다. 출력하고 싶은 첫번 째 레코드의 상대 레코드 번호를 입력한다. (약

어: FNUM)

- SKIP: 몇 개의 레코드를 생략하고 출력을 시작 할 것인지를 지정한다.

SYSPRINT가 아닌 다른 DD에 PRINT 결과를 출력할 경우에 사용한다. (약

어: OFILE)

OUTFILE(ddname)

PRINT 명령을 통해서 출력한 데이터 셋의 내용을 저장할 별도의 데이터 셋

을 지정하고 JCL을 통해 미리 할당된 ddname을 지정해야 한다.

이 파라미터를 생략하면 기본적으로 PRINT 명령은 SYSPRINT로 출력한다.

PRINT 문은 사용자가 출력할 레코드의 범위를 지정할 수 있다.TOKEY(key)|

- TOKEY: 입력 데이터 셋이 키 순서 데이터 셋(KSDS), ALTERNATEINDEX,

또는 카탈로그 일 때 지정할 수 있다. 입력된 키를 갖는 레코드를 마지막으로

TOADDRESS(address)|

TONUMBER(number)|출력한다. 키 값을 갖는 레코드가 없는 경우, 그보다 작은 키 값을 마지막으로

검색한다. 만약, 지정한 키의 길이가 실제 테이터에 정의된 키 길이보다 길다

면 아무 레코드도 출력하지 않는다.

COUNT(number)

- TOADDRESS: 입력 데이터 셋이 엔트리 순서 데이터 셋(ESDS), 키 순서 데

이터 셋(KSDS), 컴포넌트, 카탈로그일 때 지정할 수 있다. 출력하고 싶은 마

지막 레코드의 RBA(Relative Byte Address)를 지정한다. (약어: TADDR)

42 OpenFrame 유틸리티 참조 안내서

Page 57: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

- TONUMBER: 입력 데이터 셋이 상대 데이터 셋(RRDS)일 때 지정할 수 있

다. 출력하고 싶은 마지막 레코드의 상대 레코드 번호를 입력한다. (약어:

TNUM)

- COUNT: 몇 개의 레코드를 출력할 것인지를 지정한다.

다음은 TEST.KSDS1에 저장된 레코드를 DUMP 포맷으로 출력하는 예이다. 출력되는 레코드의 범위는

키 값이 0000000099인 첫 레코드부터 10개이다.

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

//PRINT EXEC PGM=JSCVSUT

//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*

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 *

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

Page 58: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

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)

JSCVSUT: PRINT OK

REPRO

DEFINE 명령을 통해서 데이터 셋이 이미 정의되어 있다면 REPRO 명령을 이용해서 VSAM과 Non-VSAM

데이터 셋의 내용을 다른 데이터 셋에 저장할 수 있다. 이 명령에 사용되는 VSAM 데이터 셋은 카탈로그

에 등록되어 있어야 하지만 Non-VSAM 데이터 셋의 경우는 카탈로그에 등록되어 있지 않아도 된다.

Mainframe의 카탈로그는 일반적으로 하나의 KSDS 클러스터에 저장되어 있기 때문에 REPRO 명령은 카

탈로그 내용 자체를 복사하는 용도로 사용될 수 있다.

REPRO 명령을 이용하지 않고 일반적인 애플리케이션을 이용해서 레코드를 데이터 셋에 저장하는 경우

도 매우 일반적이나 REPRO 명령은 레코드의 내용에 상관하지 않고 주로 관리목적으로 데이터 셋을 복사

하는 용도로 사용된다.

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

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

{OUTFILE(ddname)|OUTDATASET(entryname)}

[FROMKEY(key)|FROMADDRESS(address)|FROMNUMBER(number)|SKIP(number)]

[REPLACE|NOREPLACE]

[TOKEY(key)|TOADDRESS(address)|TONUMBER(number)|COUNT(number)]

설명항목

복사할 원본 데이터 셋을 지정한다.INFILE(ddname)|

INFILE의 경우 JCL을 통해서 명시된 ddname을 값으로 지정해야 하는 반면

INDATASET 파라미터를 사용하는 경우에는 데이터 셋의 카탈로그에 등록된

엔트리 이름을 지정해야 한다.

INDATASET(entryname)

(약어: IFILE | IDS)

원본 데이터 셋을 복사한 후 저장할 대상 데이터 셋을 지정한다.OUTFILE(ddname)|

OUTFILE 파라미터의 값으로는 ddname을 지정해야 하며, OUTDATASET

파라미터의 값으로는 카탈로그된 엔트리 이름을 지정해야 한다.

OUTDATASET(entry

name)

(약어: OFILE | ODS)

REPRO 문은 사용자가 복사할 레코드의 범위를 지정할 수 있다.FROMKEY(key)|

44 OpenFrame 유틸리티 참조 안내서

Page 59: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

- FROMKEY: 입력 데이터 셋이 키 순서 데이터 셋(KSDS), ALTERNATEIN

DEX, 또는 카탈로그 일 때 지정할 수 있다. 입력된 키를 갖는 레코드부터 복

FROMADDRESS(ad

dress)|

사를 시작한다. 키 값을 갖는 레코드가 없는 경우, 그보다 큰 키 값으로 검색FROMNUMBER(num

ber)|한다. 만약, 지정한 키의 길이가 실제 테이터에 정의된 키 길이보다 길다면 아

무 레코드도 복사하지 않는다. (약어: FKEY)

SKIP(number)- FROMADDRESS: 입력 데이터 셋이 엔트리 순서 데이터 셋(ESDS), 키 순

서 데이터 셋(KSDS), 컴포넌트, 카탈로그 일 때 지정할 수 있다. 복사하고 싶

은 1번째 레코드의 RBA(Relative Byte Address)를 지정한다. (약어: FADDR)

- FROMNUMBER: 입력 데이터 셋이 상대 데이터 셋(RRDS)일 때 지정할 수

있다. 복사하고 싶은 1번째 레코드의 상대 레코드 번호를 입력한다. (약어:

FNUM)

- SKIP: 몇 개의 레코드를 생략하고 복사를 시작할 것인지를 지정한다.

소스 데이터 셋을 타깃 데이터 셋으로 복사하는 과정에서 타깃 데이터 셋에

이미 동일한 레코드가 있는 경우의 처리방법을 지정한다.

REPLACE|

NOREPLACE

- REPLACE: 기존의 레코드를 새로운 레코드로 대체한다. (약어: REP)

- NOREPLACE: 중복 레코드가 발견되었다는 에러 메시지만 나타나고 타깃

데이터 셋의 중복 레코드에 복사하지 않는다. (약어: NREP)

기본값은 NOREPLACE이다.

REPRO 문은 사용자가 복사할 레코드의 범위를 지정할 수 있다.TOKEY(key)|

- TOKEY: 입력 데이터 셋이 키 순서 데이터 셋(KSDS), ALTERNATEINDEX,

또는 카탈로그일 때 지정할 수 있다. 입력된 키를 갖는 레코드를 마지막으로

TOADDRESS(address)|

TONUMBER(number)|복사한다. 키 값을 갖는 레코드가 없는 경우, 그보다 작은 키 값을 마지막으로

검색한다. 만약, 지정한 키의 길이가 실제 테이터에 정의된 키 길이보다 길다

면 아무 레코드도 복사하지 않는다.

COUNT(number)

- TOADDRESS: 입력 데이터 셋이 엔트리 순서 데이터 셋(ESDS), 키 순서 데

이터 셋(KSDS), 컴포넌트, 카탈로그일 때 지정할 수 있다. 복사하고 싶은 마

지막 레코드의 RBA(Relative Byte Address)를 지정한다. (약어: TADDR)

- TONUMBER: 입력 데이터 셋이 상대 데이터 셋(RRDS) 일 때 지정할 수 있

다. 복사하고 싶은 마지막 레코드의 상대 레코드 번호를 입력한다. (약어:

TNUM)

- COUNT: 몇 개의 레코드를 복사할 것인지를 지정한다.

다음은 VSAM.KSDS1 데이터 셋의 50001번 레코드부터 10000개의 레코드를 VSAM.KSDS2 데이터 셋으

로 복사하는 예이다.

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

Page 60: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

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

//REPRO EXEC PGM=JSCVSUT

//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)

/*

//

SPLITMRG

SPLITMRG 명령은 하나 이상의 카탈로그를 복수의 다른 카탈로그에 분할 또는 병합한다.

입력 카탈로그에 등록된 모든 엔트리가 분할 또는 병합 대상이다. KEYS 파라미터를 지정하면 입력 카탈

로그의 엔트리는 OUTFILE의 KEYRANGES로 지정한 키 범위에 속하는 출력 카탈로그에 분할 또는 병합

한다.

SPLITMRG 명령은 사용자 카탈로그에 대해서만 작업이 가능하다.

SPLITMRG 명령어의 약어로 SPMG을 사용할 수 있다.

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

SPLITMRG {INFILE(ddname[ ddname...])|INDATASET(entryname[ entryname...])}

OUTFILE((ddname [OTHER] [ KEYRANGES((fromkey tokey)[ (fromkey tokey)...])])[

(ddname...)])

[KEYS((length offset)[ (length offset)...])]

[TEST|NOTEST]

[KEEP|DELETE]

[IGNORE(SHR)]

설명항목

분할 또는 병합하려는 입력 카탈로그의 ddname 또는 카탈로그명을 지정한

다.

INFILE(ddname[

ddname...])|

입력 카탈로그를 지정할 경우 다음의 사항을 고려해야 한다.INDATASET(entryname[

entryname...])- 별명이 아닌 본명을 사용해야 한다.

- 최대 20개의 입력 카탈로그를 지정할 수 있다. 같은 이름의 카탈로그를 복

수개 사용할 수 없다.

- 마스터 카탈로그는 지정할 수 없다.

- 출력 카탈로그로 사용하는 카탈로그는 사용할 수 없다.

46 OpenFrame 유틸리티 참조 안내서

Page 61: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

다음은 지정 항목에 대한 설명이다.

- INFILE: JCL을 통해 미리 할당된 ddname을 지정해야 한다. (약어: IFILE)

- INDATASET: JSCVSUT에서 직접 데이터 셋을 할당해야 한다. (약어: IDS)

분할 또는 병합하려는 출력 카탈로그의 ddname을 지정한다. (약어: OFILE)OUTFILE((ddname ...)...)

출력 카탈로그를 지정할 경우 다음의 사항을 고려해야 한다.

- 별명이 아닌 본명을 사용해야 한다.

- 최대 20개의 입력 카탈로그를 지정할 수 있다. 같은 이름의 카탈로그를 복

수개 사용할 수 없다.

- 마스터 카탈로그는 지정할 수 없다.

- 입력 카탈로그로 사용하는 카탈로그는 사용할 수 없다.

- 테스트일 경우 임의의 DD명을 지정한다.

다음은 지정 항목에 대한 설명이다.

- OTHER: KEYRANGES 범위에 속하지 않는 엔트리에 대하여 카탈로그에

등록한다.

- KEYRANGES(fromkey tokey): 카탈로그에 등록할 엔트리의 범위를 키를

통해 지정한다. (약어: KRNG)

다음은 KEYRANGES을 지정할 때 고려해야 할 사항이다.

- 1개의 ddname에 대하여 총 20개의 KEYRANGES를 지정할 수 있다.

- KEYRANGES에 지정하는 키의 길이는 KEYS 파라미터에 정의한 길이와

일치해야 한다.

- fromkey와 tokey에 같은 값을 지정할 수 없다.

KEYRANGES 파라미터를 지정했을 경우 KEYS 파라미터도 반드시 지정해

야 한다.

KEYS((length offset)...)

KEYRANGES 파라미터로 지정한 키의 길이를 1~44Byte, 키의 위치를

0~43Byte 내에서 지정한다.

카탈로그에 대한 분할 또는 병합을 수행하기 전에 주어진 제어문이 제대로

기술되었는지를 테스트할 때 사용한다.

TEST|

NOTEST

- TEST: 실제로 수행하지 않고, 테스트만 한다.

- NOTEST: 테스트 하지 않고, 실제로 수행한다.

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

Page 62: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

기본값은 TEST이다.

SPLITMRG 명령을 종료할 때 입력 카탈로그를 삭제할지에 대한 여부를 결정

한다.

KEEP|

DELETE

- KEEP: 입력 카탈로그를 삭제하지 않는다.

- DELETE: 입력 카탈로그를 삭제한다. (약어: DEL)

기본값은 KEEP이다.

입출력으로 카탈로그를 지정한 DD 문의 DISPOSITION 정보가 SHR일 경우

에도 에러없이 실행한다.

IGNORE(SHR)

SHR 옵션을 지정할 경우 사용자가 카탈로그의 분할 또는 병합 작업에 대한

정합성을 책임져야 한다.

다음은 C.CAT1 사용자 카탈로그에 등록되어 있는 엔트리들을 지정한 키 범위에 따라 USERCAT1과

USERCAT2 사용자 카탈로그에 분할하는 예이다. 엔트리명의 1번째 세 문자가 AAA~EEE 또는 SSS~ZZZ

범위 사이에 존재하는 경우 USERCAT1 사용자 카탈로그에 등록하고, MMM~RRR 또는 FFF~KKK 범위

내에 존재하는 경우 USERCAT2 사용자 카탈로그에 등록한다.

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

// EXEC PGM=JSCVSUT

//CATIN DD DSN=C.CAT1,DISP=OLD

//CATOUT1 DD DSN=USERCAT1,DISP=OLD

//CATOUT2 DD DSN=USERCAT2,DISP=OLD

//SYSPRINT DD SYSOUT=A

//SYSIN DD *

SPLITMRG -

INFILE(CATIN) -

OUTFILE((CATOUT1 KEYRANGES((AAA EEE) (SSS ZZZ))) -

(CATOUT2 KEYRANGES((MMM RRR) (FFF KKK)))) -

KEYS((3 0)) -

NOTEST

/*

//

SRCHCAT

SRCHCAT 명령은 지정한 엔트리가 어느 카탈로그에 등록되어 있는지를 표시한다. 검색 대상이 되는 카

탈로그는 마스터 카탈로그와 마스터 카탈로그에 등록되어 있는 사용자 카탈로그이다.

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

48 OpenFrame 유틸리티 참조 안내서

Page 63: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

SRCHCAT ENTRY(entname)

설명항목

검색하고 싶은 엔트리의 이름을 지정한다. (약어: ENT)ENTRY(ent

name)입력 가능한 엔트리 타입은 다음과 같다.

- CLUSTER

- DATA COMPONENT

- INDEX COMPONENT

- ALTERNATEINDEX

- PATH

- GENERATIONDATAGROUP

- NONVSAM

- ALIAS

- USERCATALOG

다음은 CL.KSDS라는 이름의 키 순서 데이터 셋(KSDS)이 어느 카탈로그에 등록되어 있는지를 표시하는

예이다.

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

// EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=A

//SYSIN DD *

SRCHCAT ENTRY(CL.KSDS)

/*

//

다음은 위 예제를 실행한 결과이다.

SRCHCAT ENT(CL.KSDS)

CATALOG NAME -- USER.CAT1

CLUSTER ----- CL.KSDS

CREATION----------2009/10/02

DATA ------ CL.KSDS.DAT

VOLUME

VOLSER------------100000 DEVTYPE------X'3010200E'

INDEX ----- CL.KSDS.IDX

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

Page 64: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

VOLUME

VOLSER------------100000 DEVTYPE------X'3010200E'

VERIFY

애플리케이션에서 VSAM 데이터 셋을 개방하고 사용하는 과정에서 비정상적인 종료에 의해서 종료처리

가 정확하게 되지 않은 경우 해당 VSAM 데이터 셋이 카탈로그에 레코드를 저장하기 위해 사용하는 저장

공간에 대한 정보를 부정확한 값으로 기록할 수 있다.

이러한 이유로 카탈로그에 문제가 발생한 경우 VERIFY 명령은 문제가 되는 VSAM 데이터 셋에 대해서

올바른 저장공간 및 상태정보를 나타내고 있는지 확인하고, 지정된 데이터 셋에 대한 카탈로그 정보가 잘

못된 경우 올바른 값으로 갱신한다. 비정상적인 종료가 발생한 경우 카탈로그의 STATISTICS/REC-TOTAL

정보가 실제 VSAM 데이터 셋의 레코드 수와 일치하지 않을 수 있으나, VERIFY 명령을 수행하면

STATISTICS/REC-TOTAL 정보를 올바른 값으로 갱신할 수 있다.

VERIFY 명령어의 약어로 VFY를 사용할 수 있다.

참고

VERIFY 명령은 VSAM 데이터 셋에 대해서만 동작한다.

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

VERIFY FILE(ddname)|DATASET(entryname)

설명항목

VERIFY 명령의 대상이 되는 데이터 셋을 지정한다.FILE(ddname)|

- FILE: JCL을 통해 할당된 데이터 셋의 ddname을 지정해야 한다.DATASET(entry

name)- DATASET: JSCVSUT에서 지정된 데이터 셋을 직접 할당한다. (약어: DS)

다음은 TEST.CLUS1 데이터 셋의 카탈로그 정보를 확인하는 예이다.

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

//VSTEP EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//TESTDD DD DSN=TEST.CLUS1,DISP=OLD

//SYSIN DD *

VERIFY FILE(TESTDD)

/*

//

50 OpenFrame 유틸리티 참조 안내서

Page 65: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

보조 명령어 (Modal command)

한번의 JSCVSUT 실행으로 여러 개의 JSCVSUT 명령을 수행할 수 있다.

보조 명령어는 여러 개의 JSCVSUT 명령을 수행하기 위해서 필요한 기능을 제공하는 명령어로 실제로 카

탈로그 엔트리나 오브젝트에 대해 처리하는 기능 명령어와 구분된다.

참고

현재 JSCVSUT의 보조 명령어 중 PARM은 지원하지 않는다.

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에 지정 가능한 값과 의미는 다음과 같다.

설명값

가장 최근에 실행된 명령의 실행 결과값을 저장하는 JSCVSUT에서 사용하는 변수이

다.

LASTCC

성공적인 경우의 LASTCC는 0의 값을 갖고, 무시할 수 있는 경고가 발생한 경우의 값

은 4이다. 심각한 문제가 발생한 경우 더 큰 값을 갖게 된다.

현재 실행 중인 명령보다 앞서서 실행된 명령의 실행 결과 값 중에서 가장 큰 값을 저

장하는데 사용하는 변수이다.

MAXCC

컨디션 코드의 값을 평가하기 위한 연산자이다.Operator

지정 가능한 값과 의미는 "유의사항" [54]에 있는 비교연산자 표를 참고한다.

THEN 문에는 IF 문이 참인 경우 실행할 JSCVSUT 명령을 기술하고, ELSE 문에는 IF 문이 거짓인 경우

실행할 명령을 기술한다. 만약 IF 문이 거짓일 경우 실행할 명령이 없다면 ELSE 문을 생략할 수 있다.

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

Page 66: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

IF-THEN-ELSE 문은 조건에 따라서 다른 명령을 수행하는 하나의 JSCVSUT 명령으로 간주된다. 따라서

IF-THEN-ELSE 문을 여러 라인에 걸쳐서 기술하는 경우는 하이픈(-)을 적절히 사용해야 한다.

다음은 LASTCC의 값이 8과 동일한 경우, MAXCC에 0을 설정하는 프로그램의 일부분을 예로 보여준다.

실제 IF-THEN 문이 동작하는 것을 보여주기 위해서 LASTCC를 8로 설정했으며 IF-THEN 문이 실행될 때

는 LASTCC 값이 8이므로 THEN 뒤의 SET MAXCC-0이 실행된다. 이 상태에서 JSCVSUT를 종료하면 최

종적인 MAXCC 값을 보고하고 종료하므로 실행된 결과를 확인할 수 있다.

SET LASTCC=8

IF LASTCC=8 THEN SET MAXCC=0

다음은 LASTCC의 값이 4보다 큰 경우 TEST.SDS1의 엔트리 정보를 가져오고, LASTCC가 4보다 크지

않은 경우 TEST.SDS2의 엔트리 정보를 가져오는 예이다. 일반적으로 SET LASTCC의 위치에 다른

JSCVSUT 명령어를 실행하여 그 결과에 의해서 LASTCC가 설정되고, 그 결과에 따라서 조건적으로 명령

을 실행한다. 본 예제에서는 IF-THEN-ELSE 문의 동작을 테스트하기 위해 강제로 IF 문 전에 LASTCC의

값을 0으로 설정하였다. IF 문의 결과에 따라 TEST.SDS2가 LISTCAT된다.

SET LASTCC=0

IF LASTCC > 4 -

THEN -

LISTCAT ENT(TEST.SDS1)

ELSE -

LISTCAT ENT(TEST.SDS2)

Null

Null은 아무 동작도 발생하지 않는 문법적인 용도의 명령으로 다음과 같은 2가지 목적으로 사용된다.

● IF-THEN-ELSE 구문의 문법에 어긋나지 않고 THEN이나 ELSE에 아무런 명령도 지정하지 않을 경우에

사용한다.

● Null이 IF-THEN-ELSE 구문 외에서 사용된 경우는 빈 라인으로 처리된다.

주의

THEN이나 ELSE 뒤에서 라인을 변경하는 경우 라인이 계속 이어지는 것을 의미하는 하이픈(-)을 지

정하지 않는다. 하이픈(-)을 지정하면 JSCVSUT는 THEN이나 ELSE문 다음에 명령이 있는 것으로

가정하고 처리하기 때문에 의도한대로 명령의 분기가 되지 않는다.

다음은 LASTCC가 4보다 큰 경우에 수행하는 명령은 없으며, LASTCC가 4보다 작은 경우에는 TEST.SDS2

의 엔트리 정보를 가져오는 예이다.

52 OpenFrame 유틸리티 참조 안내서

Page 67: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

SET LASTCC=0

IF LASTCC > 4 -

THEN

ELSE LISTCAT ENT(TEST.SDS2)

SET

MAXCC나 LASTCC의 값을 강제로 특정한 값으로 설정하는데 사용한다.

주로 특정 경고 수준의 컨디션 코드를 무시하고 JCL에서 JSCVSUT 이후의 STEP을 계속 실행하기 위한

용도로 사용된다.

다음은 LASTCC의 값이 8과 동일한 경우 MAXCC의 값을 0으로 강제 설정하는 예이다.

DEL STEP에서 TEST.SDS1이 없는 경우 DEL STEP은 반환코드 8을 반환하고 종료하므로 DEF STEP은

수행되지 않는다.

TJES의 설정이나 JOB에 기술된 COND에 따라 달라질 수 있지만, 반환코드가 8인 경우 DEF STEP을 처

리하지 않고 JOB이 ABEND 처리되는 경우를 방지하려면 MAXCC를 0으로 강제 설정함으로써 뒤따르는

DEF STEP이 실행되게 할 수 있다.

//DEL EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DELETE TEST.SDS1

IF LASTCC=8 THEN SET MAXCC=0

/*

//DEF EXEC PGM=JSCVSUT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE NONVSAM (NAME(TEST.SDS1) VOLUMES(100000))

/*

//

CANCEL

CANCEL 명령어를 만나면 JSCVSUT의 실행이 종료되어 CANCEL 명령 이후의 나머지 명령은 처리되지

않는다.

다음 예제는 LASTCC가 4인 경우 다음 THEN 명령을 수행하는 중 CANCEL이 실행되어 JSCVSUT의 실

행을 종료하는 프로그램의 일부이다.

LISTCAT ENTRIES(MUST.EXIST.SDS)

IF LASTCC=4 THEN CANCEL

...

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

Page 68: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

LISCAT으로 지정한 카탈로그 엔트리가 존재하지 않는 경우 컨디션 코드는 4이다. 컨디션 코드가 4인 경

우는 메시지 레벨 조건 코드이므로 다음 JSCVSUT 명령을 계속 실행하게 된다.

앞의 예제는 MUST.EXIST.SDS 이라는 데이터 셋이 없는 경우 더 이상 다음 명령을 실행하지 않고 곧 바

로 IF 조건이 만족하는 경우 CANCEL 명령을 실행하여 JSCVSUT의 실행을 종료한다.

유의사항

컨디션 코드(Condition Code)는 JSCVSUT가 각각의 명령을 실행한 결과가 정상인지 아니면 명령 실행 중

에 에러가 발생했는지를 나타내는 일종의 에러 코드이다.

발생 가능한 컨디션 코드는 0, 4, 8, 12, 16이고 큰 값일수록 명령 실행에 중대한 문제가 있었음을 나타낸

다.

각 컨디션 코드 값에 대한 설명은 다음과 같다.

의미코드

명령을 정상적으로 처리한 경우 반환되는 코드이며 일부 정보성 메시지가 출력될 수 있다.0

명령이 완벽하게 처리되지 않았지만 이를 무시하고 추가적인 명령을 수행해도 영구적으로

에러를 발생시키지 않을 것이라고 판단되는 상태로, 추가적인 명령의 수행이 가능하며 경고

성 메시지가 함께 출력된다.

4

예를 들어 LISCAT 명령이 실행될 때 사용자가 지정한 카탈로그 엔트리가 존재하지 않는 경

우 컨디션 코드는 4로 설정되고 다음 메시지가 출력된다.

JSCVSUT: No specified catalog entry found: NOT.EXIST.SDS

명령이 의미하는 동작의 일부를 수행하지 않았지만 결과적으로 사용자가 원하는 상태와 동

일한 결과로 귀결되는 경우에 해당하는 상태로 추가적인 명령의 수행이 가능하다.

8

예를 들어 DELETE 명령에 지정한 데이터 셋이 존재하지 않는 경우 실제로 DELETE 명령의

완전한 실행은 수행되지 않았지만 결과적으로 지정한 데이터 셋이 없다는 상태는 동일하게

된다. 이 경우 추가적인 명령의 실행에 문제는 없으므로 컨디션 코드는 8로 설정되고 경고성

메시지가 출력된다.

JSCVSUT(WARNING): No such catalog entry - 'NOT.EXIST.SDS'

명령의 수행 과정 중 에러가 있어서 꼭 수행되어야 하는 동작이나 기능을 완료할 수 없는 경

우에 발생한다. 이러한 에러(logical error)는 동시에 지정할 수 없는 논리적으로 불일치하는

12

파라미터를 지정하는 경우이거나 꼭 지정되어야 하는 필수 파라미터가 생략된 경우 혹은 데

이터 셋의 키 길이, 레코드 크기 등으로 지정한 값이 올바르지 않을 때 발생한다. 이러한 상

황이 발생한 경우 컨디션 코드는 12로 설정되고 에러 메시지가 출력된다.

JSCVSUT(ERROR): {error description or logical error code}

54 OpenFrame 유틸리티 참조 안내서

Page 69: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

의미코드

현재 명령을 수행하는 과정에서 심각한 에러가 발생하여 사용자가 지정한 나머지 명령을 실

행할 수 없는 경우에 반환되는 컨디션 코드 값이다.

16

다음과 같은 경우에 해당 코드가 발생한다.

- JSCVSUT의 실행 로그를 사용할 수 없는 경우

출력 메시지가 저장될 출력 데이터 셋을 사용할 수 없는 경우 컨디션 코드 16이 발생한다.

예를 들어 SYSPRINT DD를 열지 못한 경우 JSCVSUT는 더 이상의 실행하지 않고 바로 종

료한다.

- JSCVSUT 명령을 잘못 코딩한 경우

IF-THEN-ELSE 문을 잘못 코딩하거나 여러 라인에 걸쳐서 명령을 코딩할 때 하이픈(-)을 적

절히 사용하지 않은 경우에 발생한다.

- 시스템 데이터 셋이 망가진 경우

BCS나 VVDS의 내용에 오류가 존재해서 명령을 수행할 수 없는 경우이며, SYSPRINT DD

를 사용할 수 있는 경우라면 다음과 같은 에러 메시지가 출력된다.

JSCVSUT(ERROR): {error description or logical error code} 또는 JSCVSUT(FATAL): {error

description}

조건 코드 변수명 (LASTCC와 MAXCC)

JSCVSUT는 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 ...

관련 환경설정

JSCVSUT는 idcams.conf 설정 파일을 사용한다. 이 설정 파일의 내용을 변경하여 JSCVSUT의 몇 가지

동작을 사용자의 요구에 맞게 조정할 수 있다.

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

Page 70: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

OpenFrame 보안제품인 TACF와 함께 JSCVSUT를 연동하는 경우 JSCVSUT를 명령어 라인에서 실행하

면 JSCVSUT는 사용자이름/기본그룹명/비밀번호의 입력을 요구한다. 매번 사용자이름과 기본그룹명 그

리고 비밀번호를 입력하지 않으려면 [DEFAULT_USER] 섹션의 각 항목에 기본적인 사용자 정보를 설정

한다.

<idcams.conf>

[DEFAULT_USER]

USERNAME={username}

GROUPNAME={groupname}

PASSWORD={password}

JCL에 의해서 JOB의 일부 STEP으로 JSCVSUT가 실행되는 경우에는 TJES에서 필요한 사용자 정보를

제공하므로 별도로 위의 설정을 사용하지 않는다.

TACF와 JSCVSUT를 연동하는 경우 JSCVSUT의 각 기능 명령어에서 데이터 셋을 접근할 때 권한 체크

를 수행할지 여부를 설정한다.

[TACF]

CHECK_DSAUTH={YES|NO}

다음은 현재 JSCVSUT의 명령 중에서 실제 기능은 하지 않으나 에러가 발생하지 않도록 처리되는 파라미

터에 대한 표이다.

파라미터명령어

[MASTERPW(password)]공통(패스워드 관련)

[CONTROLPW(password)]

[UPDATEPW(password)]

[READPW(password)]

[CODE(code)]

[ATTEMPTS(count)]

[AUTHORIZATION(name info)]

[FILE(ddname)]ALTER

[ALLCOMPONENTS]

[NULLIFY(

[EXCEPTIONEXIT])]

[ERASE|NOERASE]

[EXCEPTIONEXIT(entrypoint)]

[{WRITECHECK|NOWRITECHECK}]

[INHIBIT|UNINHIBIT]

56 OpenFrame 유틸리티 참조 안내서

Page 71: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

파라미터명령어

[DFWRITE|NODFWRITE]

[SHAREOPTIONS(option)]

[RECORDSIZE(average maximum)]

[KEYS(length offset)]

[FREESPACE(rate)]

[BUFFERSPACE(size)]

[{ADDVOLUMES(volser[ volser...])|REMOVEVOLUMES(volser[ volser...])}]

[{UNIQUEKEY|NONUNIQUEKEY}]

[UPGRADE|NOUPGRADE]

[UPDATE|NOUPDATE]

[{CALLSORT|NOCALLSORT[ {INTERNALSORT|EXTERNALSORT}]}]BLDINDEX

[WORKFILES(ddname[ ddname...])]

[WASTESPACE]

[CATVOLS((catname) VOLUMES(volser[ volser...]))...)]CHECKCAT

[CENTERCATALOG((catname KEYRANGES((fromkey tokey)...))...)]

[DEFAULTCATALOG(({ALLENTRY|ENTRY(entryname)} CATNAME(catname))...)]

[SELECTCATALOG(catname[ catname...])]

[SELECTVOLUME(volser[ volser...])]

[TARGETMASTERCATALOG(catname)]

[SYSTEM(TRUST|NONE)]

[KEY(length offset)]

[DATEFORMAT({Y2|Y4})]

[OUTFILE(ddname)]

[FILE(ddname)]DEFINE command

[EXCEPTIONEXIT(entrypoint)]

[FILE(ddname)]

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

[MODEL(entryname[ catname])]

[{RECORDCOMPRESS|NORECORDCOMPRESS}]

[REUSE|NOREUSE]

[SHAREOPTIONS(option])]

[UNIQUE|SUBALLOCATION]

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

Page 72: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

파라미터명령어

[WRITECHECK|NOWRITECHECK])

[FILE(ddname)]DELETE

[FILECHECK]

[FORCE|NOFORCE]

[PURGE|NOPURGE]

[SCRATCH|NOSCRATCH]

[{WITHSECURITY|WITHOUTSECURITY}

[PAGESPACE]

[SPACE]

[JOURNAL]

COMPONENT

[INCOMPLETE]

[DISCONNECT]EXPORT

[TEMPORARY|PERMANENT]

[RECORDS|CONTROLINTERVALS]

[{KEYSEQUENTIALCHECK|NOKEYSEQUENTIALCHECK}]

[INHIBITSOURCE|NOINHIBITSOURCE]

[INHIBITTARGET|NOINHIBITTARGET]

[FORMAT(format)]

[OLDCHECK]

[RESERVE|NORESERVE]EXTRACT

[CONNECT]IMPORT

[PURGE|NOPURGE]

[{REPLACESECURITY|REUSESECURITY|CREATESECURITY}]

[FREESPACE|NOFREESPACE]

[CONTROLAREASIZE(cisize)]

[WASTESPACE]

[OBJECTS ([FILE(ddname)])]

[BUFFERSPACE(size)]

[ORDERED|UNORDERED]

[KEYRANGES((fromkey tokey)...)])]

[ORDERED|UNORDERED]

58 OpenFrame 유틸리티 참조 안내서

Page 73: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

파라미터명령어

[PAGESPACE]LISTCAT

[CREATION(days)]

[EXPIRATION(days)]

[FILE(ddname)]

DATEFORMAT({Y2|Y4})]

[{EDITFILE(ddname)|EDITDATASET(entryname)}]

[{FORMAT3|FORMAT4}]

[{LIST|NOLIST}]

[OUTFILE(ddname)]

[{SYSTEMLIST|NOSYSTEMLIST}]LISTST

[{KEYSEQUENTIALCHECK|NOKEYSEQUENTIALCHECK}]PRINT

[{CONTROLINTERVALS|RECORDS}]

[SUPPRESS]

[{FORCE|NOFORCE}]

[REGISTERTYPE(type)]

[{COPYDATASET(entryname)|COPYFILE(ddname)}]REPRO

[FORCE|NOFORCE]

[{KEYSEQUENTIALCHECK|NOKEYSEQUENTIALCHECK}]

[CONTROLINTERVALS]

[REUSE|NOREUSE]

[WASTESPACE]

[DATASET]SPLITMRG

[VOLUME]

[TERMINAL]

[USER]

[PROGRAM]

[{CENTERCATALOG|NOTCENTERCATALOG}]

[WORKCAT(catname)]

[DATASETID(id)]

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

Page 74: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

파라미터명령어

[WORKSIZE|VOLUMES(volser[ volser...])

{CYLINDERS(space[ space])|

TRACKS(space[ space])|

RECORDS(space[ space])]]

DEFINE 서브 명령어의 경우 다음과 같다.

파라미터서브 명령어

(BUFFERSPACE(size)]ALTERNATEINDEX

[CONTROLAREASIZE(size)]

[DFWRITE|NODFWRITE]

[EXCEPTIONEXIT(entrypoint)]

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

[IMBED|NOIMBED]

[KEYRANGES((fromkey tokey)...)]

[MODEL(entryname[ catname])]

[ORDERED|UNORDERED]

[REPLICATE|NOREPLICATE]

[REUSE|NOREUSE]

[SHAREOPTIONS(option)]

[SPEED|RECOVERY]

[TOTALSPACE|NOTOTALSPACE]

[WRITECHECK|NOWRITECHECK])

[DATA (

[BUFFERSPACE(size)]

[CONTROLAREASIZE(size)]

[DFWRITE|NODFWRITE]

[EXCEPTIONEXIT(entrypoint)]

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

[KEYRANGES((fromkey tokey)...)]

[MODEL(entryname [ catname ])]

60 OpenFrame 유틸리티 참조 안내서

Page 75: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

파라미터서브 명령어

[ORDERED|UNORDERED]

[REUSE|NOREUSE]

[SHAREOPTIONS(option)]

[SPEED|RECOVERY]

[TOTALSPACE|NOTOTALSPACE]

[WRITECHECK|NOWRITECHECK])]

[INDEX (

[DFWRITE|NODFWRITE]

[EXCEPTIONEXIT(entrypoint)]

[IMBED|NOIMBED]

[MODEL(entryname[ catname ])]

[ORDERED|UNORDERED]

[REPLICATE|NOREPLICATE]

[REUSE|NOREUSE]

[SHAREOPTIONS(option)]

[TOTALSPACE|NOTOTALSPACE]

[WRITECHECK|NOWRITECHECK])]

[BUFFERSPACE(size)]CLUSTER

[CONTROLAREASIZE(size)

[DFWRITE|NODFWRITE]

[EXCEPTIONEXIT(entrypoint)]

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

[IMBED|NOIMBED]

[KEYRANGES((fromkey tokey)...)]

[MODEL(entryname[ catname])]

[ORDERED|UNORDERED]

[{RECORDCOMPRESS|NORECORDCOMPRESS}]

[REPLICATE|NOREPLICATE]

[REUSE|NOREUSE]

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

Page 76: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

파라미터서브 명령어

[SAMECISZ]

[SHAREOPTIONS(option)]

[TOTALSPACE|NOTOTALSPACE]

[WRITECHECK|NOWRITECHECK])

[DATA (

[BUFFERSPACE(size)]

[CONTROLAREASIZE(size)]

[DFWRITE|NODFWRITE]

[EXCEPTIONEXIT(entrypoint)]

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

[KEYRANGES((fromkey tokey)...)]

[MODEL(entryname [ catname ])]

[ORDERED|UNORDERED]

[REUSE|NOREUSE]

[SHAREOPTIONS(option)]

[TOTALSPACE|NOTOTALSPACE]

[WRITECHECK|NOWRITECHECK])]

[INDEX (

[DFWRITE|NODFWRITE]

[EXCEPTIONEXIT(entrypoint)]

[IMBED|NOIMBED]

[MODEL(entryname[ catname ])]

[ORDERED|UNORDERED]

[REPLICATE|NOREPLICATE]

[REUSE|NOREUSE]

[SHAREOPTIONS(option)]

[TOTALSPACE|NOTOTALSPACE]

[WRITECHECK|NOWRITECHECK])]

62 OpenFrame 유틸리티 참조 안내서

Page 77: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

파라미터서브 명령어

([SCRATCH|NOSCRATCH])GENERA

TIONDATAGROUP

[FILESEQUENCENUMBERS(number[ number...])])NONVSAM

[FILE(ddname)]PATH

([MODEL(entryname[ catname])])

([BUFFERSPACE(size|3072)]USERCATALOG

[FILE(ddname)]

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

[MODEL(entryname[ catname])]

[TYPE({1|2})]

[WRITECHECK|NOWRITECHECK])

[DATA (

[BUFFERSPACE(size)]

[WRITECHECK|NOWRITECHECK])]

[INDEX (

[WRITECHECK|NOWRITECHECK])]

2.2. JSDEDIT입력 데이터 셋에 주어진 JCL을 편집하여 새로운 JCL을 가진 데이터 셋을 작성하는 JCL 편집 유틸리티

프로그램이다.

입력 데이터 셋의 편집, 복사하는 단위는 다음과 같다.

● JCL 전체 복사

● JCL의 각 JOB별로 선별 복사

● JCL의 JOB마다 STEP별로 선별 복사

모든 JOB과 STEP은 입력 데이터 셋과 같은 순서로 출력 데이터 셋으로 복사된다.

입력 데이터 셋이 JCL 내에 입력 스트림으로 작성되었고 이 입력 데이터 셋에 저장된 JCL 내에 또 다시

입력 스트림이 있는 경우 입력 데이터 셋 내 JCL의 입력 스트림 죵료 표시를 "/*"가 아닌 "..*"로 지정한다.

이 표기는 출력 데이터 셋에는 "/* "로 변환하여 저장된다.

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

Page 78: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

JCL이 저장된 입력 데이터 셋을 기술한다.SYSUT1 DD

새로 생성된 JCL을 저장할 데이터 셋을 기술한다.SYSUT2 DD

JSDEDIT의 명령어를 기술한다.SYSIN DD

명령어 설정

EDIT

어떤 JOB들 또는 어떤 JOB STEP들을 출력 데이터 셋에 포함할지의 조건을 명시한다.

EDIT 문을 생략할 경우 입력 데이터 셋을 출력 데이터 셋으로 복사하게 된다.

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

[label] EDIT {[START=jobname][,STEPNAME=(namelist)]

|JOBNAME=(namelist)}

[,TYPE={POSITION|INCLUDE|EXCLUDE}]

[,NOPRINT]

설명항목

하나의 JOB을 선택하여 해당 JOB 전체 또는 각 STEP별로 복사 또는 제외할 때 기술

한다.

START

STEPNAME을 지정하지 않으면 해당 JOB의 전 STEP이 복사된다.

START의 jobname을 생략할 경우 1번째 EDIT 문이었다면 1번째 JOB을, 2번째 JOB

부터는 이전의 EDIT 문이 지정한 JOB의 다음 JOB을 자동으로 선택한다.

해당 JOB이 정해지면 해당 JOB 문장은 필수적으로 포함되므로 여러 JOB으로부터

STEP을 발췌하여 하나의 JOB으로 만드는 것은 불가능하다.

인자로 사용할 namelist를 기술한다. STEP의 namelist는 다음의 3가지 방법을 모두

사용하여 기술할 수 있다.

STEPNAME

- STEP

- STEPA, STEPB,....

- STEPA-STEPG (STEPA부터 STEPG까지를 의미)

콤마(,)와 대쉬(-)를 구분자로 하여 혼용할 수 있다.

64 OpenFrame 유틸리티 참조 안내서

Page 79: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

여러 개의 JOB을 복사하거나 제외할 때 이용한다. START 및 STEPNAME과 함께 이

용할 수 없다. JOBNAME의 namelist는 다음의 3가지 방법을 모두 사용하여 기술할

수 있다.

JOBNAME

- JOB

- JOBA, JOBB,....

- JOBA-JOBG (JOBA부터 JOBG까지를 의미)

콤마(,)와 대쉬(-)를 구분자로 하여 혼용할 수 있다.

EDIT 문의 동작을 기술한다. 다음 중 하나의 옵션을 선택한다.TYPE

- POSITION: 지정된 STEP 또는 JOB부터 다음 JOB을 만날 때까지(START 문을 지

정한 경우) 혹은 JCL 끝까지를 출력 데이터 셋에 복사한다.

- INCLUDE: 지정된 STEP또는 JOB만을 출력 데이터 셋에 포함한다.

- EXLCUDE: 지정된 STEP 또는 JOB을 제외한 나머지 STEP 또는 JOB을 출력 데이

터 셋에 포함한다.

JOB 스트림을 SYSPRINT로 출력하지 않는다. SYSPRINT로 출력되지 않도록 하려

면 반드시 이 옵션을 설정해야 한다.

NOPRINT

미지원 기능이다.

사용예제

다음은 SYSUT1 DD로 주어진 데이터 셋의 JCL 전체를 SYSUT2 DD의 데이터 셋으로 복사하는 예이다.

//STEP1 EXEC PGM=JSDEDIT

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD DSNAME=OFTEST.JSDEDIT(IN),DISP=OLD

//SYSUT2 DD DSNAME=OFTEST.JSDEDIT(OUT1),

// DISP=OLD,DCB=(RECFM=FB,LRECL=81,BLKSIZE=81)

다음은 SYSUT1 DD로 주어진 데이터 셋의 JCL을 JOB 단위로 EDIT한 후 SYSUT2 DD의 데이터 셋으로

복사하는 예이다.

//STEP1 EXEC PGM=JSDEDIT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

EDIT JOB=JOB2,TYPE=POSITION

/*

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

Page 80: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

//SYSUT1 DD DATA

//JOB1 JOB CLASS=A

//STEP11 EXEC PGM=JSJDUMMY

//TEMP1 DD DSNAME=OFTEST.TEMP1,DISP=OLD

//STEP12 EXEC PGM=JSJDUMMY

//TEMP2 DD DSNAME=OFTEST.TEMP2,DISP=OLD

//STEP13 EXEC PGM=JSJDUMMY

//TEMP3 DD DSNAME=OFTEST.TEMP3,DISP=OLD

//JOB2 JOB CLASS=B

//STEP21 EXEC PGM=JSJDUMMY

//TEMP4 DD DSNAME=OFTEST.TEMP4,DISP=OLD

//STEP22 EXEC PGM=JSJDUMMY

//TEMP5 DD DSNAME=OFTEST.TEMP5,DISP=OLD

//JOB3 JOB CLASS=B

//STEP31 EXEC PGM=JSJDUMMY

//TEMP6 DD DSNAME=OFTEST.TEMP6,DISP=OLD

//STEP32 EXEC PGM=JSJDUMMY

//TEMP7 DD DSNAME=OFTEST.TEMP7,DISP=OLD

/*

//SYSUT2 DD DSNAME=OFTEST.JSDEDIT(OUT2),

// DISP=OLD,DCB=(RECFM=FB,LRECL=81,BLKSIZE=81)

1번째 EDIT 문은 JOB2부터 이 후 모든 JOB을 출력한다.

다음은 앞의 예제에 대한 결과로서 생성된 출력 데이터 셋의 JCL이다.

//JOB2 JOB CLASS=B

//STEP21 EXEC PGM=JSJDUMMY

//TEMP4 DD DSNAME=OFTEST.TEMP4,DISP=OLD

//STEP22 EXEC PGM=JSJDUMMY

//TEMP5 DD DSNAME=OFTEST.TEMP5,DISP=OLD

//JOB3 JOB CLASS=B

//STEP31 EXEC PGM=JSJDUMMY

//TEMP6 DD DSNAME=OFTEST.TEMP6,DISP=OLD

//STEP32 EXEC PGM=JSJDUMMY

//TEMP7 DD DSNAME=OFTEST.TEMP7,DISP=OLD

다음은 SYSUT1 DD로 주어진 데이터 셋의 JCL을 각 JOB별로 STEP을 편집한 후 SYSUT2 DD의 데이터

셋으로 복사하는 예이다.

//STEP1 EXEC PGM=JSDEDIT

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

EDIT START=,TYPE=POSITION,STEPNAME=STEP12

EDIT START=JOB2,TYPE=INCLUDE,STEPNAME=(STEP21,STEP23)

EDIT START=JOB3,TYPE=EXCLUDE,STEPNAME=(STPE32-STEP34)

66 OpenFrame 유틸리티 참조 안내서

Page 81: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

/*

//SYSUT1 DD DATA

//JOB1 JOB CLASS=A

//STEP11 EXEC PGM=JSJDUMMY

//TEMP1 DD DSNAME=OFTEST.TEMP1,DISP=OLD

//STEP12 EXEC PGM=JSJDUMMY

//TEMP2 DD DSNAME=OFTEST.TEMP2,DISP=OLD

//STEP13 EXEC PGM=JSJDUMMY

//JOB2 JOB CLASS=B

//STEP21 EXEC PGM=JSDEDIT

//SYSUT1 DD DSNAME=OFTEST.JCLDATA1,DISP=OLD

//SYSUT2 DD DSNAME=OFTEST.JCLDATA2,DISP=OLD

//STEP22 EXEC PGM=JSJDUMMY

//TEMP3 DD DSNAME=OFTEST.TEMP3,DISP=OLD

//STEP23 EXEC PGM=JSDEDIT

//SYSUT1 DD DSNAME=OFTEST.JCLDATA3,DISP=OLD

//SYSUT2 DD DSNAME=OFTEST.JCLDATA4,DISP=OLD

//SYSIN

EDIT START=JOBA,TYPE=INCLUDE,STEPNAME=(STEPA-STEPC)

..*

//JOB3 JOB CLASS=B

//STEP31 EXEC PGM=JSDEDIT

//TEMP4 DD DSNAME=OFTEST.TEMP4,DISP=OLD

//STEP32 EXEC PGM=JSDEDIT

//TEMP5 DD DSNAME=OFTEST.TEMP5,DISP=OLD

//STEP33 EXEC PGM=JSDEDIT

//TEMP6 DD DSNAME=OFTEST.TEMP6,DISP=OLD

//STEP34 EXEC PGM=JSDEDIT

//TEMP7 DD DSNAME=OFTEST.TEMP7,DISP=OLD

//STEP35 EXEC PGM=JSDEDIT

//TEMP8 DD DSNAME=OFTEST.TEMP8,DISP=OLD

/*

//SYSUT2 DD DSNAME=OFTEST.JSDEDIT(OUT3),

// DISP=OLD,DCB=(RECFM=FB,LRECL=81,BLKSIZE=81)

1번째 EDIT 문은 JOB1에서 STEP12 이후로만 출력한다.

2번째 EDIT 문은 JOB2에서 STEP21와 STEP23만을 출력한다.

마지막 EDIT 문은 JOB3에서 STEP32부터 STEP34까지를 제외한 나머지 STEP을 모두 출력한다.

다음은 앞의 예제에 대한 결과로 생성된 출력 데이터 셋의 JCL이다.

//JOB1 JOB CLASS=A

//STEP12 EXEC PGM=JSJDUMMY

//TEMP2 DD DSNAME=OFTEST.TEMP2,DISP=OLD

//STEP13 EXEC PGM=JSJDUMMY

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

Page 82: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

//JOB2 JOB CLASS=B

//STEP21 EXEC PGM=JSDEDIT

//SYSUT1 DD DSNAME=OFTEST.JCLDATA1,DISP=OLD

//SYSUT2 DD DSNAME=OFTEST.JCLDATA2,DISP=OLD

//STEP23 EXEC PGM=JSDEDIT

//SYSUT1 DD DSNAME=OFTEST.JCLDATA3,DISP=OLD

//SYSUT2 DD DSNAME=OFTEST.JCLDATA4,DISP=OLD

//SYSIN

EDIT START=JOBA,TYPE=INCLUDE,STEPNAME=(STEPA-STEPC)

/*

//JOB3 JOB CLASS=B

//STEP31 EXEC PGM=JSDEDIT

//TEMP4 DD DSNAME=OFTEST.TEMP4,DISP=OLD

//STEP35 EXEC PGM=JSDEDIT

//TEMP8 DD DSNAME=OFTEST.TEMP8,DISP=OLD

유의사항

JSDEDIT 유틸리티 프로그램이 Batch 애플리케이션을 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

Batch 애플리케이션에서 받은 코드를 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Unrecoverable 형태의 에러로, 다음의 경우가 해당된다.8

- 데이터 셋 관련 (pgmdd, open/close, read/write) 에러

- SYSIN DD 명령어 문법 에러

- OpenFrame 시스템 라이브러리 초기화 실패

- 기타 JSDEDIT 유틸리티 프로그램 에러

68 OpenFrame 유틸리티 참조 안내서

Page 83: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

2.3. JSDPCPY1개 이상의 PDS에 대해서 멤버들을 전체 또는 일부만 복사하거나 병합하기 위해 사용하는 유틸리티 프로

그램이다.

JSDPCPY 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

● PDS에 대해 복사 또는 병합 기능을 수행한다.

● PDS의 특정 멤버만 선택해서 복사하고, 선택된 멤버 이름을 재정의한다.

● PDS의 특정 멤버만 제외하고 복사한다.

● PDS 멤버를 교체한다.

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

JSDPCPY 메시지를 저장하는 데이터 셋을 정의한다.SYSPRINT DD

PDS 타입의 입력 데이터 셋을 정의한다.user_defined_name1 DD

PDS 타입의 출력 데이터 셋을 정의한다.user_defined_name2 DD

JSDPCPY 명령어를 정의한다.SYSIN DD

명령어 설정

COPY, COMPRESS, EXPAND

PDS의 멤버를 복사한다.

SYSIN DD의 COPY, COMPRESS, EXPAND 명령어 구문은 다음과 같다.

[label] COPY|COMPRESS|EXPAND OUTDD=DDNAME

[,INDD=[(]{DDNAME|(DDNAME,R)}[,...][)]]

[,ALIAS=YES]

[,LIST={NO|SUPPRESS}]

설명항목

출력 데이터 셋을 위한 DD 이름을 기술한다.OUTDD

입력 데이터 셋을 위한 DD 이름을 기술한다.INDD

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

Page 84: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

출력 데이터 셋에 복사하려는 멤버가 이미 존재하고 있는 경우 R(REPLACE) 파라미

터가 있으면 오버라이드하고 없으면 복사하지 않는다.

ALIAS도 함께 복사 혹은 제외할 때 기술하는 항목으로 현재 미지원 기능이다.ALIAS

복사된 멤버들의 이름을 SYSPRINT에 기록하는 항목으로 현재 미지원 기능이다.LIST

EMPTY

PDS의 멤버를 초기화한다.

[label] EMPTY OUTDD=DDNAME

[,KEYLEN=number]

설명항목

초기화할 PDS를 위한 DD 이름을 기술한다.OUTDD

미지원 기능이다.KEYLEN

SELECT

SELECT 문은 COPY 문 다음에 설정하며, 입력 데이터 셋의 특정 멤버를 선택하여 새로운 이름으로 COPY

작업을 수행한다.

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

[label] SELECT MEMBER=({name1|(name1,newname1[,R])|(name1,,R)}

[,{name2|(name2,newname2[,R])|(name2,,R)}][,...])

GROUP={[(]name1[,name2,...][)]

|((name1,R)[,name2,...])}

설명항목

name 필드에 기술한 입력 데이터 셋의 멤버를 newname 필드에서 지정한 새로운 이

름으로 복사한다.

MEMBER

newname 필드를 지정하지 않은 경우, name 필드에 기술한 멤버명과 동일한 이름을

사용한다.

R(REPLACE) 파라미터를 선택하면 입력 데이터 셋의 멤버 이름과 출력 데이터 셋의

멤버 이름이 같을 경우 입력 데이터 셋의 멤버를 출력 데이터 셋의 멤버로 오버라이드

한다.

name 필드로 시작하는 입력 데이터 셋의 멤버를 복사한다.GROUP

70 OpenFrame 유틸리티 참조 안내서

Page 85: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

R(REPLACE) 파라미터를 선택하면 입력 데이터 셋의 멤버 이름과 출력 데이터 셋의

멤버 이름이 같을 경우 입력 데이터 셋의 멤버를 출력 데이터 셋의 멤버로 오버라이드

한다.

EXCLUDE

EXCLUDE 문은 COPY 문 다음에 설정하며, COPY 문을 수행할 때 입력 데이터 셋에서 특정 멤버를 제외

한다. 이 구문은 위의 SELECT 문과 함께 사용할 수 없다. EXCLUDE 문과 SELECT 문 모두 지정하지 않

으면, 데이터 셋 전체에 대한 COPY 작업을 수행한다.

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

[label] EXCLUDE MEMBER=[(]name1[,name2,...][)]

설명항목

복사하지 않을 멤버의 이름을 기술한다. 해당 멤버들은 COPY 문을 수행할 때 복사대

상에서 제외된다.

MEMBER

INDD

COPY 문 다음에 설정하며, 설정한 순서로 입력 데이터 셋을 출력 데이터 셋으로 새로운 COPY 작업을 수

행한다.

COPY 문의 서브 명령어로 쓰이는 INDD에 대해서는 여러 개의 입력 데이터 셋에 대하여 각각 EXCLUDE

문이나 SELECT 문을 적용하기 어렵지만, INDD 문을 사용하면 여러 개의 입력 데이터 셋에 대하여 각각

EXCLUDE 문과 SELECT 문을 사용할 수 있다.

[label] INDD=[(]{DDNAME|(DDNAME,R)}[,...][)]]

사용예제

다음은 PDS DATASET1을 PDS DATASET2로 전체 데이터 셋을 복사하는 예이다.

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

//JOBSTEP EXEC PGM=JSDPCPY

//SYSPRINT DD SYSOUT=A

//SYSUT1 DD DSNAME=DATASET1,DISP=(SHR,KEEP)

//SYSUT2 DD DSNAME=DATASET2,UNIT=disk,VOL=SER=200000,

// DISP=(NEW,CATLG)),SPACE=(TRK,(100,,10))

//SYSIN DD DUMMY

다음처럼 DATASET1의 모든 멤버 A, B, F가 PDS DATASET2로 모두 복사된다.

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

Page 86: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[그림 2.1] PDS 데이터 셋 복사

다음은 4개의 데이터 셋을 병합하는 예이다. 이미 존재하고 있는 데이터 셋 DATASET5에 DATASET1,

DATASET3, DATASET4의 멤버가 복사되어 병합된다. SYSIN DD의 명령어 INDD 순서에 따라 DATASET1

이 먼저 복사되고, DATASET4, DATASET3의 순서로 복사된다.

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

//JOBSTEP EXEC PGM=JSDPCPY

//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

/*

JSDPCPY가 시작되기 전 DATASET5에는 A라는 멤버가 존재하고 있다. DATASET1이 최초로 복사되는

데 A라는 멤버는 이미 OUTPUT에 있고, REPLACE 조건이 없으므로 A는 복사되지 않고 B와 F만 복사된

다. 다음으로 DATASET4가 복사되는데 멤버 B 역시 이미 OUTPUT에 있으므로 복사되지 않고 멤버 D와

X만 복사된다. 마지막으로 DATASET3이 복사된다. 멤버 F와 X가 이미 OUTPUT에 있으므로 복사되지 않

고 멤버 C와 Y만 복사된다.

아래 그림은 위의 예제를 실행하면서 출력 데이터 셋에 멤버가 복사되는 과정과 최종 복사된 멤버를 보여

준다.

72 OpenFrame 유틸리티 참조 안내서

Page 87: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[그림 2.2] 데이터 셋 병합

다음은 입력 데이터 셋에서 특정 멤버를 선택하거나 제외하여 복사하는 예이다.

MERGE EXEC PGM=JSDPCPY

//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

INDD=IN01

EXCLUDE MEMBER=X

INDD=IN02

SELECT MEMBER=((F,Z),(C,A,R),(Y,,R))

/*

JSDPCPY가 실행되기 전에 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장 데이터 셋 유틸리티 73

Page 88: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[그림 2.3] 특정 멤버 복사

다음은 INDD 문을 사용하여 여러 개의 INPUT을 다르게 처리하는 경우의 예이다.

//INDD01 EXEC PGM=JSDPCPY

//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으로부터 전체 멤버를 복사한다. 단, 같은 이름의 멤버가 이미

존재할 경우 교체하지 않는다.

74 OpenFrame 유틸리티 참조 안내서

Page 89: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[그림 2.4] INDD 문을 사용하여 INPUT 처리

다음은 COPY 문의 서브 명령어로 INDD를 사용하는 경우의 예이다.

//INDD02 EXEC PGM=JSDPCPY

//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에 정의된 데이터 셋 DATASET12로부터 전체 멤버를 복사한다. 멤

버 B'은 교체된다. IN03 DD에 정의된 데이터 셋 DATASET13으로부터 전체 멤버를 복사한다. 같은 이름

의 멤버가 이미 존재할 경우 교체하지 않는다.

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

Page 90: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[그림 2.5] COPY 문의 서브 명령어로 INDD를 사용하는 경우

유의사항

JSDPCPY 유틸리티 프로그램이 Batch 애플리케이션을 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

Batch 애플리케이션에서 받은 코드를 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Unrecoverable 형태의 에러로, 다음의 경우가 해당된다.12

- OpenFrame 시스템 라이브러리 초기화 실패

- 데이터 셋 관련 (pgmdd, open/close, read/write) 에러

- SYSIN DD 명령어 문법 에러

- 기타 JSDPCPY 유틸리티 프로그램 에러

76 OpenFrame 유틸리티 참조 안내서

Page 91: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[참고]

다음과 같은 명령어 약어를 사용할 수 있다.

약어명령어

CCOPY

CPCOMPRESS

EPEXPAND

EMEMPTY

SSELECT

EEXCLUDE

OOUTDD

IINDD

AALIAS

LLIST

SSUPRESS

KKEYLEN

MMEMBER

GGROUP

2.4. JSDPRNT순차 데이터 셋이나 PDS의 전체 또는 일부를 실제 출력할 형식으로 데이터를 생성하기 위한 유틸리티 프

로그램이다.

JSDPRNT 유틸리티 프로그램은 다음과 같은 경우에 사용될 수 있다.

● 순차 데이터 셋 또는 PDS 전체를 프린트한다.

● PDS의 특정 멤버를 프린트한다.

● 순차 데이터 셋 또는 PDS의 레코드 필드를 편집하여 프린트한다.

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

JSDPRNT 메시지가 저장되는 데이터 셋을 기술한다.SYSPRINT DD

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

Page 92: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

순차 데이터 셋이나 PDS 타입의 입력 데이터 셋을 기술한다.SYSUT1 DD

순차 데이터 셋 타입의 출력 데이터 셋을 기술한다.SYSUT2 DD

JSDPRNT 명령어를 기술한다.SYSIN DD

명령어 설정

PRINT

데이터를 프린트한다. PRINT 문은 가장 처음에 기술해야 하는 명령어로 여러 번 반복해서 지정할 수 없

다.

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

[label] PRINT [PREFORM={A|M}]

[,TYPORG={PS|PO}]

[,TOTCONV={XE+PZ|XC}]

[,ORDER={DIR|TTR}]

[,CNTRL={n]

[,STRTAFT=n]

[,STOPAFT=n]

[,SKIP=n]

[,MAXNAME=n]

[,MAXFLDS=n]

[,MAXGPS=n]

[,MAXLITS=n]

[,INITPG=n]

[,MAXLINE=n]

[,CDSEQ=n]

[,CDINCR=n]

[,EXPAND=YES]

설명항목

각 레코드의 1번째 Byte가 제어 문자를 의미하는지 기술한다.PREFORM

데이터가 이미 프린트될 포맷으로 갖추었고 그 형태로 프린트 되어야 한다는 것을 의

미한다. PREFORM이 기술되면 TYPORG를 제외한 추가적인 PRINT 문의 모든 파라

미터 설정은 무시된다.

- A: ASA 제어 문자를 의미한다

- M: 지원하지 않는다.

입력 데이터 셋이 순차 데이터 셋(PS)인지 분할 데이터 셋(PO)인지 기술한다. 기본값

은 PS이다.

TYPORG

78 OpenFrame 유틸리티 참조 안내서

Page 93: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

입력 데이터 셋을 변환하여 출력할 경우 기술하는 항목으로 미지원 기능이다.TOTCONV

출력하는 멤버의 순서를 지정하는 항목으로 미지원 기능이다.ORDER

라인 스페이스 값을 설정한다.CNTRL

라인 스페이스로 3을 설정할 경우 1번째 라인에는 데이터를 쓰고, 2번째와 3번째 라

인에는 공백 라인을 프린트한다. 이와 같은 순서로 다음 데이터도 프린트된다.

현재는 라인 스페이스 값을 3까지만 허용한다. 허용범위 이외의 값은 모두 1로 인식

하여 처리하게 된다.

미지원 기능이다.

순차 데이터 셋을 프린트하기 전 스킵할 논리 레코드의 개수를 지정한다. 데이터 셋의

n+1번째 논리 레코드부터 프린트된다.

STRTAFT

레코드의 범위는 32767를 초과하지 않으며, 초과할 경우 레코드가 있는 만큼만 처리

하게 된다.

n은 1 ~ 32767까지 지정할 수 있다.

프린트되어야 할 순차 데이터 셋의 논리 레코드 개수를 지정한다. 최대 32767개의 논

리 레코드를 설정할 수 있다.

STOPAFT

만일 STOPAFT 문과 RECORD 문의 IDENT가 함께 기술되었다면 STOPAFT에 설정

된 값을 만족하거나 IDENT에 의해 구분되는 레코드 그룹의 마지막일 때, 둘 중 먼저

해당되는 쪽이 나타났을 때, 현재 입력 데이터 셋의 데이터 처리를 위한 명령어 수행

이 종료된다.

n은 1 ~ 32767까지 지정할 수 있다.

n번째 레코드마다 프린트되어야 함을 의미한다. n은 1 ~ 32767까지 지정할 수 있다.SKIP

MEMBER 문의 최대 멤버 개수를 지정한다. n은 21 ~ 32767까지 지정할 수 있다. (기

본값: 20)

MAXNAME

RECORD 문의 최대 FIELD 파라미터 개수를 지정한다. n은 21 ~ 32767까지 지정할

수 있다. (기본값: 20)

MAXFLDS

최대 IDENT 파라미터 개수를 지정한다. n은 21 ~ 32767까지 지정할 수 있다. (기본

값: 20)

MAXGPS

RECORD 문의 IDENT 파라미터에 포함될 최대 리터럴 개수를 지정한다. n은 201 ~

32767까지 지정할 수 있다. (기본값: 200)

MAXLITS

인쇄를 시작할 페이지 번호를 지정하는 항목으로 미지원 기능이다.INITPG

출력될 페이지의 최대 라인 수를 지정한다. (기본값: 60)MAXLINE

천공하는 경우 73~80란에 순서 번호의 초기치를 지정하는 항목으로 미지원 기능이

다.

CDSEQ

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

Page 94: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

천공하는 경우 73~80란에 순서 번호의 증가치를 지정하는 항목으로 미지원 기능이

다.

CDINCR

압축 형식을 고정 형식으로 인쇄할 경우에 지정하는 항목으로 미지원 기능이다.EXPAND

MEMBER

입력 데이터 셋이 PDS일 경우 특정 멤버의 데이터만 처리하고자 할 때 사용한다.

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

[label] MEMBER NAME=membername

설명항목

PDS에서 프린트되어야 할 멤버 이름을 기술한다.NAME

RECORD

프린트되어야 할 레코드의 그룹을 정의한다.

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

[label] RECORD [IDENT=(length,'name',input-location)]

[,FIELD=(length,[input-location],[conversion]

[,output-location])]

[,FIELD=…]

설명항목

레코드 그룹의 마지막 레코드를 식별한다. 레코드의 input-location에서 length만큼의

값과 name 값을 비교하여 값이 같으면 멤버의 마지막 레코드가 되거나 FIELD가 적

용되는 마지막 레코드가 된다.

IDENT

- length: 마지막 레코드를 식별하기 위한 길이를 지정한다. 최대 8 Byte까지 지정할

수 있다.

- 'name': 마지막 레코드를 식별하기 위한 값으로 반드시 작은 따옴표(‘) 안에 기술되

어야 한다.

- input-location: 입력 레코드에서 name 값과 처리하고자 하는 데이터의 마지막 레코

드를 식별할 필드의 1번째 시작위치를 지정한다.

레코드 편집을 위한 정보를 기술한다. 입력 레코드에서 input-location 위치부터 length

만큼의 데이터를 출력 레코드의 output-location 위치에 쓰거나 리터럴을 length만큼

출력 레코드의 output-location 위치에 쓴다.

FIELD

80 OpenFrame 유틸리티 참조 안내서

Page 95: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

- length: 편집되어 처리되는 입력 필드의 길이 또는 리터럴의 길이를 기술한다.

- input-location: 처리되는 필드의 시작위치를 기술한다.

- output-location: 출력 레코드에 기록될 시작위치를 지정한다.

현재 JSDPRNT 유틸리티의 RECORD 명령어에서는 해당 파라미터에 대해 실제 기

능은 하지 않으나 에러를 발생시키지 않도록 지원하고 있으며, PZ, XE 이외의 값이

사용될 경우 문법 에러가 발생한다.

CONVERSION

TITLE

출력되어야 할 타이틀이나 서브 타이틀을 기술한다.

JSDPRNT에서는 TITLE 문에서 2개의 ITEM을 기술할 수 있다. 1번째 ITEM 문은 타이틀을, 2번째 ITEM

문은 서브 타이틀을 정의한다. 기술된 타이틀과 서브 타이틀은 매 페이지마다 출력된다.

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

[label] TITLE ITEM=('title'[,output-location])

[,ITEM=...]

설명항목

title과 output-location은 다음과 같이 설정한다.ITEM

- title: 타이틀이나 서브 타이틀에 대한 리터럴을 기술한다. 최대 40 Byte까지 지정할

수 있다.

- output-location: 출력 레코드에서 ITEM의 리터럴이 놓여져야 할 위치를 지정한다.

EXITS

유저 출구 루틴을 다룰 때 기술한다. 지원하지 않는 명령어이다.

LABELS

유저 라벨을 다룰 때 기술한다. 지원하지 않는 명령어이다.

사용예제

다음은 특정 멤버만 선택하여 지정한 프린트 형식으로 데이터를 출력하는 예이다. JSDPRNT.TEST.INPUT01

의 멤버 중 MEMBER2의 레코드가 순차적으로 SYSUT2에 정의된 SYSOUT으로 출력된다.

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

Page 96: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

만일 MEMBER2의 레코드의 21번째 Byte부터 8Byte의 값이 'ENDOFREC'이면 이 레코드까지만 출력한

다. 이 SYSOUT은 JOB이 종료된 후 OUTPUT PROCESSING을 통해 프린터기에서 프린트되며 이 데이

터는 한 페이지에 30 라인씩 프린트된다.

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

//NEWPDS EXEC PGM=JSDPRNT

//SYSUT1 DD DSNAME=JSPRNT.TEST.INPUT01,DISP=(SHR,CATLG)

//SYSUT2 DD SYSOUT=A

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

PRINT MAXLINE=30

MEMBER NAME=MEMBER2

RECORD IDENT=(8,'ENDOFREC',21)

/*

유의사항

JSDPRNT 유틸리티 프로그램이 Batch 애플리케이션을 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

Batch 애플리케이션에서 받은 코드를 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

지정된 멤버가 PDS에 존재하지 않는 경우에 발생한다.8

해당 멤버를 넘기고 처리를 속행한다.

Unrecoverable 형태의 에러로, 다음의 경우가 해당된다.12

- OpenFrame 시스템 라이브러리 초기화 실패

- 데이터 셋 관련 (pgmdd, open/close, read/write) 에러

- SYSIN DD 명령어 문법 에러

- 기타 JSDPRNT 유틸리티 프로그램 에러

82 OpenFrame 유틸리티 참조 안내서

Page 97: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

2.5. JSDSCPY순차 데이터 셋 또는 PDS의 멤버를 복사하고자 할 때 사용하는 유틸리티 프로그램이다.

JSDSCPY 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

● 순차 데이터 셋이나 PDS의 멤버를 복사한다.

● 순차 데이터 셋으로부터 PDS를 생성한다.

● 기존의 PDS에 멤버를 추가한다.

● 입력 레코드를 편집한다.

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

JSDSCPY의 메시지가 저장되는 데이터 셋을 정의한다.SYSPRINT DD

입력 데이터 셋을 정의하며, 순차 데이터 셋이나 PDS의 멤버가 될 수 있다.SYSUT1 DD

출력 데이터 셋을 정의하며, 순차 데이터 셋이나 PDS의 멤버 또는 PDS가 될

수 있다.

SYSUT2 DD

JSDSCPY의 명령어를 정의한다.SYSIN DD

명령어 설정

JSDSCPY 유틸리티가 제공하는 기능을 수행하기 위한 명령어를 SYSIN DD에 기술한다. SYSIN DD에 어

떠한 명령어도 기술되지 않은 경우는 SYSUT1의 데이터 셋을 SYSUT2의 데이터 셋으로 복사하는 기능을

제공한다.

다음은 SYSIN DD에서 설정하는 JSDSCPY의 명령어이다.

GENERATE

MEMBER와 RECORD의 매개변수에 대한 설정을 한다.

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

[label] GENERATE [,MAXNAME=n]

[,MAXFLDS=n]

[,MAXGPS=n]

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

Page 98: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[,MAXLITS=n]

[,LENGTH=n]

설명항목

최대 멤버 수를 지정한다. 21 ~ 3276개의 멤버를 지정할 수 있다. (기본값: 20)MAXNAME

레코드의 최대 필드 수를 지정한다. 21 ~ 2730개까지 지정할 수 있다. (기본값: 20)MAXFLDS

미지원 기능이다.

레코드의 최대 IDENT 개수를 지정한다. 21 ~ 2730개까지 지정할 수 있다. (기본값:

20)

MAXGPS

미지원 기능이다.

레코드의 필드에서 사용되는 리터럴의 최대 캐릭터 개수를 지정한다. 201 ~ 32767개

까지 지정할 수 있다. (기본값: 20)

MAXLITS

미지원 기능이다.

고정형식의 레코드를 연결 혹은 잘라 버릴 때 레코드 길이를 지정한다. 1 ~ 32760까

지 지정할 수 있다.

LENGTH

미지원 기능이다.

RECORD

입력 레코드에 대해서 어떻게 처리할 것인지 조건을 기술한다.

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

[label] RECORD [IDENT=(length,'name',input-location)]

[,FIELD=([length],

[{input-location|'literal'}],

[conversion],

[output-location]

[,output-length])]

[,FIELD=...]

[,FILL={'literal'|X'literal')]

[,LABELS=n]

설명항목

MEMBER 문이 RECORD 문 전에 나왔을 경우 그 멤버에 복사될 입력 레코드에 대한

조건을 나타내고 같은 레코드의 FIELD에 대해서 적용될 입력 레코드를 구별한다.

IDENT

레코드의 input-location에서 length 만큼의 값과 name 값을 비교하여 값이 같으면 멤

버의 마지막 레코드가 되거나 FIELD가 적용되는 마지막 레코드가 된다.

84 OpenFrame 유틸리티 참조 안내서

Page 99: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

- length: name을 식별하기 위한 길이를 최대 8 Byte까지 지정할 수 있다.

- 'name': 마지막 레코드를 식별하기 위한 값으로서 반드시 작은 따옴표(') 안에 기술

되어야 한다.

- Input-location: 입력 레코드에서 name값과 비교할 FIELD의 1번째 시작위치를 지정

한다.

레코드 편집을 위한 정보를 기술한다.FIELD

입력 레코드에서 input-location 위치부터 length 만큼의 데이터를 출력 레코드의 output-

location 위치에 쓰거나 리터럴을 length만큼 출력 레코드의 output-location 위치에 쓴

다.

- length: 처리되는 입력 필드의 길이 또는 리터럴의 길이를 기술한다.

- input-location: 처리되는 필드의 시작위치를 지정한다.

- 'literal': output-location에 위치해야 하는 리터럴을 지정한다.

- conversion: 파라미터로 PZ, ZP를 사용할 수 있으나 해당 기능은 무시되며 이외의

값을 사용할 경우 구문 에러가 발생한다.

- output-location: 출력 레코드에 쓰여질 시작 위치를 지정한다.

- output-length: 출력 필드의 길이를 지정한다. 해당 기능은 지원되지 않는다.

미지원 기능이다.FILL

미지원 기능이다.LABELS

MEMBER

PDS의 여러 멤버를 가지고 출력 레코드가 생성될 경우, 생성할 멤버 개수만큼 MEMBER 문이 필요하다.

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

[label] MEMBER NAME=(name[,alias1][,alias2][,...])

설명항목

생성할 멤버의 이름을 기술한다.NAME

참고

현재 JSDSCPY 유틸리티의 MEMBER 문 중 alias#는 실제 기능은 하지 않으나 에러를 발생시키지

않도록 지원하고 있다.

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

Page 100: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

EXITS

유저 출구 루틴을 다룰 때 기술한다. 지원하지 않는 명령어이다.

LABELS

유저 라벨을 다룰 때 기술한다. 지원하지 않는 명령어이다.

사용예제

다음은 순차 데이터 셋을 복사하는 예이다.

SYSIN DD에 명령어가 기술되어있지 않으므로 순차 데이터 셋인 TEST.INPUT을 TEST.COPY로 복사하

고, JSDSCPY의 메시지는 JOB에서 사용하는 메시지 클래스에 저장한다.

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

//COPYSDS EXEC PGM=JSDSCPY

//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에 저장한다.

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

//NEWPDS EXEC PGM=JSDSCPY

//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 *

MEMBER NAME=MEMBER1

GROUP1 RECORD IDENT=(8,'firstxxx',30)

MEMBER NAME=MEMBER2

GROUP2 RECORD IDENT=(8,'secondxx',30)

MEMBER NAME=MEMBER3

/*

86 OpenFrame 유틸리티 참조 안내서

Page 101: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

TEST.INPUT에서 입력 레코드의 30번째 위치부터 37번째까지의 값을 순차 검색하여 ‘firstxxx’인 레코드

가 나타나면 ‘firstxxx’ 레코드를 포함하여 현재까지 검색된 레코드를 MEMBER1에 복사한다. 그리고 ‘firstxxx’

레코드 다음 레코드부터 다시 ‘secondxx’ 레코드를 검색하기 시작한다.

‘secondxx’ 레코드가 검색되면 ‘firstxxx’ 레코드 이후부터 ‘secondxx’ 레코드를 포함하여 검색한 모든 레코

드를 MEMBER2에 복사하고 ‘secondxx’ 레코드 이후의 모든 레코드는 MEMBER3에 복사된다.

다음은 기존의 PDS에 멤버를 추가하는 예이다.

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

//MERGEPDS EXEC PGM=JSDSCPY

//SYSUT1 DD DSNAME=TEST.INPUT2,DISP=(SHR,KEEP)

//SYSUT2 DD DSNAME=JSDSCPY.TEST.PDS01,DISP=(OLD,KEEP)

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

MEMBER NAME=MEMX

GROUP1 RECORD IDENT=(8,'endofrec',15)

MEMBER NAME=MEMY

/*

순차 데이터 셋인 TEST.INPUT2의 레코드에서 15번째 Byte부터 22번째 Byte까지 레코드의 값을 ‘endofrec’

와 비교하여 값이 일치하면 검색한 모든 레코드를 MEMX에 복사하고, ‘endofrec’ 레코드 이후의 모든 레코

드는 MEMY에 복사한다. 그리고 기존의 PDS TEST.PDS01에 PDS 멤버로 MEMX와 MEMY를 추가한다.

다음은 입력 레코드를 수정하는 예이다.

TEST.INPUT3 레코드를 수정하여 TEST.EDIT0로 복사한다.

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

//EDIT EXEC PGM=JSDSCPY

//SYSUT1 DD DSNAME=TEST.INPUT3,DISP=(SHR,KEEP)

//SYSUT2 DD DSNAME=TEST.EDIT0,DISP=(NEW,CATLG),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=80)

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

RECORD IDENT=(8,'firstmem',1),FIELD=(50,76,,31),

FIELD=(30,20,,1)

RECORD FIELD=(70,41,,11),FIELD=(10,'**********',,1)

/*

앞의 예제에서 2개의 RECORD 문 중 1번째 RECORD의 IDENT 조건에 의해서 순차적으로 입력 레코드

의 1번째 Byte부터 8 Byte의 값으로 'firstmem'이 나올 때까지 모든 레코드에 대해 FIELD 조건을 적용한다.

즉, 다음 그림과 같이 입력 레코드의 76번째 Byte 위치부터 50 Byte 길이만큼의 값을 출력 레코드의 31번

째 Byte 위치에 복사하고 입력 레코드의 20번째 Byte 위치부터 30 Byte 길이의 값을 출력 레코드의 1번째

Byte 위치에 복사한다.

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

Page 102: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[그림 2.6] 1번째 입력 레코드 필드 복사

IDENT 조건에 맞는 레코드가 처리되고 난 다음부터는 2번째 RECORD 문이 다음 그림과 같이 적용된다.

입력 레코드의 41번째 Byte 위치부터 70 Byte 길이만큼의 값을 출력 레코드의 11번째 Byte 위치에 복사하

고 출력 레코드의 처음 10 Byte는 리터럴 ‘**********'로 복사한다.

[그림 2.7] 2번째 입력 레코드 필드 복사

유의사항

JSDSCPY 유틸리티 프로그램이 Batch 애플리케이션을 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

Batch 애플리케이션에서 받은 코드를 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Unrecoverable 형태의 에러로, 다음의 경우가 해당된다.12

- 데이터 셋 관련 (pgmdd, open/close, read/write) 에러

- SYSIN DD 명령어 문법 에러

88 OpenFrame 유틸리티 참조 안내서

Page 103: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명코드

- OpenFrame 시스템 라이브러리 초기화 실패

- 기타 JSDSCPY 유틸리티 프로그램 에러

2.6. JSDUPDT리소스(애플리케이션 소스, JCL 소스 등)를 신규 생성, 갱신, 복사 등을 수행하는 유틸리티이다.

각 레코드는 순서 번호를 붙일 수 있으며 이 순서 번호에 따라 각 레코드의 내용을 변경하거나, 삭제하거

나, 삽입할 수 있다.

JSDUPDT 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

● PDS를 신규 생성한다.

● PDS의 멤버를 복사, 치환한다.

● PDS 멤버의 레코드를 편집한다.(레코드 치환, 추가, 삭제, 순서 번호 부여)

파라미터 설정

다음은 JSDUPDT에서 설정할 수 있는 파라미터이다.

//EXEC PGM=JSDUPDT[,PARM={NEW|MOD}]

설명항목

데이터 셋을 신규 생성하는 경우에 지정한다. DD 설정 항목의 SYSUT1 DD

항목을 생략할 수 있다.

NEW

기존 데이터 셋을 수정하는 경우에 지정한다. DD 설정 항목의 SYSUT1 DD

항목은 반드시 존재해야 한다. (기본값)

MOD

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

입력 데이터 셋을 기술한다.SYSUT1 DD

출력 데이터 셋을 기술한다.SYSUT2 DD

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

Page 104: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

JSDUPDT의 명령어를 기술한다.SYSIN DD

명령어 설정

다음은 SYSIN DD에서 설정하는 JSDUPDT의 명령어이다.

JSDUPDT의 모든 명령은 "./" 기호로 시작한다. 그렇지 않은 문장은 DATA 문장으로 취급한다.

ADD, REPL, REPRO, CHANGE

입력 데이터 셋로부터 레코드를 추가하거나, 치환하거나, 복사하거나 편집하여 출력 데이터 셋에 레코드

를 작성한다.

ADD, REPL, REPRO, CHANGE 명령어의 구문은 다음과 같다.

./[label] FUNC [NAME=member-name]

[,LIST=ALL]

[,SEQFLD=nnn]

[,F=lang-identification]

[,PART={YES|literal}]

[,COLUMN=n]

[,UPDATE=INPLACE]

[,NEW={PO|PS}]

[,MEMBER=member-name]

[,LEVEL=n]

[,STATUS=status-info]

[,INHDR=routine-name]

[,INTLR=routine-name]

[,OUTHDR=routine-name]

[,OUTTLR=routine-name]

[,TOTAL=(routine-name, size)]

설명항목

ADD, REPL, REPRO CHANGE를 기술한다.FUNC

신규, 복사, 편집, 치환을 하는 경우 출력 PDS의 멤버명을 지정한다.NAME

출력 데이터 셋으로 출력되는 모든 레코드를 SYSPRINT로 출력하는 항목으로 미지

원 기능이다.

LIST

순서 번호의 위치와 길이를 지정한다.SEQFLD

앞에 2자리 수로 위치를 뒤에 1자리 수로 길이를 지정한다. 위치는 1 ~ 80까지 길이는

1 ~ 8까지 지정할 수 있다. 기본값은 738이다.

언어 식별자를 지정하는 항목으로 미지원 기능이다.F

90 OpenFrame 유틸리티 참조 안내서

Page 105: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

미지원 기능이다.PART

레코드의 데이터를 치환할 위치를 지정한다.COLUMN

입력 데이터 셋과 출력 데이터 셋이 동일하여, 해당 데이터 셋 내에서 변경이 일어나

는 경우 지정한다.

UPDATE

입력 데이터 셋과 출력 데이터 셋의 DSORG가 다를 경우 출력 데이터 셋의 DSORG

를 지정한다.

NEW

SDS로부터 PDS로 출력하는 경우에 멤버명을 지정한다.MEMBER

출력 데이터 셋이 PDS인 경우 체인지 레벨을 지정하는 항목으로 미지원 기능이다.LEVEL

출력 데이터 셋이 PDS인 경우 체인지 레벨과 일자를 지정하는 항목으로 미지원 기능

이다.

STATUS

입력 유저 표제 라벨 처리 루틴을 지정하는 항목으로 미지원 기능이다.INHDR

입력 유저 마지막 라벨 처리 루틴을 지정하는 항목으로 미지원 기능이다.INTLR

출력 유저 표제 라벨 처리 루틴을 지정하는 항목으로 미지원 기능이다.OUTHDR

출력 유저 마지막 라벨 처리 루틴을 지정하는 항목으로 미지원 기능이다.OUTTLR

토탈 루틴과 영역의 크기를 지정하는 항목으로 미지원 기능이다.TOTAL

NUMBER, DELETE

NUMBER는 순서 번호를 새로 붙이거나 다시 붙이는 경우에 이용한다.

DELETE는 지정된 순서번호에 해당하는 레코드를 삭제할 때 이용한다.

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

./[label] NUMBER [NEW1=n]

[,INCR=n]

[,SEQ1={n|ALL}]

[,SEQ2=n]

[,INSERT=YES]

./[label] DELETE SEQ1=n

[,SEQ2=n]

설명항목

순서 번호를 작성하는 경우의 초기치를 지정한다.NEW1

순서 번호를 작성하는 경우의 증가치를 지정한다.INCR

CHANGE를 시작하는 순서 번호를 지정한다. CHANGE 문에서만 유효하다.SEQ1

INSERT=YES와 함께 지정된 경우, 새로 추가되는 레코드의 위치를 지정한다.

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

Page 106: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

전체 레코드를 대상으로 할 때 ALL을 지정한다.

CHANGE를 종료하는 순서 번호를 지정한다. CHANGE 문에서만 유효하다.SEQ2

1개의 레코드를 삭제하는 경우에 생략할 수 있다.

순서 번호가 없는 레코드를 새로 추가하는 경우 SEQ1에 지정된 순서 번호 다음부터

레코드를 추가한다.

INSERT

ENDUP

SYSIN 입력의 마지막을 나타낸다.

./[label] ENDUP

MASK

레코드에 캐릭터 라인을 붙일 때 지정한다. 지원하지 않는 명령어이다.

ALIAS

ALIAS를 다룰 때 기술한다. 지원하지 않는 명령어이다.

LABEL

유저 라벨을 다룰 때 기술한다. 지원하지 않는 명령어이다.

사용예제

다음은 새로운 PDS와 멤버를 생성하는 예제이다.

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

//STEP1 EXEC PGM=JSDUPDT

//SYSPRINT DD SYSOUT=A

//SYSUT2 DD DSNAME=NEWPDS,DISP=(NEW,CATLG),

// VOLUME=SER=DEFVOL,SPACE=(TRK,(50,,10)),

// DCB=(RECFM=F,LRECL=80,BLKSIZE=80)

//SYSIN DD DATA

./ ADD NAME=MEMB1

MEMB1 DATA1 00000010

MEMB1 DATA2 00000020

MEMB1 DATA3 00000030

./ ADD NAME=MEMB2

92 OpenFrame 유틸리티 참조 안내서

Page 107: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

MEMB2 DATA1 00000010

MEMB2 DATA2 00000020

MEMB2 DATA3 00000030

./ ADD NAME=MEMB3

MEMB3 DATA1 00000010

MEMB3 DATA2 00000020

MEMB3 DATA3 00000030

./ ENDUP

/*

1번째 ADD 문장은 MEMB1이라는 멤버를 생성하고 그 다음에 나오는 DATA 문장을 레코드로 갖는다.

2번째 ADD 문장은 MEMB2이라는 멤버를 생성하고 그 다음에 나오는 DATA 문장을 레코드로 갖는다.

3번째 ADD 문장은 MEMB3이라는 멤버를 생성하고 그 다음에 나오는 DATA 문장을 레코드로 갖는다.

다음은 새로운 PDS에 기존 PDS의 멤버를 복사하고 새로 추가하는 예제이다.

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

//STEP1 EXEC PGM=JSDUPDT

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD DSNAME=OLDPDS,DISP=SHR

//SYSUT2 DD DSNAME=NEWPDS,DISP=(NEW,CATLG),

// VOL=SER=DEFVOL,SPACE=(TRK,(100,,10)),

// DCB=(RECFM=F,LRECL=80,BLKSIZE=4000)

//SYSIN DD DATA

./ REPRO NAME=MEMB1

./ REPRO NAME=MEMB2

./ ADD NAME=MEMB3

./ NUMBER NEW1=100,INCR=100

MEMB3 DATA1

MEMB3 DATA2

MEMB3 DATA3

./ ENDUP

/*

1번째 REPRO 문장은 OLDPDS의 멤버 MEMB1을 NEWPDS로 복사한다.

2번째 REPRO 문장은 OLDPDS의 멤버 MEMB2을 NEWPDS로 복사한다.

ADD 문장은 MEMB3이라는 멤버를 생성하고 5 ~ 7번째 줄 DATA문장을 레코드로 갖는다. NUMBER 문에

의해 각 레코드는 100부터 100씩 증가하는 순서 번호를 갖게 된다.

다음은 기존 PDS의 멤버에 순서 번호를 새로 작성하고, 일부 레코드를 치환하는 예이다.

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

//STEP1 EXEC PGM=JSDUPDT

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

Page 108: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

//SYSPRINT DD SYSOUT=A

//SYSUT1 DD DSNAME=OLDPDS,DISP=(OLD,KEEP),VOL=SER=DEFVOL

//SYSIN DD *

./ CHANGE NAME=MEMB1,UPDATE=INPLACE

./ NUMBER SEQ1=ALL,NEW1=100,INCR=50

CHANGE DATA1 00000200

CHANGE DATA2 00000600

./ ENDUP

/*

1번째 CHANGE 문장은 MEMB1에 대해 입력 데이터 셋 내에서 변경이 일어나도록 지정한다.

NUMBER 문장은 MEMB1의 모든 레코드에 대해 순서 번호를 새로 작성하도록 한다. 각 레코드는 100부

터 50씩 증가하는 순서 번호를 갖는다.

DATA 문장들은 고유의 순서 번호를 가지고 있다. 순서 번호를 새로 작성하기 전 기준으로 기존 레코드를

찾아 해당 레코드로 교체한다.

다음은 PDS의 멤버를 편집하여 SDS로 출력하는 예이다.

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

//STEP1 EXEC PGM=JSDUPDT

//SYSPRINT DD SYSOUT=A

//SYSUT1 DD DSNAME=PDS,DISP=(OLD,KEEP),VOL=SER=DEFVOL

//SYSUT2 DD DSNAME=SDS,DISP=(NEW,KEEP),VOL=SER=DEFVOL,

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000)

//SYSIN DD *

./ CHANGE NEW=PS,NAME=MEMB1

CHANGE DATA1 00000200

./ DELETE SEQ1=250,SEQ2=300

DELETE DATA2 00000275

./ ENDUP

/*

1번째 CHANGE 문장은 PDS의 멤버 MEMB1에 대해 SDS로 출력할 것을 지정한다.

1번째 DATA 문장은 순서 번호 200을 갖는 레코드에 대해 해당 데이터로 교체할 것을 지정한다.

1번째 DELETE 문장은 순서 번호 250부터 300까지의 레코드를 삭제할 것을 지정한다.

2번째 DATA 문장은 순서 번호 275를 갖는 레코드를 추가할 것을 지정한다. 앞서 250부터 300까지의 레

코드가 삭제되었으므로 교체가 아닌 추가 작업이 이루어진다.

다음은 PDS의 멤버에 새로운 레코드를 추가하는 예이다.

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

//STEP1 EXEC PGM=JSDUPDT

//SYSPRINT DD SYSOUT=A

94 OpenFrame 유틸리티 참조 안내서

Page 109: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

//SYSUT1 DD DSNAME=PDS,DISP=(OLD,KEEP),VOL=SER=DEFVOL

//SYSUT2 DD DSNAME=PDS,DISP=(OLD,KEEP),VOL=SER=DEFVOL

//SYSIN DD *

./ CHANGE NAME=MEMB1

./ NUMBER SEQ1=150,NEW1=200,INCR=50,INSERT=YES

INSERT DATA1

INSERT DATA2

INSERT DATA3

/*

CHANGE 문장은 PDS의 멤버 MEMB1에 대해 변경이 이루어짐을 지정한다.

NUMBER 문장은 순서 번호가 150인 레코드 다음부터 새로운 레코드를 추가하며 새로운 레코드는 200부

터 50씩 증가하게 된다는 것을 지정한다.

DATA 문장들은 위의 요건에 따라 각각 200, 250, 300의 순서 번호가 부여되어 추가된다.

기존에 200 ~ 300 사이의 순서 번호를 가진 레코드가 있다면 위의 DATA 문장과 마찬가지로 새로 추가된

순서번호 300 이후로 50씩 증가한 번호로 변경된다. 이러한 변경은 앞서 변경된 레코드의 순서번호가 다

음 레코드의 순서 번호보다 작을 때까지 반복된다.

유의사항

JSDUPDT 유틸리티 프로그램이 Batch 애플리케이션을 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

Batch 애플리케이션에서 받은 코드를 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Unrecoverable 형태의 에러로, 다음의 경우가 해당된다.12

- 데이터 셋 관련 (pgmdd, open/close, read/write) 에러

- SYSIN DD 명령어 문법 에러

- OpenFrame 시스템 라이브러리 초기화 실패

- 기타 JSDUPDT 유틸리티 프로그램 에러

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

Page 110: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

2.7. JSFCTLGNon-VSAM 데이터 셋을 삭제하거나 카탈로그 또는 언카탈로그를 하기 위해 사용하는 유틸리티 프로그램

이다.

JSFCTLG 시스템 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

● 데이터 셋 또는 PDS의 멤버를 해당 볼륨에서 물리적으로 삭제

● 데이터 셋의 카탈로그나 언카탈로그

참고

OpenFrame의 JSFCTLG 유틸리티 프로그램은 현재 Hitachi VOS3시스템의 JSFCTLG 유틸리티가

제공하는 RENAME 문, ADD 문, REPLACE 문, DELETEP 문, LIST 문은 지원하지 않고 있다.

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

JSFCTLG의 메시지가 저장되는 데이터 셋을 지정한다.SYSPRINT DD

JSFCTLG에서 사용하는 명령어를 기술한다.SYSIN DD

명령어 설정

SCRATCH

디스크 볼륨에 저장된 데이터 셋이나 PDS의 멤버를 삭제한다. SCRATCH 대상 데이터 셋이 카탈로그에

등록되어있는 경우 카탈로그 정보도 함께 삭제한다.

SCRATCH 명령어 구문 다음과 같다.

[label] SCRATCH {VTOC|DSN[AME]=name}

[,VOL[UME]=device=volser]

[,MEMBER=name]

[,PURGE]

[,{SYS|FORCE}]

설명항목

VOLUME 문에서 지정한 볼륨에 존재하는 모든 데이터 셋을 삭제하고자 할 때

지정한다.

VTOC

96 OpenFrame 유틸리티 참조 안내서

Page 111: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

삭제하고자 하는 데이터 셋 이름을 지정한다.DSNAME=name

삭제하고자 하는 데이터 셋의 볼륨을 지정한다. 삭제 대상 데이터 셋이 카탈로그

되어 있는 경우 생략이 가능하다. device는 볼륨의 디바이스 이름을 지정하게 되

나 문법을 맞추기 위한 것으로 실제로는 무시된다.

VOLUME=de

vice=volser

PDS의 멤버만 삭제하고자 할 때 사용하며, 삭제하고자 하는 멤버의 이름을 지정

한다.

MEMBER=name

만료 일자에 이르지 않은 데이터 셋도 삭제하고자 할 때 지정하는 항목으로 미지

원 기능이다.

PURGE

임시 데이터 셋만을 삭제하고자 할 때 지정한다. 예를 들어, 데이터 셋 이름이 앰

퍼샌드(&) 문자로 시작하면 임시 데이터 셋으로 간주되어 삭제 대상이 된다.

SYS

이 항목은 VTOC을 지정했을 때에만 유효하다.

지정한 볼륨의 모든 데이터 셋을 삭제하는 경우 삭제 전 출력되는 오퍼레이터 응

답 메시지를 생략할 때 지정하는 항목으로 미지원 기능이다.

FORCE

CATLG

카탈로그에 Non-VSAM 데이터 셋의 VTOC 기본정보를 등록한다.

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

[label] CATLG DSN[AME]=name

,VOL[UME]=device=volser

설명항목

카탈로그에 등록할 데이터 셋 이름을 지정한다.DSNAME=name

카탈로그 대상 데이터 셋이 존재하는 볼륨을 지정한다. device는 볼륨의 디바이

스 이름을 지정하게 되나 문법을 맞추기 위한 것으로 실제로는 무시된다.

VOLUME=de

vice=volser

UNCATLG

카탈로그에 등록되어 있는 Non-VSAM 데이터 셋을 언카탈로그한다.

UNCATLG 문을 사용하여 등록된 카탈로그 정보를 삭제할 수 있지만 볼륨에 저장되어 있는 물리적인 파

일은 삭제할 수 없다. 볼륨에 저장되어 있는 파일까지 삭제하려면 SCRATCH 문을 이용한다.

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

[label] UNCATLG DSN[AME]=name

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

Page 112: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

카탈로그정보에서 언카탈로그할 데이터 셋 이름을 지정한다.DSNAME=name

사용예제

볼륨 시리얼 넘버가 100000인 볼륨(VTOC)에 존재하는 임시 데이터 셋을 삭제하는 예제이다.

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

//STEP1 EXEC PGM=JSFCTLG

//SYSPRINT DD SYSOUT=*

//VOLDD DD VOL=SER=100000,DISP=OLD

//SYSIN DD *

SCRATCH VTOC,VOL=3380=100000,SYS

/*

다음은 JSFCTLG.TEST01 데이터 셋을 100000볼륨에 카탈로그하는 예제이다.

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

//STEP1 EXEC PGM=JSFCTLG

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

CATLG DSNAME=JSFCTLG.TEST01,VOL=3380=100000

/*

다음은 TEST.JSFCTLG 데이터 셋을 언카탈로그하는 예제이다.

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

//JS01 EXEC PGM=JSFCTLG

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

UNCATLG DSNAME=TEST.JSFCTLG

/*

다음은 볼륨 시리얼 넘버가 100000인 볼륨에서 JSFCTLG.TEST01 데이터 셋을 삭제하는 예제이다.

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

//STEP1 EXEC PGM=JSFCTLG

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

SCRATCH DSNAME=JSFCTLG.TEST01,VOL=SER=100000

/*

98 OpenFrame 유틸리티 참조 안내서

Page 113: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

유의사항

JSFCTLG 유틸리티 프로그램의 실행 결과는 다음과 같다.

● 정상적으로 실행한 경우

코드 0을 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Warning 형태의 에러로, 다음의 경우가 해당된다.8

- 데이터 셋을 찾을 수 없는 경우

Unrecoverable 형태의 에러로, 다음의 경우가 해당된다.12

- 데이터 셋 관련 (pgmdd, open/close, read/write) 에러

- SYSIN DD 명령어 문법 에러

- 기타 JSFCTLG 유틸리티 프로그램 에러

시스템 에러와 관련된 에러로, 다음의 경우가 해당된다.16

- OpenFrame 시스템 라이브러리 초기화 실패

참고

유사한 유틸리티 프로그램으로는 “2.1. JSCVSUT”가 있다.

2.8. JSFDCDPNon-VSAM 데이터 셋들을 하나의 데이터 셋으로 DUMP하거나 DUMP한 데이터 셋을 원래대로 RESTORE

하기 위해 사용하는 유틸리티 프로그램이다.

JSFDCDP 시스템 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

● Non-VSAM 데이터 셋의 DUMP 기능

● Non-VSAM 데이터 셋의 RESTORE 기능

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

Page 114: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

DUMP와 RESOTRE 명령은 주로 천재지변에 의한 시스템 손상이나 중요데이터의 손실을 대비하기 위한

목적으로 데이터 셋이나 볼륨의 백업 및 복원에 사용된다.

OpenFrame에서는 현재 VOS3시스템의 JSFDCDP 유틸리티에서 제공하는 데이터 셋의 복사, 데이터 셋

의 비교(COMP), 데이터 셋의 출력(PRINT) 기능은 지원하지 않는다.

DD 설정

데이터 셋 DUMP

DD 설정 항목은 다음과 같다.

설명항목

JSFDCDP의 메시지가 저장되는 데이터 셋을 지정한다.SYSPRINT DD

JSFDCDP의 DUMP 명령어와 그와 관련된 옵션들을 기술하는 DD이다.SYSIN DD

SYSIN DD에 기술한 컨트롤 문장 중 IN 문으로 지정한 DD 이름과 같은 DD로 DUMP

대상 데이터 셋 들의 볼륨정보를 지정한다.

입력 DD

SYSIN DD에 기술한 컨트롤 문장 중 OTAPE(OT) 문으로 지정한 DD 이름과 같은 DD

로 새로 생성할 DUMP 데이터 셋을 지정한다.

출력 DD

데이터 셋 RESTORE

DD 설정 항목은 다음과 같다.

설명항목

JSFDCDP의 메시지가 저장되는 데이터 셋을 지정한다.SYSPRINT DD

JSFDCDP에서 사용하는 명령어를 기술한다.SYSIN DD

SYSIN DD에 기술한 컨트롤 문장 중 IN문으로 지정한 DD 이름과 같은 DD로 RESOTRE

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

입력 DD

SYSIN DD에 기술한 컨트롤 문장 중 ODASD(OD) 문으로 지정한 DD 이름과 같은 DD

로 DUMP 데이터 셋을 어떤 볼륨에 저장할 것인지 지정한다. 출력 DD에서는

DSN(Data Set Name)을 기술하지 않는다.

출력 DD

명령어 설정

DUMP

여러개의 데이터 셋을 지정하여 하나의 DUMP 처리된 데이터 셋을 생성하는 명령어이다.

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

100 OpenFrame 유틸리티 참조 안내서

Page 115: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[label] D[UMP] IN=dd-name

OT[APE]=dd-name[,dd-name]

[,OD[ASD]=dd-name

[,ED[SN]=(dataset-name[,...])]

[,EC[H]=(cccchhhh-cccchhhh[,...])]

[,ID[SN]={(dataset-name[,...])|*ALL}]

[,IC[H]=(cccchhhh-cccchhhh[,...])]

[,VO(LCOPY]={Y|N}]

[,IV[OLID]=volser]

[,OV[OLID]=volser]

[,IO[WNERID]={ownerid | 'ownerid'}]

[,OO[WNERID]={ownerid | 'ownerid'}]

[,VE[RIFY]={Y|N}]

[,DI[FFEXT]={Y|N}]

[,PU[RGE]={Y|N}]

[,ER[ROPT]={S|T}]

설명항목

입력 DD명을 지정한다. DUMP 대상 데이터 셋들이 존재하는 볼륨이 기술된 DD

이다. 생략할 경우 기본값은 IN=IN이다.

IN=dd-name

출력 DD명을 지정한다. DUMP 데이터 셋이 저장될 볼륨이 기술된 DD이다. DD

명은 2개까지 지정할 수 있으며 생략할 경우 기본값은 OTAPE=OTAPE이다.

OT[APE]=dd-

name[,dd-name]

OTAPE으로 지정한 볼륨이 TAPE 형태인 경우는 내부적으로 DUMP 데이터 셋

을 압축처리하여 저장한다.

IN에서 지정한 데이터 셋을 다른 DASD로 복사하려는 경우 지정하는 명령이나

OpenFrame에서는 미지원 기능으로 기술할 경우 에러가 발생한다.

ODASD=dd-name

IN에서 지정한 볼륨의 데이터 셋 중 DUMP 대상에서 제외시킬 데이터 셋들을 지

정한다. 데이터 셋명은 괄호 문자로 둘러싸서 지정해야 한다.

EDSN=(dataset-

name[,...])

DUMP 대상에서 제외할 영역을 실린더 번호와 트랙번호로 지정하는 항목으로

미지원 기능이다.

ECH=(cccchhhh-ccc

chhhh[,...])

IN에서 지정한 볼륨의 데이터 셋 중 DUMP 대상 데이터 셋들을 지정한다. IDSN

문으로 데이터 셋을 지정한 경우 지정한 데이터 셋들만 DUMP 처리된다. 데이터

ID[SN]={(dataset-

name[,...])|*ALL}

셋명은 괄호문자로 둘러싸서 지정해야 한다. *ALL을 지정한 경우 입력 DD의 모

든 데이터 셋을 DUMP한다.

DUMP 대상 영역을 실린더 번호와 트랙번호로 지정하는 항목으로 미지원 기능

이다.

ICH=(cccchhhh-cccch

hhh[,...])

DASD로 복사하는 경우 입력 DASD의 볼륨 일련번호도 복사할지를 지정하는 항

목으로 미지원 기능이다.

VOLCOPY={Y|N}

입력 DASD가 오프라인으로 지정되었을 때 그 DASD의 볼륨 일련번호를 지정하

는 항목으로 미지원 기능이다.

IVOLID=volser

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

Page 116: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

출력 DASD가 오프라인으로 지정되었을 때 그 DASD의 볼륨 일련번호를 지정하

는 항목으로 미지원 기능이다.

OVOLID=volser

입력 DASD의 등록되어 있는 소유자 ID를 지정하는 항목으로 미지원 기능이다.IOWNERID={owner

id|'ownerid'}

출력 DASD의 등록되어 있는 소유자 ID를 지정하는 항목으로 미지원 기능이다.OOWNERID={owner

id|'ownerid'}

DASD로 복사하는 경우 데이터를 검사할지를 지정하는 항목으로 미지원 기능이

다.

VERIFY={Y|N}

DASD로 복사하는 경우 영역의 지정이 데이터 셋 이름으로 지정되었을 때, 입력

DASD의 데이터 셋 EXTENT와 출력 DASD의 EXTENT가 달라도 복사할지를 지

정하는 항목으로 미지원 기능이다.

DIFFEXT={Y|N}

출력 DASD에 만료일자에 이르지 않은 데이터 셋이 있을 때 처리 중지할지를 지

정하는 항목으로 미지원 기능이다.

PURGE={Y|N}

입력 DASD에서 입출력 에러가 발생했을 때 그 에러를 무시할지를 지정하는 항

목으로 미지원 기능이다.

ERROPT={S|T}

RESTORE

DUMP 처리된 데이터 셋을 지정한 볼륨에 복원시키는 명령어이다.

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

[label] R[ESTORE] IN=dd-name

,OD[ASD]=dd-name

[,ED[SN]=(dataset-name[,...])]

[,EC[H]=(cccchhhh-cccchhhh[,...])]

[,ID[SN]={(dataset-name[,...])|*ALL}]

[,IC[H]=(cccchhhh-cccchhhh[,...])]

[,VO(LCOPY]={Y|N}]

[,OV[OLID]=volser]

[,OO[WNERID]={ownerid | 'ownerid'}]

[,VE[RIFY]={Y|N}]

[,DI[FFEXT]={Y|N}]

[,PU[RGE]={Y|N}]

설명항목

입력 DD명을 지정한다. RESTORE 대상 DUMP 데이터 셋이 기술된 DD이다. 해

당 DD에서 반드시 DUMP 데이터 셋 이름을 지정해야 한다. 생략할 경우 기본값

은 TAPE이다.

IN=dd-name

출력 DD명을 지정한다. RESOTRE된 데이터 셋들이 저장될 볼륨을 지정한 DD

이다. 기본값은 OUT이다.

ODASD=dd-name

102 OpenFrame 유틸리티 참조 안내서

Page 117: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

RESOTRE 대상 데이터 셋 중 복원에서 제외시킬 데이터 셋들을 지정한다. 데이

터 셋명은 괄호문자로 둘러싸서 지정해야 한다.

EDSN=(dataset-

name[,...])

RESTORE 대상에서 제외할 영역을 실린더 번호와 트랙번호로 지정하는 항목으

로 미지원 기능이다.

ECH=(cccchhhh-ccc

chhhh[,...])

DUMP 데이터 셋에서 복원시킬 데이터 셋들을 지정한다. IDSN 문으로 데이터

셋을 지정한 경우 지정한 데이터 셋들만 RESTORE 처리된다. 데이터 셋명은 괄

ID[SN]={(dataset-

name[,...])|*ALL}

호 문자로 둘러싸서 지정해야 한다. *ALL을 지정한 경우 입력 DD의 모든 데이터

셋을 RESTORE 처리한다.

RESTORE 대상 영역을 실린더번호와 트랙번호로 지정하는 항목으로 미지원 기

능이다.

ICH=(cccchhhh-cccch

hhh[,...])

DASD로 RESTORE하는 경우 원본 DASD의 볼륨 일련번호도 복사할지를 지정

하는 항목으로 미지원 기능이다.

VOLCOPY={Y|N}

출력 DASD가 오프라인으로 지정되었을 때 그 DASD의 볼륨 일련번호를 지정하

는 항목으로 미지원 기능이다.

OVOLID=volser

출력 DASD의 등록되어 있는 소유자 ID를 지정하는 항목으로 미지원 기능이다.OOWNERID={owner

id|'ownerid'}

DASD로 RESTORE하는 경우 데이터를 검사할지 지정하는 항목으로 미지원 기

능이다.

VERIFY={Y|N}

DASD로 RESTORE하는 경우 영역의 지정이 데이터 셋 이름으로 지정되었을

때, 원본 DASD의 데이터 셋 EXTENT와 출력 DASD의 EXTENT가 달라도 복사

할지를 지정하는 항목으로 미지원 기능이다.

DIFFEXT={Y|N}

출력 DASD에 만료일자에 이르지 않은 데이터 셋이 있을 때 처리 중지할지를 지

정하는 항목으로 미지원 기능이다.

PURGE={Y|N}

COMP

데이터 셋의 비교를 지정하는 명령어로 OpenFrame의 JSFDCDP 유틸리티 프로그램은 지원하지 않는다.

기술할 경우 에러가 발생한다.

PRINT

데이터 셋의 내용을 편집해 출력하는 명령어로 OpenFrame의 JSFDCDP 유틸리티 프로그램은 지원하지

않는다. 기술할 경우 에러가 발생한다.

사용예제

IN DD에서 지정한 볼륨 내에 있는 모든 데이터 셋들을 TAPE1, TAPE2 DD에서 지정한 데이터 셋으로 각

각 DUMP 처리하는 예제이다.

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

Page 118: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

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

//JS01 EXEC PGM=JSFDCDP

//SYSPRINT DD SYSOUT=*

//IN DD VOL=SER=DEFVOL,UNIT=3380,DISP=OLD

//TAPE1 DD DSN=JSFDCDP.DUMP1,VOL=SER=100000,DISP=(NEW,CATLG)

//TAPE2 DD DSN=JSFDCDP.DUMP2,VOL=SER=200000,DISP=(NEW,CATLG)

//SYSIN DD *

DUMP IN=IN,OT=(TAPE1,TAPE2)

/*

IN DD의 JSFDCDP.DUMP1 데이터 셋을 RESTORE하여 OUT DD로 지정한 DEFVOL 볼륨에 복원 처리

하는 예제이다.

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

//JS01 EXEC PGM=JSFDCDP

//SYSPRINT DD SYSOUT=*

//IN DD DSN=JSFDCDP.DUMP1,VOL=SER=100000,DISP=OLD

//OUT DD VOL=SER=DEFVOL,DISP=OLD

//SYSIN DD *

RESTORE IN=IN,OD=OUT

/*

유의사항

JSFDCDP 유틸리티 프로그램의 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

코드 0을 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Warning 형태의 에러로, 다음의 경우가 해당된다.4

- DUMP 대상 데이터 셋을 찾을 수 없는 경우

- RESTORE 대상 데이터 셋을 찾을 수 없는 경우

SYSIN DD에서 잘못된 문법의 명령어를 입력한 경우 발생하는 에러이다.8

프로그램 처리 오류 또는 시스템과 관련된 에러로, 다음의 경우가 해당된다.16

104 OpenFrame 유틸리티 참조 안내서

Page 119: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명코드

- 기타 JSFDCDP 유틸리티 프로그램 에러

- OpenFrame 시스템 라이브러리 초기화 실패

2.9. JSFILSTPDS 데이터 셋의 멤버정보나 특정 볼륨내에 존재하는 데이터 셋들의 정보를 조회하는 유틸리티 프로그

램이다.

JSFILST 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

● PDS 내에 존재하는 멤버들의 목록과 정보를 조회한다.

● 볼륨 내에 존재하는 데이터 셋의 목록과 정보를 조회한다.

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

JSFILST 메시지가 저장되는 데이터 셋을 정의한다.SYSPRINT DD

JSFILST의 명령어를 기술한 DD이다.SYSIN DD

명령어 설정

LISTPDS

PDS 정보와 멤버 리스트를 보여준다.

LISTPDS 명령어 구문은 다음과 같다

[label] LISTPDS DSN[AME]=(pds-name[,pds-name[,...]])

[,VOL[UME]=device=volser]

[,{DUMP|FORMAT}]

설명항목

조회하고자 하는 PDS 데이터 셋 이름을 지정하며 필수 입력 항목이다. 최대

10개의 데이터 셋 이름을 지정할 수 있다.

DSNAME=(pds-

name[,pds-name[,...]])

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

Page 120: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

DSNAME에 기술한 데이터 셋에 포함된 볼륨 시리얼(볼륨명)을 기술한다.

device는 볼륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한 것으로

실제로는 무시된다.

VOLUME=device=volser

PDS의 출력 형식을 지정하는 항목으로 미지원 기능이다.DUMP | FORMAT

LISTVTOC

지정한 볼륨 내에 존재하는 데이터 셋 목록과 정보를 보여준다.

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

[label] LISTVTOC [,VOL[UME]=device=volser]

[,DSN[AME]=(name[,name[,...]])

[,{DUMP|FORMAT}]

[,DATE=dddyy|dddyyyy)

설명항목

조회하고자 하는 볼륨 시리얼을 기술한다. device는 볼륨의 디바이스 이름을

지정하게 되나 문법을 맞추기 위한 것으로 실제로는 무시된다.

VOLUME=device=volser

조회 대상 데이터 셋 목록에 포함할 데이터 셋 이름을 기술한다. 최대 10개의

데이터 셋 이름을 지정할 수 있다. DSNAME 파라미터가 없으면 조회하려는

볼륨에 있는 모든 데이터 셋 리스트가 조회된다.

DSNAME=(name[,name[,...]]

PDS의 출력 형식을 지정하는 항목으로 미지원 기능이다.DUMP | FORMAT

지정한 일자로 만료되는 데이터 셋의 만료일의 뒤로 별표(*) 표시를 하여 출

력하는 것을 지정하는 항목으로 미지원 기능이다.

DATE=dddyy|dddyyyy

사용예제

다음은 PDS 정보와 멤버 리스트를 확인하는 예이다.

PDS DATASET1과 DATASET2의 정보와 멤버 리스트를 SYSPRINT에 기록한다.

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

// USER=ROOT,PASSWORD=SYS1

//STEP01 EXEC PGM=JSFILST

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

LISTPDS DSNAME=(DATASET1,DATASET2),VOL=3380=100000

/*

106 OpenFrame 유틸리티 참조 안내서

Page 121: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

다음은 위의 JCL을 실행한 뒤 출력되는 내용이다.

JSFILST VERSION 5.0.0(4) adb@buydream:ofsrc5/batch(#1) 2009-08-28 09:36:22

124639 M JIL0001M =====< JSFILST START >=====

MEMBER NAME : ADRDUMP0

DATASIZE : 1375

LAST UPDATE DATE(TIME) : 20090511(142821)

MEMBER NAME : ADRINIT2

DATASIZE : 2750

LAST UPDATE DATE(TIME) : 20090511(143954)

MEMBER NAME : ADRREST0

DATASIZE : 954

LAST UPDATE DATE(TIME) : 20090511(145104)

MEMBER NAME : ADRINIT3

DATASIZE : 2903

LAST UPDATE DATE(TIME) : 20090511(145922)

MEMBER NAME : ADRDUMP0

DATASIZE : 1344

LAST UPDATE DATE(TIME) : 20090511(142343)

124639 M JIL0002M =====< JSFILST FINISH >=====

다음은 볼륨의 디스크 정보와 데이터 셋 리스트를 확인하는 예이다. 볼륨 시리얼이 100000인 볼륨에 대한

디스크 정보와 데이터 셋 리스트를 SYSPRINT에 기록한다.

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

//STEP01 EXEC PGM=JSFILST

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

LISTVTOC VOL=3380=100000

/*

다음은 위의 JCL을 실행한 뒤 출력되는 내용이다.

JSFILST VERSION 5.0.0(4) adb@buydream:ofsrc5/batch(#1) 2009-08-28 09:36:22

124940 M JIL0001M =====< JSFILST START >=====

SYS1.VTOC.VDEFVOL VOLUME DSORG RECFM LRECL

------------------------------------------------------------------------------

JSFCTLG.PDS DEFVOL PO FB 80

SYS1.IEHMOVE DEFVOL PO L 80

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

Page 122: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

CAT.TEST DEFVOL PS FB 100

REIJ.DBDLIB DEFVOL PO L 80

MST.MENUE DEFVOL PS F 1102

IMS.RESLIB DEFVOL PO L 80

SYS1.JSFDCDP DEFVOL PO L 80

JSFCTLG.TEST DEFVOL PS FB 72

USER1.JCLLIB DEFVOL PO L 80

DSEDT.TEST DEFVOL PS FB 30000

TEST.TEST DEFVOL PS FB 80

IMS.ACBLIB DEFVOL PO L 80

PRX.RESLV1 DEFVOL PS FB 80

JSFMOVE.SAMPLE1 DEFVOL PS FB 80

SYS1.JCLLIB DEFVOL PO FB 80

TEST.PDS DEFVOL PO L 80

REIJ.PSBLIB DEFVOL PO L 80

KHD05.PARMLIB DEFVOL PO L 80

TESTE.PDS01 DEFVOL PO FB 89

ADRDSSU.GDG.TEST01.G0002V00 DEFVOL PS U 80

124940 M JIL0002M =====< JSFILST FINISH >=====

유의사항

JSFILST 유틸리티 프로그램의 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

코드 0을 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Unrecoverable 형태의 에러로, 다음의 경우가 해당된다.12

- 데이터 셋 관련 (pgmdd, open/close, read/write) 에러

- SYSIN DD 명령어 문법 에러

- 기타 JSFILST 유틸리티 프로그램 에러

시스템 에러와 관련된 에러로, 다음의 경우가 해당된다.16

- OpenFrame 시스템 라이브러리 초기화 실패

108 OpenFrame 유틸리티 참조 안내서

Page 123: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

2.10. JSFMOVENon-VSAM 데이터 셋을 명령어에서 지정한 볼륨으로 이동 또는 복사하기 위해 사용하는 유틸리티 프로

그램이다.

JSFMOVE 시스템 유틸리티 프로그램으로 다음과 같은 기능을 수행할 수 있다.

● SDS, PDS 데이터 셋을 동일한 볼륨이나 다른 볼륨으로 이동 또는 복사한다.

● 볼륨 내에 존재하는 모든 데이터 셋들을 다른 볼륨으로 이동 또는 복사한다.

● 데이터 셋의 일부 이름을 지정하여 해당 조건에 해당하는 데이터 셋들을 처리한다.

● PDS의 특정 멤버를 처리 대상에서 추가 또는 배제하거나 멤버명을 변경하여 처리한다.

주의

카탈로그에 등록된 데이터 셋을 동일한 볼륨에서 이동 또는 복사하려는 경우에는 반드시 데이터 셋

이름을 변경해야 한다.

JSFMOVE는 2가지 종류의 명령어로 분류된다.

● 기능 명령어

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

설명명령어

데이터 셋을 이동(복사)한다.MOVE(COPY) DSNAME

데이터 셋 그룹을 이동(복사)한다.MOVE(COPY) DSGROUP

PDS 데이터 셋을 이동(복사)한다.MOVE(COPY) PDS

볼륨 내에 존재하는 모든 데이터 셋을 이동(복사)한다.MOVE(COPY) VOLUME

● 보조 명령어

기능 명령어 중 MOVE(COPY) PDS 명령어의 경우 다음의 보조 명령어를 함께 사용할 수 있다.

설명명령어

처리 대상 PDS 데이터 셋과 멤버를 추가한다.INCLUDE

처리 대상 PDS 데이터 셋과 멤버에서 제외시킨다.EXCLUDE

PDS 멤버의 교체를 지정한다.REPLACE

처리 대상 PDS 멤버를 선택하여 지정한다.SELECT

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

Page 124: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

JSFMOVE의 메시지가 저장되는 데이터 셋을 지정한다.SYSPRINT DD

JSFMOVE에서 사용하는 명령어를 기술한다.SYSIN DD

기능 명령어

MOVE(COPY) DSNAME

데이터 셋의 이동 또는 복사를 지정하는 명령어이다.

MOVE(COPY) DSNAME 명령어 구문은 다음과 같다.

[label] {MOVE|COPY} DSN[AME]=name

,TO=device=volser

[,FROM=device=volser]

[,UNCATLG]

[,CATLG]

[,RENAME=name]

[,FROMDD=dd-name]

[,TODD=dd-name]

[,UNLOAD]

[,COPYAUTH]

설명항목

이동 또는 복사하고자 하는 데이터 셋 이름을 지정한다.DSNAME=name

이동 또는 복사하고자 하는 데이터 셋의 출력 device명과 볼륨을 지정한다.

device는 볼륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한 것으로

실제로는 무시된다.

TO=device=volser

이동 또는 복사하고자 하는 원본 데이터 셋이 존재하는 볼륨을 지정한다.

device는 볼륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한 것으로

FROM=device=volser

실제로는 무시된다. MOVE 명령에서 FROM을 지정하게 되면 원본 데이터

셋의 카탈로그 정보를 삭제하지 않고 출력 데이터 셋은 카탈로그 하지 않는

다. 따라서 입력 데이터 셋이 카탈로그 되어 있으면 FROM은 지정하지 않는

것이 좋다.

이동 또는 복사 처리 후 데이터 셋 카탈로그 정보의 삭제를 지정한다. 원본 데

이터 셋이 카탈로그 되어 있지 않을 때는 지정하지 않도록 한다. 기본적으로

UNCATLG

입력 데이터 셋의 카탈로그 정보는 삭제되나 복사한 데이터 셋의 카탈로그

삭제 방법은 명령어별로 다음과 같은 차이가 있다. MOVE의 경우 복사한 데

110 OpenFrame 유틸리티 참조 안내서

Page 125: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

이터 셋은 카탈로그 하지 않는다. COPY의 경우 복사 한 데이터 셋의 카탈로

그는 CATLG명령의 지정에 따른다. FROM 명령이 지정되면 UNCATLG는 무

시 처리된다.

COPY 명령을 기술한 경우에만 효력이 발생하며 복사한 데이터 셋을 카탈로

그에 등록한다. RENAME과 FROM 지정을 생략한 경우 복사한 데이터 셋을

카탈로그시키기 위하여 원본 데이터 셋은 카탈로그에서 삭제한다.

CATLG

출력 데이터 셋의 새로운 이름을 지정한다. 동일한 볼륨 내에서 이동 또는 복

사하는 경우 RENAME을 반드시 지정해야 한다.

RENAME=name

DCB 정보와 LABEL 정보를 주는 DD 문의 DD명을 지정하는 항목으로 미지

원 기능이다.

FROMDD=dd-name

DCB 정보와 LABEL 정보를 주는 DD 문의 DD명을 지정하는 항목으로 미지

원 기능이다.

TODD=dd-name

입력 데이터 셋을 언로드 형식으로 변환해 이동, 복사하는 것을 지정하는 항

목으로 미지원 기능이다.

UNLOAD

출력 데이터 셋의 권한정보를 입력 데이터 셋의 권한정보와 같게 만들 때 지

정하는 항목으로 미지원 기능이다.

COPYAUTH

MOVE(COPY) DSGROUP

데이터 셋 이름의 시작부터 특정위치까지의 일부 이름을 기술하여 해당 조건에 맞는 모든 데이터 셋들의

이동 또는 복사를 지정하는 명령어이다.

MOVE(COPY) DSGROUPNAME 명령어 구문은 다음과 같다.

[label] {MOVE|COPY} DSGROUP=name

,TO=device=volser

[,PASSWORD]

[,UNCATLG]

[,CATLG]

[,TODD=dd-name]

[,UNLOAD]

설명항목

이동 또는 복사하고자 하는 데이터 셋의 일부 이름을 지정한다. 예를 들어

DSGROUP을 TEST라고 지정한 경우 TEST.PDS, TEST.SDS.A01과 같은

DSGROUP=name

점(.)으로 구분된 첫 이름이 TEST로 시작되는 모든 데이터 셋들을 선택하여

처리한다. 만약 데이터 셋의 전체 이름을 기술한 경우는 그 데이터 셋만 처리

한다.

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

Page 126: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

이동 또는 복사하고자 하는 데이터 셋의 출력 device명과 볼륨을 지정한다.

device는 볼륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한 것으로

실제로는 무시된다.

TO=device=volser

OpenFrame에서는 미지원하는 기능으로 지정하더라도 무시된다. 원래는 작

업 대상 데이터 셋이 비밀번호로 관리되는 경우 해당 데이터 셋의 이동, 복사

를 지정한다.

PASSWORD

이동 또는 복사 처리 후 데이터 셋 카탈로그 정보의 삭제를 지정한다. 원본 데

이터 셋이 카탈로그 되어 있지 않을 때는 지정하지 않도록 한다. 기본적으로

UNCATLG

입력 데이터 셋의 카탈로그 정보는 삭제되나 복사한 데이터 셋의 카탈로그

삭제 방법은 명령어별로 다음과 같은 차이가 있다. MOVE의 경우 복사한 데

이터 셋은 카탈로그 하지 않는다. COPY의 경우 복사한 데이터 셋의 카탈로

그는 CATLG명령의 지정에 따른다. FROM 명령이 지정되면 UNCATLG는 무

시 처리된다.

COPY 명령을 기술한 경우에만 효력이 발생하며 복사한 데이터 셋을 카탈로

그에 등록한다. 복사한 데이터 셋을 카탈로그시키기 위하여 원본 데이터 셋

은 카탈로그에서 삭제한다.

CATLG

DCB정보와 LABEL 정보를 주는 DD 문의 DD명을 지정하는 항목으로 미지원

기능이다.

TODD=dd-name

출력 데이터 셋의 권한정보를 입력 데이터 셋의 권한정보와 같게 만들 때 지

정하는 항목으로 미지원 기능이다.

UNLOAD

MOVE(COPY) PDS

PDS 데이터 셋의 이동 또는 복사를 지정하는 명령어이다.

MOVE(COPY) PDS 명령어 구문은 다음과 같다.

[label] {MOVE|COPY} PDS=name

,TO=device=volser

[,FROM=device=volser]

[,EXPAND=n]

[,UNCATLG]

[,CATLG]

[,RENAME=name]

[,FROMDD=dd-name]

[,TODD=dd-name]

[,UNLOAD]

[,COPYAUTH]

설명항목

이동 또는 복사하고자 하는 PDS 데이터 셋 이름을 지정한다.PDS=name

112 OpenFrame 유틸리티 참조 안내서

Page 127: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

이동 또는 복사하고자 하는 PDS 데이터 셋의 출력 device명과 볼륨을 지정

한다. device는 볼륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한

것으로 실제로는 무시된다.

TO=device=volser

이동 또는 복사하고자 하는 원본 데이터 셋이 존재하는 볼륨을 지정한다.

device는 볼륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한 것으로

FROM=device=volser

실제로는 무시된다. MOVE 명령에서 FROM을 지정하게 되면 원본 데이터

셋을 삭제하지 않고 출력 데이터 셋은 카탈로그 하지 않는다. 따라서 입력 데

이터 셋이 카탈로그 되어 있으면 FROM은 지정하지 않는 것을 권장한다.

이동, 복사하는 PDS 데이터 셋의 블록 할당의 증가값을 지정하는 항목으로

미지원 기능이다.

EXPAND=n

이동 또는 복사 처리 후 데이터 셋 카탈로그 정보의 삭제를 지정한다. 원본 데

이터 셋이 카탈로그 되어 있지 않을 때는 지정하지 않도록 한다. 기본적으로

UNCATLG

입력 데이터 셋의 카탈로그 정보는 삭제되나 복사한 데이터 셋의 카탈로그

삭제 방법은 명령어별로 다음과 같은 차이가 있다. MOVE의 경우 복사한 데

이터 셋은 카탈로그 하지 않는다. COPY의 경우 복사한 데이터 셋의 카탈로

그는 CATLG 명령의 지정에 따른다. FROM 명령이 지정되면 UNCATLG는

무시 처리된다.

COPY 명령을 기술한 경우에만 효력이 발생하며 복사한 데이터 셋을 카탈로

그에 등록한다. RENAME과 FROM 지정을 생략한 경우 복사한 데이터 셋을

카탈로그 시키기 위하여 원본 데이터 셋은 카탈로그에서 삭제한다.

CATLG

출력 데이터 셋의 새로운 이름을 지정한다. 동일한 볼륨 내에서 이동 또는 복

사하는 경우 RENAME 문을 반드시 지정해야 한다.

RENAME=name

DCB정보와 LABEL정보를 주는 DD 문의 DD명을 지정하는 항목으로 미지원

기능이다.

FROMDD=dd-name

DCB정보와 LABEL정보를 주는 DD 문의 DD명을 지정하는 항목으로 미지원

기능이다.

TODD=dd-name

입력 데이터 셋을 언로드 형식으로 변환해 이동, 복사하는 것을 지정하는 항

목으로 미지원 기능이다.

UNLOAD

출력 데이터 셋의 권한 정보를 입력 데이터 셋의 권한 정보와 같게 만들 때 지

정하는 항목으로 미지원 기능이다.

COPYAUTH

MOVE(COPY) VOLUME

지정한 볼륨 내에 존재하는 모든 데이터 셋의 이동 또는 복사를 지정하는 명령어이다.

MOVE(COPY) VOLUME 명령어 구문은 다음과 같다.

[label] {MOVE|COPY} VOL[UME]=device=volser

,TO=device=volser

[,PASSWORD]

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

Page 128: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[,CATLG]

[,TODD=dd-name]

[,UNLOAD]

설명항목

이동 또는 복사하고자 하는 볼륨의 device명과 이름을 지정한다. device는 볼

륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한 것으로 실제로는

무시된다.

VOLUME=device=volser

이동 또는 복사하고자 하는 볼륨의 출력 device명과 볼륨을 지정한다. device

는 볼륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한 것으로 실제

로는 무시된다.

TO=device=volser

작업 대상 데이터 셋이 비밀번호로 관리되는 경우 해당 데이터 셋의 이동, 복

사를 지정하는 항목으로 미지원 기능이다.

PASSWORD

COPY명령인 경우에만 복사한 후 데이터 셋을 카탈로그정보에 등록 한다. 복

사한 데이터 셋을 카탈로그 시키기 위하여 원본 데이터 셋은 카탈로그에서

삭제한다.

CATLG

DCB 정보와 LABEL 정보를 주는 DD 문의 DD명을 지정하는 항목으로 미지

원 기능이다.

TODD=dd-name

입력 데이터 셋을 언로드 형식으로 변환해 이동, 복사하는 것을 지정하는 항

목으로 미지원 기능이다.

UNLOAD

보조 명령어

INCLUDE

MOVE(COPY) PDS 명령어와 함께 사용하며, 이동 또는 복사 대상 데이터 셋과 멤버를 추가하는 명령어

이다.

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

[label] INCLUDE DSN[AME]=name

,MEMBER=name

[,FROM=device=volser] ])}

설명항목

추가할 PDS 데이터 셋의 이름을 지정한다.DSNAME=name

지정한 PDS 데이터 셋의 추가할 멤버명을 지정한다.MEMBER=name

이동 또는 복사하고자 하는 원본 PDS 데이터 셋이 존재하는 볼륨을 지정한

다. device는 볼륨의 디바이스 이름을 지정하게 되나 문법을 맞추기 위한 것

으로 실제로는 무시된다.

FROM=device=volser

114 OpenFrame 유틸리티 참조 안내서

Page 129: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

EXCLUDE

MOVE(COPY) PDS 명령어와 함께 사용하며, 지정된 PDS 데이터 셋의 멤버 중에서 특정 멤버를 처리 대

상에서 제외시키는 명령어이다.

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

[label] EXCLUDE MEMBER=name

설명항목

이동 또는 복사 대상의 PDS 데이터 셋 멤버 중에서 제외시킬 멤버명을 지정

한다.

MEMBER=name

SELECT

MOVE(COPY) PDS 명령어와 함께 사용하며, 지정된 PDS 데이터 셋의 멤버 중에서 특정 멤버만을 이동

또는 복사시키는 명령어이다.

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

[label] SELECT MEMBER={(name[,name][,...]) |

((name,newname),[,(name,newname)][,...])}

설명항목

이동 또는 복사 대상으로 지정한 PDS 데이터 셋 멤버중에서 선택하여 처리

할 멤버명을 지정한다.

MEMBER=name

이동 또는 복사 대상으로 지정한 PDS 데이터 셋 멤버중에서 선택하여 처리

할 멤버명과 처리 후 변경 멤버명을 지정한다.

(name,newname)

REPLACE

MOVE(COPY) PDS 명령어와 함께 사용하며, 지정된 PDS 데이터 셋의 멤버 중 특정 멤버를 제외시켜 다

른 데이터 셋의 동일한 이름을 가진 멤버로 교체시키는 명령어이다.

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

[label] REPALCE DSN[AME]=name

,MEMBER=name

[,FROM=device=volser]

설명항목

교체할 멤버가 속해 있는 PDS 데이터 셋 이름을 지정한다.DSNAME=name

이동 또는 복사 대상으로 지정한 PDS 데이터 셋 멤버 중에서 선택하여 처리

할 멤버명과 처리 후 변경 멤버명을 지정한다.

MEMBER=name

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

Page 130: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

지정한 데이터 셋이 있는 볼륨을 지정한다. 이동 또는 복사하고자 하는 원본

PDS 데이터 셋이 존재하는 볼륨을 지정한다. device는 볼륨의 디바이스 이

름을 지정하게 되나 문법을 맞추기 위한 것으로 실제로는 무시된다.

FROM=device=volser

사용예제

DEFVOL 볼륨에 존재하고 카탈로그에 등록되어 있는 TEST.DS01 데이터 셋과 TEST.DS02 데이터 셋을

볼륨 100000으로 이동하는 예제이다. TEST.DS01은 다시 카탈로그에 등록되나 TEST.DS02는 카탈로그

에 등록되지 않는다.

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

//STEP1 EXEC PGM=JSFMOVE

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

MOVE DSNAME=TEST.DS01,TO=3390=100000

MOVE DSNAME=TEST.DS02,TO=3390=100000,UNCATLG

/*

DEFVOL 볼륨에 존재하며 카탈로그에 등록되지 않은 TEST.DS01 데이터 셋과 TEST.DS02 데이터 셋을

볼륨 100000으로 복사하는 예제이다. 복사 후에도 TEST.DS01은 카탈로그에 등록되지 않는다. TEST.DS02

또한 CATLG를 지정하였으나 원본이 카탈로그에 등록되지 않았으므로 역시 카탈로그에 등록 처리하지

않는다.

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

//STEP1 EXEC PGM=JSFMOVE

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

COPY DSNAME=TEST.DS01,FROM=3380=DEFVOL,TO=3390=100000

COPY DSNAME=TEST.DS02,FROM=3380=DEFVOL,TO=3390=100000,CATLG

/*

카탈로그에 등록되어 있는 TEST.DS01 데이터 셋을 TEST.DS02로 이름을 변경하여 DEFVOL 볼륨에서

100000 볼륨으로 복사하는 예제이다.

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

//STEP1 EXEC PGM=JSFMOVE

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

COPY DSNAME=TEST.DS01,FROM=3380=DEFVOL,TO=3390=100000,

RENAME=TEST.DS02

/*

116 OpenFrame 유틸리티 참조 안내서

Page 131: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

TEST.PDS01 PDS 데이터 셋의 멤버인 A를 제외하여 DEFVOL 볼륨에서 200000 볼륨으로 이동하는 예

제이다. 이 때 100000 볼륨의 TEST.PDS02의 멤버인 D를 추가하여 처리한다.

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

//STEP1 EXEC PGM=JSFMOVE

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

MOVE PDS=TEST.PDS01,FROM=3380=DEFVOL,

TO=3390=200000

EXCLUDE MEMBER=A

INCLUDE DSNAME=TEST.PDS02,MEMBER=D,

FROM=3390=100000

/*

카탈로그에 등록되지 않은 TEST.PDS01 PDS 데이터 셋을 DEFVOL 볼륨에서 100000 볼륨으로 복사하

는 예제이다. TEST.PDS02의 멤버 A로 교체하여 복사하고 멤버 C를 추가하여 복사한다.

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

//STEP1 EXEC PGM=JSFMOVE

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

COPY PDS=TEST.PDS01,FROM=3380=DEFVOL,

TO=3390=200000

REPLACE DSNAME=TEST.PDS02,MEMBER=A

INCLUDE DSNAME=TEST.PDS02,MEMBER=C

/*

TEST.PDS01 PDS 데이터 셋을 TEST.PDS02 데이터 셋으로 이름을 변경하여 DEFVOL 볼륨에서 100000

볼륨으로 복사하는 예제이다. 복사 대상 멤버는 A, B, C가 되며 B 멤버의 경우 X로 이름을 바꾸어 복사한

다.

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

//STEP1 EXEC PGM=JSFMOVE

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

COPY PDS=TEST.PDS01,RENAME=TEST.PDS02,

TO=3390=100000,

FROM=3380=DEFVOL

SELECT MEMBER=(A,(B,X),C)

/*

카탈로그에 등록되어 있는 데이터 셋 중 MOVE.TEST01, MOVE.PDS, MOVE.SDS91과 같이 MOVE로 시

작되는 모든 데이터 셋을 100000 볼륨으로 이동하는 예제이다.

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

Page 132: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

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

//STEP1 EXEC PGM=JSFMOVE

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

MOVE DSGROUP=MOVE,TO=3390=100000

/*

DEFVOL 볼륨에 존재하는 모든 데이터 셋들을 100000 볼륨으로 이동하는 예제이다.

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

//STEP1 EXEC PGM=JSFMOVE

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

MOVE VOLUME=3380=DEFVOL,

TO=3390=100000

/*

유의사항

JSFMOVE 유틸리티 프로그램의 결과는 다음과 같다.

● 정상적으로 실행한 경우

코드 0을 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Warning 형태의 에러로, 다음의 경우가 해당된다.4

- 이동 또는 복사할 대상 데이터 셋을 찾을 수 없는 경우

- 이동 또는 복사하려는 곳에 동일한 이름의 데이터 셋이 이미 존재하는 경우

SYSIN DD에서 잘못된 문법의 명령어를 입력한 경우 발생하는 에러이다.8

프로그램 처리 오류 또는 시스템과 관련된 에러로, 다음의 경우가 해당된다.16

- 기타 JSFMOVE 유틸리티 프로그램 에러

- OpenFrame 시스템 라이브러리 초기화 실패

118 OpenFrame 유틸리티 참조 안내서

Page 133: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

제3장 기타 유틸리티

본 장에서는 앞 장에서 다루지 않은 기타 유틸리티에 대해 기술한다.

3.1. DSDIFF데이터 셋의 레코드별 차이점을 보여주는 유틸리티 프로그램이다.

OpenFrame 설치 후 또는 유틸리티나 라이브러리 등의 각종 모듈을 업데이트한 후에 실시하는 검증 테스

트로서 수행 결과 데이터 셋이 예상대로 생성되었는지 확인하기 위한 용도로 사용할 수 있다

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

비교 대상 데이터 셋의 ddname 목록을 기술한다.SYSIN DD

리스트의 구분자로 콤마(,)를 사용한다.

예) AA,BB,CC: AA와 BB 그리고 CC를 비교한다.

비교할 데이터 셋을 정의한다.TARGET DD

이 비교 데이터 셋은 SYSIN DD에 기술한 ddname 목록에 포함되어야 한다.

명령어 설정

SYSIN DD에 기술하는 데이터 셋 리스트의 구문은 다음과 같다.

ddname,ddname[ddname,....]

이와 같이 SYSIN DD에 데이터 셋 리스트를 기술하는 것 외에 설정해야 하는 명령어는 없다.

사용예제

다음은 EXPECTED, INREC, SUM DD 세 개의 레코드를 비교하여 차이점을 보여주는 예이다.

제3장 기타 유틸리티 119

Page 134: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

//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 유틸리티 프로그램이 Batch 애플리케이션을 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

Batch 애플리케이션에서 받은 코드를 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSOUT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

레코드에서 한 개 이상의 차이가 있을 경우에 해당한다.4

SYSIN으로 주어진 ddname이 존재하지 않거나 데이터 셋 I/O 에러 등의 OpenFrame 혹은

UNIX 에러를 의미한다.

16

3.2. EZTPA00JCL에서 SYSIN으로 입력된 CA-Easytrieve Plus 스크립트를 실행시켜주는 유틸리티이다.

스크립트를 실행하기 위해 외부 프로그램인 TmaxSoft 사의 ProTrieve를 사용하게 되며 외부 프로그램을

위한 각종 환경을 설정하게 된다.

CA-Easytrieve Plus 스크립트를 통해 데이터 셋 입출력, 데이터 가공 및 레포트 생성 등의 작업을 할 수 있

다.

참고

본 안내서에서는 CA-Easytrieve Plus 스크립트의 상세한 내용은 기술하지 않는다. 해당 내용은 Pro

Trieve의 안내서를 참고한다.

120 OpenFrame 유틸리티 참조 안내서

Page 135: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

다음은 EZTPA00가 동작하는 방법이다.

[그림 3.1] EZTAP00 동작

CA-Easytrieve Plus 스트립트가 ProTrieve에 전달되어 실행된다.

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

CA-Easytrieve Plus 스크립트 입력 데이터 셋을 지정한다.SYSIN DD

CA-Easytrieve Plus의 결과로 생긴 레포트나 DISPLAY로 기술된 메시지의 출력 데이

터셋을 지정한다.

SYSPRINT DD

CA-Easytrieve Plus 실행 중 EZTPA00, ProTrieve로부터 발생한 메시지의 출력 데이

터 셋을 지정한다.

SYSOUT DD

CA-Easytrieve Plus 구문 중 FILE 처리에 사용되는 데이터 셋을 지정한다. DD 이름은

CA-Easytrieve Plus 스크립트의 파일명과 같아야 한다.

anyname DD

사용예제

다음은 EZTPA00을 사용하여 FILEA에서 FILEB로 복사하는 예제이다.

제3장 기타 유틸리티 121

Page 136: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

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

//EZPLUS EXEC PGM=EZTPA00

//SYSPRINT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//FILEA DD DSN=OPENFRAME.EZPLUS.FILEA,DISP=SHR

//FILEB DD DSN=OPENFRAME.EZPLUS.FILEB,DISP=(NEW,CATLG),

// DCB=(RECFM=FB,LRECL=1024,BLKSIZE=10240)

//SYSIN DD *

FILE FILEA

RECA 1 1024 A

FILE FILEB

RECB 1 1024 A

*

JOB INPUT FILEA

MOVE FILEA TO FILEB

PUT FILEB

/*

SYSOUT DD가 존재하지 않으면 유틸리티 실행 중 발생한 메시지가 SYSPRINT에 출력되어 원하는

SYSPRINT 출력 결과를 얻지 못할 수도 있으므로 주의한다.

유의사항

EZTPA00을 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

외부 프로그램으로부터 받은 코드 0을 반환한다.

● 에러가 발생한 경우

반환코드 16을 반환한다.

에러에 대한 자세한 메시지는 SYSOUT DD에 출력된다.

관련 환경설정

EZTPA00을 구동하기 위한 설정파일은 ezplus.conf 이다.

다음은 ezplus.conf 파일의 예이다.

122 OpenFrame 유틸리티 참조 안내서

Page 137: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[EZV]

WORK_DIR=${OPENFRAME_HOME}/temp/ezwork

설명항목

EZTPA00에서 Protrieve를 호출하여 사용하기 위한 작업 공간을 정의한

다. Protrieve의 입력이 되는 스크립트를 임시로 저장하기 위해 사용된다.

WORK_DIR

3.3. FTPBatch JOB에서 데이터 셋을 remote host에 전송하거나 remote host로부터 데이터를 전송받아 데이터 셋

으로 저장하는 유틸리티 프로그램이다.

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

FTP 유틸리티 컨트롤 문을 지정한다.INPUT DD 또는

SYSIN DD

메시지 출력을 위한 출력 데이터 셋을 지정한다.SYSPRINT DD

명령어 설정

FTP를 실행하기 위해서는 JCL의 EXEC 구문에 다음과 같이 지정한다.

//STEP EXEC PGM=FTP

INPUT DD 또는 SYSIN DD에 다음 항목을 이용하여 FTP 컨트롤 문을 기술한다.

설명항목

INPUT DD의 첫 부분에 FTP 서버 연결을 위한 IP를 설정하며 FTP 연결을 위

한 필수 항목이다.

connect_ip

INPUT DD의 connect_ip 다음에 반드시 FTP 서버 인증을 위한 사용자 ID와

비밀번호를 기술해야 하며 FTP 연결을 위한 필수 항목이다.

user_id password

바이너리 형식이나 ASCII 형식으로 파일을 전송하기 위해 포맷을 지정한다.KSC5601

(NOTYPE | BIN | ASC)

바이너리 형식이나 ASCII 형식으로 파일을 전송하기 위해 포맷을 지정한다.SJISKANJI

제3장 기타 유틸리티 123

Page 138: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

(NOTYPE | BIN | ASC)

데이터 전송 형식을 바이너리로 변경한다.BINARY | BIN

데이터 전송형식을 ASCII로 변경한다.ASCII | ASC

remote host의 현재 상태를 표시한다.STAT

remote host와 접속을 끊는다.CLOSE

FTP프로그램을 종료한다.QUIT

remote host의 현대 디렉터리 정보를 조회한다.LS

remote host의 현재 디렉터리를 표시한다.PWD

실제 기능은 하지 않으나 에러를 발생시키지 않도록 지원하는 컨트롤 문이

다.

LOCSITE

remote host의 디렉터리를 변경한다.CD

local host의 디렉터리를 변경한다.LCD

remote host의 파일을 삭제한다.DELETE

remote host의 파일이름을 변경한다.RENAME

MAXCC를 지정한다.SET

MAXCC=

local host의 파일 또는 데이터 셋을 remote host에 전송한다.PUT

remote host에 있는 파일을 local host로 전송한다.GET

REPLACE 옵션이 지정되어 있고, 전송하려는 파일이 local host에 있으면 경

고 메시지를 출력하고 해당 파일을 덮어쓴다.

(REPLACE)

REPLACE 옵션이 지정되어 있지 않고, 전송하려는 파일이 local host에 있으

면 에러가 발생한다.

remote host에 이미 존재하는 파일에 추가적으로 데이터를 추가한다. 단, re

mote host에 지정한 파일이 존재하지 않으면 신규로 생성된다.

APPEND

실제 기능은 하지 않으나 에러를 발생시키지 않도록 지원하는 컨트롤 문이

다.

SENDSITE

복수 개의 remote host의 파일을 삭제한다.MDELETE

interactive 또는 noninteractive 모드를 설정한다.PROMPT

데이터 전송형식을 지정한다.TYPE

- I | i : 데이터 전송형식을 바이너리로 설정한다.(I|i|A|a)

- A | a : 데이터 전송형식을 ASCII로 설정한다.

124 OpenFrame 유틸리티 참조 안내서

Page 139: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

사용예제

다음은 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=*

/*

관련 환경설정

FTP 프로그램은 임시 파일의 위치를 지정하거나 FTP 서버로부터의 에러 코드를 판별하기 위해 ftp.conf

파일에 해당 정보를 기술한다.

다음은 ftp.conf 파일의 예이다.

[DIRECTORY]

FTP_WORK_DIR=${OPENFRAME_HOME}/temp

[ERROR]

ERRORID=error message

[UNIT]

DEFAULT=3390

[TACF]

DATASET=YES|NO

[DIRECTORY]

DIRECTORY의 설정 항목은 다음과 같다.

설명항목

FTP 프로그램이 FTP 서버에 데이터 전송을 할 때 사용하는 작업 디렉터리

정보를 기술한다.

FTP_WORK_DIR

제3장 기타 유틸리티 125

Page 140: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[ERROR]

FTP 서버로부터 반환되는 에러 메시지 정보를 기술한다. FTP 프로그램은 이 에러 메시지 정보와 FTP 서

버로부터 반환된 메시지와 비교해서 에러 상황을 판단한다.

설명항목

ERRORID는 FTP 서버로부터 반환되는 에러 메시지를 구별하기 위한 문장

을 사용자가 자유롭게 기술한다.

ERRORID

error message는 FTP 서버에서 반환되는 에러 메시지이다.

[UNIT]

UNIT의 설정 항목은 다음과 같다.

설명항목

FTP 프로그램이 데이터 셋 전송할 때 사용할 default unit 정보를 기술한다.DEFAULT

[TACF]

TACF의 설정 항목은 다음과 같다.

설명항목

FTP 프로그램을 실행하는 사용자의 인증 체크 및 데이터 셋의 접근권한 여

부를 기술한다. 사용자는 FTP 서버에 접속하는 사용자가 아니라 FTP 프로그

램을 실행한 JOB의 실행 사용자이다.

DATASET

3.4. JDJDUMMYJCL에 기술된 내용들이 정상적으로 실행되는지 확인하기 위해 사용하는 테스트용 유틸리티 프로그램이

다.

실제로 유틸리티가 수행하는 처리는 없다.

즉, 아무런 처리도 하지 않는 빈 프로그램을 JOB STEP에서 실행해 봄으로써 JCL이 올바로 작성이 되었

는지, JOB 환경에서 처리되어야 하는 DD 문의 처리 및 데이터 셋의 할당과 같은 일이 정상적으로 수행이

되고 있는지 알아보기 위한 용도로 사용될 수 있다. 혹은 데이터 셋을 신규로 생성하거나 삭제하는 처리만

수행하는 목적의 JOB STEP인 경우에도 사용할 수 있다.

DD 설정

JDJDUMMY 유틸리티 프로그램을 실행하기 위해서 특별히 요구되는 DD는 없다.

126 OpenFrame 유틸리티 참조 안내서

Page 141: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

다만 해당 JOB STEP에 기술된 모든 DD문에 대해서 JOB STEP에서 프로그램을 호출하기 이전에 이루어

지는 할당 작업이 수행되므로 이러한 처리 방식을 활용해 데이터 셋을 신규로 생성하거나 삭제하기 위하

여 필요한대로 DD 문을 기술할 수 있다.

명령어 설정

JDJDUMMY 유틸리티 프로그램을 실행하기 위해서 입력해야 하는 명령어는 없다.

사용예제

다음은 DATASET1을 새로 생성하고 DATASET2를 삭제하는 예이다. EXEC 문에 프로그램을 지정하지

않으면 JCL 문법에 위배되기 때문에 이를 피하기 위해서 JDJDUMMY 프로그램을 지정한다.

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

//STEP01 EXEC PGM=JDJDUMMY

//NEW DD DSNAME=DATASET1,DISP=(NEW,KEEP),

// DCB=(RECFM=FB,LRECL=100,BLKSIZE=1000)

//DEL DD DSNAME=DATASET2,DISP=(OLD,DELETE)

유의사항

JDJDUMMY 유틸리티 프로그램은 항상 0을 반환한다.

3.5. PGMRTS00Shared Object로 컴파일된 Batch 애플리케이션을 JCL로 실행시키려고 할 때 OpenFrame/Batch 엔진 모

듈인 JCL Runner에 의해 간접적으로 실행되는 실행 환경 제어 유틸리티 프로그램이다.

JCL의 EXEC 구문에서 PGM 파라미터 값으로 Shared Object로 컴파일된 Batch 애플리케이션을 지정할

경우 JCL Runner가 PGMRTS00 유틸리티 프로그램을 우선 실행시킨다. 실행된 PGMRTS00 유틸리티 프

로그램은 Shared Object로 컴파일된 Batch 애플리케이션을 동적으로 메모리에 LOAD하여 엔트리 포인트

를 찾아 호출한 후 애플리케이션을 실행시켜준다.

다음은 PGMRTS00 유틸리티 프로그램의 동작방법이다.

제3장 기타 유틸리티 127

Page 142: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

[그림 3.2] PGMRTS00 동작 구조

1. JCL Runner는 실행시키려는 애플리케이션의 바이너리 형식을 검사한다.

2. 애플리케이션의 바이너리 형식이 Shared Object인 경우 JCL Runner는 PGMRTS00 유틸리티 프로그

램을 실행하고 애플리케이션을 동적으로 실행시킨다.

3. 애플리케이션의 바이너리 형식이 Shared Object가 아닌 경우 JCL Runner는 PGMRTS00 유틸리티 프

로그램을 통하지 않고 바로 애플리케이션을 실행시킨다.

DD 설정

PGMRTS00 유틸리티 프로그램에서 단독으로 사용하는 DD 설정은 없으며 최종적으로 실행되는 Batch

애플리케이션에서 필요로 하는 DD를 자동으로 설정해준다.

명령어 설정

PGMRTS00 유틸리티 프로그램에서 따로 설정해야 하는 명령어는 없다.

사용예제

사용자가 PGMRTS00 유틸리티 프로그램을 직접 JCL에 기술해서 사용하는 경우는 없다.

128 OpenFrame 유틸리티 참조 안내서

Page 143: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

유의사항

PGMRTS00 유틸리티 프로그램이 Batch 애플리케이션을 실행한 결과는 다음과 같다.

● 정상적으로 실행한 경우

Batch 애플리케이션에서 받은 코드를 반환한다.

● 에러가 발생한 경우

해당 에러 메시지를 SYSPRINT DD에 출력하고 에러에 해당하는 코드를 반환한다.

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

설명코드

Unrecoverable 형태의 에러로, 다음의 경우가 해당된다.12

- 데이터 셋 인증관련 준비과정 실패

- 프로그램 파라미터 개수 지정 에러

- 실행시켜야할 애플리케이션을 찾지 못하는 에러

- 지원하지 않는 애플리케이션 바이너리 형식

- 동적 메모리 LOAD(dlopen) 실패

- 엔트리 포인트 검색(dlsym) 실패

시스템과 관련된 에러로, 다음의 경우가 해당된다.16

- OpenFrame 시스템 라이브러리 초기화 실패

- 애플리케이션의 바이너리 형식 체크 에러

- 프로세스 분기(fork) 실패

- I/O 리다이렉트 실패

제3장 기타 유틸리티 129

Page 144: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

관련 환경설정

JCL Runner의 설정 파일인 tjclrun.conf 파일에서 PGMRTS00 유틸리티 프로그램에 대한 설정을 할 수 있

다.

Shared Object로 만들어진 Batch 애플리케이션을 JCL에서 직접 실행할 수 있도록 하기 위해서는 해당 설

정 파일의 [PGM]에 다음과 같은 항목을 추가한다.

[PGM] USE_PGMRTS00=YES

USE_PGMRTS00 항목이 별도로 설정되지 않은 경우 기본값으로 NO가 설정된다.

참고

유사한 유틸리티 프로그램으로는 IKJEFT01(TSO Terminal Monitoring Program)과 DFSRRC00(HiDB

Region Control Program)이 있다.

3.6. SDSF사용자가 입력한 명령어를 스크립트 형태로 작성하여 Batch JOB을 컨트롤할 수 있는 유틸리티 프로그램

이다.

SDSF에서는 HOLD 상태의 JOB을 검색하여 JOB을 START 시키는 기능을 지원한다.

참고

TSO 환경의 ISPF는 지원하지 않는다.

DD 설정

DD 설정 항목은 다음과 같다.

설명항목

SDSF에서 출력하는 메시지를 저장할 데이터 셋을 지정한다.ISFOUT DD

SDSF에서 사용할 스크립트를 지정한다.ISFIN DD

명령어 설정

HOLD 상태의 JOB을 검색하여 JOB을 START 시키기 위한 명령어이다.

설명항목

ISPF의 입력 패널에서 실행 전의 JOB의 상태를 보여준다.I

130 OpenFrame 유틸리티 참조 안내서

Page 145: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

설명항목

HOLD 상태의 JOB을 검색하기 위하여 PREFIX 패턴으로 주어진 문자열을 기반으로

일차적인 검색을 시작한다.

PREFIX 패턴

PREFIX 패턴으로 검색한 JOB 중에서 FIND 패턴으로 주어진 문자열을 기반으로 실

제 구동시킬 HOLD 상태의 JOB을 찾는다.

FIND 패턴

HOLD 상태의 JOB을 실제로 START시킨다.++A

사용예제

다음은 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

//*

#############################################################

## 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

/*

제3장 기타 유틸리티 131

Page 146: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에
Page 147: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

색인

JJDJDUMMY

DD 설정, 126

반환 코드, 127

사용예제, 127

JSCVSUT

ALTER, 8

BLDINDEX, 11

CANCEL, 53

CHECKCAT, 12

DD 설정, 6

DEFINE, 14

DEFINE ALIAS, 17

DEFINE ALTERNATEINDEX, 18

DEFINE CLUSTER, 20

DEFINE GDG, 23

DEFINE NONVSAM, 25

DEFINE PATH, 26

DEFINE USERCATALOG/MASTERCATALOG, 28

DELETE, 30

EXPORT, 31

EXTRACT, 32

IF-THEN-ELSE, 51

IMPORT, 33

LISTCAT, 35

LISTENT, 39

LISTST, 40

Null, 52

PRINT, 41

REPRO, 44

SET, 53

SPLITMRG, 46

SRCHCAT, 48

VERIFY, 50

관련 환경설정, 55

기능 명령어, 8

보조 명령어, 51

컨디션 코드, 54

JSCVSUT 보조 명령어, 51

JSDEDIT

DD 설정, 64

EDIT, 64

반환 코드, 68

사용예제, 65

JSDPCPY

COPY, COMPRESS, EXPAND, 69

DD 설정, 69

EMPTY, 70

EXCLUDE, 71

INDD, 71

SELECT, 70

명령어 약어, 77

반환 코드, 76

사용예제, 71

JSDPRNT

DD 설정, 77

EXITS, 81

LABELS, 81

MEMBER, 80

PRINT, 78

RECORD, 80

TITLE, 81

반환 코드, 82

사용예제, 81

JSDSCPY

DD 설정, 83

EXITS, 86

GENERATE, 83

LABELS, 86

MEMBER, 85

RECORD, 84

반환 코드, 88

사용예제, 86

JSDUPDT

ADD, REPL, REPRO, CHANGE, 90

ALIAS, 92

DD 설정, 89

ENDUP, 92

LABEL, 92

색인 133

Page 148: 유틸리티 참조 안내서 - 티맥스소프트 -TmaxSoft€¦ ·  · 2013-06-29CA-EasyTrieve Plus Reference Guide 6.4 Communications Server IP User's Guide and Commands 안내서에

MASK, 92

NUMBER, DELETE, 91

반환 코드, 95

사용예제, 92

JSFCTLG

CATLG, 97

DD 설정, 96

SCRATCH, 96

UNCATLG, 97

반환 코드, 99

사용예제, 98

JSFDCDP

COMP, 103

DD 설정, 100

DUMP, 100

PRINT, 103

RESTORE, 102

반환 코드, 104

사용예제, 103

JSFILST

DD 설정, 105

LISTPDS, 105

LISTVTOC, 106

반환 코드, 108

사용예제, 106

JSFMOVE

DD 설정, 110

EXCLUDE, 115

INCLUDE, 114

MOVE(COPY) DSGROUP, 111

MOVE(COPY) DSNAME, 110

MOVE(COPY) PDS, 112

MOVE(COPY) VOLUME, 113

REPLACE, 115

SELECT, 115

기능 명령어, 110

반환 코드, 118

보조 명령어, 114

사용예제, 116

134 OpenFrame 유틸리티 참조 안내서