통합 카탈로그

본 장에서는 카탈로그의 구조, 검색 순서, 마스터 카탈로그 등 카탈로그에 대한 전반적인 사항에 대해 알아보고, 카탈로그 구조와 카탈로그 관리방법에 대하여 기술한다. 마지막으로 카탈로그 관련 툴 프로그램에 대하여 설명한다.

1. 개요

OpenFrame에서는 데이터셋에 대한 메타 정보를 관리하기 위해 통합 카탈로그 모듈과 관련 툴 프로그램을 제공한다. 카탈로그는 OpenFrame에서 데이터셋에 대한 중앙 정보 창구의 역할을 담당한다.

VSAM 데이터셋을 사용하려면 해당 데이터셋이 반드시 카탈로그에 등록되어야 한다. Non-VSAM 데이터셋은 카탈로그에 등록되지 않고도 사용될 수 있다. 카탈로그에 등록되지 않은 Non-VSAM 데이터셋을 사용하려면, JCL에 해당 데이터셋에 대한 모든 정보를 기술하거나 볼륨을 지정해주어야 한다.

2. 카탈로그

카탈로그는 다른 데이터셋에 대한 메타 정보를 담고 있다. 카탈로그는 데이터셋의 구체적인 저장 위치를 모르더라도 이름만으로 데이터셋을 사용할 수 있게 한다. 데이터셋을 카탈로깅함으로써 사용자들은 시스템 스토리지 설정 등에 대해 잘 모르더라도 데이터셋을 사용하는데 문제가 되지 않는다.

2.1. 카탈로그 구조

Mainframe에서 카탈로그는 BCS 데이터셋과 VVDS 데이터셋이라는 2가지 종류의 서로 다른 데이터셋으로 구성된다. 다만 OpenFrame에서는 BCS 데이터셋은 카탈로그 테이블로 VVDS 데이터셋은 VTOC과 합쳐 VTOC 테이블로 구성된다.

카탈로그 테이블에는 데이터셋에 대한 기본 속성, 볼륨 정보, 사용 권한, 다른 항목과의 관계 등의 정보를 담는다.

2.2. 카탈로그 검색 순서

사용자가 카탈로그에 등록된 데이터셋을 사용할 때 또는 카탈로그에 등록될 데이터셋을 생성할 때, 적합한 카탈로그를 찾기 위해서 여러 개의 카탈로그가 검색된다.

카탈로그 검색 순서는 카탈로그에 정의된 Alias나 카탈로그의 이름 그리고 Alias 검색 레벨에 따라서 결정된다. Alias 검색 레벨은 데이터셋 이름의 상위 Qualifier를 몇 개까지 조사해 볼 것인가를 결정하는 시스템 설정이다.

대부분의 카탈로그 검색은 카탈로그 Alias에 기초한다. 모든 카탈로그에 적당한 Alias가 정의되어 있다면 데이터셋 이름의 상위 Qualifier가 특정 카탈로그의 Alias와 같고, 사용자의 요청을 처리할 적당한 카탈로그를 쉽게 찾을 수 있다.

하지만 앞의 경우와 달리 특별하게 카탈로그를 지정하는 방법이 있는데, JCL에서 JOBCAT이나 STEPCAT을 사용한다거나, 액세스 메소드 서비스에서 CATALOG 파라미터를 사용하는 방법 등이 있다.

데이터셋을 찾거나 정의할 때 사용되는 카탈로그의 검색 순서는 다음과 같다.

  1. 시스템 카탈로그를 지정한 경우에는 시스템 카탈로그를 찾는다.

  2. IDCAMS(JSCVSUT/KQCAMS) 유틸리티의 CATALOG 파라미터로 지정된 카탈로그를 찾는다.

  3. GDS 데이터셋인 경우 GDG BASE가 정의된 카탈로그를 찾는다.

  4. JCL에서 STEPCAT이나 JOBCAT으로 지정된 카탈로그를 찾는다.

  5. 상위 Qualifier가 특정 카탈로그의 Alias인 경우 그 카탈로그를 찾는다.

  6. 마지막으로 마스터 카탈로그를 찾는다.

OpenFrame에서 시스템 카탈로그를 사용하는 경우 JCL에서 AMP파라미터에 AMORG를 지정한 경우에는 시스템 카탈로그를 검색하지 않는다.

2.3. 마스터 카탈로그

마스터 카탈로그는 구조적으로는 사용자 카탈로그와 다를 것이 없다. 마스터 카탈로그가 사용자 카탈로그와 다른 점은 어떻게 사용되는가와 어떤 데이터셋이 카탈로그 되는가이다. OpenFrame 시스템에는 한 순간에 하나의 마스터 카탈로그만이 사용될 수 있다.

마스터 카탈로그에는 시스템에 등록된 모든 사용자 카탈로그와 사용자 카탈로그를 가리키는 Alias 항목이 등록되어 있다. 또한 사용자 카탈로그와 마찬가지로 응용프로그램에서 이용하는 일반 데이터셋도 등록할 수 있다.

마스터 카탈로그에 등록되는 항목은 다음과 같다.

카탈로그 항목 설명

사용자 카탈로그

시스템에 등록된 모든 사용자 카탈로그이다.

Alias 항목

시스템에 등록된 사용자 카탈로그를 가리키는 Alias 항목이다.

일반 데이터셋

OpenFrame 기동에 필요한 시스템 테이블과 사용자 카탈로그, Alias를 제외한 일반 데이터셋을 가리킨다.

2.4. 시스템 카탈로그

시스템 카탈로그는 통합 카탈로그 이전에 사용하던 카탈로그 시스템이다. OpenFrame에서는 사용자 카탈로그 중 하나를 시스템 카탈로그로 지정하여 사용할 수 있다. OpenFrame 시스템 내에서는 마스터 카탈로그와 마찬가지로 하나의 시스템 카탈로그만 사용할 수 있다.

시스템 카탈로그를 사용할 경우에는 Non-VSAM과 GDG, GDS 그리고 Non-VSAM의 Alias에 대해서 시스템 카탈로그에 등록하여 사용하고, VSAM에 대해서는 마스터 카탈로그나 사용자 카탈로그 시스템에 등록하여 사용한다.

시스템 카탈로그를 사용할 경우에는 카탈로그에서 데이터셋을 찾을 경우에 시스템 카탈로그에서 가장 먼저 찾는다. 다만, JCL에서 FD문장에서 AMP 매개 변수에 "AMORG"를 지정한 경우에는 시스템 카탈로그를 검색하지 않는다. 또한, dscreate, dsdelete, gdgcreate, gdgdelete와 같은 데이터셋 관리 툴을 이용하여 새로운 Non-VSAM이나 GDG를 정의 또는 삭제하는 경우에는 카탈로그명을 지정하더라도 시스템 카탈로그에 등록 또는 삭제한다.

시스템 카탈로그를 사용하기 위한 설정에 대한 자세한 내용은 OpenFrame Base "환경 설정 안내서"를 참고한다.

2.5. 카탈로그 등록 항목

OpenFrame 통합 카탈로그에 등록되는 항목의 유형과 각 카탈로그 항목에 대한 설명은 다음과 같다.

카탈로그 항목 설명

Non-VSAM Data Set

Non-VSAM 데이터셋에 대한 카탈로그 항목이다.

카탈로그에 등록된 Non-VSAM 데이터셋은 카탈로그로부터 볼륨 정보를 얻을 수 있고 이를 이용하여 VTOC으로부터 데이터셋 정보를 받아온다.

GDG

세대 데이터 그룹에 대한 카탈로그 항목이다.

GDG LIMIT 등의 GDG 속성 정보와 해당 세대 데이터 그룹과 관련된 GDS 데이터셋 이름들이 관리된다.

GDS

세대 데이터셋에 대한 카탈로그 항목이다.

기본적으로 저장되는 데이터의 내용은 Non-VSAM 데이터셋 항목과 동일하다. 연관 항목으로 세대 데이터 그룹 이름이 저장된다.

VSAM Cluster

VSAM 클러스터 카탈로그 항목이다.

VSAM 데이터 컴포넌트와 인덱스 컴포넌트를 하나의 이름으로 관리하기 위해서 카탈로그에 등록된다. 연관 항목으로 데이터 컴포넌트와 인덱스 컴포넌트의 이름이 저장된다.

Data Component

VSAM 데이터 컴포넌트 카탈로그 항목이다.

VSAM 데이터셋의 실질적인 레코드 데이터가 저장되는 오브젝트에 대한 항목이다.

Index Component

VSAM 인덱스 컴포넌트 카탈로그 항목이다.

VSAM 데이터셋의 기본 키를 빨리 검색하기 위한 바이너리 트리 오브젝트에 대한 항목이다.

Alternate Index

보조 인덱스 카탈로그 항목이다.

기본적으로 카탈로그에서 관리되는 정보의 내용은 VSAM 클러스터와 동일하고 항목의 유형만 다르다. 연관 항목으로는 데이터 컴포넌트의 이름, 인덱스 컴포넌트의 이름, 그리고 베이스 클러스터의 이름이 저장된다.

Path Entry

보조 인덱스 경로 카탈로그 항목이다.

보조 인덱스를 통한 베이스 클러스터로의 접근 경로를 정의하며, 연관 항목으로는 보조 인덱스 이름 그리고 베이스 클러스터 이름이 저장된다.

User Catalog

사용자 카탈로그에 대한 카탈로그 항목이다.

사용자 카탈로그도 마스터 카탈로그에 카탈로깅이 되어야 하며, 저장되는 정보는 기본적으로 VSAM 클러스터와 유사하다.

Alias Entry

카탈로그 Alias에 대한 카탈로그 항목이다.

사용자 카탈로그에는 여러 개의 Alias 항목이 등록될 수 있고, 등록된 Alias를 사용해서 카탈로그 검색순서가 조정된다.

2.6. 카탈로그 저장 내용

OpenFrame 통합 카탈로그에서 관리하는 정보는 다음과 같이 정보 그룹별로 분류된다. 정보 그룹 중 Allocation Group과 Statistics Group 정보는 OpenFrame의 시스템 테이블에서 관리된다.

정보 그룹 설명

History Group

항목 이름, 항목 유형, 생성 일자, 만료 일자, Owner ID가 저장된다.

SMS Group

스토리지 클래스, 매니지먼트 클래스 그리고 데이터 클래스가 저장된다.

Protection Group

보안 설정과 패스워드가 저장된다. 현재 OpenFrame에서는 사용되지 않는다.

Volumes Group

볼륨 시리얼과 디바이스 유형이 저장된다.

Attribute Group

평균 레코드 크기, 최대 레코드 크기, 키 위치, 키 길이, VSAM 유형, VSAM 속성, AIX 속성과 공유옵션이 저장된다.

GDG Group

GDG limit와 GDG 속성 그리고 최종 변경일자가 저장된다.

Non-VSAM Group

Non-VSAM 데이터셋의 종류가 PDS인지 GDS인지 나머지 일반 Non-VSAM 데이터셋인지의 정보가 저장된다.

Association Group

연관된 항목 수와 항목 이름 그리고 항목 유형 등이 저장된다.

3. 카탈로그 관리

사용자 카탈로그 정의

액세스 메소드 서비스의 DEFINE USERCATALOG 명령을 사용하면 새로운 사용자 카탈로그를 정의할 수 있다. DEFINE USERCATALOG 명령을 사용할 때에는 ICFCATALOG라는 파라미터를 명시해야 한다.

다음은 SYS1.ICFCAT.TEST라는 사용자 카탈로그를 SYS305라는 볼륨에 생성하는 예이다(아래의 예에서 IDCAMS 유틸리티는 제품에 따라 JSCVSUT, KQCAMS 유틸리티로 대체가 가능하다).

//DEFCAT   EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
  DEFINE USERCATALOG                  -
         ( NAME(SYS1.ICFCAT.TEST)     -
           MEGABYTES(15 15)           -
           VOLUME(SYS305)             -
           ICFCATALOG                 -
           FREESPACE(10 10)           -
           STRNO(3) )                 -
         DATA( CISZ(4096)             -
               BUFND(4) )             -
         INDEX( BUFNI(4) )
/*
카탈로그 Alias 정의

카탈로그를 사용하려면 시스템은 특정 데이터셋을 어떤 카탈로그에 등록해야 하는지 결정해야 하며, 이러한 결정을 가장 쉽게 할 수 있는 방법이 카탈로그에 Alias를 정의하는 것이다.

잘못 만들어진 Alias로 인해 사용자가 데이터셋에 접근하지 못하는 경우도 있으므로, Alias를 정의할 때에는 새로운 Alias가 기존의 데이터셋에 어떠한 영향을 미치는지를 고려해야 한다.

액세스 메소드 서비스의 DEFINE USERCATALOG 명령을 사용해서 사용자 카탈로그를 정의하고 난 뒤, DEFINE ALIAS 명령을 사용하면 카탈로그에 대한 Alias를 정의할 수 있다. 카탈로그 Alias는 사용자 카탈로그와 마찬가지로 마스터 카탈로그에 정의되어야 한다.

다음은 SYS1.ICFCAT.TEST 이라는 사용자 카탈로그에 USER0001과 PROJECTA라는 2개의 Alias를 정의하는 예이다(아래의 예에서 IDCAMS 유틸리티는 제품에 따라 JSCVSUT, KQCAMS 유틸리티로 대체가 가능하다).

//ALIAS    EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
  DEFINE ALIAS                        -
         ( NAME(USER0001)             -
           RELATE(SYS1.ICFCAT.TEST) )
  DEFINE ALIAS                        -
         ( NAME(PROJECTA)             -
           RELATE(SYS1.ICFCAT.TEST) )
/*
카탈로그 항목 리스팅

액세스 메소드 서비스의 LISTCAT 명령을 사용하여 카탈로그 레코드 리스트를 출력하고 카탈로그 데이터셋에 대한 정보를 점검할 수 있다. 단, 사용자 카탈로그에 대한 LISTCAT I/O 통계정보는 정확하지 않다.

다음은 LISTCAT을 사용해서 특정 사용자 카탈로그에 연관된 모든 Alias를 알아보는 예를 보여준다. Alias는 Associations Group 절에 표시된다(아래의 예에서 IDCAMS 유틸리티는 제품에 따라 JSCVSUT, KQCAMS 유틸리티로 대체가 가능하다).

//LSTALIAS EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
  LISTCAT ALL ENTRIES(SYS1.ICFCAT.TEST)
/*
사용자 카탈로그 삭제

액세스 메소드 서비스의 DELETE 명령을 사용하면 사용자 카탈로그나 카탈로그된 데이터셋 그리고 그 밖의 모든 카탈로그 항목을 삭제할 수 있다.

일반적으로 사용자 카탈로그를 삭제하려면 사용자 카탈로그에 등록된 항목이 없어야 하지만 굳이 원한다면 옵션을 사용하여 카탈로그 항목이 포함되어 있는 사용자 카탈로그를 삭제할 수 있다.

사용자 카탈로그가 비어있다면 DELETE USERCATALOG 명령으로 삭제할 수 있다. 이 명령은 사용자 카탈로그에 등록된 데이터셋 항목들을 하고 마스터 카탈로그에 등록된 사용자 카탈로그 항목을 삭제한다.

사용자 카탈로그가 비어있지 않다면 DELETE USERCATALOG 명령을 사용할 때 FORCE 옵션을 사용한다. FORCE 옵션을 사용하면 사용자 카탈로그와 연관된 Alias가 삭제되고 해당 카탈로그에 등록되어 있는 모든 데이터셋과 카탈로그 항목이 삭제된다.

4. 관련 툴 프로그램

관련 툴 프로그램에는 IDCAMS(JSCVSUT/KQCAMS), volmgr가 있다.

프로그램 및 유틸리티 설명

IDCAMS(JSCVSUT/KQCAMS)

Mainframe의 데이터셋 및 카탈로그 정보를 관리하는 유틸리티로, VSAM 및 Non-VSAM 데이터셋 모두를 관리하는 데 사용된다. 자세한 내용은 OpenFrame Base "유틸리티 참조 안내서"를 참고한다.

volmgr

OpenFrame 제품을 최초로 설치할 때 볼륨을 이용하기 위한 관리공간을 생성하는 툴이다. 자세한 내용은 OpenFrame Base "툴 참조 안내서"를 참고한다.