132
OpenFrame 참조 안내서 OpenFrame/Base v5.1, Batch for VOS3 v2.0 Copyright © 2009 TmaxSoft Co., Ltd. All Rights Reserved.

OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

OpenFrame

툴 참조 안내서

OpenFrame/Base v5.1, Batch for VOS3 v2.0

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

Page 2: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

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: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

내용 목차

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

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

1.1. 툴 소개 ........................................................................................................................ 1

제2장 초기화 툴 .......................................................................................................................... 5

2.1. mascat ........................................................................................................................ 5

2.2. voladd ......................................................................................................................... 7

2.3. pdsgen ........................................................................................................................ 8

2.4. lockds .......................................................................................................................... 9

제3장 마이그레이션 툴 .............................................................................................................. 11

3.1. cobgensch ................................................................................................................. 11

3.2. pligensch ................................................................................................................... 15

3.3. sqlgensch .................................................................................................................. 18

3.4. dsmigin ...................................................................................................................... 19

3.5. dsmigout .................................................................................................................... 25

3.6. tplipp ......................................................................................................................... 27

3.7. hcob85c ..................................................................................................................... 29

제4장 데이터 셋 관리 툴 ............................................................................................................ 55

4.1. dsview ....................................................................................................................... 55

4.2. dsedit ........................................................................................................................ 57

4.3. dsload ....................................................................................................................... 60

4.4. dssave ....................................................................................................................... 62

4.5. dslist .......................................................................................................................... 64

4.6. dstouch ...................................................................................................................... 68

4.7. dscopy ....................................................................................................................... 69

4.8. dsmove ...................................................................................................................... 71

4.9. dsshm ....................................................................................................................... 75

4.10. dscreate ................................................................................................................... 76

4.11. dsdelete ................................................................................................................... 78

4.12. gdgcreate ................................................................................................................. 79

4.13. gdgdelete ................................................................................................................. 80

4.14. idcams ..................................................................................................................... 81

4.15. listvol ....................................................................................................................... 87

4.16. listcat ....................................................................................................................... 89

4.17. lockm ....................................................................................................................... 91

제5장 카탈로그 관리 툴 ............................................................................................................. 95

5.1. icfdump ...................................................................................................................... 95

5.2. icfload ........................................................................................................................ 96

5.3. icfscan ....................................................................................................................... 97

5.4. icfspchk ..................................................................................................................... 98

OpenFrame iii

Page 4: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

제6장 Batch 시스템 툴 ............................................................................................................ 101

6.1. tjesinit ...................................................................................................................... 101

6.2. dlclean ..................................................................................................................... 102

6.3. jclview ...................................................................................................................... 103

6.4. textrun ..................................................................................................................... 109

6.5. dlupdate ................................................................................................................... 112

제7장 기타 툴 ......................................................................................................................... 115

7.1. enpasswd ................................................................................................................ 115

7.2. oferror ...................................................................................................................... 116

7.3. offile ........................................................................................................................ 117

7.4. ofversion .................................................................................................................. 118

iv OpenFrame 툴 참조 안내서

Page 5: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

그림 목차

[그림 3.1] PL/I 스키마 파일 생성과 OpenFrame 데이터 셋 생성 과정 ............................................ 15

[그림 3.2] tplipp 구조 ................................................................................................................. 28

[그림 6.1] jclview -초기화면 ...................................................................................................... 105

[그림 6.2] jclview -메뉴선택 화면 .............................................................................................. 105

[그림 6.3] jclview - JCL 파일 open 후 화면 ................................................................................ 106

[그림 6.4] jclview - 데이터 셋 정보열람 화면 .............................................................................. 106

[그림 6.5] jclview - GDG 멤버 정보조회 화면 ............................................................................. 107

[그림 6.6] jclview - 데이터 셋 검색 화면 ..................................................................................... 107

OpenFrame v

Page 6: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를
Page 7: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

안내서에 대하여

안내서의 대상

본 안내서는 리호스팅 솔루션인 Tmax OpenFrame®(이하 OpenFrame) 에서 필요로 하는 각종 툴 프로그

램을 사용하는 사용자를 대상으로 기술한다.

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

돕기 위해 OpenFrame 안내서 중 “시작하기 안내서”와 “Batch 안내서”를 먼저 숙지할 것을 권장한다.

안내서의 제한 조건

본 안내서는 OpenFrame에서 제공하는 문법을 제외하고는 언급하지 않는다.

참고

Mainframe의 COBOL 관련 설명은 참고 문헌에 설명된 안내서를 참고한다.

안내서에 대하여 vii

Page 8: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

안내서 구성

툴 참조 안내서는 총 7개의 장으로 구성되어 있다.

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

● 제1장: 개요

각 장에서 다룰 툴의 전반적인 개요에 대해 기술한다.

● 제2장: 초기화 툴

초기화 툴 프로그램을 사용하여 OpenFrame을 초기화하는 방법에 대해 기술한다.

● 제3장: 마이그레이션 툴

마이그레이션 툴 프로그램을 사용하여 데이터 셋 관련 작업을 처리하는 방법에 대해 기술한다.

● 제4장: 데이터 셋 관리 툴

데이터 셋 관리 툴 프로그램을 사용하여 데이터 셋 관련 작업을 처리하는 방법에 대해 기술한다.

● 제5장: 카탈로그 관리 툴

카탈로그 관리 툴 프로그램을 사용하여 데이터 셋 관련 작업을 처리하는 방법에 대해 기술한다.

● 제6장: 배치 시스템 툴

배치 시스템에서 필요로 하는 툴 프로그램 사용법에 대해 기술한다.

● 제7장: 기타 툴

사용자 편의를 위해 제공되는 초기화 툴, 마이그레이션 툴, 데이터 셋 관리 툴, 카탈로그 관리 툴, 배치

시스템 툴 이외의 툴을 사용하는 방법에 대해 기술한다.

viii OpenFrame 툴 참조 안내서

Page 9: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

안내서 규약

의미표기

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

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

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

강조진하게

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

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

메일계정, 웹 사이트하이퍼링크

메뉴의 진행 순서>

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

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

참고 또는 주의사항참고

그림 이름[그림 1.1]

표 이름[표 1.1]

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

옵션 인수 값[ ]

선택 인수 값|

스페이스_

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

안내서에 대하여 ix

Page 10: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

시스템 사용 환경

요구 사항

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

COBOL2002 컴파일러Compiler

x OpenFrame 툴 참조 안내서

Page 11: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

관련 안내서

설명안내서

OpenFrame의 기본 개념과 개발 사상에 대해 기술한 안내서이다.OpenFrame

시작하기 안내서

TJES가 OpenFrame 시스템의 Batch JOB 관리하는 내용에 대해 기술

한 안내서이다.

OpenFrame

TJES 안내서

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

다.

OpenFrame

Batch 안내서

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

다.

OpenFrame

Base 안내서

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

등에 대해 기술한 안내서이다.

OpenFrame

데이터 셋 안내서

VSAM에 대응하는 제품인 TSAM에 대한 소개와 데이터 셋 종류 및 관

리 방법, 데이터 셋 처리 방법에 대해 기술한 안내서이다.

Tibero

TSAM 안내서

참고 문헌

안내서제품

COBOL2002 使用の手引 手引編Mainframe

VOS3 COBOL85 言語 文法書

안내서에 대하여 xi

Page 12: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

연락처

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: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

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: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를
Page 15: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

제1장 개요

1.1. 툴 소개OpenFrame 툴 프로그램은 Batch JOB으로 실행되는 OpenFrame 유틸리티 프로그램과는 다르게, UNIX

셸에서 직접 사용자의 입력을 받아서 실행되는 프로그램을 의미한다.

OpenFrame 툴 프로그램은 Mainframe에서 사용되었던 애플리케이션이나 데이터 셋 등을 마이그레이션

하기 위한 기능을 제공하거나, OpenFrame Batch 시스템 또는 Online 시스템을 운영하는데 필요한 기능

을 제공한다.

초기화 툴

다음은 OpenFrame 초기화를 위한 프로그램 목록이다.

설명프로그램명

OpenFrame 제품을 처음 설치할 때, 마스터 카탈로그를 생성하는 툴이다.mascat

OpenFrame 제품을 처음 설치할 때, VVDS를 생성하고 마스터 카탈로그에 등록하는

툴이다.

voladd

PDS를 생성하거나 OpenFrame 인스톨러에서 시스템에 필요한 PDS를 생성하는 툴

이다.

pdsgen

Batch 시스템을 부팅하기 전에 초기화 처리로서, Lock 데이터 셋 혹은 로그 데이터 셋

을 생성 또는 제거하는 툴이다.

lockds

마이그레이션 툴

다음은 OpenFrame 마이그레이션을 위한 프로그램 목록이다.

설명프로그램명

Mainframe 데이터 셋을 OpenFrame 데이터 셋으로 마이그레이션하는 과정에서 필요

한 데이터 셋 마이그레이션 스키마 파일을 생성하는 툴이다. COBOL Copybook 소스

파일을 참조하여 스키마 파일을 생성한다.

cobgensch

Mainframe 데이터 셋을 OpenFrame 데이터 셋으로 마이그레이션하는 과정에서 필요

한 데이터 셋 마이그레이션 스키마 파일을 생성하는 툴이다. pligensch는 PL/I 소스파

일을 참조하여 스키마 파일을 생성한다.

pligensch

제1장 개요 1

Page 16: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명프로그램명

Mainframe 데이터 셋을 OpenFrame 데이터 셋으로 마이그레이션하는 과정에서 필요

한 데이터 셋 마이그레이션 스키마 파일을 생성하는 툴이다. sqlgensch는 SQL 테이

블 생성 스크립트를 참조하여 스키마 파일을 생성한다.

sqlgensch

EBCDIC 코드 형태의 Mainframe 데이터 셋을 ASCII 코드 형태의 OpenFrame 데이터

셋으로 마이그레이션할 때 사용하는 툴이다.

dsmigin

ASCII 코드 형태의 OpenFrarme 데이터 셋을 EBCDIC 코드 형태의 Mainframe 데이

터 셋으로 변환하여 UNIX 파일로 Export하는 툴이다.

dsmigout

Mainframe에서 사용하던 PL/I 프로그램 소스를 OpenFrame에서 동작할 수 있도록

PL/I 프로그램 소스를 수정하는 툴이다.

tplipp

OpenFrame 엔진이 Hitachi용 COBOL 프로그램을 원활하게 처리할 수 있도록 프로

그램 소스를 전처리하고 이를 Shared Object로 컴파일하는 툴이다.

hcob85c

데이터 셋 관리 툴

다음은 데이터 셋 관리를 위한 프로그램 목록이다.

설명프로그램명

데이터 셋의 내용을 보여주는 툴이다.dsview

데이터 셋의 내용을 보여주고 데이터 셋의 내용을 변경하는 툴이다.dsedit

Non-VSAM 데이터 셋을 UNIX 파일로 백업하는 기능을 제공하는 툴이다.dsload

dsload로 백업한 UNIX 파일을 다시 Non-VSAM 데이터 셋으로 갱신하는 툴이다.dssave

특정 볼륨에 있는 데이터 셋에 대한 정보를 출력하는 툴이다.dslist

카탈로그나 VTOC에 저장된 데이터 셋의 통계정보 및 생성일자를 갱신하는 툴이다.dstouch

데이터 셋을 다른 볼륨이나 다른 이름으로 복사하는 툴이다.dscopy

데이터 셋을 이동시키는 툴로, 데이터 셋의 볼륨을 변경하거나 이름을 변경하는 경우

에 사용한다.

dsmove

데이터 셋을 할당할 때 생성되는 DCB 구조체의 저장 공간인 공유 메모리를 관리하는

툴이다.

dsshm

Non-VSAM 데이터 셋을 신규로 생성하는 툴이다.dscreate

기존 Non-VSAM 데이터 셋을 삭제하는 툴이다.dsdelete

GDG 항목을 신규로 생성하는 툴이다.gdgcreate

기존 GDG 항목을 삭제하는 툴이다.gdgdelete

VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다.idcams

시스템에 등록된 볼륨 정보를 출력하는 툴이다.listvol

특정 카탈로그에 등록된 항목에 대한 정보를 출력하는 툴이다.listcat

2 OpenFrame 툴 참조 안내서

Page 17: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명프로그램명

데이터 셋을 독점적으로 사용하기 위한 데이터 셋 Lock 정보를 조회하고 삭제할 수

있는 툴이다.

lockm

카탈로그 관리 툴

다음은 카탈로그의 관리를 위한 프로그램 목록이다.

설명프로그램명

카탈로그 정보를 백업하여 차후에 문제가 발생했을 경우 이를 복구하는 툴이다.icfdump

icfdump로 백업한 데이터를 사용하여 현재 카탈로그 시스템을 백업할 당시의 시점으

로 복구하는 툴이다.

icfload

카탈로그에 등록된 엔트리의 유효성 및 유형별 통계를 산출하는 툴이다.icfscan

카탈로그를 기준으로 VSAM 볼륨의 사용공간을 확인하는 툴이다.icfspchk

Batch 시스템 툴

다음은 Batch 시스템의 운영 편의를 위한 프로그램 목록이다.

설명프로그램명

OpenFrame/Batch에서 시스템 데이터 셋뿐만 아니라 JOBQ와 SPOOL 등을 초기화

하기 위해 사용되는 툴이다.

tjesinit

dlupdate를 한 후에 임시 데이터 셋에 옮겨 놓은 이전 라이브러리들을 삭제하는 툴이

다.

dlclean

tjesmgr와 같이 UNIX 터미널 화면에서 실행되는 JCL 파일 뷰어를 제공하는 툴이다.jclview

JOB을 submit하고 JOB의 실행 결과를 보여주는 툴이다.textrun

사용자가 만든 라이브러리를 변경하고자 할 때 사용하는 툴이다.dlupdate

제1장 개요 3

Page 18: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

기타 툴

다음은 기타 운영편의를 위해 제공되는 툴 목록이다.

설명프로그램명

사용자의 비밀번호를 64Byte 문자열로 인코딩하는 툴이다.enpasswd

OpenFrame에서 발생하는 에러에 대한 간략한 에러 번호, 에러 코드, 에러 메시지를

출력하는 툴이다.

oferror

OpenFrame 전 모듈에 대한 버전 트랙킹을 위한 툴이다.offile

설치된 OpenFrame 서브 제품의 종류와 각 서브 제품의 버전을 출력하는 툴이다.ofversion

각 프로그램의 사용법과 사용 예제는 각 절에서 상세히 설명한다.

4 OpenFrame 툴 참조 안내서

Page 19: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

제2장 초기화 툴

2.1. mascatmascat은 OpenFrame 제품을 처음 설치할 때, 마스터 카탈로그를 생성하는 프로그램이다.

OpenFrame 제품을 처음 설치할 때, 데이터 셋과 관련해서 기본적으로 수행해야 하는 절차는 다음과 같

다.

1. 디바이스 및 볼륨 설정

디바이스에 대한 설정파일인 unit.conf 파일과 볼륨에 대한 설정파일인 volume.conf 파일을 OpenFrame

운영환경에 맞게 설정한다.

2. Non-VSAM 볼륨 디렉터리 생성

UNIX 명령어인 mkdir을 사용해서 volume.conf 파일에 설정된 대로 볼륨 디렉터리를 생성한다.

3. VSAM 볼륨 테이블 스페이스 생성

VSAM 데이터 셋이 저장되는 공간인 데이터베이스 테이블 스페이스를 생성한다. SQL 명령어 중 CREATE

TABLESPACE 사용한다.

4. 마스터 카탈로그 생성

OpenFrame 제품과 같이 배포되는 mascat 프로그램을 사용해서 마스터 카탈로그를 생성한다.

5. VVDS (VSAM Volume Dataset) 데이터 셋 생성 및 등록

OpenFrame 제품과 같이 배포되는 voladd 프로그램을 사용해서 각 볼륨 별로 VVDS를 생성하고 마스

터 카탈로그에 등록한다.

제2장 초기화 툴 5

Page 20: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용법

mascat 프로그램을 실행하는 방법은 다음과 같다.

Usage: mascat create dsname volser

| mascat remove dsname

설명항목

마스터 카탈로그를 생성한다.create

마스터 카탈로그를 제거한다.remove

마스터 카탈로그의 이름을 지정한다.dsname

마스터 카탈로그가 생성될 볼륨 시리얼을 지정한다.volser

사용예제

다음은 100000이라는 볼륨에 SYS1.MASTER.ICFCAT이라는 이름으로 마스터 카탈로그를 생성하는 예

이다.

$ mascat create SYS1.MASTER.ICFCAT 100000

관련 환경설정mascat 프로그램은 마스터 카탈로그 VSAM 데이터 셋을 생성하기 위해 ds.conf 파일의 [SYS1_CLIENT]

절에 기술된 TSAM 서버로 접속한다.

<ds.conf>

[SYS1_CLIENT]

mascat 프로그램으로 생성된 마스터 카탈로그 VSAM 데이터 셋을 OpenFrame 카탈로그로 사용하기 위

해서는 카탈로그 접속정보를 ds.conf 파일의 [ICF_STORAGE] 절과 [ICF_BACKUP] 절에 등록해야 한다.

mascat 프로그램으로 생성된 마스터 카탈로그는 ds.conf 파일의 [ICF_CATALOG] 절에 등록해야 한다.

위의 사용예제에서 생성된 마스터 카탈로그를 ds.conf 파일에 다음과 같이 설정해야 한다.

6 OpenFrame 툴 참조 안내서

Page 21: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

<ds.conf>

[ICF_CATALOG]

MASCAT_VSER=100000

MASCAT_NAME=SYS1.MASTER.ICFCAT

2.2. voladdvoladd는 OpenFrame 제품을 처음 설치할 때, VVDS를 생성하고 마스터 카탈로그에 등록하는 툴이다.

OpenFrame 제품을 운용 중에 볼륨을 추가하는 경우에도 사용된다. 테이블 스페이스와 volume.conf 파일

에 대한 설정을 마친 후에 프로그램을 사용해야 한다.

사용법

voladd 프로그램을 실행하는 방법은 다음과 같다.

Usage: voladd define volser

| voladd delete volser

설명항목

VVDS를 정의한다.define

VVDS를 삭제한다.delete

정의하거나 삭제하려고 하는 볼륨의 시리얼 번호를 지정한다.volser

사용예제

다음은 100000이라는 볼륨에 VVDS를 생성하고 카탈로그에 등록하는 예이다.

$ voladd define 100000

다음은 VSPOOL이라는 볼륨에 VVDS를 생성하고 마스터 카탈로그에 등록했다가 삭제하는 예이다.

$ voladd define VSPOOL

$ voladd delete VSPOOL

제2장 초기화 툴 7

Page 22: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

관련 환경설정

voladd 프로그램이 VVDS를 생성하기 위해 접속하는 TSAM 서버 정보가 설정되어 있다.

<ds.conf>

[SYS1_CLIENT]

voladd 프로그램이 VVDS를 카탈로그에 등록하기 위해 접속하는 TSAM 서버 정보가 설정되어 있다.

<ds.conf>

[ICF_STORAGE]

주의

VVDS도 ICF 카탈로그의 일부이므로 VVDS를 생성할 때에는 ds.conf 파일의 [SYS1_CLIENT] 절의

내용이 [ICF_STORAGE] 절의 내용과 동일한지 확인이 필요하다.

2.3. pdsgenpdsgen은 PDS를 생성하거나 OpenFrame 인스톨러에서 시스템에 필요한 PDS를 생성하는 툴이다. PDS

를 생성할 때 데이터 셋에 Lock을 실행하지 않으므로, 운영 중에는 사용하지 않고 인스톨할 때만 사용하

도록 권장한다.

사용법

pdsgen 프로그램을 실행하는 방법은 다음과 같다.

Usage: pdsgen dsname volser [-f recfm] [-l lrecl]

설명항목

생성할 PDS 이름을 지정한다.dsname

생성한 PDS를 저장할 볼륨 시리얼을 지정한다.volser

생성할 PDS의 레코드 포맷을 지정한다.[-f recfm]

생성할 PDS의 레코드 길이를 지정한다.[-l lrecl]

pdsgen을 통해 생성된 PDS는 기본 속성으로 RECFM=FB, LRECL=80, BLKSIZE=4096의 속성을 가진다.

8 OpenFrame 툴 참조 안내서

Page 23: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 TEST.PDS를 100000 볼륨에 생성하는 예이다.

$ pdsgen TEST.PDS 100000

위의 프로그램을 실행하면 다음과 같은 TEST.PDS 파일이 생성된다.

Data Set Name . . . : TEST.PDS

Data Set Type . . . : NONVSAM

Catalog Name . . . : SYS1.MASTER.ICFCAT

Management Class . :

Creation Date . . : 2009/08/24 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : PO Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 4096

Current Allocation

Primary Space . . : N.A. Number of Extents : N.A.

Secondary Space . : N.A. Data Set Size . . : 0

Last Access Date

Last Access Date : ***None*** Last Access Time : **None**

2.4. lockdslockds는 OpenFrame 시스템에서 사용되는 Lock 데이터 셋 및 Log 데이터 셋을 생성, 삭제하거나 해당 데

이터 셋의 내용을 초기화(truncate)하는 기능을 제공하는 툴이다.

주의

Batch 시스템이 기동 중일 때에는 lockds를 사용하지 않도록 주의한다.

사용법

lockds 프로그램을 실행하는 방법은 다음과 같다.

제2장 초기화 툴 9

Page 24: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

Usage: lockds [command] [options]

● command

설명command

환경설정 파일 ds.conf [LOCK_SERVER] 절의 LOCK_DATASET 항목과

LOG_DATASET 항목에 지정된 Lock 또는 Log 데이터 셋을 생성하며 마스터 카

탈로그에 등록된다.

create

환경설정 파일 ds.conf [LOCK_SERVER] 절의 LOG_DATASET 항목에 지정된

Lock 또는 Log 데이터 셋을 삭제한다. 데이터 셋을 별도로 백업하지 않는 점에

주의한다.

remove

환경설정 파일 ds.conf [LOCK_SERVER] 절의 LOCK_DATASET 항목에 지정된

Lock 또는 Log 데이터 셋을 초기화한다. 데이터 셋은 삭제하지 않고 내용만 삭제

한다.

truncate

● [options]

설명옵션

Lock 데이터 셋에 대해 지정한 명령어를 수행한다.[-d]

Log 데이터 셋에 대해 지정한 명령어를 수행한다.[-l]

lockds의 버전을 출력한다.[-v]

사용예제

다음은 Lock 데이터 셋을 생성하는 예이다.

$ lockds create -d

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

$ lockds remove -l

다음은 Log 데이터 셋의 내용을 초기화하는 예이다.

$ lockds truncate -d

참고

lockds을 실행하다가 문제가 발생한 경우에는 먼저 ds.conf [TSAM_CLIENT] 절에 정의된 DATABASE

항목의 설정값을 확인하고 정상적으로 데이터베이스에 접속이 되는지를 확인한다. 또한 동일 설정

파일의 [LOCK_SERVER] 절의 LOCK_DATSET 항목과 LOG_DATASET 항목에 지정된 데이터 셋

이름이 정확한지를 확인한다.

10 OpenFrame 툴 참조 안내서

Page 25: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

제3장 마이그레이션 툴

3.1. cobgensch

cobgensch는 Mainframe 데이터 셋을 OpenFrame 데이터 셋으로 마이그레이션 하는 과정에서 필요한 데

이터 셋 마이그레이션 스키마 파일을 생성하는 툴이다.

데이터 셋 마이그레이션 스키마 파일을 생성하는 프로그램으로는 cobgensch과 pligensch가 있다.

cobgensch는 COBOL Copybook 소스 파일을 참조하여 스키마 파일을 생성하고, pligensch는 PL/I 소스파

일을 참조하여 스키마 파일을 생성한다.

데이터 셋 마이그레이션을 수행할 때 원본 데이터 파일인 UNIX 소스파일의 한 레코드에 여러 char-set이

섞여 있는 경우에는 (EBCDIC, ASCII 코드가 섞여있거나 2Byte 문자, Packed Decimal, Zoned Decimal이

사용된 경우 등) 레코드 단위의 일괄적인 단순 코드변환을 할 수 없다. 따라서 레코드의 각 필드에 대한 코

드 변환 규칙을 스키마 파일에 정의한다.

이 후 dsmigin 프로그램을 실행할 때 각 데이터 셋에 해당하는 스키마 파일을 지정하여 데이터 셋 마이그

레이션 작업을 수행한다.

cobgensch 프로그램은 COBOL 소스파일이나 COBOL Copybook 파일로 마이그레이션 스키마 파일을 생

성한다. 생성된 스키마 파일들 저장할 디렉터리 경로는 ds.conf 파일 [DATASET_DIRECTORY] 절의

SCHEMA_DIR 항목에 지정한다.

사용법

cobgensch를 실행하는 방법은 다음과 같다.

Usage: cobgensch input_file [options]

● 입력 항목

설명항목

COBOL 소스 파일 또는 COBOL Copybook 파일을 지정한다.input_file

● [options]

제3장 마이그레이션 툴 11

Page 26: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

스키마 파일을 사용할 데이터 셋이 고정길이 레코드이고 레코드 길이를 알고 있

는 경우에 레코드 길이를 지정하면, 스키마 파일을 생성할 때 레코드 길이 정합

성을 체크한다.

[-r rec_len]

생성될 스키마 파일의 이름을 지정한다. 지정하지 않는 경우 input_file 명을 기본

값으로 사용한다.

[-o output]

Output 파일명을 지정했을 경우 볼륨 시리얼 지정 여부에 따라 <volser>_<out

put>.conv 또는 <output>.conv란 이름으로 스키마 파일이 생성된다.

생성될 스키마 파일명에 사용될 볼륨 시리얼을 지정한다. 지정하지 않는 경우 생

성될 스키마 파일명은 볼륨 시리얼을 포함하지 않는다.

[-v volser]

이 옵션을 지정했을 경우 <volser>_<output>.conv 란 이름으로 스키마 파일이

생성된다.

scanner와 parser를 포함한 모든 생성된 디버그 메시지를 보여준다.[-d]

cobgensch의 버전 정보를 화면에 출력한다.[-V]

사용예제

다음은 COBOL Copybook 파일의 간단한 예제이다.

<COB.TESTDATA1.cpy>

FD I-FILE

RECORDING MODE IS F

RECORD CONTAINS 95 CHARACTERS

BLOCK CONTAINS 0 RECORDS

LABEL RECORDS ARE STANDARD

DATA RECORD ARE I-REC.

01 I-REC.

05 I-SAGNO PIC X(11).

05 I-DAMBO PIC X(02).

05 I-PHNO PIC X(03).

05 I-BKNO PIC 9(03).

05 I-BKDT PIC X(10).

05 I-BKDT-I PIC X(01).

05 I-BSGB PIC X(02).

05 I-BSHG PIC X(02).

05 I-CIGB PIC X(02).

05 I-CIHG PIC X(02).

05 I-JHGB PIC X(02).

12 OpenFrame 툴 참조 안내서

Page 27: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

05 I-TTJC PIC S9(13) COMP-3.

05 I-TTIC PIC S9(13).

05 I-NAME PIC X(20).

05 I-TEST1 PIC Z(10).

05 I-TEST2 PIC +(10).

05 I-TEST3 PIC -(10).

05 I-TEST4 PIC ---------9.

05 I-TEST5 PIC ----------.

05 I-TEST6 PIC $(10).

05 I-TEST7 PIC \(10).

다음은 cobgensch를 실행하여 스키마 파일을 생성하는 예이다.

$ cobgensch COB.TESTDATA1.cpy

위의 cobgensch를 실행한 결과 정상적으로 스키마 파일이 생성되었다.

input filename = COB.TESTDATA1.cpy

schema filename = /home/tmax/openframe/schema/COB.TESTDATA1.conv

다음은 cobgensch를 실행하여 잘못된 레코드 길이를 지정했을 경우 정합성을 체크하는 예이다.

$ cobgensch COB.TESTDATA1.cpy -r 100

위의 cobgensch를 실행한 결과, 레코드 길이 정합성 체크에서 에러가 발생했다.

input filename = COB.TESTDATA1.cpy

input record length = 100

** input record length is different from scheme record length!!!

** (input reclen = 100, scheme reclen = 150)

Failed to generate a schema file. rc - -1

schema filename = /home/tmax/openframe/schema/COB.TESTDATA1.conv

다음은 올바른 레코드 길이를 지정하여 cobgensch를 실행하는 예이다.

$ cobgensch COB.TESTDATA1.cpy -r 150

위의 cobgensch를 실행한 결과 정상적으로 스키마 파일이 생성되었다. 레코드 길이가 150 Byte로 지정한

값과 일치하므로 정합성을 체크할 때 오류가 발생하지 않았다.

input filename = COB.TESTDATA1.cpy

input record length = 150

scheme filenama = /home/tmax/openframe/schema/COB.TESTDATA1.conv

제3장 마이그레이션 툴 13

Page 28: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

다음은 위의 cobgensch를 실행한 후 생성된 스키마 파일의 예이다.

<COB.TESTDATA1.conv>

* scheme

L1, 01, I-REC, NULL, 0, 1,

L2, 05, I-SAGNO, EBC_ASC, 11, 1,

L3, 05, I-DAMBO, EBC_ASC, 2, 1,

L4, 05, I-PHNO, EBC_ASC, 3, 1,

L5, 05, I-BKNO, U_ZONED, 3, 1,

L6, 05, I-BKDT, EBC_ASC, 10, 1,

L7, 05, I-BKDT-I, EBC_ASC, 1, 1,

L8, 05, I-BSGB, EBC_ASC, 2, 1,

L9, 05, I-BSHG, EBC_ASC, 2, 1,

L10, 05, I-CIGB, EBC_ASC, 2, 1,

L11, 05, I-CIHG, EBC_ASC, 2, 1,

L12, 05, I-JHGB, EBC_ASC, 2, 1,

L13, 05, I-TTJC, PACKED, 7, 1,

L14, 05, I-TTIC, ZONED, 13, 1,

L15, 05, I-NAME, EBC_ASC, 20, 1,

L16, 05, I-TEST1, U_ZONED, 10, 1,

L17, 05, I-TEST2, U_ZONED, 10, 1,

L18, 05, I-TEST3, U_ZONED, 10, 1,

L19, 05, I-TEST4, EBC_ASC, 10, 1,

L20, 05, I-TEST5, U_ZONED, 10, 1,

L21, 05, I-TEST6, U_ZONED, 10, 1,

L22, 05, I-TEST7, U_ZONED, 10, 1,

* condition

L0, "\0",

( L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16 L17 L18 L19 L20 L21 L22 )

관련 환경설정

다음과 같이 ds.conf 파일에 생성된 스키마 파일을 저장할 디렉터리 경로를 지정한다.

<ds.conf>

[DATASET_DIRECTORY]

SCHEMA_DIR=schema_dir

14 OpenFrame 툴 참조 안내서

Page 29: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

3.2. pligenschpligensch는 Mainframe 데이터 셋을 OpenFrame 데이터 셋으로 마이그레이션하는 과정에서 필요한 데이

터 셋 마이그레이션 스키마 파일을 생성하는 툴이다.

pligensch는 cobgensch 프로그램과 동일한 스키마 파일을 생성하지만, cobgensch는 COBOL COPYBOOK

을 사용하는 반면 pligensch는 PL/I 소스 파일을 참조하여 Mainframe 데이터 셋의 레코드 구조를 파악한

후 스키마 파일을 생성한다. 생성된 스키마 파일을 저장할 디렉터리 경로는 ds.conf 파일 [DATASET_DI

RECTORY] 절의 SCHEMA_DIR 항목에 지정한다.

다음은 PL/I 스키마 파일 생성과 OpenFrame 데이터 셋 생성과정을 설명한 그림이다.

[그림 3.1] PL/I 스키마 파일 생성과 OpenFrame 데이터 셋 생성 과정

pligensch에 PL/I 소스를 입력하면 레코드 구조를 담은 스키마 파일이 생성된다. dsmigin 수행할 때 스키

마 파일과 Mainframe 데이터 셋을 입력 파라미터로 지정하여 OpenFrame 데이터 셋을 생성할 수 있다.

사용법

pligensch를 실행하는 방법은 다음과 같다.

Usage: pligensch [options] file1 [file2 ...]

● [options]

설명옵션

pligensch에서 사용 가능한 옵션에 대한 정보를 보여준다.[-h]

parser에서 생성된 디버그 메시지를 보여준다.[-y]

scanner에서 생성된 디버그 메시지를 보여준다.[-l]

scanner와 parser를 포함한 모든 생성된 디버그 메시지를 보여준다.[-d]

PL/I의 include 파일들이 존재하는 위치를 지정한다.[-I dir]

스키마 파일을 사용할 데이터 셋이 고정길이 레코드이고 레코드 길이를 알고 있

는 경우에 레코드 길이를 지정하면, 스키마 파일을 생성할 때 레코드 길이 정합

성을 체크한다.

[-r reclen]

생성될 스키마 파일의 이름을 지정한다.[-o output]

지정하지 않는 경우 file#에 지정한 입력 파일명을 기본값으로 사용한다.

제3장 마이그레이션 툴 15

Page 30: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

Output 파일명을 지정했을 경우 볼륨 시리얼 지정 여부에 따라 <volser>_<out

put>.conv 또는 <output>.conv 란 이름으로 스키마 파일이 생성된다.

생성될 스키마 파일명에 사용될 볼륨 시리얼을 지정한다.[-v volser]

지정하지 않는 경우 생성될 스키마 파일명은 볼륨 시리얼을 포함하지 않는다.

이 옵션을 지정했을 경우 <volser>_<output>.conv란 이름으로 스키마 파일이 생

성된다.

입력 파일이 sub-structure만을 포함하는 파일일 때 지정한다.[-s]

입력으로 받을 PL/I 소스가 AIX PL/I일 때 지정한다. -f 옵션을 지정하지 않으면

기본적으로 AIX PL/I로 인식한다.

[-f aix]

입력으로 받는 PL/I 소스가 Liant Open PL/I일 때 지정한다.[-f liant]

cobgensch의 버전 정보를 화면에 출력한다.[-V]

● 입력 항목

설명항목

PL/I 소스 파일명을 지정한다.file1

사용예제

다음은 PL/I Include 파일의 간단한 예이다.

<PLI.TESTDATA1.inc>

3 TEST1 CHAR(02) ,

3 TEST2 CHAR(05) ,

3 TEST3 ,

5 TEST4 PIC ‘(03)9’ ,

5 TEST5 PIC ‘(03)X’ ,

3 TEST6 FIXED DEC (3, 0);

다음은 pligensch를 실행하여 COBOL 스키마 파일을 생성하는 예이다. 위 PL/I include 파일은 DECLARE

구문부터 시작하지 않고, sub-structure 만을 포함하고 있으므로 -s 옵션을 지정하여 실행한다.

$ pligensch –s PLI.TESTDATA1.inc

위의 pligensch를 실행한 결과 정상적으로 COBOL 스키마 파일이 생성되었다.

16 OpenFrame 툴 참조 안내서

Page 31: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

input filename = PLI.TESTDATA1.inc

Schema filename = /home/tmax/openframe/schema/PLI.TESTDATA1.conv - created

다음은 pligensch를 실행하여 PL/I 스키마 파일을 생성하고, 정합성을 체크하는 예이다.

$ pligensch -r 10 –s PLI.TESTDATA1.inc

위의 pligensch를 실행한 결과, 레코드 길이 정합성 체크에서 에러가 발생했다.

input filename = PLI.TESTDATA1.inc

input record length = 10

** input record length is different from schema record length!!!

** (input reclen = 10, schema reclen = 15)

Failed to generate a schema file. rc=-1

다음은 올바른 레코드 길이를 지정하여 pligensch를 실행하는 예이다.

$ pligensch -r 15 –s PLI.TESTDATA1.inc

위의 pligensch를 실행한 결과 정상적으로 스키마 파일이 생성되었다. 레코드 길이가 15 Byte로 지정한 값

과 일치하므로 정합성을 체크할 때 오류가 발생하지 않았다.

input filename = PLI.TESTDATA1.inc

input record length = 15

Schema filename = /home/tmax/openframe/schema/PLI.TESTDATA1.conv - created

다음은 pligensch를 실행한 후 생성된 스키마 파일의 예이다.

<PLI.TESTDATA1.conv>

* scheme

L1, 01, TEST1_STRUCTURE, NULL, 0, 1,

L2, 03, TEST1, EBC_ASC, 2, 1,

L3, 03, TEST2, EBC_ASC, 5, 1,

L4, 03, TEST3, NULL, 0, 1,

L5, 05, TEST4, ZONED, 3, 1,

L6, 05, TEST5, EBC_ASC, 3, 1,

L7, 03, TEST6, PACKED, 2, 1,

* condition

L0, "\0", ( L1 L2 L3 L4 L5 L6 L7 )

제3장 마이그레이션 툴 17

Page 32: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

관련 환경설정

다음과 같이 ds.conf 파일에 생성된 스키마 파일을 저장할 디렉터리 경로를 지정한다.

<ds.conf>

[DATASET_DIRECTORY]

SCHEMA_DIR=schema_dir

3.3. sqlgenschsqlgensch는 Mainframe에서 이용하는 데이터베이스를 OpenFrame의 데이터베이스로 마이그레이션하는

과정에서 필요하다.

Mainframe에서 이용한 데이터베이스의 DDL(Data Definition Language) 파일을 이용하여 데이터베이스

마이그레이션에 필요한 스키마, Copybook, Tibero용 DDL, Tibero Import용 컨트롤 파일을 생성하는 툴이

다.

sqlgensch의 기능 중 스키마 파일 생성 기능은 cobgensch, pligensch과 동일한 스키마를 생성하는 것이

다.

사용법

sqlgensch를 실행하는 방법은 다음과 같다.

Usage: sqlgensch [options] file1 [file2 ...]

● [options]

설명옵션

COBOL Copybook을 생성한다.[-c]

스키마 파일을 생성한다.[-s]

Tibero로 Import하기 위한 컨트롤 파일을 생성한다.[-t]

데이터베이스의 테이블 생성을 위한 DDL문을 생성한다.[-q]

sqlgensch의 버전 정보를 화면에 출력한다.[-V]

● 입력 항목

설명옵션

Mainframe에서 이용한 데이터베이스의 DDL 파일명을 지정한다.file1

18 OpenFrame 툴 참조 안내서

Page 33: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 sqlgensch를 실행하여 COBOL Copybook을 생성하는 예이다.

$ sqlgensch –c dbddl.txt

다음은 sqlgensch를 실행하여 스키마를 생성하는 예이다.

$ sqlgensch -s dbddl.txt

다음은 sqlgensch를 실행하여 Tibero Import용 컨트롤 파일을 생성하는 예이다.

$ sqlgensch -t dbddl.txt

다음은 sqlgensch를 실행하여 Tibero용 DDL문을 생성하는 예이다.

$ sqlgensch -q dbddl.txt

3.4. dsmigindsmigin는 EBCDIC 코드 형태의 Mainframe 데이터 셋을 ASCII 코드 형태의 OpenFrame 데이터 셋으로

마이그레이션할 때 사용하는 툴이다.

Mainframe 데이터 셋을 UNIX 환경의 OpenFrame 데이터 셋으로 마이그레이션할 때 일반적으로 다음과

같은 절차가 수행된다.

1. FTP를 이용하여 Mainframe 데이터 셋을 UNIX 파일로 다운로드한다. Binary Mode로 다운로드한다.

2. 데이터 셋을 마이그레이션할 때 스키마 파일이 필요한 경우 해당 데이터 셋을 사용하는 COBOL이나

PL/I 소스 파일을 참조하여 스키마 파일을 작성한다.

3. dsmigin 툴을 이용하여 UNIX에 다운로드된 파일을 OpenFrame 데이터 셋으로 Import하는 작업을 수행

한다.

사용법

dsmigin 프로그램을 실행하는 방법은 다음과 같다.

Usage: dsmigin src_file <dest_file | dataset_name> [options]

● 입력 항목

제3장 마이그레이션 툴 19

Page 34: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

마이그레이션을 수행할 UNIX 소스 파일명 또는 파일 경로를 지정한다.src_file

생성할 파일 또는 데이터 셋 이름을 지정한다.dest_file 또는

dataset_name

● [options]

설명옵션

EBCDIC 문자로 작성된 파일을 ASCII 문자로 변환만하고 OpenFrame으로 Import

하지 않을 경우 지정한다. 출력 파일로 OpenFrame 데이터 셋 명이 아닌 일반 텍

[-C]

스트 파일을 지정해야 한다. 변환 작업만 하는 경우 Tmax 서버는 사용되지 않는

다.

[-C] 옵션과 반대로 변환 작업을 수행하지 않고 입력 파일을 직접 OpenFrame으

로 적재하는 경우 지정한다.

[-I]

입력 파일로 주어진 데이터가 소스 파일일 경우 지정한다. 이 옵션이 지정되면,

레코드 포맷(RECFM)은 L 타입이 된다.

[-S]

생성할 멤버 이름 (PDS를 생성할 경우) 또는 생성할 상대 세대번호 (GDG를 생

성할 경우)를 지정한다.

[-m member_name]

- SDS(Sequential Data Set)를 생성하는 경우에는<dataset_name>만 지정한다.

- PDS(Partitioned Data Set)를 생성하는 경우에는 <dataset_name>과 [mem

ber_name]을 모두 지정한다.

- GDS(Generation Data Set)을 생성할 경우에는 <dataset_name>과 세대 번호

(-1, 0, +1, ...)를 지정한다. 세대 번호는 [member_name]으로 지정할 수 있으며,

새로 생성하는 멤버일 경우 "+1"을 사용한다.

데이터 셋이 생성될 UNIT 그룹명을 지정한다.[-u unit]

데이터 셋이 생성될 볼륨 시리얼을 지정한다.[-v volume]

이 옵션을 지정하지 않을 경우에는 ds.conf 파일의 [DATASET_DEFAULT] 절

DEFAULT_VOLSER 항목에 등록되어 있는 디폴트 볼륨 시리얼에 데이터 셋이

생성된다.

데이터 셋이 등록될 사용자 카탈로그를 지정한다. 지정하지 않을 경우에는 마스

터 카탈로그에 데이터 셋이 등록된다.

[-c user_catalog]

EBCDIC에서 ASCII로 코드를 변환할 때 EBCDIC 2Byte 문자를 어떤 ASCII 문자

코드로 변환할지를 지정한다.

[-e encoding_code]

- US : 영어 (Default)

- KR : 한국어 (EUC-KR)

20 OpenFrame 툴 참조 안내서

Page 35: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

- JP : 일본어 (Shift-JIS)

- JAK : 일본어 (JEF)

UNIX 소스 파일의 한 레코드에 여러 char-set이 섞여있는 경우에는 (EBCDIC,

ASCII 코드가 섞여있거나 2Byte 문자, Packed Decimal, Zoned Decimal이 사용

[-s scheme]

된 경우 등) 레코드 단위의 단순 코드 변환이 불가능하기 때문에 cobgensch 또

는 pligensch 프로그램을 이용하여 스키마 파일을 생성한 후 해당 스키마 파일을

지정한다. 스키마 파일을 지정하지 않은 경우 ds.conf 파일 [DATASET_DIREC

TORY] 절의 SCHEMA_DIR 항목에 정의된 디렉터리에서 소스 파일명과 매치하

는 스키마 파일을 사용한다.

사용된 COBOL 언어의 타입을 지정한다.[-cob cobol_type]

COBOL 타입에 설정할 수 있는 값은 MF(MicroFocus COBOL), NET(Net COBOL)

이 있으며, 이 옵션을 지정하지 않은 경우 디폴트 값은 MF이다.

마이그레이션될 데이터 셋이 ISAM 타입일 경우 키 길이를 지정한다. 또한,

DSORG를 IS로 설정해야 한다.

[-k keylen]

마이그레이션될 데이터 셋이 ISAM 타입일 경우 키 위치를 지정한다. 또한,

DSORG를 IS로 설정해야 한다.

[-p keypos]

데이터 셋의 레코드 길이(LRECL)를 지정한다. 고정 길이 레코드일 경우 마이그

레이션되는 데이터 셋의 실제 레코드 길이가 지정한 레코드 길이와 일치하는지

[-l rec_len]

체크할 수 있다. 가변 길이 레코드일 경우에는 최대 레코드 길이를 지정한다. 레

코드 길이를 지정하지 않으면 스키마 파일에서 얻어온 레코드 길이를 기본값으

로 사용한다.

생성할 데이터 셋의 DSORG를 지정한다.[-o dsorg]

DSORG에 설정할 수 있는 값은 PS, PSU, DA, DAU, IS 등이 있으며, 이 옵션을

지정하지 않은 경우 기본값은 PS이다.

데이터 셋의 블록 사이즈(BLKSIZE)를 지정한다.[-b blksize]

데이터 셋의 레코드 포맷(RECFM)을 지정한다. 지정할 수 있는 레코드 포맷으로

는 F(Fixed), FB(Fixed Blocked), V(Variable), VB(Variable Blocked), L(Line) 타

입이 있다.

[-f recfm]

UNIX 소스 파일에서 레코드 간의 구분을 위해 사용된 delimiter를 지정한다. 개

행 문자, 탭 등과 같은 문자를 delimiter로 사용할 경우에는 "(따옴표) 안에 escape

문자를 사용하여 "\n", "\t"으로 표현한다.

[-d delimiter]

Import 대상 데이터 셋에 Lock이 실행 중인 경우 Lock이 해제될 때까지 대기하고

있다가 해제되면 작업을 수행한다.

[-w lockwait]

이 옵션을 지정하지 않은 경우 적재대상 데이터 셋에 이미 Lock이 실행 중이면

에러 메시지를 출력하고 작업 수행을 중단한다.

제3장 마이그레이션 툴 21

Page 36: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

OpenFrame으로 적재하지 않고 변환 작업만 실행할 경우 레코드 구분을 위하여

각 레코드마다 delimiter로 개행문자를 붙여준다.

[-n]

SOSI 문자는 레코드의 1Byte 문자 필드에 2Byte 문자가 혼합해서 사용되는 경

우 2Byte 문자를 구분하기 위해 사용된다.

[-sosi sosi_type]

SOSI 타입에 설정할 수 있는 값은 다음 과 같으며, 기본값은 SOSI를 변환하지

않고 그대로 유지하는 1이다.

[SOSI 타입]

- 1 = so[EBC]si -> so[ASC]si : SOSI를 변환하지 않음 (Default)

- 2 = so[EBC]si ->_[ASC]_ : SOSI를 스페이스로 변환

- 3 = so[EBC]si -> [ASC] : SOSI 삭제

- 4 = so[JEF]si -> so[ASC]si : JEF SOSI를 ASCII SOSI로 변환한다.

마이그레이션 과정에서 데이터 셋을 카탈로그에 등록하지 않을 경우 지정한다.[-N]

데이터 셋이 이미 카탈로그에 등록된 경우에 re-catalog를 위한 옵션이다.[-R]

카탈로그에서 대상 데이터 셋의 등록 정보를 찾아, 해당 볼륨으로 데이터 셋을

Import한다. UNIT, 볼륨 정보는 그대로 유지하고, 그 외 기타 DCB 정보는 새롭

게 갱신한다.

이 옵션을 지정하면 unit(-u)이나 volume(-v) 파라미터는 무시되며, 이 옵션을 지

정하지 않은 경우 Import 대상 데이터 셋이 이미 카탈로그에 등록되어 있다면 에

러 메시지를 출력하고 작업 수행을 중단한다.

대상 데이터 셋이 카탈로그에 이미 등록되어 있다면 해당 데이터 셋을 삭제하고,

다시 데이터 셋 Import 작업을 수행하여 카탈로그에 등록한다. UNIT, 볼륨, 생성

일자 등 데이터 셋의 기존 등록 정보는 모두 새롭게 갱신된다.

[-F]

이 옵션을 지정하지 않은 경우 적재대상 데이터 셋이 이미 카탈로그에 이미 등록

되어 있다면 에러 메시지를 출력하고 작업 수행을 중단한다.

EBCDIC에서 ASCII로의 코드 변환과 마이그레이션 디버깅 결과를 화면에 출력

한다.

[-D]

dsmigin의 버전 정보를 화면에 출력한다.[-V]

22 OpenFrame 툴 참조 안내서

Page 37: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 PDS 멤버를 생성하는 예이다.

$ dsmigin OFR.DATA.PDSEXAM01.TXT OFR.DATA.PDSEXAM01 -m MEMBER1

다음은 SDS를 생성하는 예이다.

$ dsmigin OFR.DATA.SDSEXAM01.TXT OFR.DATA.SDSEXAM01

다음은 GDS를 생성하는 예이다.

$ dsmigin OFR.DATA.GDGEXAM01.TXT OFR.DATA.GDGEXAM01 -m +1

다음은 스키마 파일의 간단한 sample을 보여주는 예이다.

<DSI.TESTDATA1.conv>

############################

# conversion scheme sample #

############################

* scheme

L1, 01, O-RECORD, NULL, 0, 1,

L2, 05, FIELD, EBC_ASC, 80, 1,

* condition

L0, "\0", ( L1 L2 )

############################

다음은 UNIX 파일을 데이터 셋으로 적재하는 예이다.

$ dsmigin DSI.TESTDATA1.txt DSI.TESTDATA1 -s DSI.TESTDATA1.conv -l

80 -v 100000 -e KR

위의 dsmigin를 실행한 결과는 다음과 같다.

=====< DSMIGIN START >=====

source file : DSI.TESTDATA1.txt

dataset name: DSI.TESTDATA1

member name :

unit:

volume: 100000

schema file : DSI.TESTDATA1.conv

encoding type: KR

record length: 80

record format: F

제3장 마이그레이션 툴 23

Page 38: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

dsorg:

delimiter:

DSMIGIN: (record count = 100)

=====< DSMIGIN FINISH >====

다음은 dsmigin를 실행한 후 데이터 셋 등록 정보를 확인하는 예이다.

$ tjesmgr psds DSI.TESTDATA1

위의 tjesmgr를 실행한 결과는 다음과 같다.

Data Set Name . . . : DSI.TESTDATA1

Data Set Type . . . : NONVSAM

Catalog Name . . . : SYS1.MASTER.ICFCAT

Management Class . : MCLAS001

Creation Date . . : 2009/01/16 Data Set Owner . : OpenFrame

Expiration Date . : 9999/12/31

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : PS Record Format . . : F

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 80

Current Allocation

Primary Space . . : N.A. Number of Extents : N.A.

Secondaty Space . : N.A. Data Set Size . . : 16700

Last Access Date

Last Access Date : 2009/01/16 Last Access Time : 11:05:08

관련 환경설정

다음과 같이 ds.conf 파일에 디폴트 볼륨 시리얼을 지정한다.

<ds.conf>

[DATASET_DEFAULT]

DEFAULT_VOLSER=default_volser

다음과 같이 ds.conf 파일에 디폴트 스키마 디렉터리를 지정한다.

24 OpenFrame 툴 참조 안내서

Page 39: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

<ds.conf>

[DATASET_DIRECTORY]

SCHEMA_DIR=default_schema_directory

다음과 같이 ofsys.conf 파일에 디폴트 COBOL 타입을 지정한다.

<ofsys.conf>

[COMPILER]

COBOL_COMPILER=default_cobol_type

참고

관련 툴 프로그램으로는 “3.5. dsmigout”이 있다.

3.5. dsmigoutdsmigout은 ASCII 코드 형태의 OpenFrarme 데이터 셋을 EBCDIC 코드 형태의 Mainframe 데이터 셋으로

변환하여 UNIX 파일로 내보내는(Export) 툴이다.가변 길이 데이터 셋을 이출할 때, 레코드 길이를 나타내

기 위하여 각 레코드마다 RDW(Record Descriptor Word)를 붙여준다. 또한, L 타입의 데이터 셋을 이출할

때는 개행 문자를 delimiter로 사용하여 각 레코드를 구분한다.

사용법

dsmigout 프로그램을 실행하는 방법은 다음과 같다.

Usage: dsmigout dataset_name dest_file [options]

● 입력 항목

설명항목

내보내려는 데이터 셋의 이름을 기술한다. 데이터 셋은 카탈로그에 등록되어 있

어야 한다.

dataset_name

Output으로 생성될 파일 이름을 기술한다.dest_file

● [options]

설명옵션

OpenFrame에 ASCII 문자로 적재된 파일을 EBCDIC 문자로 변환하지 않고 내

보내는 경우 지정한다.

[-X]

제3장 마이그레이션 툴 25

Page 40: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

추출하려는 데이터 셋이 위치한 볼륨 시리얼 번호를 지정한다. 만약, 지정한 볼

륨에 데이터 셋이 존재하지 않을 경우 에러 메시지를 출력하고 프로그램을 종료

한다.

[-v]

ASCII에서 EBCDIC으로 코드를 변환할 때 2Byte ASCII 문자를 어떤 EBCDIC 문

자 코드로 변환할지를 지정한다.

[-e encoding]

encoding 값에 따른 변환 처리는 다음과 같다.

- KR : 한국어 (EUC-KR)

- US : 영어

- JP : 일본어 (Shift-JIS)

- JAK : 일본어 (JEF)

OpenFrame 데이터 셋의 한 레코드에 여러 char-set이 섞여있는 경우에는

(EBCDIC, ASCII 코드가 섞여있거나 2Byte 문자, Packed Decimal, Zoned Decimal

[-s scheme]

이 사용된 경우 등) 레코드 단위의 단순 코드 변환이 불가능하기 때문에 cobgensch

또는 pligensch 프로그램을 이용하여 스키마 파일을 생성한다.

스키마 파일이 생성되면 해당 파일을 지정한다.

SOSI 문자는 레코드의 1Byte 문자 필드에 2Byte 문자가 혼합해서 사용되는 경

우 2Byte 문자를 구분하기 위해 사용된다.

[-sp]

dsmigin 툴에서 SOSI를 스페이스로 변환했다면 이 옵션을 사용하여 다시 스페

이스에서 SOSI로 변환할 수 있다.

ASCII에서 EBCDIC으로의 코드 변환과 마이그레이션 디버깅 결과를 화면에 출

력한다.

[-D]

dsmigout의 버전 정보를 화면에 출력한다.[-V]

사용예제

다음은 스키마 파일의 간단한 예이다.

<DSI.TESTDATA1.conv>

############################

# conversion scheme sample #

############################

26 OpenFrame 툴 참조 안내서

Page 41: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

* scheme

L1, 01, O-RECORD, NULL, 0, 1,

L2, 05, FIELD, EBC_ASC, 80, 1,

* condition

L0, "\0", ( L1 L2 )

############################

다음은 dsmigout 결과를 보여주는 예이다.

$ dsmigout DSI.TESTDATA1 DSI.TESTDATA1.out -e KR -s DSI.TESTDATA1.conv

위의 dsmigout을 실행한 결과는 다음과 같다.

==> 100 records exported.

DSI.TESTDATA1의 레코드들이 EBC_ASC 변환 방식에 의해서 바뀌어 DSI.TESTDATA1.out으로 출력된

다.

관련 환경설정

다음과 같이 ds.conf 파일에 디폴트 스키마 디렉터리를 지정한다.

<ds.conf>

[DATASET_DIRECTORY]

SCHEMA_DIR=default_schema_directory

참고

관련 툴 프로그램으로는 “3.4. dsmigin”이 있다.

3.6. tplipp

tplipp는 Mainframe에서 사용하던 PL/I 프로그램 소스를 OpenFrame에서 동작할 수 있도록 PL/I 프로그램

소스를 수정하는 툴이다.

UNIX에서 Mainframe에서 사용하던 PL/I 프로그램을 실행하면 파일에 대한 I/O를 할 때 데이터 셋이 아닌

UNIX 파일에 I/O를 하기 때문에 OpenFrame의 데이터 셋에 I/O를 할 수 있도록 수정이 필요하다. 이 외에

도 UNIX에서 지원하지 않는 오퍼레이터 콘솔을 제공하기 위해 OpenFrame 콘솔 서버를 사용할 수 있도

록 수정하는 기능, PL/I 기본 sort module 대신 external sort를 이용하도록 수정하는 기능이 있다.

다음은 tplipp 구조를 설명한 그림이다.

제3장 마이그레이션 툴 27

Page 42: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

[그림 3.2] tplipp 구조

tplipp에 원본 PL/I 소스를 입력하면 수정된 PL/I 소스가 나오고 이를 컴파일하면 OpenFrame에서 동작하

는 PL/I 바이너리가 생성된다.

참고

기본적으로 AIX PL/I 이나 Open Liant PL/I의 컴파일러에서 지원하지 않는 문법은 OpenFrame에서

도 지원하지 않는다.

사용법

tplipp를 실행하는 방법은 다음과 같다.

Usage: tplipp [-h] [-V] [-y] [-l] [-d] [-info] [-l dir] [-o file] [-fetch]

[-s] [-f aix] [-f liant] [-u RC_STOP=n] [-u RC_FILE=n]

[-u RC_ERR=n] [-console] [-mfcobol] [-ims][-extsort]

설명옵션

tplipp에서 사용 가능한 옵션에 대한 정보를 보여준다.[-h]

tplipp의 버전 정보를 보여준다.[-V]

parser에서 생성된 디버그 메시지를 보여준다.[-y]

scanner에서 생성된 디버그 메시지를 보여준다.[-l]

parser와 scanner를 포함한 모든 생성된 디버그 메시지를 보여준다.[-d]

PL/I 소스 내에서 사용된 파일 정보를 간략하게 보여준다.[-info]

PL/I의 include 파일들이 존재하는 위치를 지정한다.[-I dir]

전처리 결과를 출력할 파일명을 지정한다.[-o file]

모든 External Procedure를 Fetchable module로 인식한다.[-fetch]

C에서 사용하기 위해 PL/I을 공유 라이브러리로 만들 때 이용한다.[-s]

입력으로 받는 PL/I 소스가 AIX PL/I 일 때 지정한다. -f 옵션을 주지 않았을 때의

기본값으로 사용한다.

[-f aix]

입력으로 받는 PL/I 소스가 Liant Open PL/I 일 때 지정한다.[-f liant]

PL/I가 동작할 때 STOP 명령에 의해 프로그램이 종료되는 경우의 반환값을 지

정한다.

[-u RC_STOP=n]

28 OpenFrame 툴 참조 안내서

Page 43: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

PL/I가 동작할 때 FILE ERROR에 의해 프로그램이 종료되는 경우의 반환값을

지정한다.

[-u RC_FILE=n]

PL/I가 동작할 때 ERROR condition에 의해 프로그램이 종료되는 경우의 반환값

을 지정한다.

[-u RC_ERR=n]

PL/I 소스내의 DISPLAY 문과 REPLY 명령이 OpenFrame에서 제공하는 콘솔 서

버를 이용할 때 지정한다.

[-console]

PL/I에서 MF COBOL 프로시저를 호출할 때 지정하는 옵션이다. -fetch 옵션을

지정한 경우 이 옵션은 무시된다.

[-mfcobol]

IMS를 이용할 때 지정하는 옵션이다.[-ims]

PLISRTA, PLISRTB, PLISRTC, PLISRTD 함수를 PL/I 기본 sort module 대신

External Sort 로 이용하기 위한 옵션이다.

[-extsort]

참고

PL/I 언어가 아닌 COBOL 언어에 대한 유사한 기능을 하는 전처리 툴로 cobolprep가 있다.

3.7. hcob85chcob85c는 OpenFrame 엔진이 Hitachi용 COBOL 프로그램을 원활하게 처리할 수 있도록 프로그램 소스

를 전처리하고 이를 Shared Object로 컴파일하는 툴이다.

Hitachi Mainframe에서 사용하는 COBOL85와 그 확장기능(일본어 변수명 사용 등)을 원활하게 지원하기

위해 Hitachi의 UNIX용 COBOL 컴파일러인 COBOL2002를 사용하도록 개발되었다.

본 장에서는 hcob85c의 환경 설정과 사용법, 전처리 대상 항목 등에 대해 설명한다.

사용법

hcob85c를 실행하는 방법은 다음과 같다.

Usage: hcob85c [options] filename

● [options]

설명옵션

툴 사용법을 확인한다.[-h]

hcob85c의 버전을 확인한다.[-v]

디버그 모드로 동작한다. 컴파일 단계별로 결과 파일을 저장한다. 결과 파일에

대한 설명은 전처리 단계별 결과 파일 [32]을 참고한다.

[-d]

제3장 마이그레이션 툴 29

Page 44: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

● 입력 항목

설명항목

전처리할 COBOL 프로그램 소스 파일을 지정한다. 확장자가 .cob인 경우 내부

적으로 컴파일 전에 사용하므로 오동작을 방지하기 위해 사용할 수 없다.

filename

사용예제

다음은 COBOL.TXT 파일을 전처리하고 컴파일하는 예이다.

$ hcob85c COBOL.TXT

결과물로는 COBOL.so가 생성된다.

관련 환경설정

hcob85c를 사용하기 위해서는 다음의 환경설정이 필요하다.

참고

COBOL2002에 대한 환경설정은 COBOL2002의 안내서를 참고한다.

<cobol.conf>

[HCOB85]

COMMAND=ccbl2002

OPTIONS=-Comp5 -Bin1Byte -CompatiV3 -Compati85,All -DynamicLink,Call -MainNotCBL

-Pic,Std

LINK=link_command [link_options]

COPY_EXT=extension

COPY_PATH=path

[HCOB85]

hcob85c의 정보를 설정하는 절이다.

설명항목

COBOL 컴파일러의 Binary를 지정하는 항목으로, ccbl2002를 지정한다.COMMAND

COBOL 컴파일러에 설정할 옵션을 지정한다. 각 옵션의 설명은 표 다음 내용

을 참고한다. 위의 예제는 필수 옵션이므로 수정하지 않는 것을 권고한다.

OPTIONS

OPTIONS의 수정은 충분한 검토가 필요하며, 권고사항을 변경할 경우에는

COBOL의 동작을 보장할 수 없다. 단, 표 다음의 OPTIONS에 추가 설정이 가

능하다고 명시된 옵션은 사용자의 판단에 따라 필요할 경우 추가할 수 있다.

30 OpenFrame 툴 참조 안내서

Page 45: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

Shared Object로 만들기 위해 Link할 때 사용할 명령어와 옵션을 입력한다.

link_command -o shared_obj_name obj_name [link_options] 형태로 실행된

LINK

다. LINK에 COBOL2002의 libcbl2kml과 libcl2k을 링크하기 위한 옵션은 반드

시 주어져야 한다.

예) LINK=ld -shared -L/opt/HILNGcbl2k/lib -lcbl2kml -lcbl2k

Copybook의 확장자를 지정한다. 콤마(,)를 구분자로 하여 복수로 지정할 수

있다.

COPY_EXT

Copybook의 검색 경로를 지정한다. 세미콜론(;)을 구분자로 하여 복수로 지

정할 수 있다.

COPY_PATH

OPTIONS

다음은 앞에서 설명한 항목 중 OPTIONS에 대한 설명이다.

● 필수 옵션

다음은 cobol.conf 파일 [HCOB85] 절의 OPTIONS 항목에 설정해야 하는 필수 옵션이다.

설명항목

COMP5 타입을 사용할 수 있도록 하기 위해 지정한다.-Comp5

Binary 타입으로 1Byte 만 할당할 수도 있게 한다.-Bin1Byte

VOS3 COBOL85와의 호환을 위해 지정한다.-CompatiV3

COBOL85와의 호환을 위해 지정한다.-Compati85,All

호출 대상 프로그램이 정적으로 Link되어 있지 않은 경우, 동적 Link를 하기

위해 설정한다.

-DynamicLink,Call

COBOL이 아닌 프로그램에서 호출되는 프로그램을 컴파일할 때 지정한다.

OpenFrame에서는 PGMRTS00이나 ADM 등에서 dlcall을 통해 호출하기 때

문에 이 옵션을 설정해야 한다.

-MainNotCBL

Shared Object로 컴파일하기 위해 지정한다.-Pic,Std

● 추가 옵션

다음은 cobol.conf 파일 [HCOB85] 절의 OPTIONS 항목에 추가로 설정이 가능한 옵션이다.

설명항목

소스 리스팅에 관한 옵션이다. COBOL2002 안내서를 참고하여 적합한 파라

미터와 함께 설정한다.

-SrcList

제3장 마이그레이션 툴 31

Page 46: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

사용하고 있는 COBOL 상황에 따라 규격사양을 지정한다. 지정하지 않으면

JIS87, ISO85, ANSI85, ISO2002에 따라 처리한다. 처리 규칙에 대한 설명은

COBOL2002 안내서를 참고한다.

-Stdversion

예제

다음은 cobol.conf의 예제이다.

[HCOB85]

COMMAND=ccbl2002

OPTIONS=-Comp5 -Bin1Byte -CompatiV3 -Compati85,All -DynamicLink,Call -MainNotCBL

-Pic,Std

LINK=ld -shared -L/opt/HILNGcbl2k/lib -lcbl2kml -lcbl2k

COPY_EXT=cpy,TXT

COPY_PATH=/home/Copybook1;/home/Copybook2

전처리 단계별 결과 파일

hcob85c는 전처리 과정에서 단계별로 결과 파일을 생성한다. 보통 종료할 때 삭제되지만, -d 옵션을 이용

하여 디버그 모드로 구동할 경우, 결과 파일이 삭제되지 않고 남게 되어 문제의 원인을 파악하는 데 도움

을 준다.

다음은 원본 파일이 COBOL.TXT라고 가정하고 설명한 전처리 단계별 결과 파일이다.

● 일반

설명파일

전처리가 완료된 소스이다.COBOL.cob

컴파일 과정에서 출력되는 내용을 저장하는 파일이다.COBOL.err

COBOL2002에서 소스 내용을 출력하는 리스트 파일이다. (옵션 설정에 따라

생성되지 않을 수 있다.)

COBOL.lst

COBOL.o를 필요 모듈들과 함께 Link하여 만든 Shared Object이다.COBOL.so

● 디버그용

설명파일

입력 소스에서 COPY 문을 전처리한 후의 소스이다.COBOL.copy

COBOL.copy를 입력으로 하여 REPLACE문을 전처리한 후의 소스이다.COBOL.rplc

COBOL.rplc를 입력으로 하여 기타 모든 전처리를 수행한 후의 소스이다.COBOL.netcob

COBOL.netcob를 입력으로 하여 칼럼 재조정 등을 수행한 후의 소스이다.COBOL.arng

32 OpenFrame 툴 참조 안내서

Page 47: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명파일

전처리 과정의 메시지를 저장한 파일이다.COBOL.log

컴파일된 Object이다.COBOL.o

전처리 항목

hcob85c는 대부분의 COBOL 소스를 그대로 보존하지만, 몇몇 항목에 대해서는 전처리가 필요하다. 다음

은 전처리되는 항목과 그 내용에 관한 설명이다.

참고

각 항목의 사용법에 대한 자세한 내용은 "VOS3 COBOL85 言語 文法書"를 참고한다.

COPY 문

COPY 문은 COBOL 컴파일러의 전처리 명령으로 외부에 저장된 소스(Copybook)를 삽입하기 위해 사용

한다.

원래는 COBOL 컴파일러에서 처리되지만 Copybook 내의 소스도 전처리가 필요한 부분이 있을 수 있기

때문에 OpenFrame의 전처리기에서 원본 소스에 모두 삽입하는 처리를 한다.

다음은 hcob85c에서 지원하는 COPY 문의 사용법이다.

COPY Copybook [{OF|IN} library]

[SUPRESS]

[PREFIXING prefix]

[SUFFIXING suffix]

[REPLACING {operand_1 BY operand_2}....]

설명항목

복사할 Copybook 이름을 지정한다.Copybook

복사할 Copybook이 위치한 라이브러리 이름을 지정한다.library

지정하지 않으면 SYSLIB이 지정된다.

복사하는 Copybook 내용이 source listring에 출력되지 않도록 하는 옵션이다.SUPRESS

복사하는 Copybook 내용 중 다음에 해당하는 DATA DIVISION의 데이터명에

prefix를 접두사로 추가한다.

PREFIXING prefix

- 레벨 번호 직후의 FILLER 이외의 데이터명

- REDEFINES 구 직후의 데이터명(단, 01 레벨은 제외한다.)

- RENAMES 구 직후의 데이터명 및 그 수식어

제3장 마이그레이션 툴 33

Page 48: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

- OCCURS 구의 INDEXED BY 지정의 지표명

- KEY IS 지정의 데이터명 및 그 수식어

복사하는 Copybook 내용 중 다음에 해당하는 DATA DIVISION의 데이터명에

suffix를 접미사로 추가한다.

SUFFIXING suffix

- 레벨 번호 직후의 FILLER 이외의 데이터명

- REDEFINES 구 직후의 데이터명(단, 01 레벨은 제외한다.)

- RENAMES 구 직후의 데이터명 및 그 수식어

- OCCURS 구의 INDEXED BY 지정의 지표명

- KEY IS 지정의 데이터명 및 그 수식어

복사하는 Copybook 내용 중 operand_1을 operand_2로 치환한다.REPLACING

다음은 REPLACING의 오퍼랜드로 지정할 수 있는 항목이다.operand_1,

operand_2- pseudo-text : "=="로 둘러싸인 문자열과 seperator의 조합이다. (치환할 때

"=="는 포함되지 않는다.)

- identifier

- literal

- COBOL 단어: COPY는 사용할 수 없다.

다음은 COPY 문의 예제이다.

COBOL 소스가 Copybook PAYLIB으로 저장되어 있는 경우이다.

01 A.

02 B PIC S99.

02 C PIC S99.

02 A-HOURS PIC S99 OCCURS 1 TO 9 TIMES

DEPENDING ON B OF A.

● 예제 1

다음은 COPY 문의 library 옵션을 사용하는 예제이다.

COPY PAYLIB

34 OpenFrame 툴 참조 안내서

Page 49: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

다음과 같이 원본 COBOL 소스와 동일한 소스가 COPY된다.

01 A.

02 B PIC S99.

02 C PIC S99.

02 A-HOURS PIC S99 OCCURS 1 TO 9 TIMES

DEPENDING ON B OF A.

● 예제 2

다음은 COPY 문의 library, REPLACING 옵션을 사용하는 예제이다.

COPY PAYLIB REPLACING A BY PAYROLL B BY PAY-CODE.

다음과 같이 A는 PAYROLL로, B는 PAY-CODE로 치환된다.

01 PAYROLL.

02 PAY-CODE PIC S99.

02 C PIC S99.

02 A-HOURS PIC S99 OCCURS 1 TO 9 TIMES

DEPENDING ON PAY-CODE OF PAYROLL.

● 예제 3

다음은 COPY 문의 REPLACING의 오퍼랜드에 pseudo-text를 사용하는 예제이다.

예제 2에서 A-HOURS의 A는 데이터명의 부분이기에 치환되지 않는다. 부분 치환을 하기 위해서는 다

음과 같이 pseudo-text를 이용한다.

PAYLIB2가 다음과 같은 경우를 가정한다.

01 A.

02 B PIC S99.

02 C PIC S99.

02 :TAG:-HOURS PIC S99 OCCURS 1 TO 9 TIMES

DEPENDING ON B OF A.

다음과 같이 COPY 문을 수행한다.

COPY PAYLIB2 REPLACING ==:TAG:== BY ==PAY==.

결과는 다음과 같다.

01 A.

02 B PIC S99.

02 C PIC S99.

02 PAY-HOURS PIC S99 OCCURS 1 TO 9 TIMES

DEPENDING ON B OF A.

제3장 마이그레이션 툴 35

Page 50: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

모든 데이터명에 PAY-를 일괄적으로 붙이고 싶을 경우에는 다음과 같이 COPY 문을 수행한다.

COPY PAYLIB PREFIXING PAY-.

결과는 다음과 같다.

01 PAY-A.

02 PAY-B PIC S99.

02 PAY-C PIC S99.

02 PAY-A-HOURS PIC S99 OCCURS 1 TO 9 TIMES

DEPENDING ON B OF A.

DEPENDING 구는 PREFIXING이나 SUFFIXING의 대상이 아니기 때문에 변환되지 않는다.

REPLACE 문

REPLACE 문은 COBOL 컴파일러의 전처리 명령으로, COBOL 프로그램의 일부분을 치환하기 위해 사용

한다.

원래는 COBOL 컴파일러에서 처리되지만 REPLACE 문 처리 후의 소스도 전처리가 필요한 부분이 있을

수 있기 때문에 OpenFrame의 전처리기에서 원본 소스의 REPLACE 문을 처리한다. 소스 전체의 COPY

문 처리 후에 동작한다.

REPLACE 문이 나온 부분부터 다음 REPLACE 문의 바로 전까지가 치환의 대상이 된다. REPLACE 문이

나오지 않으면 소스의 마지막까지 치환한다.

다음은 hcob85c에서 지원하는 REPLACE 문의 사용법이다.

REPLACE {{pseudo-text1 BY pseudo-test2}....|OFF}.

설명항목

"=="로 둘러싸인 문자열과 seperator의 조합이다. "=="는 치환할 때 포함되지 않는다.

1개 이상의 텍스트 워드를 포함해야 한다.

pseudo-test1

"=="로 둘러싸인 문자열과 seperator 의 조합이다. "=="는 치환할 때 포함되지 않는다.

0개 이상의 텍스트 워드를 포함해야 한다.

pseudo-test2

현재 작동 중인 REPLACE 문의 동작을 중지시킨다.OFF

OPEN 문

OPEN 문은 데이터 셋을 OPEN하는 문장이다. OS의 파일이 아닌 OpenFrame의 데이터 셋을 OPEN하기

위해서는 OpenFrame에서 제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 OPEN 문의 사용법이다.

36 OpenFrame 툴 참조 안내서

Page 51: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

OPEN { INPUT {filename [{REVERSED|{[WITH ]NO REWIND}]}...

| OUTPUT {filename [[WITH ]NO REWIND]}...

| I-O filename...

| EXTEND filename...}

전처리 과정에서 OPEN 문은 다음의 CALL 문으로 변경된다.

CALL 'acobfh_open' USING

BY REFERENCE FILE-DESCRIPTOR-VARIABLE(fd)

BY CONTENT 'ddname' BY VALUE ddname_len

{BY REFERENCE fstat1 | BY VALUE 0}

{BY REFERENCE fstat2 | BY VALUE 0}

BY VALUE organization

BY VALUE access_mode

BY VALUE open_mode

BY VALUE misc

{BY REFERENCE rel_key | BY VALUE 0}

BY VALUE open_flags

BY REFERENCE ret

{BY REFERENCE record_name OF fdname | BY VALUE 0}

{BY REFERENCE depending | BY VALUE 0}

BY VALUE n_buf

BY VALUE n_reckey

BY VALUE n_altkey

BY VALUE n_nomkey

{BY VALUE LENGTH OF record_name OF fdname }...

{BY VALUE reckey_comp_num BY VALUE {0|1}

{BY REFERENCE reckey_name BY VALUE LENGTH OF reckey_name}...}

{BY VALUE altkey_comp_num BY VALUE {0|1}

{BY REFERENCE altkey_name BY VALUE LENGTH OF altkey_name}...}

{BY VALUE nomkey_comp_num BY VALUE {0|1}

{BY REFERENCE nomkey_name BY VALUE LENGTH OF nomkey_name}...}

END-CALL

다음은 CALL 문의 각 항목에 대한 설명이다.

설명항목

OPEN하려는 FD에 내부적으로 할당한 인덱스이다.fd

OPEN하려는 FD에 assign된 DD의 이름이다.ddname

ddname의 길이이다.ddname_len

FD의 FILE STATUS 구문에 1번째로 주어진 데이터명이다. 주어지지 않았다

면 BY VALUE 0로 NULL이 전달된다.

fstat1

FD의 FILE STATUS 구문에 두번째로 주어진 데이터명이다. 주어지지 않았

다면 BY VALUE 0로 NULL이 전달된다.

fstat2

SELECT 문에 주어진 ORGANIZATION 구에 해당하는 값이 전달된다.organization

제3장 마이그레이션 툴 37

Page 52: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

SELECT 문에 주어진 ACCESS구에 해당하는 값이 전달된다.access_mode

OPEN 문의 INPUT, OUTPUT, I-O, EXTEND에 해당하는 값이 전달된다.open_mode

SELECT 문에 OPTIONAL 지정 여부가 전달된다.misc

SELECT 문에 RELATIVE KEY 구가 지정된 경우, 설정된 데이터명이 전달된

다. 주어지지 않았다면 BY VALUE 0로 NULL이 전달된다.

rel_key

OPEN 문에 지정된 REVERSED나 NO REWIND 등에 해당하는 값이 전달된

다.

open_flags

acobfh_open의 결과를 돌려받을 변수를 지정한다.ret

FD에 연결된 record buffer 이름이 전달된다. 주어지지 않았다면 BY VALUE

0로 NULL이 전달된다.

record_name

FD 이름을 지정한다.fdname

FD의 DEPENDING ON구에 지정된 데이터명이 전달된다. 주어지지 않았다

면 BY VALUE 0로 NULL이 전달된다.

depending

record buffer의 수를 지정한다.n_buf

RECORD KEY의 지정 여부를 전달한다.n_reckey

ALTERNATE RECORD KEY의 지정 여부가 전달된다.n_altkey

NOMINAL KEY의 지정 여부가 전달된다.n_nomkey

RECORD KEY의 수가 전달된다.reckey_comp_num

RECORD KEY의 이름이 전달된다.reckey_name

ALTERNATE RECORD KEY의 수가 전달된다.altkey_comp_num

ALTERNATE RECORD KEY의 이름이 전달된다.altkey_name

NOMINAL KEY의 수가 전달된다.nomkey_comp_num

NOMINAL KEY의 이름이 전달된다.nomkey_name

READ 문

READ 문은 데이터 셋에서 레코드를 읽는 문장이다. OS의 파일이 아닌 OpenFrame의 데이터 셋을 읽기

위해서는 OpenFrame에서 제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 READ 문의 사용법이다.

- Format 1: sequential 파일 READ 시

READ file-name [NEXT] [RECORD] [INTO identifier]

[[AT ]END impertive-statement1]

[NOT [AT ]END impertive-statement2]

[END-READ]

- FORMAT 2: random access 파일 READ 시

38 OpenFrame 툴 참조 안내서

Page 53: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

READ file-name [RECORD] [INTO identifier]

[KEY [IS ]keyname]

[INVALID [KEY ]impertive-statement3]

[NOT INVALID [KEY ]impertive-statement4]

[END-READ]

전처리 과정에서 READ 문은 다음의 CALL 문으로 변경된다.

CALL 'acobfh_read' USING

BY REFERENCE FILE-DESCRIPTOR-VAR(fd)

{BY REFEFENCE into-identifier BY VALUE LENGTH OF into-identifier | BY VALYE 0 BY

VALUE 0} # INTO 가 있으면 전자

BY VALUE read_flags

BY REFERENCE FILE-STATUS-VAR(fd)

BY VALUE reckey_num

{BY REFERENCE reckey BY VALUE LENGTH of reckey}... # reckey_num 만큼 반복

END-CALL

# AT END 존재시 추가

IF FILE-STATUS-VAR(fd) = 'CC' THEN

imperative-statement1

END-IF

# NOT AT END 존재시 추가

IF FILE-STATUS-VAR(fd) NOT = 'CC' THEN

imperative-statement2

END-IF

# INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) = 'AA' THEN

imperative-statement3

END-IF

# NOT INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) NOT = 'AA' THEN

imperative-statement4

END-IF

설명항목

READ하려는 파일에 내부적으로 할당한 인덱스이다.fd

INTO 구에 주어진 identifer이다.into-identifier

NEXT 구의 지정 여부가 전달된다.read_flags

record key의 개수가 전달된다.reckey_num

record key의 dataname이다.reckey

제3장 마이그레이션 툴 39

Page 54: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

REWRITE 문

REWRITE 문은 직접 Access가 가능한 데이터 셋에서 레코드를 변경하는 문장이다. I-O 모드로 OPEN되

어야만 REWRITE할 수 있다. OS의 파일이 아닌 OpenFrame의 데이터 셋을 변경하기 위해서는 OpenFrame

에서 제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 REWRITE 문의 사용법이다.

REWRITE record-name [FROM from-identifier]

[INVALID [KEY ]impertive-statement1]

[NOT INVALID [KEY ]impertive-statement2]

[END-REWRITE]

전처리 과정에서 REWRITE 문은 다음의 CALL 문으로 변경된다.

# FROM구 존재시만 하기 내용 추가

CALL 'cmove' USING

BY REFERENCE from-identifier BY VALUE LENGTH OF from-identifier

BY REFERENCE record-name BY VALUE LENGTH OF record-name

END-CALL

# FROM 구 관련 처리 종료

CALL 'acobfh_rewrite' USING

BY REFERENCE FILE-DESCRIPTOR-VAR(fd)

BY REFEFENCE record-name BY VALUE LENGTH OF record-name

BY VALUE rewrite_flags

BY REFERENCE FILE-STATUS-VAR(fd)

END-CALL

# INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) = 'AA' THEN

imperative-statement1

END-IF

# NOT INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) NOT = 'AA' THEN

imperative-statement2

END-IF

설명항목

REWRITE하려는 FD에 내부적으로 할당한 인덱스이다.fd

FROM 구에 주어진 identifer이다. REWRITE 대상 레코드에 갱신할 내용이 저장된 변

수이거나 상수이다.

from-identifier

REWRITE 문의 주어진 값 그대로 전달된다.record-name

정해진 기본값이 전달되므로 특별한 의미는 없다.rewrite_flags

40 OpenFrame 툴 참조 안내서

Page 55: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

WRITE 문

WRITE 문은 데이터 셋에 레코드를 기록하는 문장이다. OUTPUT 또는 I-O 모드로 OPEN되어야만 WRITE

할 수 있다. OS의 파일이 아닌 OpenFrame의 데이터 셋을 변경하기 위해서는 OpenFrame에서 제공하는

라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 WRITE 문의 사용법이다.

WRITE record-name [FROM from-identifier]

{ [ {BEFORE | AFTER} [ADVANCING]

{ {line-identifier | integer } [{LINE|LINES} ]

| memonic-name

| PAGE }

] phrase-1

| [ invalid-key ] [ not-invalid-key ] }

[END-WRITE]

phrase-1:

[ [AT] { END-OF-PAGE | EOP } imperative-statement1 ]

[ NOT [AT] { END-OF-PAGE | EOP } imperative-statement2 ]

invalid-key :

[INVALID [KEY ]impertive-statement3]

not-invalid-key :

[NOT INVALID [KEY ]impertive-statement4]

[END-REWRITE]

전처리 과정에서 WRITE 문은 다음의 CALL 문으로 변경된다.

# FROM구 존재시만 하기 내용 추가

CALL 'cmove' USING

BY REFERENCE from-identifier BY VALUE LENGTH OF from-identifier

BY REFERENCE record-name BY VALUE LENGTH OF record-name

END-CALL

# FROM 구 관련 처리 종료

CALL 'acobfh_write' USING

BY REFERENCE FILE-DESCRIPTOR-VAR(fd)

BY REFEFENCE record-name BY VALUE LENGTH OF record-name

BY VALUE line_count_str BY VALUE line_cont_num # about BEFORE/AFTER ADVANCING

BY VALUE write_flags

BY REFERENCE FILE-STATUS-VAR(fd)

END-CALL

# AT END-OF-PAGE 존재시 추가

IF FILE-STATUS-VAR(fd) = 'EE' THEN

imperative-statement1

END-IF

제3장 마이그레이션 툴 41

Page 56: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

# NOT AT END-OF-PAGE 존재시 추가

IF FILE-STATUS-VAR(fd) NOT = 'EE' THEN

imperative-statement2

END-IF

# INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) = 'AA' THEN

imperative-statement3

END-IF

# NOT INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) NOT = 'AA' THEN

imperative-statement4

END-IF

설명항목

WRITE하려는 FD에 내부적으로 할당한 인덱스이다.fd

FROM 구에 주어진 identifer이다. WRITE 대상 레코드에 갱신할 내용이 저장된 변수

이거나 상수이다.

from-identifier

WRITE 문의 주어진 값 그대로 전달된다.record-name

BEFORE/AFTER ADVACING에 주어진 line-identifier나 mnemonic-name, PAGE 등

을 전달하기 위해 사용된다. mnemonic-name의 경우 ENVIRONMENT DIVISION에

SPECIAL-NAME구로 지정된 값이 있다면 이로 치환하여 전달한다.

line_count_str

BEFORE/AFTER ADVACING에 주어진 integer값을 전달하기 위해 사용한다.line_count_num

BEFORE/AFTER 구의 지정에 따라 적절한 flag를 설정하여 전달한다.write_flags

START 문

START 문은 indexed나 relative 데이터 셋에서 연속적으로 레코드를 읽기 위해 특정 레코드 위치로 이동

하는 문장이다. OS의 파일이 아닌 OpenFrame의 데이터 셋에 접근하기 위해서는 OpenFrame에서 제공

하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 START 문의 사용법이다.

START file-name

[KEY [IS]

{ { EQUAL [TO] | = }

|{ GREATER [THAN] | > }

|{ NOT LESS THAN | NOT < }

|{ GREATER [THAN] OR EQUAL [TO] | >= }

}

data-name]

[INVALID [KEY ]impertive-statement1]

42 OpenFrame 툴 참조 안내서

Page 57: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

[NOT INVALID [KEY ]impertive-statement2]

[END-START]

전처리 과정에서 START 문은 다음의 CALL 문으로 변경된다.

CALL 'acobfh_start' USING

BY REFERENCE FILE-DESCRIPTOR-VAR(fd)

BY VALUE start_flags

BY REFERENCE FILE-STATUS-VAR(fd)

BY VALUE 1

BY REFERENCE data-name BY VALUE LENGTH OF data-name

END-CALL

# INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) = 'AA' THEN

imperative-statement1

END-IF

# NOT INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) NOT = 'AA' THEN

imperative-statement2

END-IF

설명항목

START하려는 FD에 내부적으로 할당한 인덱스이다.fd

RECORD의 키와 비교할 값이 저장된 변수이다.data-name

키의 비교 조건을 전달한다.start_flags

DELETE 문

DELETE 문은 indexed나 relative 데이터 셋에서 1개 레코드를 삭제하기 위해 사용한다. 레코드의 KEY값

은 FD와 연결된 record buffer에 저장되어 있어야 한다. OS의 파일이 아닌 OpenFrame의 데이터 셋에 접

근하기 위해서는 OpenFrame에서 제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 DELETE 문의 사용법이다.

DELETE file-name

[RECORD]

[INVALID [KEY ]impertive-statement1]

[NOT INVALID [KEY ]impertive-statement2]

[END-DELETE]

전처리 과정에서 DELETE 문은 다음의 CALL 문으로 변경된다. record buffer는 acobfh_open을 통해 이미

전달되어 있다.

CALL 'acobfh_delete' USING

BY REFERENCE FILE-DESCRIPTOR-VAR(fd)

BY VALUE delete_flags

제3장 마이그레이션 툴 43

Page 58: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

BY REFERENCE FILE-STATUS-VAR(fd)

END-CALL

# INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) = 'AA' THEN

imperative-statement1

END-IF

# NOT INVALID KEY 존재시 추가

IF FILE-STATUS-VAR(fd) NOT = 'AA' THEN

imperative-statement2

END-IF

설명항목

DELETE하려는 FD에 내부적으로 할당한 인덱스이다.fd

정해진 기본값이 전달되므로 특별한 의미는 없다.delete_flags

CLOSE 문

CLOSE 문은 데이터 셋을 닫기 위해 사용한다. OS의 파일이 아닌 OpenFrame의 데이터 셋에 접근하기

위해서는 OpenFrame에서 제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 CLOSE 문의 사용법이다.

CLOSE file-name

[ { { RELL | UNIT } [ { [FOR] REMOVAL ]

| WITH NO REWIND } ]

| [WITH] { LOCK | NO REWIND } ]

전처리 과정에서 CLOSE 문은 다음의 CALL 문으로 변경된다.

CALL 'acobfh_close' USING

BY REFERENCE FILE-DESCRIPTOR-VAR(fd)

BY VALUE close_flags

BY REFERENCE FILE-STATUS-VAR(fd)

END-CALL

설명항목

CLOSE하려는 FD에 내부적으로 할당한 인덱스이다.fd

CLOSE의 옵션이 전달된다.close_flags

SORT 문

SORT 문은 1개 이상의 데이터 셋의 레코드를 정렬하기 위해 사용한다. OpenFrame의 데이터 셋에 접근

하고 OpenFrame에서 제공하는 SORT 엔진을 사용하기 위해서는 적절한 전처리 과정이 필요하다.

다음은 hcob85c에서 지원하는 SORT 문의 사용법이다.

44 OpenFrame 툴 참조 안내서

Page 59: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

참고

사용법에 대한 자세한 내용은 "VOS3 COBOL85 言語 文法書"를 참고한다.

SORT sd-filename

[ON] { ASECNEDING | DESCENDING } [KEY] {key-name}....

[ [WITH] DUPLICATES [IN] [ORDER] ]

[ [COLLATING] SEQUENCE [IS] colseq ]

{ USING {using-filename}....

|INPUT PROCEDURE [IS] procedure-name1 [ {THROUGH | THRU} procedure-name2 ]

}

{ GIVING {giving-filename}....

|OUTPUT PROCEDURE [IS] procedure-name3 [ {THROUGH | THRU} procedure-name4 ]

}

전처리 과정에서 SORT 문은 다음의 CALL 문으로 변경된다.

CALL 'aextsm_setup' USING

BY VALUE 1

{ BY REFERENCE record-name OF sd-filename | BY VALUE 0 } # SD 에 record buffer 가 주

어졌을 때 는 전자, 없으면 후자

BY VALUE with_duplicate

{ BY CONTENT 'col_seq' BY VALUE col_seq_len | BY VALUE 0 BY VALUE 0 } # SEQUENCE 가

있으면 전자, 없으면 후자

BY REFERENCE SORT-CORE-SIZE-VAR

BY REFRENCE SORT-STATUS-VAR

BY VALUE key-num

BY VAULE using-dd-num

BY VALUE giving-dd-num

BY VALUE rec-num

# 아래는 key-num 만큼 반복

{ BY REFERENCE key-name BY VALUE LENGTH OF key-name BY CONTENT 'key-format' BY VALUE

sort-order }...

# 아래는 using-dd-num 만큼 반복

{ BY CONTENT 'using-filename' BY VALUE using-filename-len }...

# 아래는 giving-dd-num 만큼 반복

{ BY CONTENT 'giving-filename' BY VALUE giving-filename-len }...

# 아래는 rec-num 만큼 반복

{BY VALUE LENGTH OF record-name OF sd-filename }...

END-CALL

# aextsm_setup 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

# 입력 레코드 전달

# input procedure 가 주어졌을 때

제3장 마이그레이션 툴 45

Page 60: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

PERFORM input-proc

# input procedure 가 주어지지 않고 USING DD 가 주어졌을 때

CALL 'aextsm_put' USING

BY REFERENCE SORT-STATUS-VAR

END-CALL

# aextsm_put 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

# SORT 실행

CALL 'aextsm_run' USING

BY REFERENCE SORT-STATUS-VAR

END-CALL

# aextsm_run 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

# 출력 레코드 반환

# output procedure 가 주여졌을 때

PERFORM output-proc

# output procedure 가 주어지지 않고, GIVING DD 가 주어졌을 때

CALL 'aextsm_get' USING

BY REFERENCE SORT-STATUS-VAR

END-CALL

# aextsm_get 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

# SORT 종료

CALL 'aextsm_end' END-CALL

# aextsm_end 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

설명항목

sd-filename과 연결된 record buffer의 이름을 지정한다.record-name

SD 문으로 선언된 SORT 식별자를 지정한다.sd-filename

WITH DUPLICATE 구 지정 여부를 전달하여 stable SORT 여부를 결정한다.with-duplicate

정렬순서를 지정한다. COLLATING SEQUENCE 문에 주어진 이름을 지정한

다.

colseq

colseq로 주어지는 이름의 길이를 지정한다.colseq-len

46 OpenFrame 툴 참조 안내서

Page 61: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

SORT의 정렬 키의 수를 지정한다.key-num

USING으로 주어진 입력 DD의 수를 지정한다.using-dd-num

GIVING으로 주어진 출력 DD의 수를 지정한다.giving-dd-num

SORT 문과 연결된 SD 문의 record buffer 수를 지정한다.rec-num

정렬 키의 이름을 지정한다.key-name

정렬 키의 형식을 지정한다.key-format

정렬 키별 오름차순, 내림차순을 지정한다.sort-order

입력 데이터 셋의 FD 이름을 지정한다.using-filename

입력 데이터 셋의 FD 이름의 길이를 지정한다.using-filename-len

출력 데이터 셋의 FD 이름을 지정한다.giving-filename

출력 데이터 셋의 FD 이름의 길이를 지정한다.giving-filename-len

MERGE 문

MERGE 문은 2개 이상의 데이터 셋의 레코드를 MERGE하기 위해 사용한다. OpenFrame의 데이터 셋에

접근하고 OpenFrame에서 제공하는 MERGE 엔진을 사용하기 위해서는 적절한 전처리 과정이 필요하다.

다음은 hcob85c에서 지원하는 MERGE 문의 사용법이다.

MERGE sd-filename

[ON] { ASECNEDING | DESCENDING } [KEY] {key-name}....

[ [COLLATING] SEQUENCE [IS] alphabet-name ]

{ USING {using-filename}....

|INPUT PROCEDURE [IS] procedure-name1 [ {THROUGH | THRU} procedure-name2 ]

}

{ GIVING {giving-filename}....

|OUTPUT PROCEDURE [IS] procedure-name3 [ {THROUGH | THRU} procedure-name4 ]

}

전처리 과정에서 MERGE 문은 다음의 CALL 문으로 변경된다.

CALL 'aextsm_setup' USING

BY VALUE 1

{ BY REFERENCE record-name OF sd-filename | BY VALUE 0 } # SD 에 record buffer 가 주

어졌을 때 는 전자, 없으면 후자

BY VALUE with_duplicate

{ BY CONTENT 'col_seq' BY VALUE col_seq_len | BY VALUE 0 BY VALUE 0 } # SEQUENCE 가

있으면 전자, 없으면 후자

BY REFERENCE SORT-CORE-SIZE-VAR

BY REFRENCE SORT-STATUS-VAR

BY VALUE key-num

BY VAULE using-dd-num

제3장 마이그레이션 툴 47

Page 62: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

BY VALUE giving-dd-num

BY VALUE rec-num

# 아래는 key-num 만큼 반복

{ BY REFERENCE key-name BY VALUE LENGTH OF key-name BY CONTENT 'key-format' BY VALUE

sort-order }...

# 아래는 using-dd-num 만큼 반복

{ BY CONTENT 'using-filename' BY VALUE using-filename-len }...

# 아래는 giving-dd-num 만큼 반복

{ BY CONTENT 'giving-filename' BY VALUE giving-filename-len }...

# 아래는 rec-num 만큼 반복

{BY VALUE LENGTH OF record-name OF sd-filename }...

END-CALL

# aextsm_setup 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

# 입력 레코드 전달

# input procedure 가 주어졌을 때

PERFORM input-proc

# input procedure 가 주어지지 않고 USING DD 가 주어졌을 때

CALL 'aextsm_put' USING

BY REFERENCE SORT-STATUS-VAR

END-CALL

# aextsm_put 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

# SORT 실행

CALL 'aextsm_run' USING

BY REFERENCE SORT-STATUS-VAR

END-CALL

# aextsm_run 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

# 출력 레코드 반환

# output procedure 가 주여졌을 때

PERFORM output-proc

# output procedure 가 주어지지 않고, GIVING DD 가 주어졌을 때

CALL 'aextsm_get' USING

BY REFERENCE SORT-STATUS-VAR

END-CALL

# aextsm_get 의 에러 체크

IF SORT-STATUS-VAR = 16

48 OpenFrame 툴 참조 안내서

Page 63: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

GOBACK.

ENDIF

# SORT 종료

CALL 'aextsm_end' END-CALL

# aextsm_end 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

설명항목

sd-filename과 연결된 record buffer의 이름을 지정한다.record-name

SD 문으로 선언된 MERGE 식별자를 지정한다.sd-filename

WITH DUPLICATE 구 지정 여부를 전달하여 stable MERGE 여부를 결정한

다.

with-duplicate

MERGE 순서를 지정한다. COLLATING SEQUENCE 문에 주어진 이름을 지

정한다.

colseq

colseq로 주어지는 이름의 길이를 지정한다.colseq-len

MERGE의 키의 수를 지정한다.key-num

USING으로 주어진 입력 DD 수를 지정한다.using-dd-num

GIVING으로 주어진 출력 DD 수를 지정한다.giving-dd-num

MERGE 문과 연결된 SD 문의 record buffer 수를 지정한다.rec-num

MERGE 키의 이름을 지정한다.key-name

MERGE 키의 형식을 지정한다.key-format

MERGE 키별 오름차순, 내림차순을 지정한다.sort-order

입력 데이터 셋의 FD 이름을 지정한다.using-filename

입력 데이터 셋의 FD 이름의 길이를 지정한다.using-filename-len

출력 데이터 셋의 FD 이름을 지정한다.giving-filename

출력 데이터 셋의 FD 이름의 길이를 지정한다.giving-filename-len

RELEASE 문

RELEASE 문은 주어진 record를 SORT의 입력 레코드로 전달하기 위해 사용한다. OpenFrame의 SORT

에 접근하기 위해서 OpenFrame에서 제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 RELEASE 문의 사용법이다.

RELEASE record-name FROM from-identifier

전처리 과정에서 RELASE 문은 다음의 CALL 문으로 변경된다.

제3장 마이그레이션 툴 49

Page 64: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

# from 구 존재시

MOVE from-identifier TO record-name.

# 통상

CALL 'aextsm_release' USING

BY REFERENCE record-name

BY VALUE LENGTH OF record-name

BY REFERENCE SORT-STATUS-VAR

END-CALL

# aextsm_release 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

설명항목

FROM 구에 주어진 변수 또는 상수를 지정한다.from-identifer

SORT에 전달할 record 변수 이름을 지정한다.record-name

RETURN 문

RETURN 문은 SORT/MERGE의 결과를 레코드 단위로 반환하기 위해 사용한다. OpenFrame의 SORT,

MERGE에 접근하기 위해서 OpenFrame에서 제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 RETURN 문의 사용법이다.

RETURN sd-file-name [RECORD] [INTO into-identifier]

[ [AT] END imperative-statement1 ]

[ NOT [AT] END imperative-statement2 ]

END-RETURN

전처리 과정에서 RETURN 문은 다음의 CALL 문으로 변경된다.

CALL 'aextsm_return' USING

BY REFERENCE record-name OF sd-file-name

BY REFERENCE RETURN-CODE-VAR

BY REFERENCE SORT-STATUS-VAR

END-CALL

# aextsm_release 의 에러 체크

IF SORT-STATUS-VAR = 16

GOBACK.

ENDIF

# AT END 구 존재시

IF RETURN-CODE-VAR = 1 THEN

imperative-statement1

END-IF

50 OpenFrame 툴 참조 안내서

Page 65: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

# NOT AT END 구 존재시

IF RETURN-CODE-VAR NOT = 1 THEN

# INTO 문 존재시 반환된 레코드 이동

IF SORT-STATUS-VAR = ZERO THEN

MOVE record-name OF sd-file-name TO into-identifier

END-IF

imperative-statement2

END-IF

설명항목

sd-file-name으로 주어진 SD의 레코드 영역 이름을 지정한다.record-name

SORT/MERGE에 사용된 SD 이름을 지정한다.sd-file-name

반환된 RECORD가 추가로 저장될 변수를 지정한다.into-identifier

ACCEPT 문

ACCEPT 문은 데이터나 시스템 날짜 관련 정보 등을 주어진 변수로 전송하기 위해 사용한다. 이 중에서는

콘솔로부터 전송되는 데이터도 있는데, OpenFrame의 콘솔 시스템과 연계하기 위하여 OpenFrame에서

제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 ACCEPT 문의 사용법이다.

# 데이터 전송

ACCEPT identifier [FROM source]

# 날짜 관련

ACCEPT identifier FROM { DATE | DAY | DAY-OF-WEEK | TIME }

source가 CONSOLE인 경우 전처리 과정에서 ACCEPT 문은 다음의 CALL 문으로 변경된다. 이외의 경우

는 변경되지 않는다.

CALL 'console_accept_cob' USING

identifier

BY VALUE LENGTH OF identifier

END-CALL

설명항목

ACCEPT문을 수행한 후 데이터가 저장될 변수이다.identifier

제3장 마이그레이션 툴 51

Page 66: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

DISPLAY 문

데이터를 하드웨어 장치에 표시하기 위해 사용한다. 대상 장치가 콘솔인 경우, OpenFrame의 콘솔 시스템

과 연계하기 위하여 OpenFrame에서 제공하는 라이브러리를 CALL하도록 변경해야 한다.

다음은 hcob85c에서 지원하는 DISPLAY 문의 사용법이다.

DISPLAY {identifier | literal}... [UPON target] [WITH NO ADVANCING]

target이 CONSOLE인 경우 전처리 과정에서 DISPLAY 문은 다음의 CALL 문으로 변경된다. 이외의 경우

는 변경되지 않는다.

CALL 'console_display_cob' USING

BY VALUE num_object

{ BY REFERENCE identifier BY VALUE LENGTH OF identifier

|BY CONTENT string_literal BY VALUE LENGTH OF string_literal

|BY REFERENCE other_literal BY VALUE LENGTH OF other_literal

}... # num_object 만큼 반복

END-CALL

설명항목

DISPLAY 문에 주어진 identifier나 literal의 총 수이다.num_object

DISPLAY 문에 주어진 identifier이다.identifier

DISPLAY 문에 주어진 literal 중 작은 따옴표(')나 큰 따옴표(")로 둘러싸인 경우이다.string_literal

DISPLAY 문에 주어진 literal 중 string_literal을 제외한 경우이다.other_literal

STOP 문

STOP 문은 프로그램의 실행을 한시적으로 또는 확정적으로 중지시키기 위해 사용한다. RUN이 아닌 literal

이 사용된 경우, 콘솔과 연계할 필요성이 있기 때문에 수정이 필요하다.

다음은 hcob85c에서 지원하는 STOP 문의 사용법이다.

STOP { RUN | literal }

전처리 과정에서 STOP 문은 다음의 CALL 문으로 변경된다.

#STOP RUN 의 경우

GOBACK

#STOP literal 의 경우

# CONSOLE 에 literal 표시

CALL 'console_display_cob' USING BY VALUE 1

{ BY CONTENT string_literal BY VALUE LENGTH OF string_literal

|BY REFERENCE other_literal BY VALUE LENGTH OF other_literal

}

END-CALL

# 응답 받을 변수 초기화

52 OpenFrame 툴 참조 안내서

Page 67: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

INITIALIZE xxx

# operator 응답 대기

CALL 'console_accept_cob' USING

BY REFERENCE xxx

BY VALUE LENGTH OF xxx

END-CALL

# 응답 확인 및 분기

IF xxx = 'CANCEL'

GOBACK

ELSE

CONTINUE

END-IF

설명항목

STOP하려는 FD에 내부적으로 할당한 인덱스이다.fd

CLOSE의 옵션이 전달된다.close_flags

CALL 'CBLTDA' 문

CALL 'CBLTDA' 문은 COBOL에서 ADM의 기능을 사용할 수 있도록 한다. OpenFrame의 ADM과의 호환

성을 위해 몇가지 파라미터가 추가되어야 한다.

● CALL 'CBLTDA' 는 가변 파라미터를 사용한다. C 함수에서 가변 파라미터를 받기 위해서 처음 파라미

터로 파라미터의 수를 넘기도록 추가한다.

● CALL 'CBLTDA' 의 1번째 파라미터가 GU 또는 GHU를 포함하고 있다면 CBLTDA의 마지막 파라미터

로 3번째 파라미터로 주어진 변수의 크기를 전달한다.

다음은 CBLTDA를 CALL하는 예제이다.

CALL 'CBLTDA' USING BY REFERENCE DLI-GU IO-PCB-MASK INPUT-MESSAGE-IO-AREA.

전처리 과정에서 위의 문장은 다음과 같이 변환된다.

CALL 'CBLTDA' USING BY CONTENT 3 BY REFERENCE DLI-GU

IO-PCB-MASK INPUT-MESSAGE-IO-AREA BY CONTENT LENGTH OF

INPUT-MESSAGE-IO-AREA.

제3장 마이그레이션 툴 53

Page 68: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

일본어 literal

다음은 VOS3의 COBOL85에서는 지원되는 일본어 literal 타입이다.

설명literal

일본어 직접 정수이다.NC

가명 한자 정수이다.NN

KEIS 정수이다.NA

가타카나 정수이다.NK

히라가나 정수이다.NH

16진 한자 정수이다.NX

Hitachi의 COBOL2002에서는 지원되는 일본어 literal 타입은 NC, ND, NX이다.

지원하는 literal 타입이 1:1 대응되지 않기 때문에, 현재는 NC와 NX만 Mapping하고, 나머지는 NC로 변경

하고 있다.

54 OpenFrame 툴 참조 안내서

Page 69: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

제4장 데이터 셋 관리 툴

4.1. dsviewdsview는 데이터 셋의 내용을 보여주는 툴이다.

사용법

dsview 프로그램을 실행하는 방법은 다음과 같다.

Usage: dsview [-s] dataset_name [member_name] [-v volume_serial] [-c user_catalog]

설명항목

시스템 데이터 셋의 내용을 조회할 때 사용하는 옵션이다.[-s]

ds.conf 파일의 [SYS1_CLIENT] 절과 [TSAM_CLIENT] 절의 접속 계정이 같은

경우에는 옵션에 상관없이 시스템 데이터 셋의 내용을 볼 수 있다.

조회할 데이터 셋의 이름을 지정한다.dataset_name

조회할 데이터 셋의 멤버 이름을 지정한다.[member_name]

조회할 데이터 셋의 볼륨시리얼을 지정한다. 보고자 하는 데이터 셋이 카탈로그

에 등록되어 있지 않은 경우 이 옵션을 설정하여 지정한 볼륨 디렉터리에 존재하

는 데이터 셋을 볼 수 있다.

[-v volume_serial]

조회할 데이터 셋이 사용자 카탈로그에 등록되어있는 경우 이 옵션을 설정한다.[-c user_catalog]

단, 사용자 카탈로그에 alias가 설정되어 있어서 데이터 셋 이름만으로 찾을 수

있는 경우에는 이 옵션을 지정하지 않아도 된다.

자세한 내용은 “데이터 셋 안내서”의 “제4장 통합 카탈로그의 카탈로그 관리”를

참고한다.

dsview에서 사용할 수 있는 명령어는 다음과 같다.

설명항목

이전 페이지로 이동한다.<CTRL>+b

다음 페이지로 이동한다.<CTRL>+f

현재 행의 첫 문자로 이동한다.^

제4장 데이터 셋 관리 툴 55

Page 70: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

현재 행의 마지막 문자로 이동한다.$

125 라인으로 이동한다.125G

125 라인으로 이동한다.:125

마지막 행으로 이동한다.G

왼쪽, 위쪽, 아래쪽, 오른쪽으로 이동한다.h,j,k,l

숫자를 앞에 붙이면 숫자만큼 이동한다.

예) 5h - 5칸 왼쪽으로 이동한다.

abc를 검색한다./abc

5행에서 abc를 검색한다./abc 5

Hexa code로 검색한다.//616263

다음 내용을 검색한다.n

화면을 새로고침한다.<CTRL>+l

도움말을 보여준다.:h

종료한다.:q

사용예제

다음은 시스템 데이터 셋의 내용을 보여주는 예이다.

$ dsview -s SYS1.JOBQ

다음은 데이터 셋에 속한 멤버의 내용을 보여주는 예이다.

$ dsview AAA.PDS TESTPGM

다음은 지정한 볼륨에 위치한 데이터 셋의 내용을 보여주는 예이다.

$ dsview AAA.BBB -v DEFVOL

다음은 사용자 카탈로그에 등록되어 있는 데이터 셋의 내용을 보여주는 예이다.

$ dsview AAA.BBB -c USERCAT

56 OpenFrame 툴 참조 안내서

Page 71: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

관련 환경설정

다음은 카탈로그에 등록되어 있지 않은 Non-VSAM 데이터 셋의 내용을 보기 위한 설정이다.

<dstool.conf>

[DSVIEW]

NOCATALOG_VIEW=[YES|NO]

설명항목

카탈로그에 등록되어 있지 않은 데이터 셋이라도 디폴트 볼륨에 있는 Non-VSAM

데이터 셋의 내용을 볼 수 있다.

YES

카탈로그에 등록되어 있지 않은 데이터 셋의 내용은 볼 수 없다.NO

참고

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

4.2. dsedit

dsedit은 dsview에서 좀 더 발전된 형태로 데이터 셋의 내용을 보여주고 데이터 셋의 내용을 변경하도록

해주는 툴이다.

dsedit는 데이터 셋의 내용을 조회하는 dsview에서 데이터 셋 내용을 변경할 수 있는 기능이 추가된 툴이

다. 데이터 셋의 레코드 추가나 삭제는 불가능하며 기존 레코드의 변경만 가능하다. 데이터 셋 변경 작업

중에는 해당 데이터 셋에 독점적(Exclusive)인 잠금(Lock)을 실행시킨다. 단, VSAM 데이터 셋에 대한 변

경은 할 수 없다.

시용법

dsedit 프로그램을 실행하는 방법은 다음과 같다.

Usage: dsedit [-s] dataset_name [member_name] [-v volume_serail] [-c user_catalog]

설명항목

시스템 데이터 셋의 내용을 변경할 때 사용하는 옵션이다.[-s]

설정 파일 중 ds.conf 파일의 [SYS1_CLIENT] 절과 [TSAM_CLIENT] 절의 접속

계정이 같은 경우에는 옵션에 상관없이 시스템 데이터 셋의 내용을 볼 수 있다.

변경할 데이터 셋의 이름이다.dataset_name

변경할 데이터 셋의 멤버 이름이다.[member_name]

제4장 데이터 셋 관리 툴 57

Page 72: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

변경할 데이터 셋의 볼륨 시리얼을 지정한다. 변경할 데이터 셋이 카탈로그에 등

록되어 있지 않은 경우 이 옵션을 설정하여 지정한 볼륨 디렉터리에 존재하는 데

이터 셋을 찾아올 수 있다.

[-v volume_serial]

변경할 데이터 셋이 사용자 카탈로그에 등록되어있는 경우 이 옵션을 설정한다.[-c user_catalog]

단, 사용자 카탈로그에 alias가 설정되어 있어서 데이터 셋 이름만으로 찾을 수

있는 경우에는 이 옵션을 지정하지 않아도 된다.

자세한 내용은 “데이터 셋 안내서”의 “제4장 통합 카탈로그의 카탈로그 관리”를

참고한다.

dsedit에서 사용할 수 있는 명령어는 다음과 같다.

설명항목

이전 페이지로 이동한다.<CTRL>+b

다음 페이지로 이동한다.<CTRL>+f

현재 행의 첫 문자로 이동한다.^

현재 행의 마지막 문자로 이동한다.$

125 라인으로 이동한다.125G

125 라인으로 이동한다.:125

마지막 행으로 이동한다.G

왼쪽, 위쪽, 아래쪽, 오른쪽으로 이동한다.h,j,k,l

숫자를 앞에 붙이면 숫자만큼 이동한다.

예) 5h - 5칸 왼쪽으로 이동한다.

abc를 검색한다./abc

5행에서 abc를 검색한다./abc 5

Hexa code로 검색한다.//616263

다음 내용을 검색한다.n

Replace 모드의 시작이다. VSAM의 key는 변경할 수 없다.R

Replace한 내용을 저장한다.ESC

Replace 모드 중에 변경 내용을 되돌린다.Backspace

화면을 새로고침한다.<CTRL>+l

도움말을 보여준다.:h

종료한다.:q

58 OpenFrame 툴 참조 안내서

Page 73: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 시스템 데이터 셋의 내용을 보여주는 예이다.

$ dsedit -s SYS1.JOBQ

다음은 데이터 셋에 속한 멤버의 내용을 보여주는 예이다.

$ dsedit AAA.PDS TESTPGM

다음은 지정한 볼륨에 위치한 데이터 셋의 내용을 보여주는 예이다.

$ dsedit AAA.BBB -v DEFVOL

다음은 사용자 카탈로그에 등록되어 있는 데이터 셋을 보고자 할 경우에 대한 예이다.

$ dsedit AAA.BBB -c USERCAT

관련 환경설정

카탈로그에 등록되어 있지 않은 Non-VSAM 데이터 셋의 내용을 보기 위한 설정이다.

<dstool.conf>

[DSVIEW]

NOCATALOG_VIEW=[YES|NO]

설명항목

카탈로그에 등록되어 있지 않은 데이터 셋이라도 디폴트 볼륨에 있는 Non-VSAM

데이터 셋의 내용을 볼 수 있다.

YES

카탈로그에 등록되어 있지 않은 데이터 셋의 내용은 볼 수 없다.NO

참고

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

제4장 데이터 셋 관리 툴 59

Page 74: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

4.3. dsload

dsload는 dsedit의 기능을 보완하기 위한 툴로서 Non-VSAM 데이터 셋을 UNIX 파일로 백업하는 기능을

제공하는 툴이다. 백업한 파일을 내용을 수정한 후, dssave 툴을 사용하면 편집된 파일을 다시 Non-VSAM

데이터 셋으로 갱신할 수 있다.

사용법

dsload 프로그램을 실행하는 방법은 다음과 같다.

Usage: dsload dsname [options]

● 입력 항목

설명항목

백업하려고 하는 데이터 셋의 이름이다.dsname

● [options]

설명옵션

백업하려고 하는 데이터 셋이 사용자 카탈로그에 등록되어있는 경우에 설정한

다. 단, 사용자 카탈로그에 alias가 설정되어 있어서 데이터 셋 이름만으로 찾을

수 있는 경우에는 이 옵션을 지정하지 않아도 된다.

[-c catalog]

백업하려고 하는 데이터 셋의 멤버 이름이다.[-m member]

타겟 파일의 UNIX 파일경로이다.[-t target]

이 옵션을 지정하지 않은 경우, 아래의 환경설정 중 LOAD_DIR에 지정된 디렉터

리를 타겟 UNIX 파일경로로 사용하고, 데이터 셋 이름과 동일한 파일을 생성한

다.

데이터 셋 레코드 사이의 delimiter를 지정한다. 특별히 newline으로 하고자 하는

경우 ‘NEWLINE’이라고 지정한다.

[-d delimiter]

이 옵션을 지정하지 않은 경우, 아래의 환경설정 중에 DELIMITER의 값을 참조

한다.

대상 파일이 이미 존재하는 경우 기존의 파일을 덮어쓰기한다.[-F]

60 OpenFrame 툴 참조 안내서

Page 75: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 데이터 셋을 UNIX 파일로 백업하는 일반적인 예이다.

$ dsload AAA.BBB

다음은 데이터 셋의 멤버를 UNIX 파일로 백업하는 예이다.

$ dsload AAA.PDS -m MEMBER01

다음은 사용자 카탈로그에 등록되어 있는 데이터 셋을 UNIX 파일로 백업하는 예이다.

$ dsload AAA.BBB -c USERCAT

다음은 데이터 셋을 UNIX 파일로 백업하되, UNIX에 동일한 파일이 존재할 경우 덮어쓰기하는 예이다.

$ dsload AAA.BBB –F

다음은 데이터 셋을 UNIX 파일로 백업하며, 레코드간의 delimiter를 %%으로 지정하는 예이다.

$ dsload AAA.BBB -d %%

관련 환경설정

다음과 같이 dstool.conf 파일에 dsload할 때 데이터 셋의 크기를 제한한다. 설정된 값보다 작은 크기의 데

이터 셋만 사용 가능하다. 0보다 큰 수를 Byte 단위로 지정한다.

<dstool.conf >

[DSLOAD]

SIZE_LIMIT=size_limit

다음과 같이 dstool.conf 파일에 dsload할 때 파일을 생성할 UNIX 디렉터리 경로를 지정한다. LOAD_DIR

과 [-t target] 옵션을 둘 다 설정하지 않은 경우 에러가 발생한다.

<dstool.conf>

[DSLOAD]

LOAD_DIR=load_dir

다음과 같이 dstool.conf 파일에 dsload할 때 레코드의 delimiter로 문자 또는 ‘NEWLINE’을 지정한다. DE

LIMITER와 [-d delimiter] 옵션을 둘 다 설정하지 않은 경우 delimiter는 NULL 스트링이다.

제4장 데이터 셋 관리 툴 61

Page 76: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

<dstool.conf>

[DSLOAD]

DELIMITER=delimiter

참고

관련 툴 프로그램으로는 “4.4. dssave”가 있다.

4.4. dssavedssave는 dsedit의 기능을 보완하기 위한 툴이다. 변경할 데이터 셋을 dsload를 통해서 UNIX 파일로 백업

한 후, 변경한 UNIX 파일을 다시 Non-VSAM 데이터 셋으로 갱신하는 기능을 한다.

dssave 툴 프로그램을 사용하면 새로운 데이터 셋을 생성하지는 않고, 기존에 이미 카탈로그에 등록되어

있는 데이터 셋의 내용에 덮어쓰기를 한다.

사용법

dssave 프로그램을 실행하는 방법은 다음과 같다.

Usage: dssave dsname [options]

● 입력 항목

설명항목

갱신하려고 하는 데이터 셋의 이름이다.dsname

● [options]

설명옵션

갱신하려고 하는 데이터 셋이 사용자 카탈로그에 등록되어있는 경우에 설정한

다. 단, 사용자 카탈로그에 alias가 설정되어 있어서 데이터 셋 이름만으로 찾을

수 있는 경우에는 이 옵션을 지정하지 않아도 된다.

[-c catalog]

갱신하려고 하는 데이터 셋의 멤버 이름이다.[-m member]

소스 파일의 UNIX 파일경로이다.[-s source]

이 옵션을 지정하지 않은 경우, 아래의 환경설정 중 LOAD_DIR에 지정된 디렉터

리를 소스 UNIX 파일경로로 사용하고, 이 디렉터리에서 데이터 셋 이름으로 파

일을 찾는다.

데이터 셋 레코드 사이의 delimiter를 지정한다. 특별히 newline으로 하고자 하는

경우 ‘NEWLINE’이라고 지정한다.

[-d delimiter]

62 OpenFrame 툴 참조 안내서

Page 77: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

이 옵션을 지정하지 않은 경우, 아래의 환경설정 중에 DELIMITER의 값을 참조

한다.

적용 데이터 셋의 레코드 포맷(RECFM)이 고정 길이(FB)일 때, 소스 파일의 한

레코드의 길이가 짧다면 그 길이만큼 레코드의 뒷 부분을 스페이스로 채워준다.

[-B]

데이터 셋으로 갱신하고 난 후 소스 파일을 삭제한다.[-R]

소스 파일을 데이터 셋으로 갱신할 수 있는지와 레코드의 길이, 포맷, delimiter를

확인한다.

[-T]

사용예제

다음은 UNIX 파일을 Non-VSAM 데이터 셋으로 갱신하는 일반적인 예이다.

$ dssave AAA.BBB

다음은 UNIX 파일을 Non-VSAM 데이터 셋의 멤버로 갱신하는 예이다.

$ dssave AAA.PDS -m MEMBER01

다음은 UNIX 파일을 사용자 카탈로그에 등록된 Non-VSAM 데이터 셋으로 갱신하는 예이다.

$ dssave AAA.BBB -c USERCAT

다음은 데이터 셋 레코드 간의 delimiter를 %%으로 지정하는 예이다.

$ dssave AAA.BBB -d %%

다음은 RECFM=FB인 Non-VSAM 데이터 셋으로 갱신하는 경우 부족한 레코드 길이를 스페이스로 채우

는 예이다.

$ dssave AAA.BBB –B

다음은 UNIX 파일을 데이터 셋으로 갱신한 후 소스 파일을 삭제하는 예이다.

$ dssave AAA.BBB –R

제4장 데이터 셋 관리 툴 63

Page 78: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

다음은 UNIX 파일을 데이터 셋으로 갱신할 수 있는지 확인하는 예이다.

$ dssave AAA.BBB -T

참고

dssave를 수행하기 위해서는 사전에 dsload 툴을 사용하여 UNIX에 소스 파일을 생성해두어야 한다.

관련 환경설정

다음과 같이 dstool.conf 파일에 dssave할 때 소스 파일의 UNIX 디렉터리 경로를 지정한다. LOAD_DIR과

[-s source] 옵션을 둘 다 설정하지 않은 경우 에러가 발생한다.

<dstool.conf>

[DSLOAD]

LOAD_DIR=load_dir

다음과 같이 dstool.conf 파일에 dssave할 때 레코드의 delimiter로 문자 또는 ‘NEWLINE’을 지정한다.

DELIMITER와 [-d delimiter] 옵션을 둘 다 설정하지 않은 경우 delimiter는 NULL 스트링이다.

<dstool.conf>

[DSLOAD]

DELIMITER=delimiter

참고

관련 툴 프로그램으로는 “4.3. dsload”가 있다.

4.5. dslistdslist는 특정 볼륨에 있는 데이터 셋에 대한 정보를 조회하거나 혹은 특정 카탈로그에 등록된 데이터 셋에

대한 정보를 조회할 때 사용하는 툴이다.

dslist는 사용자의 옵션에 따라 다음과 같은 기능을 제공한다.

● 특정 볼륨에 들어있는 데이터 셋에 대한 정보를 조회한다.

● 특정 카탈로그에 등록된 데이터 셋에 대한 정보를 조회한다.

● 생성일자, 마지막 참조 일자 및 데이터 셋 크기 별로 조건을 주어서 조건에 해당하는 데이터 셋 정보를

조회한다.

64 OpenFrame 툴 참조 안내서

Page 79: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용법

dslist 프로그램을 실행하는 방법은 다음과 같다.

Usage: dslist [options] [dsname]

● [options]

설명옵션

특정 카탈로그에 등록된 데이터 셋을 조회할 때 사용된다. 지정된 카탈로그에 등

록된 데이터 셋 정보만 조회된다.

[-c catalog]

특정 볼륨에 속해 있는 데이터 셋을 조회한다. 지정한 볼륨에 해당하는 데이터

셋 정보만 조회된다.

[-v volume]

조회하고자 하는 데이터 셋 이름을 정확하게 지정한다. 와일드 카드 문자를 사용

할 수 있다.

[-n dsname]

데이터 셋에 대한 정보를 상세하게 출력한다.[-l]

데이터 셋에 대한 정보를 상세하게 출력하고, PDS 멤버에 대한 목록 및 연관되

어 있는 카탈로그 항목을 출력한다.

[-a]

특정 날짜에 생성된 데이터 셋의 목록을 출력한다. 날짜는 YYYYMMDD 형식으

로 지정하거나 YYYYMMDD-YYYYMMDD의 형식으로 기간을 지정할 수도 있다.

[-cd date]

특정 날짜에 참조된 데이터 셋의 목록을 출력한다. 날짜는 YYYYMMDD 형식으

로 지정하거나 YYYYMMDD-YYYYMMDD의 형식으로 기간을 지정할 수도 있다.

[-rd date]

조회하고자 하는 데이터 셋의 크기 범위를 MIN-MAX 형식으로 지정한다.[-sz size]

● 입력 항목

설명항목

조회하고자 하는 데이터 셋 이름의 앞글자 일부를 지정한다.[dsname]

참고

와일드 카드를 사용하여 조회하려고 하는 데이터 셋의 이름을 지정하는 경우 다음과 같이 사용할 수

있다.

- AAA.*는 AAA.BBB나 AAA.CCC처럼 AAA.으로 시작하는 2개의 퀄리파이어로 구성된 데이터 셋을

찾는다.

- AAA.**는 AAA.BBB, AAA.CCC, AAA.BBB.FFF, AAA.BBB.GGG처럼 AAA.으로 시작하는 모든 데

이터 셋을 찾는다.

제4장 데이터 셋 관리 툴 65

Page 80: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 볼륨 100000에 속해있는 데이터 셋의 정보를 조회하는 예이다.

$ dslist -v 100000

위의 dslist 프로그램 수행 후 출력되는 내용은 다음과 같다.

dslist version 5.0.1(1) igkangingyukang:ofsrc5/base(#2) 2009-01-14 10:54:22

Print Dataset List and Information

-----------------------------------------------------------------------------

SYS1.VTOC.V100000 VOLUME DSORG RECFM LRECL

-----------------------------------------------------------------------------

PROD.BATCHLIB 100000 PO FB 80

SYS1.JCLLIB 100000 PO F 80

SYS1.PROCLIB 100000 PO FB 80

TEST.ADAPTA01 100000 PS FB 80

TEST.ADAPTA02 100000 PS FB 80

TEST.ADAPTC01 100000 PS FB 80

TEST.ADAPTC02 100000 PS FB 80

TEST.ADAPTC03 100000 PS FB 80

TEST.ADAPTE01 100000 PS FB 80

TEST.FBA.FAF2 100000 PS FBA 133

TEST.IMS33263 100000 PS FBA 133

TEST.IMS37151 100000 IS FB 80

TEST.IMS38275 100000 PS FB 80

TEST.IMS38275.SECOND 100000 PS FB 80

TEST.IMS38357.IN 100000 PS FB 33

TEST.IMS38357.OUT 100000 PS FB 33

TEST.JCLLIB 100000 PO F 80

TEST.NVSMJOB6 100000 PS F 20

TEST.SAMPLE01 100000 PS FB 50

TEST.SPNAME 100000 PS FBA 133

TEST.TESTGDG.G0001V00 100000 PS FB 80

TEST.TESTGDG.G0002V00 100000 PS FB 80

-----------------------------------------------------------------------------

* Total 22 entries in volume 100000 printed.

다음은 볼륨 100000에 속해 있는 데이터 셋 중 이름이 SYS1으로 시작되는 데이터 셋의 정보를 상세 조회

하는 예이다.

$ dslist -v 100000 SYS1.** -a

위의 dslist 프로그램 수행 후 출력되는 내용은 다음과 같다.

66 OpenFrame 툴 참조 안내서

Page 81: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

dslist version 5.0.1(1) igkangingyukang:ofsrc5/base(#2) 2009-01-14 10:54:22

Print Dataset List and Information

-----------------------------------------------------------------------------

Data Set Name . . . : SYS1.JCLLIB

Data Set Type . . . : NONVSAM

Management Class

Creation Date . . : 2008/06/10 Data Set Owner . :

Expiration Date . : 9999/12/31

Storage Class

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class

Organization . . : PO Record Format . . : F

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 80

Current Allocation

Primary Space . . : 2048(MB) Number of Extents : 0

Secondary Space . : 0(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : 2008/06/10 Last Access Time : 11:25:06

-----------------------------------------------------------------------------

Data Set Name . . . : SYS1.PROCLIB

Data Set Type . . . : NONVSAM

Management Class

Creation Date . . : ***None*** Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class

Organization . . : PO Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 80

Current Allocation

Primary Space . . : N.A. Number of Extents : N.A.

Secondary Space . : N.A. Data Set Size . . : 0

Last Access Date

Last Access Date : 2008/11/17 Last Access Time : 19:21:43

제4장 데이터 셋 관리 툴 67

Page 82: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

-----------------------------------------------------------------------------

* Total 2 entries in volume 100000 printed.

4.6. dstouchdstouch는 카탈로그나 VTOC에 저장된 데이터 셋의 통계정보(총 레코드 개수, 데이터 셋 크기) 및 생성 일

자를 갱신하는 툴이다. 데이터 셋의 실제 총 레코드 개수가 카탈로그에 저장되어 있는 개수와 다른 경우

실제 레코드 개수로 카탈로그의 정보를 갱신한다.

사용법

dstouch 프로그램을 실행하는 방법은 다음과 같다.

Usage: dstouch [-s] dsname [member] [-v volser] [-c catalog] [-d date]

설명항목

시스템 데이터 셋인 경우 지정한다.[-s]

정보를 갱신하려고 하는 데이터 셋의 이름을 지정한다.dsname

정보를 갱신하려고 하는 데이터 셋의 멤버 이름을 지정한다.[member]

데이터 셋이 위치한 볼륨 시리얼을 지정한다. 데이터 셋이 카탈로그에 등록되어

있지 않은 경우, 반드시 지정해 주어야 한다.

[-v volser]

데이터 셋이 사용자 카탈로그에 등록되어있는 경우 지정한다. 단, 사용자 카탈로

그 alias가 설정되어 있어서 데이터 셋 이름만으로 사용자 카탈로그를 찾을 수 있

는 경우에는 이 옵션을 지정하지 않아도 된다.

[-c catalog]

정보를 갱신하려고 하는 데이터 셋의 생성일자를 YYYYMMDD 형식으로 지정한

다.

[-d date]

참고

[-c catalog]에 대한 자세한 내용은 OpenFrame 안내서 중 “데이터 셋 안내서”의 “제4장 통합 카탈로

그의 카탈로그 관리”를 참고한다.

사용예제

다음은 카탈로그 되어 있는 TEST.AAA 데이터 셋의 총 레코드의 개수를 갱신하는 예이다.

$ dstouch TEST.AAA

68 OpenFrame 툴 참조 안내서

Page 83: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

다음은 카탈로그 되어 있는 PDS TEST.BBB의 멤버 MEMBER01의 정보를 갱신하는 예이다.

$ dstouch TEST.BBB MEMBER01

다음은 사용자 카탈로그 USERCAT에 등록되어 있는 TEST.CCC 데이터 셋의 총 레코드 개수를 갱신하는

예이다.

$ dstouch TEST.CCC -c USERCAT

다음은 TEST.AAA 데이터 셋의 총 레코드 개수를 갱신하고 생성일자 2007년4월30일로 변경하는 예이다.

$ dstouch TEST.AAA -d 20070430

참고

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

4.7. dscopydscopy는 데이터 셋을 다른 볼륨이나 다른 이름으로 복사하는 툴이다.

사용법

dscopy 프로그램을 실행하는 방법은 다음과 같다.

Usage: dscopy [options] source dest

● [options]

설명옵션

입력 데이터 셋을 찾기 위해 검색할 카탈로그를 지정한다.[-c catalog]

입력 데이터 셋이 위치하는 볼륨 시리얼을 지정한다.[-v volume]

출력 데이터 셋이 위치할 볼륨 시리얼을 지정한다.[-t volume]

● 입력 항목

설명항목

입력 데이터 셋 이름을 기술한다.source

출력 데이터 셋 이름을 기술한다.dest

제4장 데이터 셋 관리 툴 69

Page 84: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 카탈로그된 데이터 셋을 복사하는 예이다.

$ dsmove TEST.DSCOPY01 TEST.DSCOPY02

위의 dscopy 프로그램 실행 전 TEST.DSCOPY01의 정보는 다음과 같다.

Data Set Name . . . : TEST.DSCOPY01

Data Set Type . . . : NONVSAM

Catalog Name . . . : SYS1.MASTER.ICFCAT

Management Class . :

Creation Date . . : 2009/08/24 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : PS Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 4096

Current Allocation

Primary Space . . : 2048(MB) Number of Extents : 0

Secondary Space . : 0(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : 2009/08/24 Last Access Time : 19:56:01

dscopy 프로그램을 실행하면 다음 메시지가 출력된다.

dscopy version 5.1.1(3) igkang@ingyukang:ofsrc5/base(#4) 2009-05-22 10:06:06

Copy an Existing Dataset

DSCOPY SOURCE=TEST.DSCOPY01,DEST=TEST.DSCOPY02,CATALOG=,VOLSER=,TARGET=

COMPLETED SUCCESSFULLY.

dscopy 프로그램 실행 후 TEST.DSCOPY02의 정보는 다음과 같다.

Data Set Name . . . : TEST.DSCOPY02

Data Set Type . . . : NONVSAM

Catalog Name . . . : SYS1.MASTER.ICFCAT

70 OpenFrame 툴 참조 안내서

Page 85: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

Management Class . :

Creation Date . . : 2009/08/24 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : PS Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 4096

Current Allocation

Primary Space . . : 2048(MB) Number of Extents : 0

Secondary Space . : 4096(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : 2009/08/24 Last Access Time : 20:00:15

4.8. dsmovedsmove는 데이터 셋을 이동시키는 기능을 하는 툴이다. 데이터 셋의 이름은 유지하면서 볼륨만 변경하거

나, 데이터 셋의 이름만 변경하는 경우, 그리고 설정에 따라서 데이터 셋의 이름과 볼륨을 모두 변경할 수

도 있다. 데이터 셋이 이동될 때 데이터 셋의 생성일자는 입력 데이터 셋의 생성일자로 유지된다.

사용법

dsmove 프로그램을 실행하는 방법은 다음과 같다.

Usage: dsmove [options] source dest

● [options]

설명옵션

입력 데이터 셋을 찾기위해 검색할 카탈로그를 지정한다.[-c catalog]

입력 데이터 셋이 위치하는 볼륨 시리얼을 지정한다.[-v volume]

출력 데이터 셋이 위치할 볼륨 시리얼을 지정한다.[-t volume]

● 입력 항목

설명항목

입력 데이터 셋 이름을 기술한다.source

제4장 데이터 셋 관리 툴 71

Page 86: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

dsmove가 정상 종료되면 입력 데이터 셋은 삭제된다.

출력 데이터 셋 이름을 기술한다.dest

사용예제

다음은 카탈로그된 데이터 셋의 볼륨만을 변경하는 예이다.

$ dsmove TEST.DSMOVE01 TEST.DSMOVE01 -t 200000

위의 dsmove 프로그램 실행 전 TEST.DSMOVE01의 정보는 다음과 같다.

Data Set Name . . . : TEST.DSMOVE01

Data Set Type . . . : NONVSAM

Catalog Name . . . : SYS1.MASTER.ICFCAT

Management Class . :

Creation Date . . : 2009/02/03 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : PS Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 4096

Current Allocation

Primary Space . . : 2048(MB) Number of Extents : 0

Secondary Space . : 0(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : 2009/02/03 Last Access Time : 12:56:46

dsmove 프로그램을 실행하면 다음 메시지가 출력된다.

dsmove version 5.0.1(7) igkang@ingyukang:ofsrc5/base(#2) 2009-01-14 10:54:22

Move or Rename a Dataset

DSMOVE SOURCE=TEST.DSMOVE01,DEST=TEST.DSMOVE01,CATALOG=,VOLSER=,TARGET=200000

COMPLETED SUCCESSFULLY.

72 OpenFrame 툴 참조 안내서

Page 87: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

dsmove 프로그램을 실행한 후 TEST.DSMOVE01의 정보는 다음과 같다.

Data Set Name . . . : TEST.DSMOVE01

Data Set Type . . . : NONVSAM

Catalog Name . . . : SYS1.MASTER.ICFCAT

Management Class . :

Creation Date . . : 2009/02/03 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 200000 Device Type . . . : 3480

Data Class . . . . :

Organization . . : PS Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 4096

Current Allocation

Primary Space . . : 2048(MB) Number of Extents : 0

Secondary Space . : 4096(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : 2009/02/03 Last Access Time : 12:58:43

위의 예제에서 데이터 셋 TEST.DSMOVE01의 볼륨이 100000에서 200000으로 바뀌었다. 볼륨 200000

은 테이프 볼륨으로 설정된 상태라 Device Type도 3480(TAPE DEVICE)으로 바뀌었다.

다음은 데이터 셋의 이름을 변경하는 예이다.

$ dsmove TEST.DSMOVE02 TEST.DSMOVE03

dsmove 프로그램 실행 전 TEST.DSMOVE02의 정보는 다음과 같다.

Data Set Name . . . : TEST.DSMOVE02

Data Set Type . . . : NONVSAM

Catalog Name . . . : SYS1.MASTER.ICFCAT

Management Class . :

Creation Date . . : 2009/02/03 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 200000 Device Type . . . : 3480

제4장 데이터 셋 관리 툴 73

Page 88: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

Data Class . . . . :

Organization . . : PS Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 4096

Current Allocation

Primary Space . . : N.A. Number of Extents : N.A.

Secondary Space . : N.A. Data Set Size . . : 0

Last Access Date

Last Access Date : 2009/02/03 Last Access Time : 13:04:40

dsmove 프로그램 실행 후 다음 메시지가 출력된다.

dsmove version 5.0.1(7) igkangingyukang:ofsrc5/base(#2) 2009-01-14 10:54:22

Move or Rename a Dataset

DSMOVE SOURCE=TEST.DSMOVE02,DEST=TEST.DSMOVE03,CATALOG=,VOLSER=,TARGET=

COMPLETED SUCCESSFULLY.

데이터 셋 TEST.DSMOVE02는 삭제되고, 데이터 셋 TEST.DSMOVE03이 생성된다. TEST.DSMOVE03

의 정보는 다음과 같다.

Data Set Name . . . : TEST.DSMOVE03

Data Set Type . . . : NONVSAM

Catalog Name . . . : SYS1.MASTER.ICFCAT

Management Class . :

Creation Date . . : 2009/02/03 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 200000 Device Type . . . : 3480

Data Class . . . . :

Organization . . : PS Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 4096

Current Allocation

Primary Space . . : 4096(KB) Number of Extents : 0

Secondary Space . : 4096(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : 2009/02/03 Last Access Time : 13:05:16

74 OpenFrame 툴 참조 안내서

Page 89: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

위의 예제에서 데이터 셋 이름은 TEST.DSMOVE03으로 변경되고, Last Access Date(Time)을 제외한 나

머지 정보는 동일하다.

4.9. dsshmdsshm은 데이터 셋을 할당할 때 생성되는 DCB(Data Control Block) 구조체의 저장 공간인 공유 메모리

(Shared Memory)에 대해 정보를 조회하고, 삭제하는 등의 관리를 도와주는 툴이다.

참고

데이터 셋의 할당에 사용되는 공유 메모리는 자동으로 재사용이 되는 구조로 설계되어 있어서 정상

적으로 OpenFrame이 운영될 경우에는 특별히 주의할 필요가 없으나, 비정상적인 프로그램의 종료

등으로 인하여 데이터 셋의 할당에 사용되는 공유 메모리가 재사용 되지 않는 경우, 새로운 작업에

필요한 데이터 셋의 할당 공간이 부족해져서 작업을 실행시키지 못하는 경우가 발생할 수 있다. 이때

DSALC_ERR_NO_AVAILABLE_SLOT 에러가 발생하는데, 이런 경우에는 dsshm 프로그램으로 사

용되지 않는 데이터 셋 할당 공간을 삭제하거나 OpenFrame을 재기동하면 문제를 해결할 수 있다.

시스템이 불안정하여 작업이 비정상적으로 종료되는 경우가 빈번하거나, 재부팅을 하지않고 하지

않고 오랜 기간동안 OpenFrame을 운영하는 경우에는 가끔씩 데이터 셋의 할당에 사용되는 공유 메

모리의 상태를 확인해 줄 것을 권장한다.

사용법

dsshm 프로그램을 실행하는 방법은 다음과 같다.

Usage: dsshm command [options]

● command

설명command

공유 메모리의 목록을 조회한다.list

공유 메모리 공간을 삭제한다.delete

● [options]

설명옵션

공유 메모리에 저장된 정보를 상세하게 출력한다.[-a]

조회하거나 삭제할 공유 메모리의 인덱스를 지정한다.[-i index]

조회하거나 삭제할 공유 메모리의 범위를 지정한다.[-r from to]

조회하거나 삭제할 공유 메모리의 할당 일자를 지정한다.[-d date]

조회하거나 삭제할 공유 메모리의 작업 ID를 지정한다.[-j jobid]

제4장 데이터 셋 관리 툴 75

Page 90: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

조회하거나 삭제할 공유 메모리의 할당 PID를 지정한다.[-p pid]

조회하거나 삭제할 공유 메모리의 데이터 셋 이름을 지정한다.[-n name]

사용예제

다음은 데이터 셋 할당에 사용되는 공유 메모리의 목록을 조회하는 예이다. 목록의 내용이 많으므로

SYS1.JOBQ로 시작하는 데이터 셋의 할당 내용만 조회한다.

$ dsshm list -n SYS1.JOBQ

위의 프로그램을 실행하면 다음과 같은 목록이 출력된다.

dsshm version 5.0.0(1) base50@ingyukang:ofsrc5/base(#1) 2008-10-08 11:24:55

Dataset Shared Memory Slot Mangement Program

[000012] JOBID=,DATE=20090203,PID=6207,DCB_NAME=SYS1.MASTER.ICFCAT:SYS1.JOBQ

[000013] JOBID=,DATE=20090203,PID=6210,DCB_NAME=SYS1.MASTER.ICFCAT:SYS1.JOBQ

[000014] JOBID=,DATE=20090203,PID=6210,DCB_NAME=SYS1.MASTER.ICFCAT:SYS1.JOBQ.ID

[000016] JOBID=,DATE=20090203,PID=6210,DCB_NAME=SYS1.MASTER.ICFCAT:SYS1.JOBQ.NAME

...

[000081] JOBID=,DATE=20090203,PID=6208,DCB_NAME=SYS1.MASTER.ICFCAT:SYS1.JOBQ

[000082] JOBID=,DATE=20090203,PID=6208,DCB_NAME=SYS1.MASTER.ICFCAT:SYS1.JOBQ.ID

[000083] JOBID=,DATE=20090203,PID=6208,DCB_NAME=SYS1.MASTER.ICFCAT:SYS1.JOBQ.NAME

[000084] JOBID=,DATE=20090203,PID=6208,DCB_NAME=SYS1.MASTER.ICFCAT:SYS1.JOBQ.STAT

*** Total 48 allocation items printed.

4.10. dscreate

dscreate는 Non-VSAM 데이터 셋 생성에 필요한 아규먼트를 사용자로부터 직접 받아서 Non-VSAM 데이

터 셋을 신규로 생성하는 툴 프로그램이다.

사용법

dscreate 프로그램을 실행하는 방법은 다음과 같다.

Usage: dscreate [options] dsname

● [options]

76 OpenFrame 툴 참조 안내서

Page 91: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

데이터 셋을 특정 카탈로그에 등록하려고 할 때 지정한다.[-c catalog]

새로운 데이터 셋이 위치하게 될 볼륨 정보를 지정한다.[-v volume]

새로운 데이터 셋이 할당될 UNIT의 유형을 지정한다.[-u unit]

PDS의 멤버 이름을 지정한다.[-m member]

데이터 셋의 DSORG 파라미터를 지정한다.[-o dsorg]

데이터 셋의 레코드 형식 (RECFM) 파라미터를 지정한다.[-f recfm]

데이터 셋의 블록 크기를 지정한다.[-b blksize]

데이터 셋의 레코드 크기를 지정한다.[-l lrecl]

데이터 셋의 키 길이를 지정한다. (ISAM 데이터 셋)[-k keylen]

데이터 셋의 키 위치를 지정한다. (ISAM 데이터 셋)[-p keypos]

데이터 셋의 공간 파라미터를 지정한다.[-s space]

(TRK/CYL/unit,primary,secondary,directory)

데이터 셋의 만료 일자를 지정한다. (YYYYMMDD 형식)[-x expdt]

데이터 셋의 보존 기간을 지정한다.(보존 날자 수)[-r retpd]

데이터 셋을 신규로 생성하되 카탈로그에 등록하지 않는다. (NOCATALOG 옵

션)

[-N]

데이터 셋을 생성하지 않고 카탈로그에 항목만 등록한다. (RECATALOG 옵션)[-R]

● 입력 항목

설명항목

생성하려고 하는 데이터 셋의 이름을 지정한다.dsname

사용예제

다음은 100000 볼륨에 데이터 셋을 신규로 생성하는 예이다.

$ dscreate AAA.BBB -v 100000 -f FB -l 120 -b 1200 -s CYL,10,10

다음은 데이터 셋을 생성하면서 특정 사용자 카탈로그에 등록하는 예이다.

$ dscreate AAA.BBB -c USERCAT -f FB -l 120 -v 100000

제4장 데이터 셋 관리 툴 77

Page 92: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

4.11. dsdelete

dsdelete는 기존에 존재하는 Non-VSAM 데이터 셋을 삭제하는 툴 프로그램이다.

사용법

dsdelete 프로그램을 실행하는 방법은 다음과 같다.

Usage: dsdelete [options] dsname

● [options]

설명옵션

특정 카탈로그에 등록된 데이터 셋을 삭제하려고 할 때 지정한다.[-c catalog]

삭제할 데이터 셋이 위치한 볼륨 정보를 지정한다.[-v volume]

PDS의 멤버 이름을 지정한다.[-m member]

데이터 셋을 제거하지 않고 카탈로그에 항목만 삭제한다. (UNCATALOG 옵션)[-U]

● 입력 항목

설명항목

삭제하려고 하는 데이터 셋의 이름을 지정한다.dsname

사용예제

다음은 100000 볼륨에 있는 데이터 셋을 삭제하는 예이다.

$ dsdelete AAA.BBB -v 100000

다음은 특정 사용자 카탈로그에 등록된 데이터 셋을 삭제하는 예이다.

$ dsdelete AAA.BBB -c USERCAT

78 OpenFrame 툴 참조 안내서

Page 93: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

4.12. gdgcreate

gdgcreate는 GDG 항목 생성에 필요한 파라미터를 사용자로부터 직접 받아서 GDG 항목을 신규로 생성

하는 툴 프로그램이다.

사용법

gdgcreate 프로그램을 실행하는 방법은 다음과 같다.

Usage: dscreate [options] gdgname

● [options]

설명옵션

GDG 항목을 특정 카탈로그에 등록하려고 할 때 지정한다.[-c catalog]

GDG LIMIT 값을 설정한다. 지정하지 않는 경우 255의 값이 설정된다.[-l limit]

GDG 항목의 만료 일자를 지정한다. (YYYYMMDD 형식)[-x expdt]

GDG LIMIT 값을 초과할 때, 연관된 GDS를 카탈로그에서 삭제한다. (EMPTY 옵

션)

[-E]

카탈로그에서 삭제할 때, GDS를 제거한다. (SCRATCH 옵션)[-S]

● 입력 항목

설명항목

생성하려고 하는 GDG 항목의 이름을 지정한다.gdgname

참고

현재의 OpenFrame 버전에서는 EMPTY 옵션과 SCRATCH 옵션을 지원하지 않는다. 실제로는 모든

GDG 항목이 NOEMPTY 옵션과 SCRATCH 옵션을 가진 것으로 간주된다.

사용예제

다음은 GDG LIMIT가 12인 GDG 항목을 생성하는 예이다.

$ gdgcreate TEST.GDGBASE -l 12

다음은 GDG 항목을 특정 사용자 카탈로그에 등록하는 예이다.

$ gdgcreate TEST.GDGBASE -c USERCAT

제4장 데이터 셋 관리 툴 79

Page 94: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

4.13. gdgdelete

gdgdelete는 기존에 등록된 GDG 항목을 삭제하는 툴 프로그램이다.

사용법

gdgdelete 프로그램을 실행하는 방법은 다음과 같다.

Usage: dscreate [options] gdgname

● [options]

설명옵션

특정 카탈로그에 등록된 GDG 항목을 삭제하려고 할 때 지정한다.[-c catalog]

연관된 GDS이 존재할 때, 함께 삭제한다. (FORCE 옵션)[-F]

● 입력 항목

설명항목

삭제하려고 하는 GDG 항목의 이름을 지정한다.gdgname

사용예제

다음은 GDG 항목을 GDS과 함께 삭제하는 예이다.

$ gdgdelete TEST.GDGBASE -F

다음은 특정 사용자 카탈로그에 등록된 GDG 항목을 삭제하는 예이다.

$ gdgdelete TEST.GDGBASE -c USERCAT

80 OpenFrame 툴 참조 안내서

Page 95: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

4.14. idcams

idcams는 IDCAMS 유틸리티의 기능을 UNIX 셸에서 직접 실행할 수 있도록 만든 툴 프로그램이다.

idcams 툴 프로그램을 이용하면 VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제할 수 있고,

REPRO 명령을 이용해서 데이터 셋을 복사하거나, BLDINDEX 명령을 이용해서 기존 VSAM 데이터 셋에

대한 보조 인덱스를 구성할 수 있다.

참고

Non-VSAM 데이터 셋의 생성과 삭제 및 GDG 항목의 생성과 삭제 기능은 idcams 툴 프로그램에서

는 제공하지 않는다. 대신 dscreate, dsdelete, gdgcreate, gdgdelete 등 별도 툴 프로그램을 제공한

다.

사용법

idcams 프로그램을 실행하는 방법은 다음과 같다.

Usage: idcams command [options]

● command

설명항목

VSAM 데이터 셋이나 사용자 카탈로그를 정의한다.define

VSAM 데이터 셋이나 사용자 카탈로그를 삭제한다.delete

기존 VSAM 데이터 셋에 대한 보조 인덱스를 구성한다.bldindex

VSAM 혹은 Non-VSAM 데이터 셋의 내용을 복사한다.repro

● 사용자 카탈로그 정의 옵션

설명옵션

사용자 카탈로그를 정의함을 명시한다. (USERCATALOG/UCAT)[-t type]

type 항목은 -t 구분자없이 지정 가능하다.

정의하려고 하는 사용자 카탈로그의 이름을 지정한다.[-n name]

사용자 카탈로그가 위치하게 될 볼륨 정보를 지정한다.[-v volume]

데이터 셋의 공간 파라미터를 지정한다. (TRK/CYL/unit,primary,secondary)[-s space]

● ALIAS 정의 옵션

제4장 데이터 셋 관리 툴 81

Page 96: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

ALIAS를 정의함을 명시한다. (ALIAS)[-t type]

type 항목은 -t 구분자없이 지정 가능하다.

정의하려고 하는 ALIAS의 이름을 지정한다.[-n name]

ALIAS에 연결될 카탈로그 항목의 이름을 지정한다.[-r relate]

● VSAM 데이터 셋 정의 옵션

설명옵션

VSAM 데이터 셋을 정의함을 명시한다. (CLUSTER/CL)[-t type]

type 항목은 -t 구분자없이 지정 가능하다.

정의하려고 하는 VSAM 데이터 셋의 이름을 지정한다.[-n name]

정의하려고 하는 VSAM 데이터 셋의 구조를 지정한다. (KS/ES/RR)[-o recorg]

VSAM 데이터 셋이 위치하게 될 볼륨 정보를 지정한다.[-v volume]

데이터 셋의 공간 파라미터를 지정한다. (TRK/CYL/unit,primary,secondary)[-s space]

데이터 셋을 특정 카탈로그에 등록하려고 할 때 지정한다.[-c catalog]

VSAM 데이터 셋의 컨트롤 인터벌 크기를 지정한다.[-b cisize]

VSAM 데이터 셋의 레코드 크기를 지정한다. (average,maximum)[-l lrecl]

VSAM 데이터 셋의 키 정보를 지정한다. (length,offset)[-k keys]

● 보조 인덱스 정의 옵션

설명옵션

보조 인덱스를 정의함을 명시한다. (ALTERNATEINDEX/AIX)[-t type]

type 항목은 -t 구분자없이 지정 가능하다.

정의하려고 하는 보조 인덱스의 이름을 지정한다.[-n name]

보조 인덱스에 연결될 Base Cluster 이름을 지정한다.[-r relate]

보조 인덱스가 위치하게 될 볼륨 정보를 지정한다.[-v volume]

보조 인덱스의 공간 파라미터를 지정한다. (TRK/CYL/unit,primary,secondary)[-s space]

보조 인덱스를 특정 카탈로그에 등록하려고 할 때 지정한다.[-c catalog]

보조 인덱스의 컨트롤 인터벌 크기를 지정한다.[-b cisize]

보조 인덱스의 레코드 크기를 지정한다. (average,maximum)[-l lrecl]

Base Cluster에서 보조 인덱스 키 정보를 지정한다. (length,offset)[-k keys]

82 OpenFrame 툴 참조 안내서

Page 97: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

Base Cluster에서 AIX 키값이 유일한 값을 갖는지 지정한다. (UNIQUEKEY 속성)[-U]

Base Cluster가 변경됨에 따라 AIX 데이터도 변경되는지 지정한다. (NOUPGRADE

속성)

[-N]

● PATH 정의 옵션

설명옵션

PATH를 정의함을 명시한다. (PATH)[-t type]

type 항목은 -t 구분자없이 지정 가능하다.

정의하려고 하는 PATH의 이름을 지정한다.[-n name]

PATH를 구성하는 카탈로그 항목의 이름을 지정한다.[-p pathentry]

VSAM 데이터 셋 혹은 보조 인덱스를 담고 있는 카탈로그를 지정한다.[-c catalog]

Base Cluster의 업그레이드 셋이 할당되어야 하는지 지정한다. (NOUPDATE 속성)[-N]

● 삭제 옵션

설명옵션

삭제하려고 하는 항목의 이름을 지정한다.[-n name]

name 항목은 -n 구분자 없이 지정 가능하다.

삭제하려고 하는 항목의 유형을 지정한다. (ALIAS/AIX/CL/PATH/UCAT)[-t type]

삭제하려고 하는 항목을 담고 있는 카탈로그를 지정한다.[-c catalog]

비어있지 않은 항목도 삭제하기 위해 지정한다. (FORCE 옵션)[-F]

● BLDINDEX 옵션

설명옵션

Base Cluster를 지정한다.[-i ids]

보조 인덱스를 지정한다.[-o ods]

위 항목들을 담고 있는 카탈로그를 지정한다.[-c catalog]

● REPRO 옵션

설명옵션

복사하려고 하는 항목 이름을 지정한다.[-i ids]

타겟 데이터 셋 이름을 지정한다.[-o ods]

제4장 데이터 셋 관리 툴 83

Page 98: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명옵션

소스 데이터 셋에서 복사를 시작할 위치를 지정한다.[-f from]

복사 중인 데이터 셋에서 복사를 중지할 위치를 지정한다.[-t to]

from 값과 to 값을 지정하는 방식을 지정한다. (KEY/NUM/ADDR)[-r ridtype]

레코드를 복사하기 전 건너뛸 레코드의 개수를 지정한다.[-s skip]

복사하려고 하는 레코드의 개수를 지정한다.[-c count]

타겟 데이터 셋에 있는 레코드를 교체할 지 지정한다. (REPLACE 옵션)[-R]

사용예제

다음은 100000 볼륨에 USERCAT1 사용자 카탈로그를 정의하는 예이다.

$ idcams define UCAT -n USERCAT1 -v 100000

위의 명령으로 정의한 사용자 카탈로그를 listcat으로 조회한 결과는 다음과 같다.

Data Set Name . . . : USERCAT1

Data Set Type . . . : UCAT

Catalog Name . . . : SYS1.MASTER.ICFCAT

Management Class . :

Creation Date . . : 2009/08/25 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : KSDS AVGLRECL . . . . : N.A.

KEYLEN . . . . . : N.A. MAXLRECL . . . . : N.A.

KEYPOS . . . . . : N.A. CISIZE . . . . . : N.A.

AIXRKP . . . . . : N.A.

Current Allocation

Primary Space . . : 1024(KB) Number of Extents : 0

Secondary Space . : 1024(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : ***None*** Last Access Time : **None**

84 OpenFrame 툴 참조 안내서

Page 99: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

다음은 USERCAT1과 연결된 TEST라는 ALIAS를 정의하는 예이다.

$ idcams define ALIAS -n TEST -r USERCAT1

위 명령으로 정의한 ALIAS를 listcat으로 조회한 결과는 다음과 같다.

Entry Name . . . . : TEST

Entry Type . . . . : ALIAS

Catalog Name . . . : SYS1.MASTER.ICFCAT

Associations

UCAT . . . . . . : USERCAT1

다음은 TEST.KSDS라는 이름의 KSDS를 정의하는 예이다.

$ idcams define CLUSTER -n TEST.KSDS -o KS -k 15,0 -l 250,250

다음은 TEST.ESDS라는 이름의 ESDS를 정의하는 예이다.

$ idcams define CL -n TEST.ESDS -o ES -v 100000 -l 250,250

위 명령으로 정의한 ESDS를 listcat으로 조회한 결과는 다음과 같다.

Data Set Name . . . : TEST.ESDS

Data Set Type . . . : CLUSTER

Catalog Name . . . : USERCAT1

Management Class . :

Creation Date . . : 2009/08/25 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : ESDS AVGLRECL . . . . : 250

KEYLEN . . . . . : 0 MAXLRECL . . . . : 250

KEYPOS . . . . . : 0 CISIZE . . . . . : 4096

AIXRKP . . . . . : N.A.

Current Allocation

Primary Space . . : 1024(KB) Number of Extents : 0

Secondary Space . : 1024(KB) Data Set Size . . : 0

제4장 데이터 셋 관리 툴 85

Page 100: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

Last Access Date

Last Access Date : ***None*** Last Access Time : **None**

다음은 TEST.ESDS에 TEST.AIX라는 이름의 보조 인덱스를 정의하는 예이다.

$ idcams define AIX -n TEST.AIX -r TEST.ESDS -k 3,0 -l 40,50 -s TRK,20,10

위 명령으로 정의한 보조 인덱스를 listcat으로 조회한 결과는 다음과 같다.

Data Set Name . . . : TEST.AIX

Data Set Type . . . : AIX

Catalog Name . . . : USERCAT1

Management Class . :

Creation Date . . : 2009/08/25 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : KSDS AVGLRECL . . . . : 40

KEYLEN . . . . . : 3 MAXLRECL . . . . : 50

KEYPOS . . . . . : N.A. CISIZE . . . . . : 4096

AIXRKP . . . . . : 0

Current Allocation

Primary Space . . : 960(KB) Number of Extents : 0

Secondary Space . : 480(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : ***None*** Last Access Time : **None**

다음은 TEST.AIX 보조 인덱스에 TEST.PATH라는 이름의 PATH를 정의하는 예이다.

$ idcams define PATH -n TEST.PATH -p TEST.AIX -c USERCAT1

위 명령으로 정의한 PATH를 listcat으로 조회한 결과는 다음과 같다.

Entry Name . . . . : TEST.PATH

Entry Type . . . . : PATH

Catalog Name . . . : USERCAT1

Attributes

Creation Date . . : 2009/08/25 Entry Owner . . . : igkang

Expiration Date . : ***None***

86 OpenFrame 툴 참조 안내서

Page 101: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

Associations

AIX . . . . . . . : TEST.AIX

다음은 USERCAT1에 등록된 TEST.KSDS를 삭제하는 예이다.

$ idcams delete TEST.KSDS -c USERCAT1

다음은 USERCAT1 카탈로그를 FORCE 옵션으로 삭제하는 예이다.

$ idcams delete -n USERCAT1 -t UCAT -F

다음은 TEST.ESDS으로부터 TEST.AIX 보조 인덱스를 구성하는 예이다.

$ idcams bldindex -i TEST.ESDS -o TEST.AIX

다음은 TEST.ISAM 데이터 셋으로부터 TEST.KSDS에 키값이 "AAAA"부터 "FFFF"까지인 레코드를 복사

하는 예이다.

$ idcams repro -i TEST.ISAM -o TEST.KSDS -f AAAA -t FFFF -r KEY

4.15. listvol

listvol은 시스템에 등록된 볼륨 정보를 출력하는 툴이다.

사용법

listvol 프로그램을 실행하는 방법은 다음과 같다.

Usage: listvol [options] [volser]

● [options]

설명옵션

볼륨에 대한 정보를 상세하게 출력한다.[-l]

● 입력 항목

설명항목

조회하고자 하는 볼륨 시리얼 번호를 지정한다.[volser]

제4장 데이터 셋 관리 툴 87

Page 102: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

지정하지 않은 경우에는 모든 볼륨에 대한 정보가 출력된다.

사용예제

다음은 시스템에 등록된 볼륨의 목록을 조회하는 예이다.

$ listvol

위의 listvol 프로그램 수행 후 출력되는 내용은 다음과 같다.

listvol version 5.1.0(4) igkang@ingyukang:ofsrc5/base(#4) 2009-05-22 10:06:06

List Registered Volume Information

-----------------------------------------------------------------------------

VOLUME FREE(MB) TOTAL(MB) USE(%) VOLUME PATH

-----------------------------------------------------------------------------

100000 44634 73279 39.09 /home/igkang/volume/100000

200000 44634 73279 39.09 /home/igkang/volume/200000

300000 44634 73279 39.09 /home/igkang/volume/300000

DISK01 44634 73279 39.09 /home/igkang/volume/DISK01

VSPOOL 44634 73279 39.09 /home/igkang/openframe/spool

-----------------------------------------------------------------------------

* Total 5 volume entries printed.

다음은 볼륨 100000에 대해 정보를 상세하게 출력하는 예이다.

$ listvol -l 100000

위의 listvol 프로그램 수행 후 출력되는 내용은 다음과 같다.

listvol version 5.1.0(4) igkang@ingyukang:ofsrc5/base(#4) 2009-05-22 10:06:06

List Registered Volume Information

-----------------------------------------------------------------------------

Volume Serial . . . : 100000

Device Type . . . . : 3380

Device Attr . . . . : PUBLIC PERMANENT

Volume Path . . . . : /home/igkang/volume/100000

Space Limit . . . . : 2048(MB)

Statistics

Used . . . . . . : 28644(MB) Available . . . . : 44634(MB)

Total . . . . . . : 73279(MB) Usage . . . . . . : 39.09(%)

88 OpenFrame 툴 참조 안내서

Page 103: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

-----------------------------------------------------------------------------

* Total 1 volume entries printed.

4.16. listcat

listcat은 특정 카탈로그에 등록된 항목에 대한 정보를 출력하는 툴이다.

사용법

listcat 프로그램을 실행하는 방법은 다음과 같다.

Usage: listcat [options] [entname]

● [options]

설명옵션

특정 카탈로그에 등록된 항목을 조회할 때 사용된다. 지정된 카탈로그에 등록된

항목 정보만 조회된다.

[-c catalog]

조회하고자 하는 항목의 이름을 정확하게 지정한다. 와일드 카드 문자를 사용할

수 있다.

[-n entname]

카탈로그 항목에 대한 정보를 상세하게 출력한다.[-l]

카탈로그 항목에 대한 정보를 정보를 상세하게 출력하고, 연관되어 있는 카탈로

그 항목도 같이 출력된다. PDS인 경우 멤버에 대한 목록이 출력된다.

[-a]

● 입력 항목

설명항목

조회하고자 하는 항목 이름의 앞글자 일부를 지정한다.[entname]

참고

와일드 카드를 사용하여 조회하려고 하는 항목의 이름을 지정하는 경우 다음과 같이 사용할 수 있다.

- AAA.*는 AAA.BBB나 AAA.CCC처럼 AAA.으로 시작하는 2개의 퀄리파이어로 구성된 항목을 찾는

다.

- AAA.**는 AAA.BBB, AAA.CCC, AAA.BBB.FFF, AAA.BBB.GGG처럼 AAA.으로 시작하는 모든 항

목을 찾는다.

제4장 데이터 셋 관리 툴 89

Page 104: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 마스터 카탈로그에 등록된 항목 정보를 조회하는 예이다.

$ listcat -c SYS1.MASTER.ICFCAT

위의 listcat 프로그램을 수행한 후 출력되는 내용은 다음과 같다.

listcat version 5.1.1(2) igkang@ingyukang:ofsrc5/base(#4) 2009-05-22 10:06:06

List Catalog Entry Information

-----------------------------------------------------------------------------

SYS1.MASTER.ICFCAT VOLUME ENTTYPE VSAM NVSM

-----------------------------------------------------------------------------

SYS1.DSLOCK.DATA 100000 CLUSTER KSDS

SYS1.DSLOCK.LOG 100000 CLUSTER KSDS

SYS1.JCLLIB 100000 NONVSAM PDS

SYS1.JESST 100000 CLUSTER KSDS

SYS1.JOBQ 100000 CLUSTER KSDS

...

SYS1.VVDS.V100000 100000 CLUSTER ESDS

SYS1.VVDS.V200000 200000 CLUSTER ESDS

SYS1.VVDS.V300000 300000 CLUSTER ESDS

...

TEST.DSCOPY01 100000 NONVSAM SDS

TEST.DSCOPY02 100000 NONVSAM SDS

TEST.GDGBASE ------ GDG

TEST.GDGBASE.G0001V00 100000 NONVSAM GDS

TEST.GDGBASE.G0002V00 100000 NONVSAM GDS

-----------------------------------------------------------------------------

* Total 82 entries in catalog SYS1.MASTER.ICFCAT printed.

다음은 사용자 카탈로그 IYA.UCAT에 등록된 항목 중, IYA.NONVSAM 데이터 셋에 대한 정보를 상세 조

회하는 예이다.

$ listcat -c IYA.UCAT -l IYA.NONVSAM

위의 listcat 프로그램을 수행한 후 출력되는 내용은 다음과 같다.

listcat version 5.1.1(2) igkang@ingyukang:ofsrc5/base(#4) 2009-05-22 10:06:06

List Catalog Entry Information

-----------------------------------------------------------------------------

Data Set Name . . . : IYA.NONVSAM

Data Set Type . . . : NONVSAM

Catalog Name . . . : IYA.UCAT

90 OpenFrame 툴 참조 안내서

Page 105: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

Management Class . :

Creation Date . . : 2009/07/14 Data Set Owner . : igkang

Expiration Date . : ***None***

Storage Class . . . :

Volume Serial . . : 100000 Device Type . . . : 3380

Data Class . . . . :

Organization . . : PS Record Format . . : FB

KEYLEN . . . . . : 0 Record Length . . : 80

KEYPOS . . . . . : 0 Block Size . . . : 4096

Current Allocation

Primary Space . . : 2048(MB) Number of Extents : 0

Secondary Space . : 0(KB) Data Set Size . . : 0

Last Access Date

Last Access Date : 2009/07/14 Last Access Time : 11:38:51

-----------------------------------------------------------------------------

* Total 1 entries in catalog IYA.UCAT printed.

4.17. lockm

lockm은 데이터 셋을 독점적으로 사용하기 위해서 관리되는 데이터 셋 Lock 정보를 조회하고, 필요한 경

우에 Lock 정보를 삭제할 수 있는 기능을 제공하는 툴 프로그램이다.

참고

일반적으로 Batch 작업이 정상적으로 종료된 경우에는 데이터 셋에 대한 Lock 정보는 깨끗하게 정

리되나, 작업이 실행 중에 비정상적인 방법으로 종료되는 경우에는 간혹 데이터 셋 Lock 정보가 남

아서 후속 작업이 진행되지 않는 경우가 있다. 이런 경우에는 lockm 프로그램으로 Lock 목록을 조회

한 후, 정리되지 않은 Lock 항목을 삭제하면 문제를 해결할 수 있다.

사용법

lockm 프로그램을 실행하는 방법은 다음과 같다.

Usage: lockm command [options]

● command

설명command

데이터 셋 Lock 항목을 요청한다.lock

제4장 데이터 셋 관리 툴 91

Page 106: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명command

데이터 셋 Lock 목록을 조회한다.list

데이터 셋 Lock 항목을 삭제한다.clear

● LOCK 옵션

설명옵션

요청하려고 하는 Lock의 이름을 지정한다.[-n name]

name 항목은 반드시 지정되어야 한다.

요청하려고 하는 Lock의 유형을 지정한다. (EX/SHR)[-t type]

Lock 요청 대기 옵션을 지정한다. (FOREVER/NOWAIT)[-w time]

● LIST 옵션

한 번에 1개 이상의 옵션은 지정될 수 없다.

설명옵션

조회할 Lock 항목의 소유 PID를 지정한다.[-p pid]

조회할 Lock 항목의 이름을 지정한다.[-n name]

조회할 Lock 항목의 작업 ID를 지정한다.[-j jobid]

● CLEAR 옵션

최소 1개 이상의 옵션이 지정되어야 한다.

설명옵션

삭제할 Lock 항목의 이름을 지정한다.[-n name]

삭제할 Lock 항목의 소유 PID를 지정한다.[-p pid]

삭제할 Lock 항목의 작업 ID를 지정한다.[-j jobid]

사용예제

다음은 TESTCAT 카탈로그의 TESTDS.TESTLOCK 데이터 셋에 대해 강제로 Lock을 요청하는 경우의 예

이다.

$ lockm lock -n TESTCAT:TESTDS.TESTLOCK

92 OpenFrame 툴 참조 안내서

Page 107: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

다음은 lockm 툴 프로그램을 사용하여 현재 시스템에서 관리되는 Lock 목록을 조회하는 예이다.

$ lockm list

위의 프로그램을 실행하면 다음과 같은 목록이 출력된다.

lockm version 5.1.0(1) igkang@ingyukang:ofsrc5/base(#4) 2009-05-22 10:06:06

Dataset Lock Token Management Program

-----------------------------------------------------------------------------

PID NODENAME JOBID TYPE LOCKNAME

-----------------------------------------------------------------------------

*6158 ingyukang SHR SYS1.MASTER.ICFCAT:TEST.IMS43643.FIRST

*6163 ingyukang EX TESTCAT:TESTDS.TESTLOCK

-----------------------------------------------------------------------------

* List command completed successfully.

다음은 lockm 툴 프로그램을 사용하여 Lock 항목을 삭제하는 예이다.

$ lockm clear -n TESTCAT:TESTDS.TESTLOCK

제4장 데이터 셋 관리 툴 93

Page 108: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를
Page 109: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

제5장 카탈로그 관리 툴

5.1. icfdumpicfdump는 OpenFrame 제품을 운용하면서 관리되는 카탈로그 정보를 백업하여 차후에 문제가 발생했을

경우 이를 복구할 수 있도록 해주는 툴이다. icfdump 프로그램으로 백업을 한 카탈로그 덤프 데이터는

icfload 프로그램으로 복구할 수 있다.

카탈로그 백업을 수행하고 나면, 카탈로그 데이터가 저장된 디렉터리에 2개의 UNIX 파일이 생성된다.

설명파일명

백업에 사용된 카탈로그 데이터 셋의 종류와 이름 그리고 볼륨 정보가 저장된다.dataset.lst

카탈로그에 저장되어 있던 카탈로그 엔트리에 대한 정보가 저장된 파일이다.catalog.dat

사용법

icfdump 프로그램을 실행하는 방법은 다음과 같다.

Usage: icfdump volser dumpdir

| icfdump all dumpdir

| icfdump dumpdir

설명항목

특정 볼륨에 저장되어 있는 카탈로그 데이터만 백업하고 싶은 경우에 사용한다.

volser을 지정하지 않은 경우 모든 볼륨에 대한 백업을 수행한다.

volser

모든 볼륨에 대한 카탈로그 데이터 백업을 수행한다.all

백업하려고 하는 카탈로그 데이터가 저장될 디렉터리를 지정한다.dumpdir

사용예제

다음은 모든 카탈로그 데이터를 현재 디렉터리 밑에 있는 dump01 디렉터리에 백업하는 예이다.

$ icfdump all dump01

제5장 카탈로그 관리 툴 95

Page 110: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

참고

카탈로그 데이터를 덤프하는 중에 특정 카탈로그 엔트리에 대한 오류가 발생하면 해당 오류 메시지

를 화면에 출력하고 계속해서 백업과정을 진행한다. 이 경우 오류 메시지를 정확하게 분석해서 작업

을 계속 진행할 것인지의 여부를 결정해야 한다.

5.2. icfloadicfload는 icfdump로 백업한 카탈로그 덤프 데이터를 사용하여 현재 카탈로그 시스템을 백업할 당시의 시

점으로 복구하는 툴이다. 또한 icfload에는 카탈로그 데이터 셋을 초기화시키는 과정이 포함되어 있어서

사용되지 않는 카탈로그 레코드 등이 정리되어 카탈로그 데이터 셋의 크기가 작아지는 효과가 있다.

사용법

icfload 프로그램을 실행하는 방법은 다음과 같다.

Usage: icfload volser dumpdir

| icfload all dumpdir

| icfload dumpdir

설명항목

특정 볼륨에 대한 카탈로그 내용만 복구할 경우에 지정한다.volser

volser를 지정하지 않은 경우 모든 볼륨에 대한 카탈로그 내용을 복구한다.

모든 볼륨에 대한 카탈로그 데이터를 복구한다.all

icfdump 프로그램으로 백업된 데이터가 저장된 디렉터리를 지정한다.dumpdir

사용예제

다음은 현재 디렉터리 밑에 있는 dump01 디렉터리에 백업된 데이터를 기준으로 모든 카탈로그 내용을 복

구하는 예이다.

$ icfload all dump01

96 OpenFrame 툴 참조 안내서

Page 111: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

참고

특정 볼륨을 기준으로 카탈로그를 백업한 경우에는 해당 볼륨을 기준으로만 카탈로그 복구가 가능

하다. 하지만 모든 볼륨에 대해서 카탈로그 백업을 한 경우에는 특정 볼륨 또는 모든 볼륨에 대해서

카탈로그 복구를 할 수 있다

5.3. icfscanicfscan은 카탈로그에 등록된 엔트리의 유효성 및 유형별 통계를 산출하는 툴이다. OpenFrame 시스템 운

영 중 총 카탈로그 엔트리의 증감에 대한 보고와 등록된 엔트리의 유효성 검증을 위해 사용할 수 있다.

사용법

icfscan 프로그램을 실행하는 방법은 다음과 같다.

Usage: icfscan [-c user_catalog] [-h] [-i]

설명항목

지정된 사용자 카탈로그만을 점검한다.[-c user_catalog]

user_catalog을 지정하지 않은 경우, 모든 카탈로그에 대한 엔트리의 유효성과

유형별 통계를 산출한다.

도움말을 출력한다.[-h]

처리과정에 대한 메시지를 출력한다.[-i]

사용예제

다음은 모든 카탈로그에 대하여 엔트리의 유효성과 유형별 통계를 산출하는 예이다.

$ icfscan

위 예제에서 모든 카탈로그에 대한 카탈로그 스캔을 시도한 후 결과를 보여준다.

ICFSCAN [I] using master catalog : [SYS1.MASTER.ICFCAT.MJES]

ICFSCAN [I] [SYS1.MASTER.ICFCAT.MJES] scanning.

ICFSCAN [I] ============================================================

ICFSCAN [E] NONVSAM [DSMOVE.OUT.]......invalid

path[/home/saza/OpenFrame/volume_default/DSMOVE.OUT.]

ICFSCAN [I] ============================================================

ICFSCAN [I] [SYS1.MASTER.ICFCAT.MJES] scan report.

ICFSCAN [I] ============================================================

제5장 카탈로그 관리 툴 97

Page 112: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

ICFSCAN [I] ICF ENTRY TOTAL : 116

ICFSCAN [I] DATASET : 1/ 112

ICFSCAN [I] - NONVSAM : 1/ 58

ICFSCAN [I] - SDS/PDS : 1/ 47

ICFSCAN [I] - GDS : 0/ 11

ICFSCAN [I] - VSAM : 0/ 54

ICFSCAN [I] - CLUSTER : 0/ 9

ICFSCAN [I] - AIX : 0/ 6

ICFSCAN [I] - PATH : 0/ 7

ICFSCAN [I] CATALOG : 0/ 1

ICFSCAN [I] ETC : 0/ 0

ICFSCAN [I] ============================================================

ICFSCAN [I] using user catalog : [TEST.UCAT]

ICFSCAN [I] [TEST.UCAT] scanning.

ICFSCAN [I] ============================================================

ICFSCAN [I] ============================================================

ICFSCAN [I] [TEST.UCAT] scan report.

ICFSCAN [I] ============================================================

ICFSCAN [I] ICF ENTRY TOTAL : 1

ICFSCAN [I] DATASET : 0/ 1

ICFSCAN [I] - NONVSAM : 0/ 1

ICFSCAN [I] - SDS/PDS : 0/ 1

ICFSCAN [I] - GDS : 0/ 0

ICFSCAN [I] - VSAM : 0/ 0

ICFSCAN [I] - CLUSTER : 0/ 0

ICFSCAN [I] - AIX : 0/ 0

ICFSCAN [I] - PATH : 0/ 0

ICFSCAN [I] CATALOG : 0/ 0

ICFSCAN [I] ETC : 0/ 0

ICFSCAN [I] ============================================================

참고

카탈로그를 스캔할 때 특정 카탈로그 항목에 대해 오류가 발생한 경우, 해당 오류 메시지를 화면에

출력하고 계속해서 스캔과정을 진행한다.

5.4. icfspchkicfspchk은 카탈로그를 기준으로 VSAM 볼륨의 사용공간을 확인하는 툴이다. 단, Non-VSAM 데이터 셋이

사용하는 공간에 대해서는 보고를 하지 않는다.

icfspchk 프로그램은 카탈로그에 등록되어 있는 모든 볼륨과 각 볼륨에 저장되어 있는 모든 VSAM 데이터

셋에 대해서 다음의 측정값을 출력한다.

● 카탈로그 이름, 데이터 셋 이름, 데이터 셋 유형

98 OpenFrame 툴 참조 안내서

Page 113: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

● 컨트롤 인터벌 크기, 평균 레코드 크기, 최대 레코드 크기, 전체 레코드 개수

● 추정 데이터 셋 크기, 최대 데이터 셋 할당 공간

한 볼륨 안에 저장되어 있는 모든 VSAM 데이터 셋에 대한 보고가 끝나면 해당 볼륨에 대한 총 추정 데이

터 셋 크기와 총 데이터 셋 할당 공간을 출력한다.

참고

icfspchk은 예전에 카탈로그 VVDS의 레코드를 재사용할 수 없던 문제가 있어, VVDS의 디스크 공간

사용 증가분을 측정하기 위해 개발된 툴이다.

사용법

icfspchk 프로그램을 실행하는 방법은 다음과 같다.

Usage: icfspchk volser

| icfspchk all

설명항목

특정 볼륨에 대한 VSAM 데이터 셋의 사용량을 확인하기 위해 지정한다.volser

모든 볼륨에 대한 VSAM 데이터 셋의 사용량을 확인하기 위해 지정한다.all

사용예제

다음은 볼륨별 VSAM 데이터 셋의 사용량을 출력하는 예이다.

$ icfspchk all

위 예제 실행 후 VSAM 데이터 셋 사용량 보고를 출력한 화면이다.

prog_name: icfspchk_main.c

icf_initialize() success.

scan_master_catalog() success.

icfspchk: *** VVDS not defined for volume 200000. (continue)

icfspchk: *** VVDS not defined for volume 300000. (continue)

icfspchk: *** VVDS not defined for volume VSPOOL. (continue)

check_volume_config() success.

+ scanning catalog dataset... [SYS1.MASTER.ICFCAT]

+ scanning catalog dataset... [TAPECAT]

+ examining catalog entries.. (19) entries

--------------------------------------------------------------

> Space Usage Report for Volume MJES01

제5장 카탈로그 관리 툴 99

Page 114: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

--------------------------------------------------------------

SYS1.MASTER.ICFCAT:AAA.KSDS01:C=(CISIZE=32,AVGLRECL=16,MAXLRECL=16,

RECCOUNT=0,ESTSIZE=0,HARBADS=262144)

SYS1.MASTER.ICFCAT:MRDV.B01SYODB:C=(CISIZE=6144,AVGLRECL=6137,MAXLRECL=6137,

RECCOUNT=2304,ESTSIZE=14139648,HARBADS=512753664)

SYS1.MASTER.ICFCAT:MRDV.B01SYODI:C=(CISIZE=1024,AVGLRECL=35,MAXLRECL=35,

RECCOUNT=6849,ESTSIZE=239715,HARBADS=143654912)

...

SYS1.MASTER.ICFCAT:TAPECAT:U=(CISIZE=32768,AVGLRECL=512,MAXLRECL=32704,

RECCOUNT=10,ESTSIZE=5120,HARBADS=65536)

--------------------------------------------------------------

> Total Space Used in Volume MJES01: 20589639 Bytes Used / 815005696 Bytes Allocated

report_space_usages() success.

icf_finalize() success.

100 OpenFrame 툴 참조 안내서

Page 115: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

제6장 Batch 시스템 툴

6.1. tjesinittjesinit은 OpenFrame Batch에서 시스템 데이터 셋뿐만 아니라 JOBQ와 SPOOL 등을 초기화하기 위해 사

용되는 툴이다.

OpenFrame 시스템 초기화 작업을 담당하는 tjesinit은 시스템을 초기화할 때 다음을 수행한다.

● JESST 초기화

tjes.conf 파일로부터 JOBQ 크기, OUTPUTQ 크기, NODELIST, JOB CLASS 설정 등을 읽어 SYSx.JESST

를 초기화 한다.

● JOBQ 초기화

JOBQ에 등록된 모든 내용을 삭제한다.

● OUTPUTQ 초기화

OUTPUTQ에 등록된 모든 내용을 삭제한다.

● SPOOL 초기화

SPOOL 볼륨 내의 TJES 관련 데이터를 모두 삭제한다.

tjesinit은 시스템 초기화할 때 JESST reset, JOBQ reset을 수행하고 tjes.conf 파일의 설정된 내용으로부

터 JESST 초기화, SPOOL 초기화, OUTPUTQ 초기화의 순서로 실행된다.

시스템 관리자는 다음의 사항을 확인한 후 tjesinit을 수행한다.

● TSAM은 사용 가능한 상태이어야 한다.

● OpenFrame 엔진(Tmax)은 기동되지 않은 상태이어야 한다.

● JOB의 수행내역이 백업되지 않고 삭제된다.

참고

OpenFrame 시스템을 완전히 초기화하기 위해서는 tjesinit, lockinit 툴을 이용하여 시스템 데이터 셋

을 초기화해야 한다.

제6장 Batch 시스템 툴 101

Page 116: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용법

tjesinit 프로그램을 실행하는 방법은 다음과 같다.

Usage: tjesinit

사용예제

다음은 TJES를 초기화하는 예이다.

$ tjesinit

참고

관련 툴 프로그램으로는 “2.4. lockds”이 있다.

6.2. dlcleandlclean은 dlupdate를 한 후에 임시 데이터 셋에 옮겨 놓은 이전 라이브러리들을 삭제하는 툴이다.

사용법

dlclean 프로그램을 실행하는 방법은 다음과 같다.

Usage: dlclean

사용예제

tjes.conf 파일의 [DYNAMIC_LIBRARY] 절 TEMPLIB 항목에 설정되어 있는 PDS에 저장되어 있는 이전

라이브러리들을 모두 삭제한다.

$ dlclean

관련 환경설정

dlclean를 사용할 때 삭제할 라이브러리들이 저장되어 있는 임시 데이터 셋이다.

TEMPLIB을 설정하지 않은 경우 에러가 발생한다.

102 OpenFrame 툴 참조 안내서

Page 117: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

<tjes.conf>

[DYNAMIC_LIBRARY]

TEMPLIB= datasetname

참고

관련 툴 프로그램으로는 “6.5. dlupdate”이 있다.

6.3. jclviewjclview는 tjesmgr와 같이 UNIX 터미널 화면에서 실행되는 JCL 파일 뷰어를 제공하는 툴이다. curses 라이

브러리를 사용하여 터미널 화면에서도 윈도우 화면처럼 풀다운 메뉴, 화면 스크롤, 팝업 창, 단축키 등의

사용자 편의 UI와 다중 문서 인터페이스를 제공한다. 이 외에도 Batch JOB 테스트에 관련된 여러 가지 편

의기능을 제공하여 개발 및 SE의 작업 능률 향상에 도움을 준다.

다음은 jclview의 주요기능이다.

● JCL 파일의 멀티 경로 지원

● JCL 프로시저 열람 (JCLLIB 문장, /*JOBPARM의 PROC 문장 지원)

● 데이터 셋 상세정보 열람 (JOBCAT, STEPCAT DD문 지원)

● dsview, dsedit, vi 편집기 연계 호출

● 멤버 데이터 셋(PDS, GDS) 정보 열람

● 데이터 셋 조건 별 검색 (필터링, 카탈로그, 엔트리 타입)

다음은 jclview 메뉴 구성에 대한 설명이다.

설명하위메뉴상위메뉴

JCL 파일 열기OpenJCL

열려진 여러 개의 JCL 파일 중에서 보기 원하는 JCL 파일 선택Select

JCL View 종료Exit

데이터 셋 조건 별 검색SearchDataset

볼륨 정보 조회Volume Info

TJES 에러 메시지 검색Find Error MsgHelp

JCL View 버전 정보About JCL View

제6장 Batch 시스템 툴 103

Page 118: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

다음은 jclview 단축키 구성에 대한 설명이다.

설명기능항목

JCL 파일 열기Open1

JCL 파일을 vi 편집기를 이용하여 열기Edit2

열려진 여러 개의 JCL 파일 중에서 보기 원하는 JCL 파일 선택Select3

이전 페이지PgUpF

다음 페이지PgDnD

메뉴바로 이동MenuTab

데이터 셋 정보 출력Ds InfoEnter

현재 보고 있는 JCL 파일 닫기CloseQ

사용법

jclview 프로그램을 실행하는 방법은 다음과 같다.

$ jclview [JCL File_name]

설명항목

조회하고자 하는 JCL 파일을 지정한다. 해당 JCL의 내용을 보여준다.[JCL File_name]

JCL 파일명을 지정하지 않으면 [그림 6.1]의 초기화면이 나타난다.

변경하고자 하는 기존 라이브러리가 들어있는 PDS 이름을 지정한다.dataset_name

104 OpenFrame 툴 참조 안내서

Page 119: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

jclview의 초기화면은 다음과 같다.

[그림 6.1] jclview -초기화면

jclview 메뉴선택 화면은 다음과 같다.

[그림 6.2] jclview -메뉴선택 화면

제6장 Batch 시스템 툴 105

Page 120: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

jclview에서 JCL 파일을 연 후 화면은 다음과 같다.

[그림 6.3] jclview - JCL 파일 open 후 화면

jclview에서 데이터 셋 정보를 열람하는 화면은 다음과 같다.

[그림 6.4] jclview - 데이터 셋 정보열람 화면

106 OpenFrame 툴 참조 안내서

Page 121: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

jclview에서 GDG 멤버 정보를 조회 화면은 다음과 같다.

[그림 6.5] jclview - GDG 멤버 정보조회 화면

jclview에서 데이터 셋을 검색하는 화면은 다음과 같다.

[그림 6.6] jclview - 데이터 셋 검색 화면

제6장 Batch 시스템 툴 107

Page 122: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

유의사항

jclview를 실행하기 전 터미널 화면 사이즈는 24 라인 이상, 80 컬럼 이상이어야 한다.

jclview는 제일 먼저 현재 디렉터리에서 JCL 파일을 검색하고, JCL 파일이 존재하지 않을 경우 jclview.conf

파일의 [JCLLIB] 절 JCL_PATH 항목에 나열된 디렉터리 순으로 검색한다.

JCL 파일의 검색순서는 현재 디렉터리에 JCL 파일이 존재하지 않는 경우 jclview.conf에 나열된 디렉터리

를 차례로 검색하며 여기에도 존재하지 않는 경우 tjes.conf 파일의 [PROCLIB] 절에 기술된 JCLLIB의 순

서로 검색한다.

JCL 프로시저인 경우 여기에 추가로 JCL의 JCLLIB 문장에서 기술한 카탈로그 PATH, /*JOBPARM에서

PROC 문으로 지정한 위치가 반영된다.

만약 동일한 이름의 JCL 파일이 지정된 여러 디렉터리에 존재하는 경우 별도의 JCL 파일 선택 화면이 나

타나며 여기서 원하는 JCL 파일을 선택할 수 있다.

JCL에서 데이터 셋 정보를 열람하는 경우 STEPCAT → JOBCAT → Alias → Master Catalog 순서로 검색

하여 정보를 제공한다.

데이터 셋 열람이 가능한 위치에 반전 커서가 놓이게 되면 커서 앞부분의 모양이 ‘→’ 으로 변한다.

관련 환경설정

jclview를 실행하기 전, JCL 또는 PROC 파일이 존재하는 절대 경로를 설정한다. 세미콜론(;)을 사용하여

다수의 JCL 디렉터리를 지정할 수 있으며, 기술된 순서대로 JCL 파일을 검색하게 된다.

JCL_PATH를 설정하지 않으면, tjes.conf 파일의 [PROCLIB] 절 JCLLIB 항목에 설정한 디렉터리에서 검

색한다.

현재 디렉터리를 가장 우선 검색하며 JCL 프로시저 검색도 동일한 순서를 따라 검색한다.

<jclview.conf>

[JCLLIB]

JCL_PATH=jcl_path

108 OpenFrame 툴 참조 안내서

Page 123: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

6.4. textruntextrun은 JOB을 submit하고 JOB의 실행 결과를 보여주는 툴이다. 주로 자동으로 JOB을 실행하고 JOB

의 결과에 따라서 다음 JOB을 실행할지 여부를 결정하는 Batch Map에서 사용한다.

사용법

textrun 프로그램을 실행하는 방법은 다음과 같다.

Usage: textrun –jJCL [-nNodename] [-Cusercatalog] [-oDD[,DD]*] [-eDD[,DD]*]

[-c[PROJOBS | JP1 | CONTROL_M | A-AUTO | SENJU]

[-tSECOND] [-r] [-Rrestart_step] [-Nvalue]

[-iUSERID[GROUPNAME]/PASSWORD]

설명항목

Submit하고자 하는 JOB이 기술된 JCL을 지정한다.-jJCL

기술방법은 아래와 같다.

- unit filepath ( ex : /home/openframe/volume/SYS1.JCLLIB/TEST )

- dataset(member) ( ex : SYS1.JCLLIB(TEST) )

- JCL name ( ex : TEST )

JCL name만이 지정된 경우는 tjes.conf 파일의 [PROCLIB] 절을 참조하여 해당

JCL을 찾는다.

JOB이 실행될 노드를 지정한다.[-nNodename]

데이터 셋이 등록되어 있는 사용자 카탈로그를 지정한다.[-Cusercatalog]

주어진 DD들을 SPOOL에서 찾아 stdout으로 기록한다.[-oDD[,DD]*]

옵션을 지정하지 않은 경우 SYSOUT DD를 stdout으로 기록한다.

주어진 DD들을 SPOOL에서 찾아 stderr로 기록한다.[-eDD[,DD]*]

옵션을 지정하지 않은 경우 SYSMSG DD를 stderr로 기록한다.

textrun을 실행하는 외부 스케줄러이다.[-c[PROJOBS | JP1 |

CONTROL_M |현재 textrun에서는 -c 옵션에 대해서 오류를 발생하지 않도록 무시하고 있다.

A-AUTO | SENJU]]

JOB을 실행한 후 JOB의 결과가 나올 때까지 모니터링을 하는 간격을 초 단위로

지정한다.

[-tSECOND]

이 옵션을 지정하지 않을 경우 기본 10초마다 모니터링을 한다.

제6장 Batch 시스템 툴 109

Page 124: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명항목

JOB 실행 종료 후 JOB을 제거한다.[-r]

JOB을 재기동하는 경우 재기동할 스텝을 지정한다.[-Rrestart_step]

JOB의 상대적인 중앙처리 장치 점유 우선순위를 지정한다. value값은 0~20까지

의 정수이며, 낮을 수록 우선 순위가 높다. 디폴트는 10이다. 이 값은 I/O의 우선

순위와는 관련이 없다.

[-Nvalue]

디폴트 사용자 외로 JOB을 실행시키는 사용자를 지정한다.[-iUSERID[GROUP

NAME]/PASSWORD]

사용예제

JCL을 submit하는 일반적인 예이다.

$ textrun -jTEST.jcl

DD1과 DD2의 내용을 stdout으로 출력하는 예이다.

$ textrun -jTEST.jcl -oDD1,DD2

JOB을 실행한 후 결과를 출력할 때까지의 모니터링 간격을 60초로 설정하는 예이다.

$ textrun -jTEST.jcl -t60

STEP2부터 JCL을 실행하는 예이다.

$ textrun -jTEST.jcl -RSTEP2

JOB 실행이 끝난 후 JOB을 삭제하는 예이다.

$ texturn -jTEST.jcl -r

관련 환경설정

<textrun.conf>

[DEFAULT_USER]

USERNAME=tacf user

PASSWORD=tacf password

GROUPNAME=tacf group

[EXIT_CODE]

USE_RC_CODE=YES|NO

STATUS 0-255=return value

110 OpenFrame 툴 참조 안내서

Page 125: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

[MONITORING]

RETRY_COUNT=number

RETRY_INTERVAL=seconds

[OPTION]

RUN_NODE=nodename

[AUTOEDIT]

USE=NO

[DEFAULT_USER]

설명항목

TACF 인증을 위한 사용자 정보이다.USERNAME,

JCL에 사용자 정보가 기술되어 있지 않을 경우 TACF 인증을 받기 위해 참조하

는 사용자 정보이다.

PASSWORD,

GROUPNAME

[EXIT_CODE]

설명항목

JOB 상태에 따라서 반환코드를 설정할지 여부를 결정한다.USE_RC_CODE

STATUS에는 STOP 또는 FLUSH 중에서 지정할 수 있다.STATUS

예) STOP=255

위와 같이 STATUS를 설정하고 USE_RC_CODE=YES로 설정을 하면 JOB이

STOP으로 끝나는 경우 255를 반환한다.

[MONITORING]

설명항목

JOB 모니터링 중에 모니터링 서비스 접속에 문제가 발생할 경우 재시도 횟수이

다. 설정되어 있지 않으면 기본값으로 3회 재시도한다.

RETRY_COUNT

서비스 재접속을 시도하는 간격을 초 단위로 지정한다. 설정되어 있지 않으면 기

본값으로 3초 후에 재접속을 시도한다.

RETRY_INTERVAL

제6장 Batch 시스템 툴 111

Page 126: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

[OPTION]

설명항목

JOB을 submit할 때 -n 옵션을 주지 않았을 때 기본적으로 적용될 노드를 지정한

다. 기본값은 별표(*)로 JOB이 어떤 노드에서 실행되어도 상관이 없는 지정이다.

RUN_NODE

[AUTOEDIT]

설명항목

외부 스케줄러인 CONTROL-M 제품의 AUTOEDIT 문법을 사용할지를 지정한

다.

USE

참고

TJES에 대한 자세한 내용은 “TJES 안내서”를 참고한다.

6.5. dlupdatedlupdate는 사용자가 만든 라이브러리를 변경하고자 할 때 사용하는 툴이다. 라이브러리의 변경이 필요하

지만 기존 라이브러리를 없애버릴 경우 그 라이브러리를 사용 중인 프로그램에 문제가 발생하기 때문에,

기존 라이브러리는 이름을 변경하여 환경 설정에 지정된 PDS에 옮겨두고 신규 라이브러리는 기존 라이

브러리가 있던 데이터 셋에 복사하여 새로운 프로그램부터는 신규 라이브러리를 이용할 수 있도록 한다.

사용법

dlupdate 프로그램을 실행하는 방법은 다음과 같다.

Usage: dlupdate source_path dataset_name

설명항목

신규 라이브러리 파일의 UNIX 절대 경로를 지정한다.source_path

신규 라이브러리 파일의 이름은 바꾸고자 하는 기존 라이브러리의 이름과 같아

야 한다.

변경하고자 하는 기존 라이브러리가 들어있는 PDS 이름을 지정한다.dataset_name

112 OpenFrame 툴 참조 안내서

Page 127: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

사용예제

다음은 /tmp/libtest.so 라이브러리를 USER.LIB 데이터 셋에 update를 하는 예이다.

$ dlupdate /tmp/libtest.so USER.LIB

USER.LIB에 있는 libtest.so 파일은 libtest.so_YYYYMMDD_HHMISS 형식으로 이름이 변경되어 환경 설

정에 지정된 PDS에 옮겨지고 /tmp/libtest.so가 USER.LIB에 복사된다.

USER.LIB에 libtest.so가 없으면 /tmp/libtest.so가 USER.LIB에 복사만 된다.

관련 환경설정

dlupdate를 사용할 때 기존 라이브러리를 옮겨놓는 임시 데이터 셋이다. TEMPLIB을 설정하지 않은 경우

dlupdate 수행하면 에러가 발생한다.

<tjes.conf>

[DYNAMIC_LIBRARY]

TEMPLIB= datasetname

참고

관련 프로그램으로는 “6.2. dlclean”이 있다.

제6장 Batch 시스템 툴 113

Page 128: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를
Page 129: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

제7장 기타 툴

7.1. enpasswdenpasswd는 사용자의 비밀번호를 64Byte 문자열로 인코딩하는 툴이다. OpenFrame 제품을 사용하면 설

정 파일에 사용자의 비밀번호를 입력해야 하는 경우가 있다.

예를 들면, ikjeft01.conf 파일에는 특정 관계 데이터베이스 시스템에 접속할 수 있도록, 데이터베이스 시스

템명, 사용자명, 비밀번호 등의 정보를 설정해야 한다. 이 때, 사용자의 비밀번호를 직접 설정 파일에 입력

하면, 정보 유출의 위험이 있으므로, 비밀번호를 인코딩해서 저장하도록 한다.

사용법

enpasswd를 실행하는 방법은 다음과 같다.

Usage: enpasswd username password

설명항목

비밀번호를 인코딩할 때 인코딩 키로 사용된다.username

인코딩할 비밀번호를 입력한다.password

프로그램 실행 파라미터로 사용자명과 비밀번호를 주면 화면에 64 Byte로 인코

딩된 비밀번호가 출력된다.

사용예제

다음은 사용자명으로 igkang을 지정하고, 비밀번호로 whoknows를 지정하였을 때 enpasswd 프로그램이

실행되어 인코딩된 비밀번호를 출력하는 예이다.

$ enpasswd igkang whoknows

970A3C79A0E803DCB62B276D91602D77500107695254FDA1BD477054AEBACBBD

참고

설정파일에서 인코딩된 비밀번호와 인코딩되지 않은 비밀번호를 동시에 지정할 경우에는 인코딩되

지 않은 비밀번호가 우선적으로 사용된다.

인코딩된 비밀번호를 사용하는 설정파일로는 ds.conf, ikjeft01.conf 이 있다.

제7장 기타 툴 115

Page 130: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

7.2. oferroroferror는 OpenFrame에서 발생하는 에러에 대한 간략한 에러 번호, 에러 코드, 에러 메시지를 출력하는

툴이다. 복수 개의 에러코드를 조회할 경우는 조회하려는 에러를 스페이스로 구분해서 기술하면 된다.

사용법

oferror를 실행하는 방법은 다음과 같다.

Usage: oferror [ERRORNO [ERRORNO...]]

설명항목

출력하려는 에러 번호이다.ERRORNO

사용예제

다음은 -1002에 해당하는 에러 내용을 조회하는 예이다.

$ oferror -1002

/*

/* error no : -1002

/* error code: TSAM_ERR_DUPLICATE_KEY

/* error msg : duplicate key

/*

다음은 존재하지 않는 에러 코드를 조회한 경우 출력의 예이다.

$ oferror 23132

Not defined error no: 23132

[참고]

oferror를 사용하기 위해서는 $OPENFRAEME_HOME/data 디렉터리에 설치된 OpenFrame 서브 제품의

에러 정보파일이 반드시 존재해야 한다.

다음은 서브 제품별 에러 정보 파일에 대한 설명이다.

설명파일명

Base 제품의 에러 정보 파일 이름이다.errcode_base.msg

Batch 제품의 에러 정보 파일 이름이다.errcode_batch.msg

Online 제품의 에러 정보 파일 이름이다.errcode_online.msg

116 OpenFrame 툴 참조 안내서

Page 131: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

설명파일명

TACF 제품의 에러 정보 파일 이름이다.errcode_TACF.msg

IMS 제품의 에러 정보 파일 이름이다.errcode_imsx.msg

7.3. offileoffile은 OpenFrame 전 모듈에 대한 버전 트랙킹을 위한 툴이다.

다음과 같은 버전 정보 출력 기능을 제공한다.

모듈의 버전 정보는 다음과 같은 형식으로 stdout (standard output)에 출력된다.

{major}.{minor}.{patch}(module build number)

모듈의 빌드 정보는 다음과 같은 형식으로 stdout (standard output)에 출력된다.

{id}{hostname}/{source tree}(#{product build number}) {date} {time}

사용법

offile를 실행하는 방법은 다음과 같다.

Usage: offile module1 [module2 ...]

설명항목

특정 모듈의 버전과 빌드 정보를 stdout으로 출력한다.module1

2개 이상의 모듈에 대한 버전과 빌드 정보를 한번에 출력한다.[module2 ...]

사용예제

다음은 $OPENFRAME_HOME/lib 디렉터리에서 libcicstsq.so이라는 OpenFrame 공유 라이브러리 모듈

의 버전 정보와 빌드 정보를 출력하는 예이다.

$ offile libcicstsq.so

libcicstsq.so version 5.0.2(253), obm@tmaxs4/ofsrc4(#4) 2007-01-16 16:03:26

다음은 $OPENFRAME_HOME/bin 디렉터리에서 cpm으로 시작하는 모든 모듈의 버전 정보와 빌드 정보

를 출력하는 예이다.

제7장 기타 툴 117

Page 132: OpenFrame - TmaxSoft · 2019. 4. 9. · idcams VSAM 데이터 셋 혹은 사용자 카탈로그를 생성하거나 삭제하는 툴이다. listvol 시스템에 등록된 볼륨 정보를

$ offile cpm*

cpmgencpm version 5.0.1(817), obm@tmaxs4/ofsrc4(#4) 2007-01-16 16:03:26

cpmgenucm version 5.0.1(817), obm@tmaxs4/ofsrc4(#4) 2007-01-16 16:03:26

cpmmergeucm version 5.0.1(817), obm@tmaxs4/ofsrc4(#4) 2007-01-16 16:03:26

cpmmgr version 5.0.1(841), obm@tmaxs4/ofsrc4(#4) 2007-01-16 16:03:26

7.4. ofversion

ofversion 프로그램은 사용자가 현재 로그인해서 사용 중인 플랫폼에 설치된 OpenFrame 서브 제품의 종

류와 각 서브 제품의 버전을 출력하는 툴 프로그램이다.

사용법

다음과 같이 파라미터없이 프로그램을 실행시킨다.

Usage: ofversion

사용예제

다음은 OpenFrame/Base 서브 제품만 설치된 플랫폼에서 ofversion 프로그램을 실행시킨 예이다.

$ ofversion

ofversion version 5.1.0(1) igkang@ingyukang:ofsrc5/base(#4) 2009-05-22 10:06:06

Print OpenFrame Version Information

OpenFrame Solution is Composed of

- OpenFrame/Base 5.1 Fix#1

118 OpenFrame 툴 참조 안내서