Tibero HiDB

Similar documents
Tmax

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

Microsoft Word - AnyLink Introduction v3.2.3.doc

API 매뉴얼

Microsoft PowerPoint - chap01-C언어개요.pptx

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

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

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - o8.pptx

Tibero

안내서

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

[Brochure] KOR_TunA

개발및운영 Tibero Perl 연동

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

슬라이드 1

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

USER GUIDE

11장 포인터

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

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

DBMS & SQL Server Installation Database Laboratory

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 중간착취의 금지 41 - 대판 , 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 , 2002도3883 [남녀고용평등법위

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

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

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

OpenFrame

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

API 매뉴얼

Microsoft PowerPoint - CSharp-10-예외처리

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

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

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

FY2005 LIG

BMP 파일 처리

OpenFrame

Microsoft PowerPoint - ch07.ppt

Microsoft Word - src.doc

CD-RW_Advanced.PDF

C++ Programming

Chap 6: Graphs

PowerPoint 프레젠테이션

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

PowerPoint 프레젠테이션

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

휠세미나3 ver0.4

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

untitled

Windows 8에서 BioStar 1 설치하기

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

°æÁ¦Àü¸Á-µ¼º¸.PDF

ISP and CodeVisionAVR C Compiler.hwp

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

Copyrights and Trademarks Autodesk SketchBook Mobile (2.0.2) 2013 Autodesk, Inc. All Rights Reserved. Except as otherwise permitted by Autodesk, Inc.,

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

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

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

<C1A4C3A5BFACB1B D3420C1A4BDC5C1FAC8AFC0DAC0C720C6EDB0DFC7D8BCD220B9D720C0CEBDC4B0B3BCB1C0BB20C0A7C7D120B4EBBBF3BAB020C0CEB1C720B1B3C0B020C7C1B7CEB1D7B7A520B0B3B9DF20BAB8B0EDBCAD28C7A5C1F6C0AF292E687770>

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

공급 에는 3권역 내에 준공된 프라임 오피스가 없었다. 4분기에는 3개동의 프라임 오피스가 신규로 준공 될 예정이다.(사옥1개동, 임대용 오피스 2개동) 수요와 공실률 2014년 10월 한국은행이 발표한 자료에 따르면 한국의 2014년 경제성장률 예측치는 3.5%로 지

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

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

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

ez-shv manual

공급 에는 권역에 두개의 프라임 오피스가 준공 되었다. 청진구역 2,3지구에는 광화문 D타워가 준공되어 대림에서 약 50%를 사용하며 나머지 50%는 임대마케팅을 진행 중이다. 메트로타워는 GS건설의 사옥에서 매각 이후 2013년 4분기에 리모델링을 시작하여, 에 완공

ez-md+_manual01

ThinkVantage Fingerprint Software

Tibero

MySQL-.. 1

Simplify your Job Automatic Storage Management DB TSC

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

JVM 메모리구조

로거 자료실

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Linux 권장커널파라미터 1. 커널파라미터별설명및설정방법 1.1 nofile ( max number of open files ) 설명 : 지원되는열린파일수를지정합니다. 기본설정이보통대부분의응용프로그램에대해충분합니다. 이매개 변수에설정된값이너무낮으면파일열기오류, 메모리

Visual Basic 반복문

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

설치및환경설정 Tibero tbprobe 사용법과원격지포트체크

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

untitled

H3250_Wi-Fi_E.book

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

튜닝및모니터링 OS 별 TCP Recommend Parameter for WebtoB/JEUS

Microsoft PowerPoint - chap06-2pointer.ppt

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

consulting

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

Microsoft Word - FunctionCall

기타자료.PDF

Cloud Friendly System Architecture

Cisco FirePOWER 호환성 가이드

사물인터넷비즈니스빅뱅_내지_11차_ indd

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

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

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint Template

<%DOC NAME%> (User Manual)

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

Transcription:

Tibero HiDB 유틸리티참조안내서 Tibero/HiDB v3.3 Copyright 2010 TmaxSoft Co., Ltd. All Rights Reserved.

Copyright Notice Copyright 2010 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 )463-721 Restricted Rights Legend All TmaxSoft Software(Tmax OpenFrame ) and Content 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, reproduced in any form or by any means, electronic, mechanical, without the prior written consent of TmaxSoft Co., Ltd. 이소프트웨어 (Tmax OpenFrame ) 사용서의내용과프로그램은저작권법, 컴퓨터프로그램보호법및국제조약에의해서보호받고있습니다. 사용서의내용과여기에된프로그램은 TmaxSoft Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용서의전부또는일부분을 Tmaxsoft의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tmax, Tmax WebtoB, WebT, JEUS and Tmax OpenFrame are registered trademarks of TmaxSoft Co., Ltd. All other product names may be trademarks of the respective companies with which they are associated. Tmax, Tmax WebtoB, WebT, JEUS, 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 에기재된사항을참고해주십시오. 안내서정보안내서제목 : Tibero HiDB 유틸리티참조안내서발행일 : 2010-06-25 소프트웨어버전 : Tibero/HiDB v3.3 안내서버전 : v2.1.1

내용목차 안내서에대하여... vii 제1장 개요... 1 1.1. 유틸리티소개... 1 제2장 정의유틸리티... 5 2.1. ADMDBD... 5 2.2. ADMPAS... 6 2.3. DBDGEN... 7 2.4. PSBGEN... 23 제3장 재편성유틸리티... 35 3.1. ADMHDR... 35 3.2. ADMHDU... 39 3.3. ADMHIR... 42 3.4. ADMHIU... 44 3.5. ADMPRG... 48 3.6. ADMPXR... 50 3.7. ADMPXU... 54 3.8. ADMSIM... 56 3.9. DFSURG10... 60 3.10. DFSURGL0... 64 3.11. DFSURGP0... 67 3.12. DFSURGU0... 70 3.13. DFSURPR0... 73 3.14. DFSURRL0... 75 3.15. DFSURUL0... 79 제4장 초기화유틸리티... 85 4.1. DBFUMIN0... 85 제5장 지원유틸리티... 89 5.1. ADMDBA... 89 색인... 109 Tibero HiDB iii

그림목차 [ 그림 5.1] ADMDBA 의출력내용... 105 [ 그림 5.2] ADMDBA 의논리기능흐름... 107 Tibero HiDB v

안내서에대하여 안내서의대상 본안내서는리호스팅솔루션인 Tmax OpenFrame ( 이하 OpenFrame) 및계층형데이터베이스 Tibero HiDB 를사용하는사용자를대상으로기술한다. 안내서의전제조건 본안내서를정확히사용하려면 OpenFrame/Batch 의개념을이해하고있어야한다. OpenFrame/Batch 에 대한이해를돕기위해 OpenFrame 안내서중 Batch 안내서 를먼저숙지할것을권장한다. 안내서의제한조건 본안내서에서는유틸리티에서현재지원하지않는기능 / 옵션 / 파라미터에대해별도로표기하였으며이 에대한은생략한다. 안내서에대하여 vii

안내서구성 HiDB 유틸리티참조안내서는총 5개의장으로구성되어있다. 각장의주요내용은다음과같다. 제1장 : 개요각장에서할유틸리티의전반적인개요에대해기술한다. 제 2 장 : 정의유틸리티 정의유틸리티의사용법과예제에대해서기술한다. 제 3 장 : 재편성유틸리티 재편성유틸리티의사용법과예제에대해서기술한다. 제 4 장 : 초기화유틸리티 초기화유틸리티의사용법과예제에대해서기술한다. 제 5 장 : 지원유틸리티 지원유틸리티의사용법과예제에대해서기술한다. viii Tibero HiDB 유틸리티참조안내서

안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력 ' 하이퍼링크 > +---- ---- 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력에대한메일계정, 웹사이트, 다른장및절참고메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참조또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 { } [ ] 필수인수값 옵션인수값 선택인수값 안내서에대하여 ix

시스템사용환경 요구사항 Platform IBM AIX 5.x (32bit, 64bit) HP-UX ia64 11.xx (32bit, 64bit) HP-UX PA-RISC 11.xx (32bit, 64bit) Solaris 9 (SunOS 5.9) (32bit, 64bit) Linux x86 2.6 (32bit, 64bit) Linux ia64 2.6 (32bit, 64bit) Hardware 최소 120MB 하드디스크공간 256MB 이상메모리공간 1GB 이상하드디스크와 512MB 이상메모리공간권장 Database Tibero 3.0 Oracle 9i 또는 10g x Tibero HiDB 유틸리티참조안내서

관련안내서 안내서 OpenFrame 시작하기안내서 OpenFrame Base 안내서 OpenFrame Batch 안내서 OpenFrame 데이터셋안내서 Tibero TSAM 안내서 OpenFrame TJES 안내서 OpenFrame 유틸리티참조안내서 OpenFrame 툴참조안내서 Tibero HiDB 안내서 Tibero HiDB 툴참조안내서 OpenFrame의개괄적인과 OpenFrame의모든안내서에관한을기술한안내서이다. OpenFrame/Base를구성하는요소와전반적인기능에대해기술한안내서이다. OpenFrame/Batch를구성하는요소와전반적인기능에대해기술한안내서이다. OpenFrame 데이터셋에대한소개와데이터셋종류및카탈로그방법등에대해기술한안내서이다. VSAM에대응하는제품인 TSAM에대한소개와데이터셋종류및관리방법, 데이터셋처리방법에대해기술한안내서이다. OpenFrame 시스템의 Batch JOB을관리하는내용에대해기술한안내서이다. OpenFrame 엔진과함께제공되는다양한유틸리티프로그램에대해기술한안내서이다. OpenFrame 시스템을운용하는데사용하는다양한툴프로그램에대해기술한안내서이다. 계층형데이터베이스인 Tibero HiDB에대한소개와제품의지원범위에대해기술한안내서이다. Tibero HiDB 시스템을운용하는데사용하는다양한툴프로그램에대해기술한안내서이다. 안내서에대하여 xi

참고문헌 제품 IBM Mainframe 안내서 IMS for the COBOL programmer IMS Primer IMS V7 Administration Guide: Database Manager IMS V7 Administration Guide: System IMS V7 Application Programming: Database Manager IMS V7 Application Programming: Transaction Manager IMS V7 Utilities Reference: System IMS V7 Utilities Reference: Database and Transaction Manager Hitachi Mainframe ADM 개설 ADM 오퍼레이터가이드시스템운용편 ADM 시스템관리책임자가이드시스템설계편 ADM 시스템관리책임자가이드정의유틸리티편 ADM 시스템관리책임자가이드유지유틸리티편 ADM 시스템관리책임자가이드지원유틸리티편 ADM 프로그래머가이드 xii Tibero HiDB 유틸리티참조안내서

연락처 Korea TmaxSoft Co., Ltd 272-6 Seohyeon-dong, Bundang-gu, Seongnam-si, Gyeonggi-do, 463-721 South Korea Tel: +82-31-8018-1000 Fax: +82-31-8018-1115 Email: info@tmax.co.kr 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: info@tmaxsoft.com 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: info@tmaxsoft.co.jp Web (Japanese): http://www.tmaxsoft.co.jp 안내서에대하여 xiii

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: info.cn@tmaxsoft.com Web (Chinese): http://www.tmaxsoft.com.cn xiv Tibero HiDB 유틸리티참조안내서

제 1 장개요 본장에서는 Tibero HiDB 에서제공하는유틸리티에대해소개한다. 1.1. 유틸리티소개 HiDB 유틸리티프로그램은 HiDB 엔진과함께제공되는프로그램으로 JCL을통해 Batch JOB으로실행되는프로그램을의미한다. HiDB 유틸리티프로그램은 Mainframe에서사용되는데이터베이스유틸리티프로그램과의호환성을유지하기위해제공되는프로그램으로, HiDB 데이터베이스의정의, 재편성및초기화기능등을제공한다. 정의유티리티 다음은데이터베이스를정의하는유틸리티프로그램목록이다. 프로그램명 ADMDBD ADMPAS DBDGEN PASGEN HiDB 데이터베이스스키마를시스템에정의할때사용한다. (ADM/DB 호환 ) 데이터베이스에대한논리구조및 DC 인터페이스블록을정의한다. (ADM/DB 호환 ) HiDB 데이터베이스스키마를시스템에정의할때사용한다. (IMS/DB 호환 ) 데이터베이스에대한논리구조및 DC 인터페이스블록을정의한다. (IMS/DB 호환 ) 재편성유티리티 다음은데이터베이스를재편성하는유틸리티프로그램목록이다. 프로그램명 ADMHDR ADMHDU ADMHIR ADMHIU HD 재편성 Unload 유틸리티인 ADMHDU에서생성한데이터셋을 HD 데이터베이스로 Reload하는유틸리티이다. (ADM/DB 호환 ) HDAM, HIDAM, 또는 HISAM 편성법으로정의된데이터베이스를순차데이터셋 (SDS) 으로 Unload하는유틸리티이다. (ADM/DB 호환 ) HISAM 재편성 Unload 유틸리티인 ADMHIU에서생성한데이터셋을 HISAM 또는인덱스데이터베이스로 Reload하는유틸리티이다. (ADM/DB 호환 ) HISAM 편성법으로정의된데이터베이스를순차데이터셋 (SDS) 으로 Unload하는유틸리티이다. (ADM/DB 호환 ) 제 1 장개요 1

프로그램명 ADMPRG ADMPXR ADMPXU ADMSIM DFSURG10 DFSURGL0 DFSURGP0 DFSURGU0 DFSURPR0 DFSURRL0 DFSURUL0 데이터베이스재편성관련유틸리티들의입력으로사용되는컨트롤데이터셋을생성하는유틸리티이다. (ADM/DB 호환 ) ADMHDR에서생성한 Logical Relationship 작업데이터를입력으로받아 ADMPXU 에서사용할 Prefix Resolution 데이터를생성한다. (ADM/DB 호환 ) ADPXR에서생성한 Prefix Resolution 데이터를입력받아 Logical Relationship을가진세그먼트들의포인터를갱신한다. (ADM/DB 호환 ) ADMSIM 유틸리티는 Secondary Index 데이터베이스의재편성을위한 Unload 및 Reload 기능을제공한다. (ADM/DB 호환 ) DFSURGL0에서생성한 Logical Relationship 작업데이터를입력으로받아 DFSURGP0 에서사용할 Prefix Resolution 데이터를생성한다. (IMS/DB 호환 ) HD 재편성 Unload 유틸리티인 DFSURGU0에서생성한데이터셋을 HD 데이터베이스로 Reload하는유틸리티이다. (IMS/DB 호환 ) DFSURGP0에서생성한 Prefix Resolution 데이터를입력받아 Logical Relationship을가진세그먼트들의포인터를갱신한다. (IMS/DB 호환 ) HDAM, HIDAM, 또는 HISAM 편성법으로정의된데이터베이스를순차데이터셋 (SDS) 으로 Unload하는유틸리티이다. (IMS/DB 호환 ) 데이터베이스재편성관련유틸리티들의입력으로사용되는컨트롤데이터셋을생성하는유틸리티이다. (IMS/DB 호환 ) HISAM 재편성 Unload 유틸리티인 DFSURUL0에서생성한데이터셋을 HISAM 또는인덱스데이터베이스로 Reload하는유틸리티이다. (IMS/DB 호환 ) HISAM 편성법으로정의된데이터베이스를순차데이터셋 (SDS) 으로 Unload하는유틸리티이다. (IMS/DB 호환 ) 초기화유티리티 다음은데이터베이스를초기화하는유틸리티프로그램목록이다. 프로그램명 DBFUMIN0 DEDB 데이터베이스의데이터셋을초기화할때사용하는유틸리티이다. (IMS/DB 호 환 ) 2 Tibero HiDB 유틸리티참조안내서

지원유티리티 다음은데이터베이스의사용을지원하는유틸리티프로그램목록이다. 프로그램명 ADMDBA COBOL, PL/I 등의애플리케이션을작성하지않고도 DL/I 함수를호출할수있게해 주는유틸리티프로그램이다. (ADM/DB 호환 ) 각유틸리티에대한사용법과사용예제는해당절에서자세하게기술한다. 제 1 장개요 3

제 2 장정의유틸리티 본장에서는정의유틸리티에대해기술한다. 2.1. ADMDBD ADMDBD 유틸리티는 HiDB 데이터베이스스키마를시스템에정의할때사용한다. 데이터베이스스키마정보는데이터베이스정의블록 (DBD 블록 ) 으로만들어져서시스템라이브러리에저장된다. ADMDBD 유틸리티를사용하면다음과같은유형의데이터베이스를정의할수있다. HSAM 데이터베이스 HISAM 데이터베이스 HDAM 데이터베이스 HIDAM 데이터베이스 INDEX 데이터베이스 LOGICAL 데이터베이스 DD 설정 DD 설정은다음과같다. ADM@IPT ADM@LST ADM@DBD HiDB 데이터베이스정의스크립트를포함하는입력데이터셋을지정한다. 유틸리티처리결과를출력하는정보데이터셋이다. DBD 블록을저장하기위한 PDS 데이터셋을지정한다. 명령어설정 ADMDBD 유틸리티에서는 DBD 컨트롤문을사용하여데이터베이스스키마를정의한다. ADMDBD 유틸 리티에서사용하는 DBD 컨트롤문은 DBDGEN 유틸리티에서사용하는 DBD 컨트롤문과유사하다. 제 2 장정의유틸리티 5

ADMDBD 유틸리티의 DBD 컨트롤문에대한은 DBDGEN 유틸리티의명령어설정 [9] 을참고한다. 사용예제 다음은 ADMDBD 유틸리티를사용하여 HDAM 데이터베이스를정의하는 JCL 예제이다. //ADMDBD JOB MSGLEVEL=1 //GEN EXEC PGM=ADMDBD //ADM@LST DD SYSOUT=A //ADM@DBD DD DSN=ADM.ADMDBD,UNIT=DASD,VOL=SER=ADM001,DISP=OLD //ADM@IPT DD * DBD NAME=JINJI,MODE=ADD,ACCESS=HDAM,RMNAME=(ADMRMM,2,1000,120) DATASET DD1=HDAM001,SCAN=2 SEGM NAME=SHIME1,BYTE=50,POINTER=TB FIELD NAME=(FIELDA1,SEQ,U),BYTE=10,START=1 FIELD NAME=FIELDA2,BYTE=40,START=11 SEGM NAME=JUSHO,PARENT=(SHIME1,DBLE),BYTE=50,POINTER=TB FIELD NAME=(FIELDB1,SEQ,U),BYTE=10,START=1 FIELD NAME=FIELDB2,BYTE=40,START=11 DBDGEN END /* // 2.2. ADMPAS ADMPAS 유틸리티는애플리케이션에서바라보는 HiDB 데이터베이스에대한논리구조및데이터커뮤니케이션과의인터페이스블록을정의한다. 정의된프로그램접근사양 (Program Access Sepcification) 블록은시스템라이브러리에저장된다. DD 설정 DD 설정은다음과같다. ADM@IPT ADM@LST ADM@PAS 프로그램접근사양스크립트를포함하는입력데이터셋을지정한다. 유틸리티처리결과를출력하는정보데이터셋이다. PAS 블록을저장하기위한 PDS 데이터셋을지정한다. 6 Tibero HiDB 유틸리티참조안내서

명령어설정 ADMPAS 유틸리티에서는 PAS 컨트롤문을사용하여 PAS 블럭을생성한다. ADMPAS 유틸리티에서사용하는 PAS 컨트롤문은 PSBGEN 유틸리티에서사용하는 PSB 컨트롤문과유사하다. ADMPAS 유틸리티의 PAS 컨트롤문에대한은 PSBGEN 유틸리티의명령어설정 [24] 을참고한다. 사용예제 다음은 ADMPAS 유틸리티를사용하여 Online 애플리케이션을정의하는 JCL 예제이다. //ADMPAS JOB MSGLEVEL=1 //GEN EXEC PGM=ADMPAS //ADM@LST DD SYSOUT=A //ADM@PAS DD DSN=ADM.ADMPAS,UNIT=DASD,VOL=SER=ADM001,DISP=OLD //ADM@IPT DD * PAS NAME=PROG01,MODE=ADD,LANG=COBOL LTPCB NAME=SAMTRN DBPCB NAME=DBC1,PROCOPT=A,KEYLEN=60 SENSEG NAME=A,PARENT=0 SENSEG NAME=B,PARENT=A,PROCOPT=AE SENSEG NAME=C,PARENT=B SENSEG NAME=D,PARENT=B,PROCOPT=AE SENSEG NAME=E,PARENT=A PASGEN END /* // 2.3. DBDGEN DBDGEN 유틸리티는 HiDB 데이터베이스스키마를시스템에정의할때사용한다. 데이터베이스스키마정보는데이터베이스정의블록 (DBD 블록 ) 으로만들어져서시스템라이브러리에저장된다. DBDGEN 유틸리티를사용하면다음과같은유형의데이터베이스를정의할수있다. HSAM 데이터베이스 HISAM 데이터베이스 HDAM 데이터베이스 HIDAM 데이터베이스 제 2 장정의유틸리티 7

DEDB 데이터베이스 INDEX 데이터베이스 LOGICAL 데이터베이스 다음은 DBDGENC0 프로그램과 DFSILNK0 프로그램을실행시키는 DBDGEN 프로시저의내용을보여주 는예로아래와같이 2 개의스텝으로이루어져있다. // PROC MBR=TEMPNAME,SOUT=A,RGN=4M,SYS2= //C EXEC PGM=DBDGENC0,REGION=&RGN,PARM='OBJECT,NODECK' //SYSLIB DD DSN=IMS.&SYS2MACLIB,DISP=SHR //SYSLIN DD UNIT=SYSDA,DISP=(,PASS), // SPACE=(80,(100,100),RLSE), // DCB=(BLKSIZE=80,RECFM=F,LRECL=80) //SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089, // SPACE=(121,(300,300),RLSE,,ROUND) //SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE), // SPACE=(CYL,(10,5)) //L EXEC PGM=DFSILNK0,PARM='XREF,LIST',COND=(0,LT,C) //SYSLIN DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE) //SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089, // SPACE=(121,(90,90),RLSE) //SYSLMOD DD DSN=IMS.&SYS2DBDLIB(&MBR),DISP=SHR //SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE), // SPACE=(1024,(100,10),RLSE) 위 DBDGEN 프로시저의 1번째과정인 C 스텝은컴파일스텝으로 HiDB 데이터베이스정의스크립트를 컴파일하기위해 DBDGENC0 유틸리티를실행시켜오브젝트모듈을생성한다. 2번째스텝인 L 스텝은 DFSILNK0 유틸리티를실행시키는 Link-Edit 스텝으로앞의컴파일과정에서생성 된오브젝트모듈을시스템라이브러리로복사하는작업을수행한다. DD 설정 DD 설정은다음과같다. SYSIN DD SYSLMOD DD HiDB 데이터베이스정의스크립트를포함하는입력데이터셋을지정한다. IMS.DBDLIB 등의 DBD 블록을저장하기위한 PDS 데이터셋을지정한다. 8 Tibero HiDB 유틸리티참조안내서

JCL 파라미터 JCL 파라미터은다음과같다. MBR SOUT SYS2 생성하는 DBD의이름을지정한다. 이곳에지정된이름은 DBD 문의 NAME 파라미터에지정된이름과동일해야한다. SYSOUT DD 문장에할당될클래스를지정한다. 기본값은 'A' 이다. IMS 시스템데이터셋의 2번째퀄리파이어를지정한다. ( 예 : SYS2='IMSA.') 명령어설정 DBDGEN 유틸리티에서는 DBD 컨트롤문을사용하여데이터베이스스키마를정의한다. 다음은 DBD 컨트롤문에대한이다. 컨트롤문 DBD 문 DATASET 문 AREA 문 SEGM 문 LCHILD 문 FIELD 문 XDFLD(SIDFLD) 문 DBDGEN 문 END 문 데이터베이스전반에대한정보를지정한다. 데이터베이스를구성하는데이터셋정보를지정한다. DEDB 데이터베이스는 AREA 문으로데이터셋정보를지정한다. 선행하는 DATASET 문으로정의되는데이터셋에포함되는세그먼트정보를지정한다. 선행하는 SEGM 문으로정의된세그먼트의논리자식정보를지정한다. 선행하는 SEGM 문으로정의된세그먼트의필드정보를지정한다. 이차인덱스관계에있어서세그먼트검색필드정보를지정한다. 데이터베이스정의의종료를지정한다. 컨트롤문의종료를지정한다. DBD 컨트롤문의기술순서는다음의규칙을따른다. DBD 문은 DBD 컨트롤문의제일앞에기술한다. DBD 문의다음으로는반드시 DATASET 문을기술한다. (DEDB 의경우 DATASET 문대신 AREA 문 사용 ) DBD 문에이어 1 개이상의 DATASET, SEGM, FIELD 문이있어야한다. 단, LOGICAL 데이터베이스 정의에는 FIELD, LCHILD 문이존재해서는안된다. HDAM, HIDAM, HISAM 이외의데이터베이스정의에서는 XDFLD(SIDFLD) 문이존재해서는안된다. 제 2 장정의유틸리티 9

FIELD 문은이차인덱스관계를지정하는 LCHILD 문의다음에지정해서는안된다. 기본인덱스를지정하는 LCHILD 문또는 Logical Relationship 을지정하는 LCHILD 문은이차인덱스 관계를지정하는 LCHILD 문의다음에지정해서는안된다. 다음은 DBD 컨트롤문의입력순서이다. DBD... 데이터베이스정의시작 DATASET... 데이터셋정보 SEGM... 세그먼트정보 FIELD... 필드정보 LCHILD... 논리자식정보 XDFLD... 세그먼트검색필드 SEGM FIELD SEGM FIELD DBDGEN... 데이터베이스정의종료 END... 컨트롤문장의종료 DBD 문기술하고있는데이터베이스의이름을지정하고데이터베이스의구조에대한 DL/I 정보를제공한다. 하나의데이터베이스정의스크립트에는하나의 DBD 문을사용할수있다. HSAM 데이터베이스다음은 HSAM 데이터베이스를위한 DBD 문이다. DBD NAME=dbname1,ACCESS=HSAM HISAM 데이터베이스 다음은 HISAM 데이터베이스를위한 DBD 문이다. DBD NAME=dbname1,ACCESS=(HISAM[,VSAM]) [,PASSWD={NO YES}] [,VERSION='n'] HDAM 데이터베이스 다음은 HDAM 데이터베이스를위한 DBD 문이다. DBD NAME=dbname1,ACCESS=(HDAM,{VSAM OSAM}),RMNAME=(mod[,anch,rbn,bytes]) [,PASSWD={NO YES}] [,VERSION='n'] 10 Tibero HiDB 유틸리티참조안내서

HIDAM 데이터베이스 다음은 HIDAM 데이터베이스를위한 DBD 문이다. DBD NAME=dbname1,ACCESS=(HIDAM,{VSAM OSAM}) [,PASSWD={NO YES}] [,VERSION='n'] DEDB 데이터베이스 다음은 DEDB 데이터베이스를위한 DBD 문이다. DBD NAME=dbname1,ACCESS=DEDB,RMNAME=(mod,...XCI) [,VERSION='n'] INDEX 데이터베이스 다음은 INDEX 데이터베이스를위한 DBD 문이다. DBD NAME=(dbname1[,dbname2]),ACCESS=(INDEX,VSAM) [,PASSWD={NO YES}] LOGICAL 데이터베이스 다음은 LOGICAL 데이터베이스를위한 DBD 문이다. DBD NAME=dbname1,ACCESS=LOGICAL 다음은 DBD 문의파라미터에대한이다. NAME ACCESS 현재기술하고있는데이터베이스의 DBD 이름을지정한다. 단, PSB 이름과중복된이름을사용할수없다. 이데이터베이스에서사용되는 DL/I 접근방식과데이터셋접근방식을지정한다. 다음과같은값을사용할수있다. - HSAM: 접근방식으로 HSAM을사용한다. - HISAM: 접근방식으로 HISAM을사용한다. - HDAM: 접근방식으로 HDAM을사용한다. - HIDAM: 접근방식으로 HIDAM을사용한다. - DEDB: 접근방식으로 DEDB를사용한다. 제 2 장정의유틸리티 11

- INDEX: HIDAM 데이터베이스의일차인덱스를정의하거나, HDAM 또는 HIDAM 데 이터베이스의이차인덱스를정의할때사용한다. - LOGICAL: 현재기술하는데이터베이스는 LOGICAL 데이터베이스임을의미한다. PASSWD VERSION RMNAME MODE VSAM 패스워드로 DBD명을사용할지의여부를결정한다. 기본값은 NO이다. DBD를식별할수있는문자열을최대 255자까지지정할수있다. ACCESS 파라미터값으로 HDAM 또는 DEDB가지정이되었을때, 데이터베이스안에저장되는데이터를관리하는정보를지정한다. 이정보에의해임의추출 (Random izer) 모듈이동작하는방식이결정된다. DBD 블럭의처리타입을지정한다. (ADMDBD 유틸리티를사용할경우 ) - ADD: DBD 블럭을작성및추가한다. - REPLACE: DBD 블럭을교체한다. - DELLETE: DBD 블럭을삭제한다. 참고 1. Tibero HiDB 에서는 SHSAM 및 SHISAM 접근방식이지원되지않는다. 2. Tibero HiDB 에서는 VSAM 패스워드를사용하지않는다. DATASET 문 DATASET 문은데이터베이스안에서의데이터셋그룹을정의한다. HSAM 데이터베이스다음은 HSAM 데이터베이스를위한 DATASET 문이다. DATASET DD1=ddname1,DD2=ddname2 [,BLOCK=(blkfact1,blkfact2)] [,RECORD=(reclen1,reclen2)] HISAM 데이터베이스 다음은 HISAM 데이터베이스를위한 DATASET 문이다. DATASET DD1=ddname1,OVFLW=ddname3 [,BLOCK=(blkfact1,blkfact2)] [,SIZE=(size1,size2)] [,RECORD=(reclen1,reclen2)] 12 Tibero HiDB 유틸리티참조안내서

HDAM 또는 HIDAM 데이터베이스 다음은 HDAM 또는 HIDAM 데이터베이스를위한 DATASET 문이다. DATASET DD1=ddname1 [,BLOCK=size0] [,SIZE=(,size1)] [,SCAN=cyls] [,FRSPC=(fbff,fspf)] [,SEARCHA=0 1 2] INDEX 데이터베이스 다음은 INDEX 데이터베이스를위한 DATASET 문이다. DATASET DD1=ddname1,OVFLW=ddname3 [,BLOCK=(blkfact1,blkfact2)] [,SIZE=(size1,size2)] [,RECORD=(reclen1,reclen2)] LOGICAL 데이터베이스 다음은 LOGICAL 데이터베이스를위한 DATASET 문이다. DATASET LOGICAL 다음은 DATASET 문의파라미터에대한이다. DD1 데이터셋그룹의 1 번째데이터셋의 DD 명을지정한다. 데이터베이스유형에따라다 음과같은의미를갖는다. - HSAM: 입력데이터셋의 DD 이름을지정한다. - HISAM: 기본데이터셋의 DD 이름을지정한다. - HDAM: 데이터셋의 DD 이름을지정한다. - HIDAM: 데이터셋의 DD 이름을지정한다. - INDEX: 기본데이터셋의 DD 이름을지정한다. - LOGICAL: 잘못된파라미터지정이다. DD2 OVFLW BLOCK HSAM 데이터베이스유형에서출력데이터셋의 DD 이름을지정한다. HISAM 데이터베이스유형에서오버플로우데이터셋의 DD 이름을지정한다. 블록팩터 (blocking factors) 를지정한다. 아래표에서자세하게한다. 제 2 장정의유틸리티 13

RECORD SIZE SCAN FRSPC SEARCHA LOGICAL 옵션파라미터로논리레코드의크기를지정한다. 아래표에서자세하게한다. DBDGEN 프로시저에서 VSAM 컨트롤인터벌크기를재정의할때사용한다. 세그먼트를삽입할때빈공간을찾기위해검색하는 Device의실린터개수를지정한다. Tibero HiDB에서는문법적인형식만체크하고기능적으로지원하지는않는다. HDAM 또는 HIDAM 데이터베이스유형에서여유공간을얼마만큼유지할지를결정한다. 세그먼트를삽입할때빈공간을찾는알고리즘의유형을지정한다. Tibero HiDB에서는문법적인형식만체크하고기능을지원하지는않는다. LOGICAL 데이터베이스를정의하고있는것을알려준다. 다음은앞에서한 BLOCK, RECORD 파라미터에대한자세한이다. HSAM 데이터베이스 파라미터 BLOCK - blkfact1: 입력데이터셋에대한블록팩터를지정한다. ( 항상 1) - blkfact2: 출력데이터셋에대한블록팩터를지정한다. ( 항상 1) RECORD - reclen1: 입력데이터셋의레코드크기를지정한다. - reclen2: 출력데이터셋의레코드크기를지정한다. HSAM 은 Unblocked I/O 를사용한다. 따라서 LRECL 과 BLKSIZE 의값은동일하게지정해준다. HISAM, INDEX 데이터베이스 파라미터 BLOCK - blkfact1: 기본데이터셋에대한블록팩터를지정한다. - blkfact2: 오버플로우데이터셋에대한블록팩터를지정한다. RECORD - reclen1: 기본데이터셋의레코드크기를지정한다. - reclen2: 오버플로우데이터셋에대한레코드크기를지정한다. HDAM, HIDAM 데이터베이스 파라미터 BLOCK size0 에오버헤드를제외한 VSAM 컨트롤인터벌크기를지정한다. VSAM 데이터셋 에대한기본오버헤드값은 5 이다. 14 Tibero HiDB 유틸리티참조안내서

파라미터 RECORD 지정해도무시된다. AREA 문 DEDB 데이터베이스는 AREA 문을사용해서데이터를저장할데이터셋영역을정의한다. DEDB 를정의 하는 DBDGEN 스크립트를작성할때, 모든 AREA 문은 DBD 문과 1 번째 SEGM 문사이에위치해야한다. 다음은 DEDB 데이터베이스를위한 AREA 문이다. AREA DD1=ddname1 [,DEVICE=nnnn],SIZE=size1,UOW=(number1,overflow1),ROOT=(number2,overflow2) DD1 DEVICE 정의될영역의 DD 이름을지정한다. 물리적인저장장치의디바이스유형을지정한다. 파라미터를지정하지않은경우기본값으로 3380 이사용된다. SIZE 컨트롤인터벌크기를지정한다. 512B, 1KB, 2KB, 4KB, 8KB, 28KB 의값을사용할수있다. VSAM 데이터셋의컨트롤인터벌크기와동일하게지정한다. UOW 1 개의 UOW(Unit of Work) 에사용되는컨트롤인터벌의개수를지정한다. - number1: 1 개의 UOW 에사용되는컨트롤인터벌의개수이다. (2~32767 의숫자 ) - overflow1: 동일한 UOW 안에있는오버플로우컨트롤인터벌의개수이다. number1 에지정된숫자보다작은값이어야한다. ROOT DEDB AREA 에대한속성을정의한다. - number2: DEDB AREA 에서사용될 UOW 의개수이다. - overflow2: 독립적인오버플로우파트에사용될 UOW 의개수이다. SEGM 문 SEGM 문은데이터베이스의세그먼트를정의한다. 한데이터베이스안에서세그먼트의계층, 세그먼트 의물리적인속성, 그리고다른세그먼트와의관계등을정의한다. 제 2 장정의유틸리티 15

HSAM 데이터베이스 다음은 HSAM 데이터베이스를위한 SEGM 문이다. SEGM NAME=segname1,PARENT=segname2,BYTES=max_bytes [,FREQ=frequency] HISAM 데이터베이스 다음은 HISAM 데이터베이스를위한 SEGM 문이다. SEGM NAME=segname1,PARENT=(segname2[(lpsegname,[{VIRTUAL PHYSICAL}],dbname1)]),BYTES=max_bytes[,min_bytes] [,FREQ=frequency] [,POINTER PTR={LPARNT CTR PAIRED}] [,RULES=([{L P V}{L P V B}{L P V}],[{LAST FIRST HERE}])] HDAM 또는 HIDAM 데이터베이스 다음은 HDAM 또는 HIDAM 데이터베이스를위한 SEGM 문이다. SEGM NAME=segname1,PARENT=(segname2[,{SNGL DBLE}][,(lpsegname,[{VIRTUAL PHYSICAL}],dbname1)]),BYTES=max_bytes[,min_bytes] [,POINTER PTR={HIER HIERBWD TWIN TWINBWD NOTWIN},{LTWIN LTWINBWD},{LPARNT CTR PAIRED}] [,RULES=([{L P V}{L P V B}{L P V}],[{LAST FIRST HERE}])] DEDB 데이터베이스 다음은 DEDB 데이터베이스를위한 SEGM 문이다. SEGM NAME=segname1,PARENT=(segname2[,{SNGL DBLE}]),BYTES=max_bytes,min_bytes,TYPE={DIR SEQ} [,RULES={HERE LAST FIRST}] INDEX 데이터베이스 다음은 INDEX 데이터베이스를위한 SEGM 문이다. SEGM NAME=segname1 [,PARENT=0],BYTES=max_bytes 16 Tibero HiDB 유틸리티참조안내서

다음은 SEGM 문의파라미터에대한이다. NAME PARENT 현재정의하고있는세그먼트의이름을지정한다. 현재정의하고있는세그먼트의부모세그먼트를지정한다. 물리적인부모세그먼트와논리적인부모세그먼트를지정할수있다. BYTE[S] FREQ POINTER 세그먼트의데이터부분의크기를지정한다. 부모세그먼트의각각의인스턴스마다평균적으로몇개의자식세그먼트인스턴스가있는지추정값을지정한다. 현재정의하는세그먼트의데이터앞부분에저장될포인터들을지정한다. 이포인터들은현재세그먼트인스턴스를부모세그먼트또는트윈세그먼트와관계를맺게해준다. 아래의포인터유형중하나의값을가질수있다. - HIER [H]: 4 Byte Hierarchic Forward 포인터를갖는다. - HIERBWD [HB]: 4 Byte Hierarchic Forward 포인터와 4 Byte Hierarchic Backward 포인터를갖는다. Hierarchic Backward 포인터는삭제할때성능을향상시킨다. - TWIN [T]: 4 Byte 물리트윈 Forward 포인터를갖는다. - TWINBWD [TB]: 4 Byte 물리트윈 Forward 포인터와 4 Byte 물리트윈 Backward 포인터를갖는다. 트윈 Backward 포인터는삭제할때성능을향상시킨다. - NOTWIN [NT]: 물리트윈 Forward 포인터를사용하지않도록설정한다. 물리적인부모세그먼트가 2개이상의자식세그먼트를갖지않는다면 NOTWIN 설정을사용할수있다. - LTWIN [LT]: 실제논리자식 (Real Logical Child) 세그먼트를정의할때사용한다. 4 Byte 논리트윈 Forward 포인터와 4 Byte 논리트윈 Backward 포인터를갖는다. 논리자식을삭제할때좋은성능을낸다. - LPARNT [LP]: 4 Byte 논리부모포인터를갖는다. - CTR [C]: 4 Byte 카운터필드를갖는다. 카운터는포인터로연결되지않는 HISAM 데이터베이스의논리부모세그먼트에필요하다. - PAIRED: 이세그먼트는양방향논리관계 (Bidirectional Logical Relationship) 에포함되어있음을나타낸다. RULES 세그먼트에대한추가 (Insert), 삭제 (Delete), 변경 (Replace) 명령을할때지켜야하는 규칙을지정한다. - FIRST: 새로운세그먼트인스턴스는물리트윈세그먼트의제일앞에삽입된다. 제 2 장정의유틸리티 17

- LAST: 새로운세그먼트인스턴스는물리트윈세그먼트의제일뒤에삽입된다. - HERE: 새로운세그먼트인스턴스는현재물리트윈세그먼트의앞에삽입된다. TYPE DEDB 데이터베이스의종속세그먼트유형을지정한다. 다음 2가지유형중하나를선택할수있다. - SEQ: 현재세그먼트를순차독립세그먼트 (Sequential Dependent Segment) 로지정한다. - DIR: 현재세그먼트를직접독립세그먼트 (Direct Dependent Segment) 로지정한다. SOURCE 다음 2 가지용도로사용된다. - 가상논리자식세그먼트를정의할때, 실제논리자식세그먼트와연결하기위해사용한다. - LOGICAL 데이터베이스의세그먼트를정의할때, 물리데이터베이스의세그먼트와연결하기위해사용한다. LCHILD 문 LCHILD 문은 2개의세그먼트간 Logical Relationship, 2개의세그먼트간 HIDAM 일차인덱스또는이차인덱스를정의한다. HISAM 데이터베이스다음은 HISAM 데이터베이스를위한 LCHILD 문이다. LCHILD NAME=(segname1,dbname) [,POINTER PTR={DBLE NONE SYMB}] [,PAIR=segname2] [,RULES={LAST FIRST HERE}] HDAM 또는 HIDAM 데이터베이스 다음은 HDAM 또는 HIDAM 데이터베이스를위한 LCHILD 문이다. LCHILD NAME=(segname1,dbname) [,POINTER PTR={DBLE NONE INDX SYMB}] [,PAIR=segname2] [,RULES={LAST FIRST HERE}] INDEX 데이터베이스 다음은 INDEX 데이터베이스를위한 LCHILD 문이다. 18 Tibero HiDB 유틸리티참조안내서

LCHILD NAME=(segname1,dbname) [,POINTER PTR={SNGL SYMB}],INDEX=fldname 다음은 LCHILD 문의파라미터에대한이다. NAME POINTER segname1에논리자식이나인덱스포인터또는인덱스대상의이름을지정한다. db name에 segname1에지정한세그먼트가정의되어있는데이터베이스이름을지정한다. Logical Relationship 또는인덱스관계에서사용되는포인터를지정한다. - SNGL: 4 Byte 논리자식의첫포인터가사용된다. Logical Relationship 또는인덱스관계에서사용된다. - DBLE: 논리부모세그먼트에 4 Byte 논리자식의첫포인터와 4 Byte 논리자식의마지막포인터가저장된다. - NONE: 논리부모세그먼트에논리자식포인터가저장되지않는다. - INDX: HIDAM 데이터베이스에서루트세그먼트와일차인덱스를연결하기위해사용된다. PAIR RULES 양방향 Logical Relationship 에서물리적인또는가상적인페어 (Pair) 세그먼트를지정 하기위해사용된다. Logical Relationship 에서논리자식트윈들사이에서의삽입순서를결정한다. - FIRST: 새로운논리인스턴스는모든논리트윈인스턴스의맨앞에삽입된다. - LAST: 새로운논리인스턴스는모든논리트윈인스턴스의맨뒤에삽입된다. - HERE: 새로운논리인스턴스는현재논리트윈인스턴스의앞에삽입된다. INDEX INDEX 데이터베이스의 LCHILD 문장에서사용되며, fldname 은 HIDAM 주요인덱스 의루트세그먼트를지정하거나, HIDAM Secondary Index 의 XDFLD 를나타낸다. FIELD 문 FIELD 문은한세그먼트안에서의필드를정의한다. HSAM 데이터베이스다음은 HSAM 데이터베이스를위한 FIELD 문이다. FIELD NAME=(fldname1[,SEQ,{U M}]),BYTES=bytes 제 2 장정의유틸리티 19

,START=startpos [,TYPE={C X P}] HISAM, HDAM, HIDAM 데이터베이스 다음은 HISAM, HDAM, HIDAM 데이터베이스를위한 FIELD 문이다. FIELD NAME={(fldname1[,SEQ,{U M}]) systrelfldname},bytes=bytes,start=startpos [,TYPE={C X P}] DEDB 데이터베이스 다음은 DEDB 데이터베이스를위한 FIELD 문이다. FIELD NAME=(fldname1[,SEQ,U]),BYTES=bytes,START=startpos [,TYPE={C X P}] INDEX 데이터베이스 다음은 INDEX 데이터베이스를위한 FIELD 문이다. FIELD NAME=(fldname1[,SEQ,{U M}]),BYTES=bytes,START=startpos [,TYPE={C X P}] 다음은 FIELD 문의파라미터에대한이다. NAME 한세그먼트에서정의되는필드의이름을지정한다. - SEQ: 현재정의되는필드가순서필드임을알려준다. - U, M: 순서의유형을지정한다. U는순서필드에유일한값만이저장되고, M은순서필드에같은값을갖는이저장될수있는것을의미한다. - systrelfldname: 시스템연관필드를정의한다. 이차인덱스에서키를유일하게만들기위해사용되고, CK 또는 SK 2가지유형이있다. BYTE[S] START 현재정의하는필드의크기를지정한다. 현재정의하는필드의시작위치를지정한다. 20 Tibero HiDB 유틸리티참조안내서

TYPE 현재정의하는필드의데이터타입을지정한다. 다음과같은상수를사용할수있다. - C: Alphanumeric Data or a Combination of Types of Data - P: Packed Decimal Data - X: Hexadecimal Data XDFLD(SIDFLD) 문 XDFLD(SIDFLD) 문은 Secondary Index 관계에서사용되는색인필드를정의한다. 다음은 HISAM, HDAM 또는 HIDAM 데이터베이스를위한 XDFLD(SIDFLD) 문이다. XDFLD NAME=fldname [,SEGMENT=segname] [,CONST=char],SRCH=list1 [,SUBSEQ=list2] [,DDATA=list3] [,NULLVAL=value1] NAME SEGMENT SRCH SUBSEQ DDATA 색인데이터필드의이름을지정한다. 인덱스소스세그먼트의이름을지정한다. 인덱스소스세그먼트의필드리스트를지정한다. 이차인덱스의 Subsequence 필드를지정한다. 이차인덱스의 Duplicate Data 필드를지정한다. 참고 Tibero HiDB 에서는 XDFLD 문에서 CONST 및 NULLVAL 파라미터를지원하지않는다. DBDGEN, END, FINISH 문 DBD 생성컨트롤문장에는 3가지추가적인컨트롤문이있다. 이중, DBDGEN 문과 END 문은반드시사용되어야하지만, FINISH 문은선택적으로사용할수있다. DBDGEN 문 : DBD 생성컨트롤문의마지막을나타낸다. END 문 : 어셈블리입력문의마지막을나타낸다. 제 2 장정의유틸리티 21

FINISH 문 : 선택적이며호환성을위해존재한다. 사용예제 다음은 DBDGEN 프로시저를사용하여 HIDAM 데이터베이스를정의하는 JCL 예제이다. //DBDGEN JOB MSGLEVEL=1 // EXEC DBDGEN,MBR=SKILLINV //C.SYSIN DD * DBD NAME=SKILLINV,ACCESS=HIDAM DATASET DD1=SKLHIDAM,BLOCK=1648,SCAN=5 * SEGM NAME=SKILL,BYTES=31,PTR=T,PARENT=0 LCHILD NAME=(INDE,INDEXDB),PTR=INDX * FIELD NAME=(TYPE,SEQ,U),BYTES=21,START=1,TYPE=C FIELD NAME=SDCODE,BYTES=10,START=22,TYPE=C * SEGM NAME=NAME,BYTES=20,PTR=T,PARENT=((SKILL,SNGL)) FIELD NAME=(STDCLEVL,SEQ,U),BYTES=20,START=1,TYPE=C * SEGM NAME=EXPR,BYTES=20,PTR=T,PARENT=((NAME,SNGL)) FIELD NAME=PREVJOB,BYTES=10,START=1,TYPE=C FIELD NAME=CLASSIF,BYTES=10,START=11,TYPE=C * SEGM NAME=EDUC,BYTES=75,PTR=T,PARENT=((NAME,SNGL)) FIELD NAME=GRADLEVL,BYTES=10,START=1,TYPE=C FIELD NAME=SCHOOL,BYTES=65,START=11,TYPE=C * DBDGEN FINISH END /* 유의사항 DBDGEN 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 22 Tibero HiDB 유틸리티참조안내서

에러가발생한경우에는해당에러메시지를 SYSPRINT DD 로출력하고각에러에해당하는코드를반 환한다. DBDGEN 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 12 Unrecoverable 에러로, 다음의경우에발생한다. - SYSLIN DD 혹은 SYSLMOD DD 를제공하지않은경우 - SYSLIN DD 혹은 SYSLMOD DD 의유형이맞지않는경우 - SYSIN DD 스크립트문장의문법에러가발생한경우 16 시스템에러로, 다음의경우에발생한다. - OpenFrame 시스템라이브러리초기화에실패한경우 - SYSLIN DD 또는 SYSLMOD DD OPEN 에러가발생한경우 - SYSIN DD 또는 SYSLIN DD 읽기에러가발생한경우 2.4. PSBGEN PSBGEN 유틸리티는애플리케이션에서바라보는 HiDB 데이터베이스에대한논리구조및데이터커뮤니케이션과의인터페이스블록을정의한다. 정의된프로그램접근사양 (Program Access Specification) 블록은시스템라이브러리에저장된다. 다음은 PSBGENC0 프로그램과 DFSILNK0 프로그램을실행시키는 PSBGEN 프로시저의내용을보여주는예로, 아래와같이 2개의스텝으로이루어져있다. // PROC MBR=TEMPNAME,SOUT=A,RGN=4M,SYS2= //C EXEC PGM=PSBGENC0,REGION=&RGN,PARM='OBJECT,NODECK' //SYSLIB DD DSN=IMS.&SYS2MACLIB,DISP=SHR //SYSLIN DD UNIT=SYSDA,DISP=(,PASS), // SPACE=(80,(100,100),RLSE), // DCB=(BLKSIZE=80,RECFM=F,LRECL=80) //SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089, // SPACE=(121,(300,300),RLSE,,ROUND) //SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE), // SPACE=(CYL,(10,5)) //L EXEC PGM=DFSILNK0,PARM='XREF,LIST',COND=(0,LT,C) //SYSLIN DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE) //SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089, // SPACE=(121,(90,90),RLSE) //SYSLMOD DD DSN=IMS.&SYS2PSBLIB(&MBR),DISP=SHR 제 2 장정의유틸리티 23

//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE), // SPACE=(1024,(100,10),RLSE) 위 PSBGEN 프로시저의 1번째과정인 C 스텝은컴파일스텝으로 SYSIN으로입력된 PSB 정의스크립트를컴파일하기위해 PSBGENC0 유틸리티를실행시켜오브젝트모듈을생성한다. 2번째스텝인 L 스텝은 DFSILNK0 유틸리티를실행시키는 Link-Edit 스텝으로앞의컴파일과정에서생성한오브젝트모듈을시스템라이브러리로복사하는작업을수행한다. DD 설정 DD 설정은다음과같다. SYSIN DD SYSLMOD DD PSB 컴파일러로컴파일하기위한 PSB 스크립트입력데이터셋을지정한다. IMS.PSBLIB 등의 PSB 블록을저장하기위한 PDS 데이터셋을지정한다. JCL 파라미터 JCL 파라미터은다음과같다. MBR SOUT SYS2 생성하는 PSB의이름을지정한다. 이곳에지정된이름은 PSBGEN 문의 PSBNAME 파라미터에지정된이름과동일해야한다. SYSOUT DD 문장에할당될클래스를지정한다. 기본값은 'A' 이다. IMS 시스템데이터셋의 2번째퀄리파이어를지정한다. ( 예 : SYS2='IMSA.') 명령어설정 PSBGEN 유틸리티에서는 PSB 컨트롤문을사용하여 PSB 블럭을생성한다. PSB 컨트롤문의경우, PSBGEN 유틸리티를사용하는경우와 ADMPAS 유틸리티를사용하는경우에다음과같이사용순서에차이가있다. PSBGEN 유틸리티다음은 PSBGEN 유틸리티를사용할경우에 PSB 컨트롤문의입력순서를나타낸것이다. PCB TYPE=TP... 논리단말 PCB 정보 PCB TYPE=DB... 데이터베이스 PCB 정보 SENSEG 24 Tibero HiDB 유틸리티참조안내서

SENFLD SENFLD PCB TYPE=DB SENSEG SENSEG PSBGEN... PSB 블럭정의종료 END... 컨트롤문장의종료 다음은 PSBGEN 유틸리티를사용할경우의 PSB 컨트롤문에대한이다. 컨트롤문 PCB 문 SENSEG 문 SENFLD 문 PSBGEN 문 END 문 Alternate PCB 또는데이터베이스 PCB를정의한다. 애플리케이션이사용하는데이터베이스세그먼트를선언한다. SENSEG로지정된세그먼트에서애플리케이션이사용하는필드를지정한다. PSB 블럭에대한정의의종료를지정한다. 컨트롤문의종료를지정한다. ADMPAS 유틸리티 다음은 ADMPAS 유틸리티를사용할경우에 PSB 컨트롤문의입력순서를나타낸것이다. PAS... PSB 블럭정의시작 LTPCB... 논리단말 PCB 정보 DBPCB... 데이터베이스 PCB 정보 SENSEG SENFLD SENFLD DBPCB SENSEG SENSEG PASGEN... PSB 블럭정의종료 END... 컨트롤문장의종료 다음은 ADMPAS 유틸리티를사용할경우의 PSB 컨트롤문에대한이다. 컨트롤문 PAS 문 LTPCB 문 DBPCB 문 SENSEG 문 PASGEN 문 복수의 PSB 블록을작성할때처리의단락을지정한다. Online 논리단말 PCB 또는트랜잭션코드에대한 PCB를작성한다. 애플리케이션이사용하는데이터베이스 PCB를작성한다. 애플리케이션이사용하는데이터베이스세그먼트를선언한다. PSB 블록에대한정의의종료를지정한다. 제 2 장정의유틸리티 25

컨트롤문 END 문 컨트롤문의종료를지정한다. Alternate PCB 문 현재입력메시지의출처이외의목적지를기술하기위해사용한다. (PSBGEN 유틸리티를사용할경우 ) Alternate PCB 문의형식은다음과같다. PCB TYPE=TP [,LTERM NAME=name] [,ALTRESP={NO YES}] [,SAMETRM={NO YES}] [,MODIFY={NO YES}] [,EXPRESS={NO YES}] [,PCBNAME=pcbname] [,LIST={YES NO}] TYPE LTERM ALTRESP SAMETRM MODIFY EXPRESS PCBNAME LIST 모든 Alternate PCB에대한필수파라미터이다. 메시지가출력될논리단말이름이나트랜잭션코드를지정한다. Alternate PCB가 I/O PCB 대신사용될수있는지지정한다. 논리단말이실제물리단말에할당되어있는지지정한다. 이 Alternate PCB가애플리케이션안에서변경가능한지지정한다. 애플리케이션이 ABEND 되었을때, 이 Alternate PCB에서나온메시지가목적단말로보내져야하는지아니면제거되어야하는지를지정한다. PCB 이름을지정한다. 어셈블러레이블로대체할수있다. 애플리케이션이실행될때, 애플리케이션의진입포인트로전달되는 PCB 목록에리스트가포함될지여부를결정한다. 데이터베이스 PCB 문 2번째유형의 PCB 문은 DL/I 또는 FastPath 데이터베이스를위한 PCB를기술한다. (PSBGEN 유틸리티를사용할경우 ) 데이터베이스 PCB 문의형식은다음과같다. PCB TYPE=DB,DBDNAME NAME=name [,PCBNAME=pcbname] [,PROCOPT=nnnn] [,SB={NO COND}] 26 Tibero HiDB 유틸리티참조안내서

,KEYLEN=value [,POS={SINGLE MULTIPLE}] [,PROCSEQ=index_dbname] [,VIEW=MSDB] [,LIST={YES NO}] TYPE DBDNAME PCBNAME PROCOPT 모든 DL/I 데이터베이스 PCB에대한필수파라미터이다. 물리데이터베이스이름을지정한다. PCB의이름을지정한다. 어셈블러레이블로대체할수있다. PCB 처리파라미터를지정한다. 최대 4개의알파벳문자를사용하여설정할수있으며, 다음과같은알파벳문자를지원한다. - G: Get 기능이다. - I: Insert 기능이다. (HSAM에서는지정하면안됨 ) - R: Replace 기능이다. (Get 기능포함, HSAM에서는지정하면안됨 ) - D: Delete 기능이다. (Get 기능포함, HSAM에서는지정하면안됨 ) - A: Get, Insert, Replace, Delete의 4가지기능을포함한다. ( 기본설정, HSAM에서는지정하면안됨 ) - P: D 커맨드코드를사용하려면, P 옵션을설정해야한다. - L: 데이터베이스를 Load하는기능이다. ( 단, HIDAM 제외 ) - GS: 오름차순으로세그먼트를가져오는기능이다. (HSAM만해당 ) - LS: 오름차순으로세그먼트를 Load하는기능이다. (HIDAM, HDAM) SB KEYLEN POS PROCSEQ VIEW LIST 순차버퍼링 (Sequential Buffering) 기법을사용할지의여부를결정하는으로미지원기능이다. 가장긴연쇄키의길이를지정한다. (1~3825) 논리데이터구조에서 1개또는여러개의포지셔닝을지원할지를지정한다. 데이터베이스에접근하기위한이차인덱스이름을지정한다. MSDB 커밋뷰를제공하는으로미지원기능이다. 애플리케이션이실행될때, 애플리케이션의진입포인트로전달되는 PCB 목록에리스트가포함될지여부를결정한다. 제 2 장정의유틸리티 27

PAS 문 애플리케이션전반에대한정의및 PSB 블럭처리모드를지정한다. (ADMPAS 유틸리티를사용할경우 ) PAS 문의형식은다음과같다. PAS NAME=name [,MODE={ADD REPLACE DELETE}] [,LANG={COBOL PL/I ASSEM blank}] [,IOPCB={NO YES}] [,IOASIZE=value] [,SSASIZE=value] [,MAXQ={0 nr}] [,OLIC={NO YES}] [,IOEROPN={n (n,wtor)}] NAME MODE 현재정의하는 PSB 블럭의이름을지정한다. PSB 블럭의처리타입을지정한다. - ADD: PSB 블럭을작성및추가한다. - REPLACE: PSB 블럭을교체한다. - DELLETE: PSB 블럭을삭제한다. LANG 메시지프로그램또는 Batch 프로그램이작성된컴파일러언어를지정한다. 다음과 같은약자를사용할수있다. - ASSEMBLY: A 또는 ASSEM - COBOL: C - PL/I: P 또는 PLI IOPCB BMP 프로그램또는메시지프로그램에서의호환성을표시한다. 만약 IOPCB=YES 이면해당 PSB 는맨앞에 I/O PCB 를포함하고있는것으로간주된 다. IOASIZE SSASIZE MAXQ 애플리케이션에서사용하는 I/O 영역의최대크기를지정한다. 애플리케이션에서사용하는 SSA 의최대길이를지정한다. Qx 명령어코드를포함한데이터베이스호출의최대개수를지정한다. 참고 Tibero HiDB 에서는 PAS 문의 OLIC, IOEROPEN 파라미터를지원하지않는다. 28 Tibero HiDB 유틸리티참조안내서

LTPCB 문 MPP 또는 BMP에대해논리단말또는다른 MPP와의통신을위해 PCB를기술한다. (ADMPAS 유틸리티를사용할경우 ) LTPCB 문의형식은다음과같다. LTPCB NAME=name [,MODIFY={NO YES}] [,SPRESP={NO YES}] [,EXPRESS={NO YES}] NAME MODIFY SPRESP EXPRESS 메시지가출력될논리단말이름이나트랜잭션코드를지정한다. 이 LTPCB가애플리케이션안에서변경가능한지지정한다. 이 LTPCB가 I/O PCB 대신사용될수있는지지정한다. 애플리케이션이 ABEND 되었을때, 이 LTPCB에서나온메시지가목적단말로보내져야하는지아니면제거되어야하는지를지정한다. DBPCB 문 DBPCB 문은애플리케이션에서사용하는데이터베이스를선언한다. (ADMPAS 유틸리티를사용할경우 ) DBPCB 문의형식은다음과같다. DBPCB NAME=name [,PROCOPT=nnnn],KEYLEN=value [,SISEQ=index_dbname] NAME PROCOPT 물리데이터베이스이름을지정한다. PCB 처리파라미터를지정한다. 최대 4개의알파벳문자를사용하여설정할수있으며, 다음과같은알파벳문자를지원한다. - G: Get 기능이다. - I: Insert 기능이다. (HSAM에서는지정하면안됨 ) - R: Replace 기능이다. (Get 기능포함, HSAM에서는지정하면안됨 ) - D: Delete 기능이다. (Get 기능포함, HSAM에서는지정하면안됨 ) 제 2 장정의유틸리티 29

- A: Get, Insert, Replace, Delete의 4가지기능을포함한다. ( 기본값, HSAM에서는지정하면안됨 ) - P: D 커맨드코드를사용하려면, P 옵션을설정해야한다. - L: 데이터베이스를 Load하는기능이다. ( 단, HIDAM 제외 ) - GS: 오름차순으로세그먼트를가져오는기능이다. (HSAM만해당 ) - LS: 오름차순으로세그먼트를 Load하는기능이다. (HIDAM, HDAM) KEYLEN SISEQ 가장긴연쇄키의길이를지정한다. (1~3825) 데이터베이스에접근하기위한이차인덱스이름을지정한다. SENSEG 문 SENSEG 문은계층적으로연결되어있는데이터세그먼트를정의하기위해사용한다. 센시티브세그먼트를지정할때는, 계층경로상에상위레벨의세그먼트도모두센시티브세그먼트여야한다. SENSEG 문의형식은다음과같다. SENSEG NAME=name,PARENT=name [,PROCOPT=nnnn] [,INDICES SIENTRY=list1] NAME PARENT PROCOPT DBD를생성할때, SEGM 문을통해정의되었던세그먼트의이름을지정한다. 현재세그먼트의부모세그먼트를적어준다. 연관된애플리케이션에서사용될세그먼트처리파라미터를지정한다. PCB 문의 PROCOPT 파라미터와동일한의미를갖는다. INDICES 어떤 Secondary Index 가인덱스세그먼트에대한검색필드를담고있는지지정한다. SENFLD 문 SENSEG 문과함께사용되어애플리케이션에서어떤필드를사용할수있는지지정한다. 단, SENFLD 문을지정했을경우, 그세그먼트에대해서는 DLET/REPL/ISRT 콜은발행할수없다. SENFLD 문의형식은다음과같다. SENFLD NAME=name, START=startpos [,REPLACE REPL={YES NO}] 30 Tibero HiDB 유틸리티참조안내서

NAME START DBD 를생성할때, FIELD 문을통해정의되었던필드의이름을지정한다. 사용자 I/O 영역에서해당필드의시작위치를지정한다. 주의사항은다음과같다. - ( 시작위치 + 필드길이 ) 가 32767 을넘어서는안된다. - 다른 SENFLD 문과필드영역이중복되지않게지정한다. 만약중복되면애플리케 이션의데이터영역에서데이터가깨지는현상이일어날수있다. REPLACE REPLACE 요청을통해해당필드가변경될수있는지의여부를지정한다. PSBGEN 문 PSBGEN 문은애플리케이션의속성을지정한다. (PSBGEN 유틸리티를사용할경우 ) PSBGEN 문의형식은다음과같다. PSBGEN PSBNAME=name [,LANG={COBOL PL/I ASSEM PASCAL blank}] [,MAXQ={0 nr}] [,CMPAT={NO YES}] [,IOASIZE=value] [,SSASIZE=value] [,IOEROPN={n (n,wtor)}] [,OLIC={NO YES}] [,GSROLBOK={NO YES}] [,LOCKMAX={0 n}] PSBNAME LANG 현재정의하는 PSB 블럭의이름을지정한다. 메시지프로그램또는 Batch 프로그램이작성된컴파일러언어를지정한다. 다음과같은약자를사용할수있다. - ASSEMBLY: A 또는 ASSEM - COBOL: C - PL/I: P 또는 PLI MAXQ CMPAT Qx 명령어코드를포함한데이터베이스호출의최대개수를지정한다. BMP 프로그램또는메시지프로그램에서의호환성을표시한다. 만약 CMPAT=YES 이면해당 PSB 는맨앞에 I/O PCB 를포함하고있는것으로간주 된다. IOASIZE 애플리케이션에서사용하는 I/O 영역의최대크기를지정한다. 제 2 장정의유틸리티 31

SSASIZE LOCKMAX 애플리케이션에서사용하는 SSA 의최대길이를지정한다. 애플리케이션이동시에획득할수있는 LOCK 의최대개수를지정한다. 참고 Tibero HiDB 에서는 PSBGEN 문의 IOEROPN, OLIC, GSROLBOK 파라미터를지원하지않는다. PASGEN 문 PSB 블록에대한정의의종료를나타낸다. (ADMPAS 유틸리티를사용할경우 ) END 문 모든 PSB 생성유틸리티컨트롤문은 END 문으로종료되어야한다. 사용예제 다음은 PSBGEN 프로시저를사용하여 PSB 블록을생성하는 JCL 예제이다. //PSBGEN JOB MSGLEVEL=1 // EXEC PSBGEN,MBR=APPLPGM1 //C.SYSIN DD * PCB TYPE=TP,NAME=OUTPUT1,PCBNAME=OUTPCB1 PCB TYPE=TP,NAME=OUTPUT2,PCBNAME=OUTPCB2 PCB TYPE=DB,DBDNAME=PARTMSTR,PROCOPT=A,KEYLEN=100 SENSEG NAME=PARTMAST,PARENT=0,PROCOPT=A SENSEG NAME=CPWS,PARNET=PARTMAST,PROCOPT=A SENSEG NAME=POLN,PARENT=PARTMAST,PROCOPT=A SENSEG NAME=OPERTON,PARENT=PARTMAST,PROCOPT=A SENSEG NAME=INVSTAT,PARENT=OPERTON,PROCOPT=A SENSEG NAME=OPERSGMT,PARENT=OPERTON PSBGEN LANG=COBOL,PSBNAME=APPLPGM1 END /* 유의사항 PSBGEN 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 32 Tibero HiDB 유틸리티참조안내서

에러가발생한경우에러가발생한경우에는해당에러메시지를 SYSPRINT DD로출력하고각에러에해당하는코드를반환한다. DBDGEN 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 12 Unrecoverable 에러로, 다음의경우에발생한다. - SYSLIN DD 혹은 SYSLMOD DD 를제공하지않은경우 - SYSLIN DD 혹은 SYSLMOD DD 의유형이맞지않는경우 - SYSIN DD 스크립트문장의문법오류가발생한경우 16 시스템에러로, 다음의경우에발생한다. - OpenFrame 시스템라이브러리초기화에실패한경우 - SYSLIN DD 또는 SYSLMOD DD OPEN 에러가발생한경우 - SYSIN DD 또는 SYSLIN DD 읽기에러가발생한경우 제 2 장정의유틸리티 33

제 3 장재편성유틸리티 본장에서는재편성유틸리티에대해기술한다. 3.1. ADMHDR ADMHDR 유틸리티는 HD 재편성 Unload 유틸리티인 ADMHDU에서생성한데이터셋을입력으로하여 HDAM, HIDAM 또는 HISAM 데이터베이스로 Reload한다. ADMHDR 유틸리티프로그램은다음과같은기능을수행한다. ADMHDU 유틸리티가생성한재편성용 Unload 데이터셋을 HDAM, HIDAM, HISAM 데이터베이스로 Reload Logical Relationship 및 Secondary Index 정보가담긴워크데이터셋생성 데이터베이스 Reload 후세그먼트통계정보출력 OpenFrame 의 ADMHDR 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB 의 ADMHDR 유틸리티 에대응한다. DD 설정 DD 설정은다음과같다. ADM@DBD DD database DD ADM@LST DD ADM@IN1 DD ADM@WDS DD ADM@IPT DD의컨트롤문장에서입력한 DBD가위치하는라이브러리를지정한다. 필수이다. Unload 대상데이터베이스의데이터셋을지정한다. 데이터베이스 DD의이름은반드시 DBD에서기술된 DD 이름과동일해야한다. HIDAM 데이터베이스인경우관련인덱스데이터셋도함께지정해야한다. 필수이다. ADMHDR 유틸리티의메시지가출력된다. 필수이다. HD 재편성 Unload 유틸리티인 ADMHDU에서생성한데이터셋으로 Reload 대상입력데이터셋을지정한다. 필수이다. Reload 대상데이터베이스가세그먼트간의 Logical Relationship을가진경우생성할작업용데이터셋을지정한다. 이데이터셋은 Prefix Resolution 유 제 3 장재편성유틸리티 35

틸리티인 ADMPXR 에서입력데이터셋으로사용되며 Reload 할때발생한 Logical Relationship 관련정보가담긴다. ADM@IXW DD ADM@CDS DD ADM@IPT DD Reload 대상데이터베이스의세그먼트가 Secondary Index를사용하는경우생성할작업용데이터셋을지정한다. 데이터셋은 Secondary Index 재편성유틸리티인 ADMSIM에서입력데이터셋으로사용되며 Reload할때발생한 Secondary Index 관련정보가담긴다. 예비재편성유틸리티인 ADMPRG에서생성한컨트롤데이터셋을지정한다. 선택이다. 컨트롤문장들을입력한다. 필수이다. 명령어설정 ADMHDR 유틸리티에서기술하는명령어는다음과같다. ADMURG 명령어구문은다음과같다. ADMURG PGM=ADMHDR,DB=dbd-name PGM DB 유틸리티 Region 의 ADMHDR 을실행한다. Reload 대상데이터베이스의 DBD 이름을지정한다. 통계정보 데이터베이스 Reload 작업이정상적으로종료되면다음과같은통계정보를 ADM@LST DD 에출력한다. *** HIERARCHICAL DIRECT DB REORG RELOAD *** SEGMENT LEVEL STATISTICS TOTAL SEGMENTS BY SEGMENT TYPE =========================================== SEGMENT SEGMENT NAME LEVEL RELOADED DIFFERENCE ------------------------------------------- PBM01VAA 1 9628 PBM01VAD 2 9628 PBM01VAE 2 0 PBM01VAB 2 28243 36 Tibero HiDB 유틸리티참조안내서

PBM01VAF 3 28243 PBM01VAC 3 15586 PBM01VAG 2 0 ------------------------------------------- TOTAL SEGMENTS IN DATABASE UNLOADED RELOADED DIFFERENCE 91328 91328 =========================================== SEGMENT LEVEL STATISTICS 의필드은다음과같다. SEGMENT NAME SEGMENT LEVEL RELOADED DIFFERENCE 같은라인의통계정보가적용되는세그먼트이름이다. 데이터베이스내세그먼트의계층레벨번호이다. 데이터베이스에 Reload된세그먼트인스턴스의총개수이다. Reload 건수와 Unload 건수가일치하면공백으로표시된다. Reload 건수가더많은경우는플러스 (+) 기호와, Unload 건수가더많은경우는마이너스 (- ) 기호와해당건수가함께표시된다. TOTAL SEGMENTS IN DATABASE 의필드은다음과같다. UNLOADED RELOADED DIFFERENCE HD 재편성 Unload 유틸리티인 ADMHDU에서 Unload할때계수한모든세그먼트인스턴스들의개수이다. HD 재편성 Reload 유틸리티인 ADMHDR에서 Reload할때계수한모든세그먼트인스턴스들의개수이다. Reload 건수와 Unload 건수가일치하면공백으로표시된다. 같지않으면차이나는건수가표시된다. 사용예제 다음은 HD 재편성 Unload 유틸리티인 ADMHDU에서생성한 TMAX01.DB1 데이터셋을 ADM@IN1 DD 로지정하여 TMAX01DB DBD에서정의한데이터베이스로 Reload하는예제이다. TMAX01I1 DD에인덱스데이터셋을지정하고 TMAX01D1과 TMAX01D2 DD에데이터베이스데이터셋을지정한다. ADM@WDS DD는 Logical Relationship 정보가들어있는 TMAX01.ADMWDS 데이터셋을지정한것으로, Reload 중생성되며 Prefix Resolution 유틸리티인 ADMPXR에서입력데이터셋으로사용된다. //ADMHDR JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* 제 3 장재편성유틸리티 37

//* R E L O A D ( H I D A M ) //******************************************************************* //STEP010 EXEC PGM=ADM //STEPLIB DD DSN=ADM.RESLIB,DISP=SHR //ADM@DBD DD DSN=ADM.DBDMOD,DISP=SHR //ADM@LST DD SYSOUT=* //ADM@IN1 DD DSN=TMAX01.DB1,DISP=SHR //ADM@WDS DD DSN=TMAX01.ADMWDS,UNIT=3380, // VOL=SER=DEFVOL,LABEL=(,SL),DISP=(NEW,CATLG,DELETE) //ADM@CDS DD DSN=TMAX01.ADMCDS,DISP=SHR //TMAX01I1 DD DSN=TMAX01.IX1,DISP=SHR //TMAX01D1 DD DSN=TMAX01.DD1,DISP=SHR //TMAX01D2 DD DSN=TMAX01.DD2,DISP=SHR //ADM@IPT DD * ADMURG PGM=ADMHDR,DB=TMAX01DB */ // 유의사항 ADMHDR 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. ADMHDR 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 4 8 16 Reload 대상세그먼트가존재하지않는경우에발생한다. Reload 건수와 Unload 건수가불일치하는경우에발생한다. 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 데이터베이스 Reload 작업의실패 - 기타 ADMHDR 유틸리티프로그램에러 38 Tibero HiDB 유틸리티참조안내서

3.2. ADMHDU ADMHDU 유틸리티는 HDAM, HIDAM 또는 HISAM 액세스메소드로정의된데이터베이스를읽어데이터베이스재편성에필요한순차데이터셋 (SDS) 을생성한다. ADMHDU 유틸리티프로그램은다음과같은기능을수행한다. HDAM, HIDAM, HISAM 데이터베이스의재편성용 Unload 데이터셋생성 Unload 데이터셋의세그먼트통계정보출력 OpenFrame 의 ADMHDU 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB 의 ADMHDU 유틸리티 에대응한다. DD 설정 DD 설정은다음과같다. ADM@DBD DD ADM@LST DD database DD ADM@OT1 DD ADM@IPT DD 컨트롤문장에서입력한데이터베이스를정의한 DBD가위치하는라이브러리를지정한다. 필수이다. ADMHDU 유틸리티의메시지가출력된다. 필수이다. Unload 대상데이터베이스의데이터셋을지정한다. 데이터베이스의 DD명은반드시 DBD에서기술된 DD 이름과동일해야한다. HIDAM 데이터베이스인경우관련인덱스데이터셋도함께지정해야한다. 필수이다. 데이터베이스를 Unload하여출력할순차데이터셋을지정한다. 필수이다. 컨트롤문장들을입력한다. 필수이다. 명령어설정 ADMHDU 유틸리티에서기술하는명령어는다음과같다. ADMURG 명령어구문은다음과같다. ADMURG PGM=ADMHDU,DB=dbd-name PGM 유틸리티 Region 의 ADMHDU 유틸리티를실행한다. 제 3 장재편성유틸리티 39

DB Unload 대상데이터베이스의 DBD 이름을지정한다. 통계정보 데이터베이스 Unload 작업이정상적으로종료되면다음과같은통계정보를 ADM@LST DD 에출력한다. ******************** HIERARCHICAL DIRECT DB REORG UNLOAD ********************** D A T A B A S E S T A T I S T I C S SEGMENT LEVEL STATISTICS RECORD LEVEL STATISTICS =============================================================================== MAXMUM AVG MAXIMUM AVG SEGMENT SEGMENT TOTAL SEGMENTS AVG COUNT PER TWINS TWINS CHILDREN CHILDREN NAME LEVEL BY SEG TYPE DB RECORD ------------------------------------------------------------------------------- 1 1.00 1873 8.48 PBM01VAA 1 9628 1.00 1 1.00 0 0.00 PBM01VAD 2 9628 1.00 0 0.00 0 0.00 PBM01VAE 2 0 0.00 567 2.93 12 1.55 PBM01VAB 2 28243 2.93 1 1.00 0 0.00 PBM01VAF 3 28243 2.93 11 0.55 0 0.00 PBM01VAC 3 15586 1.61 ------------------------------------------------------------------------------- TOTAL SEGMENTS IN DATABASE= 91328 AVERAGE DATABASE RECORD LENGTH= 2271 BYTES =============================================================================== SEGMENT LEVEL STATISTICS 의필드은다음과같다. MAXIMUM TWINS AVG TWINS MAXIMUM CHILDREN AVG CHILDREN SEGMENT NAME SEGMENT LEVEL 같은부모세그먼트인스턴스에종속된트윈세그먼트인스턴스의최대개수이다. 루트세그먼트는항상 1의값을가진다. 같은부모세그먼트인스턴스에종속된트윈세그먼트인스턴스의평균개수이다. 같은부모세그먼트인스턴스에종속된자식세그먼트인스턴스의최대개수이다. 같은부모세그먼트인스턴스에종속된자식세그먼트인스턴스의평균개수이다. 최하위세그먼트의경우 0의값을가진다. 같은라인의통계정보가적용되는세그먼트이름이다. 세그먼트의계층레벨번호이다. 상위에서하위로나열된다. 40 Tibero HiDB 유틸리티참조안내서

RECORD LEVEL STATISTICS 의필드은다음과같다. TOTAL SEGMENTS BY SEG TYPE TOTAL COUNT PER DB RECORD 같은세그먼트타입을가진인스턴스의총개수이다. 1개의레코드안에들어있는같은세그먼트타입을가진인스턴스의평균개수이다. 사용예제 다음은 TMAX01DB DBD에서정의한데이터베이스를읽어서 ADM@OT1 DD의 TMAX01.DB1 데이터셋 으로 Unload하는예제이다. TMAX01I1 DD는인덱스데이터셋을지정한것이며 TMAX01D1과 TMAX01D2 DD는데이터베이스데이 터셋을지정한것이다. //ADMHDU JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //****************************************************************** //* HD REORGANIZATION UNLOAD UTILITY (ADMHDU) * //****************************************************************** //STEP010 EXEC PGM=ADM //ADM@DBD DD DSN=ADM.DBDMOD,DISP=SHR //ADM@LST DD SYSOUT=* //TMAX01I1 DD DSN=TMAX01.IX1,DISP=SHR //TMAX01D1 DD DSN=TMAX01.DD1,DISP=SHR //TMAX01D2 DD DSN=TMAX01.DD2,DISP=SHR //ADM@OT1 DD DSN=TMAX01.DB1,DISP=(,CATLG,DELETE), // UNIT=3380,LABEL=(,SL) //ADM@IPT DD * ADMURG PGM=ADMHDU,DB=TMAX01DB 유의사항 ADMHDU 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. 제 3 장재편성유틸리티 41

ADMHDU 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 ADMHDU 유틸리티프로그램에러 3.3. ADMHIR ADMHIR 유틸리티는 HISAM 재편성 Unload 유틸리티인 ADMHIU에서생성한데이터셋을입력으로하여 HISAM 또는인덱스데이타베이스로 Reload한다. ADMHIR 유틸리티프로그램은다음과같은기능을수행한다. HISAM 데이터베이스 Reload 인덱스데이터베이스 Reload OpenFrame 의 ADMHIR 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB 의 ADMHIR 유틸리티 에대응한다. DD 설정 DD 설정은다음과같다. ADM@LST DD ksds DD esds DD ADM@I01 DD ADMHIR 유틸리티의메시지가출력된다. 필수이다. 재편성대상데이터베이스의 KSDS 데이터셋의 DD 이름을지정한다. 필수이다. 재편성대상데이터베이스의 ESDS 데이터셋의 DD 이름을지정한다. 필수이다. HISAM 재편성 Unload 유틸리티인 ADMHIU에서생성한데이터셋으로 Reload 대상입력데이터셋을지정한다. 필수이다. 명령어설정 OpenFrame 의 ADMHIR 유틸리티는명령어를사용하지않는다. 따라서 ADM/DB 의컨트롤문장이기술되 더라도무시한다. 42 Tibero HiDB 유틸리티참조안내서

통계정보 HISAM 데이터베이스 Reload 작업이정상적으로종료되면다음과같은통계정보를 ADM@LST DD에출력한다. *** HIERARCHICAL DIRECT DB REORG RELOAD *** SEGMENT LEVEL STATISTICS TOTAL SEGMENTS BY SEGMENT TYPE =========================================== SEGMENT SEGMENT NAME LEVEL RELOADED DIFFERENCE ------------------------------------------- PBM01VAA 1 9628 PBM01VAD 2 9628 PBM01VAE 2 0 PBM01VAB 2 28243 PBM01VAF 3 28243 PBM01VAC 3 15586 PBM01VAG 2 0 ------------------------------------------- TOTAL SEGMENTS IN DATABASE UNLOADED RELOADED DIFFERENCE 91328 91328 =========================================== SEGMENT LEVEL STATISTICS 의필드은다음과같다. SEGMENT NAME SEGMENT LEVEL RELOADED DIFFERENCE 같은라인의통계정보가적용되는세그먼트이름이다. 데이터베이스내세그먼트의계층레벨번호이다. 데이터베이스에 Reload된세그먼트인스턴스의총개수이다. Reload 건수와 Unload 건수가일치하면공백으로표시된다. Reload 건수가더많은경우는플러스 (+) 기호와, Unload 건수가더많은경우는마이너스 (- ) 기호와해당건수가함께표시된다. 사용예제 다음은 HISAM 재편성 Unload 유틸리티인 ADMHIU 에서생성한 TMAX01.PDFSUR10 데이터셋을 ADM@I01 DD 로지정하여 TMAX1S2 에서지정한 HISAM 데이터베이스로 Reload 하는예제이다. //ADMHIR JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* 제 3 장재편성유틸리티 43

//* R E L O A D ( H I S A M ) //******************************************************************* //STEP010 EXEC PGM=ADMHIR //STEPCAT DD DSN=VSAM.USERCAT,DISP=SHR //ADM@LST DD SYSOUT=* //ADM@I01 DD DSN=TMAX01.PDFSUR10,DISP=(OLD,DELETE,KEEP) //TMAX1S2 DD DSN=TMAX01.PBM02SI2,DISP=OLD // 유의사항 ADMHIR 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. ADMHIR 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 4 8 Reload 대상세그먼트가존재하지않는경우에발생한다. 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 데이터베이스 Reload 작업의실패 - 기타 ADMHIR 유틸리티프로그램에러 3.4. ADMHIU ADMHIU 유틸리티는 HISAM 재편성 Unload 유틸리티로다음과같은기능을수행한다. HISAM 데이터베이스 Unload 인덱스데이터베이스 Unload OpenFrame 의 ADMHIU 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB 의 ADMHIU 유틸리티 에대응한다. 44 Tibero HiDB 유틸리티참조안내서

DD 설정 DD 설정은다음과같다. ADM@DBD DD vsamksds DD vsamesds DD ADM@LST DD dataout DD ADM@IPT DD 참조하는 DBD가위치하는라이브러리를지정한다. 필수이다. 재편성대상인데이터베이스의 VSAM KSDS 데이터셋을지정한다. vsamksds DD 이름은반드시 ADM@IPT의 KSDS에서기술한 DD 이름과동일해야한다. 필수이다. 재편성대상인데이터베이스의 VSAM ESDS 데이터셋을지정한다. 루트세그먼트만으로구성된 HISAM 데이터베이스및인덱스데이터베이스의경우는생략한다. ADMHIU 유틸리티의메시지가출력된다. 필수이다. 재편성된출력데이터셋을기술한다. dataout DD 이름은반드시 ADM@IPT의 OUT1 에서기술한 DD 이름과동일해야한다. 필수이다. 컨트롤문장들을입력한다. 필수이다. 명령어설정 ADMHIU 유틸리티에서기술하는명령어는다음과같다. ADMHIU 명령어구문은다음과같다. ADMHIU DB=dbd-name,KSDS=ksdsdd-name,OUT1=outdd-name[,OUT2=outdd-name] DB KSDS OUT1 OUT2 재편성대상데이터베이스의 DBD 이름을지정한다. 필수이다. 재편성대상데이터베이스의 KSDS 데이터셋의 DD 이름을지정한다. 필수이다. 출력데이터셋의 DD 이름을지정한다. 필수이다. 출력데이터셋의사본을생성할때 DD 이름을지정하나 OpenFrame에서는무시한다. 제 3 장재편성유틸리티 45

통계정보 HISAM 데이터베이스를 Unload하는경우작업이정상적으로종료되면다음과같은통계정보를 ADM@LST DD에출력한다. ******* HIERARCHICAL INDEXED SEQUENTIAL DATA BASE REORGANIZATION UNLOAD ****** D A T A B A S E S T A T I S T I C S SEGMENT LEVEL STATISTICS RECORD LEVEL STATISTICS =============================================================================== MAXMUM AVG MAXIMUM AVG SEGMENT SEGMENT TOTAL SEGMENTS AVG COUNT PER TWINS TWINS CHILDREN CHILDREN NAME LEVEL BY SEG TYPE DB RECORD ------------------------------------------------------------------------------- 1 1.00 1873 8.48 PBM01VAA 1 9628 1.00 1 1.00 0 0.00 PBM01VAD 2 9628 1.00 0 0.00 0 0.00 PBM01VAE 2 0 0.00 567 2.93 12 1.55 PBM01VAB 2 28243 2.93 1 1.00 0 0.00 PBM01VAF 3 28243 2.93 11 0.55 0 0.00 PBM01VAC 3 15586 1.61 ------------------------------------------------------------------------------- TOTAL SEGMENTS IN DATABASE= 91328 AVERAGE DATABASE RECORD LENGTH= 2271 BYTES =============================================================================== SEGMENT LEVEL STATISTICS 의필드은다음과같다. MAXIMUM TWINS AVG TWINS MAXIMUM CHILDREN AVG CHILDREN SEGMENT NAME SEGMENT LEVEL 같은부모세그먼트인스턴스에종속된트윈세그먼트인스턴스의최대개수이다. 루트세그먼트는항상 1의값을갖는다. 같은부모세그먼트인스턴스에종속된트윈세그먼트인스턴스의평균개수이다. 같은부모세그먼트인스턴스에종속된자식세그먼트인스턴스의최대개수이다. 같은부모세그먼트인스턴스에종속된자식세그먼트인스턴스의평균개수이다. 최하위세그먼트의경우 0의값을갖는다. 같은라인의통계정보가적용되는세그먼트이름이다. 세그먼트의계층레벨번호이다. 상위에서하위로나열된다. RECORD LEVEL STATISTICS 의필드은다음과같다. TOTAL SEGMENTS BY SEG TYPE 같은세그먼트타입을가진인스턴스의총개수이다. 46 Tibero HiDB 유틸리티참조안내서

TOTAL COUNT PER DB RECORD 1 개의레코드안에들어있는같은세그먼트타입을가진인스턴스의평균개 수이다. 사용예제 다음은 TMAX1S1 DD와 TMAX1S2 DD로지정한 KSDS 데이터셋을읽어서인덱스재편성용데이터셋 인 OUT1 DD와 OUT2 DD를각각생성하는예제이다. //ADMHIU JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* H I S A M U N L O A D ( A D M H I U) //******************************************************************* //STEP010 EXEC PGM=ADMHIU //ADM@DBD DD DSN=ADM.DBDMOD,DISP=SHR //ADM@LST DD SYSOUT=* //OUT1 DD DSN=TMAX01.PDFSUR05,DISP=(,CATLG,DELETE), // SPACE=(CYL,(2,1)),UNIT=WRKK //OUT2 DD DSN=PBM82.PDFSUR10,DISP=(,CATLG,DELETE), // SPACE=(CYL,(2,1)),UNIT=WRKK //TMAX1S1 DD DSN=TMAX01.PBM02SI1,DISP=OLD //TMAX1S2 DD DSN=TMAX01.PBM02SI2,DISP=OLD //ADM@IPT DD * ADMHIU DB=TMAX01DB,KSDS=TMAX1S1,OUT1=OUT1 ADMHIU DB=TMAX01DB,KSDS=TMAX2S1,OUT1=OUT2 /* 유의사항 ADMHIU 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. ADMHIU 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 제 3 장재편성유틸리티 47

코드 - 기타 ADMHIU 유틸리티프로그램에러 3.5. ADMPRG ADMPRG 유틸리티는데이터베이스재편성관련유틸리티들의입력으로사용되는컨트롤데이터셋을생성한다. 이컨트롤데이터셋안에는사용자가 ADM@IPT DD에서기술한컨트롤문장과관련 DBD정보가저장된다. OpenFrame의 ADMPRG 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB의 ADMPRG 유틸리티에대응한다. DD 설정 DD 설정은다음과같다. ADM@DBD DD ADM@LST DD ADM@CDS DD ADM@IPT DD 컨트롤문장에서입력한데이터베이스를정의한 DBD가위치하는라이브러리를지정한다. 필수이다. ADMPRG 유틸리티의메시지가출력된다. 필수이다. ADMPRG가생성하는컨트롤데이터셋을기술한다. 필수이다. 컨트롤문장들을입력한다. 필수이다. 명령어설정 ADMPRG 유틸리티에서기술하는명령어는다음과같다. ADMURG ADMPRG 유틸리티를실행하기위한명령어이다. 명령어구문은다음과같다. ADMURG PGM=ADMPRG PGM 유틸리티 Region 의 ADMPRG 유틸리티를실행한다. 48 Tibero HiDB 유틸리티참조안내서

DINT / DREG 데이터베이스재편성작업과관련된데이터베이스들을지정하는명령어이다. 명령어구문은다음과같다. {DINT DREG}=dbd-name[,...] DINT DREG dbd-name[,...] OpenFrame에서는 DINT, DREG 명령어구분의의미가없으므로아무을기술해도무방하다. 데이터베이스재편성작업과관련된모든데이터베이스들의 DBD 이름을기술한다. DBD명은 8자를초과할수없다. PUNCH 컨트롤문장을펀치출력할때지정하며명령어구문은다음과같다. PUNCH PUNCH 컨트롤문장을펀치출력할때지정한다. 미지원기능이다. 사용예제 다음은 ADM@IPT에서기술한데이터베이스 DBD들을참조하여 TMAX.ADMCDS 컨트롤데이터셋을생 성하는예제이다. //ADMPRG JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* P R E R E O R G //******************************************************************* //STEP010 EXEC PGM=ADM //* **** EXECUTE PREREORGANIZATION UTILITY **** //ADM@DBD DD DSN=ADM.DBDLIB,DISP=SHR,VOL=SER=DEFVOL,UNIT=3380 //ADM@LST DD SYSOUT=A //ADM@CDS DD DSN=TMAX.ADMCDS,UNIT=3380,DISP=(NEW,KEEP), // VOL=SER=DEFVOL,LABEL=(,SL) //ADM@IPT DD * ADMURG PGM=ADMPRG DREG DB=REORGDB /* 제 3 장재편성유틸리티 49

유의사항 ADMPRG 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. ADMPRG 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 ADMPRG 유틸리티프로그램에러 3.6. ADMPXR ADMPXR 유틸리티는 HD 재편성 Reload 유틸리티인 ADMHDR에서생성한 Logical Relationship 작업데이터셋을입력으로받아 Prefix Update 유틸리티인 ADMPXU에서입력으로사용할 Prefix Resolution 데이터셋을생성한다. Prefix Resolution은 Logical Relationship을갖는세그먼트간의포인터정보를다시맺어주기위한중간작업단계를의미한다. ADMPXR 유틸리티는 Reload 후확정된논리적부모와자식세그먼트의포인터정보가들어있는데이터셋을각각입력받아내부적으로 SORT 처리를통해상호관계를연결시키는 Prefix Update에필요한중간정보데이터셋을생성한다. ADMPXR 유틸리티프로그램은다음과같은기능을수행한다. Prefix Update 유틸리티인 ADMPXU에사용할 Logical Relationship와관련된 Prefix Resolution 데이터셋생성 Prefix Resolultion 작업의통계정보출력 OpenFrame 의 ADMPXR 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB 의 ADMPXR 유틸리티 에대응한다. 참고 ADMPXR 유틸리티는입력데이터셋의정보를가공하기위하여 UNIX 시스템에서기본적으로제공하는 SORT 프로그램을내부적으로사용한다. 따라서이유틸리티를실행하기전에 SORT 프로그램의정상실행여부를확인하여야한다. 50 Tibero HiDB 유틸리티참조안내서

EXEC 설정 EXEC 문장의설정은다음과같다. PGM=ADMPXR PGM 유틸리티 Region 의 ADMPXR 유틸리티를실행한다. DD 설정 DD 설정은다음과같다. SORTLIB DD SORTWKnn DD ADM@WDS DD ADM@LPD DD ADM@PXR DD ADM@LST DD Hitachi VOS3 시스템에서는 SORT/MERGE 프로그램의라이브러리를지정하나 OpenFrame에서는 UNIX 시스템에서기본적으로제공하는 SORT 프로그램을사용하므로필수로설정하지않아도된다. Hitachi VOS3 시스템에서는 SORT/MERGE 프로그램의중간데이터셋을임시로저장할위치를정의하나 OpenFrame에서는 UNIX 시스템의 SORT 프로그램이 /tmp 등의디렉터리를자체적으로이용하므로필수로설정하지않아도된다. HD 재편성 Reload 유틸리티인 ADMHDR에서생성한데이터셋을지정한다. ADMPXR 유틸리티는이데이터셋을입력으로사용하므로필수이다. SORT 작업의중간결과를저장하는데이터셋을지정한다. 필수이다. ADMPXR 유틸리티의최종결과데이터셋을지정한다. Prefix Update 유틸리티인 ADMPXU에서이데이터셋을입력으로사용하게된다. ADMPXR 유틸리티의메시지가출력된다. 필수이다. 명령어설정 ADMPXR 유틸리티는컨트롤문장을사용하지않는다. 통계정보 Prefix Resolution 작업이정상적으로종료되면다음과같은통계정보를 ADM@LST DD 에출력한다. *** HIERARCHICAL DIRECT DB PREFIX RESOLUTION *** SEGMENT LEVEL STATISTICS 제 3 장재편성유틸리티 51

TOTAL SEGMENTS BY SEGMENT TYPE =============================================== DBD SEGMENT LOGICAL LOGICAL SECONDARY NAME NAME PARENT CHILD INDEX ----------------------------------------------- PBM01PD PBM01VAA 9628 0 0 PBM01PD PBM01VAF 0 28243 0 ----------------------------------------------- TOTAL 9628 28243 0 =============================================== RECORD LEVEL STATISTICS TOTAL RECORDS BY DATASET ============================== DD NAME WRITE RECORD ------------------------------ PBM01D1 103957 ------------------------------ TOTAL 103957 ============================== SEGMENT LEVEL STATISTICS 의필드은다음과같다. DBD NAME SEG MENT LOGICAL PARENT LOGICAL CHILD SECONDARY INDEX 같은라인의통계정보가적용되는 DBD 이름이다. 같은라인의통계정보가적용되는세그먼트의이름이다. 입력데이터셋에들어있는 Logical Relationship의논리적부모세그먼트인스턴스의총개수이다. 입력데이터셋에들어있는 Logical Relationship의논리적자식세그먼트인스턴스의총개수이다. 입력데이터셋에들어있는 Secondary Index 세그먼트인스턴스의총개수이다. RECORD LEVEL STATISTICS 의필드은다음과같다. DD NAME WRITE RECORD Prefix Resolution 정보가적용될데이터베이스데이터셋의 DD 이름이다. Prefix Resolution 출력데이터셋에쓰여진 DD 별레코드건수이다. 52 Tibero HiDB 유틸리티참조안내서

사용예제 다음은 HD 재편성 Reload 유틸리티인 DFSURGL0에서생성한데이터셋을 SORTIN DD로입력받아 Prefix Resolution 데이터셋을 ADM@PXR DD로출력하는예제이다. //ADMPXR JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* D B P R E F I X R E S O L U T I O N //******************************************************************* //STEP010 EXEC PGM=ADMPXR //STEPLIB DD DSN=ADM.RESLIB,DISP=SHR //SYSOUT DD SYSOUT=* //ADM@LST DD SYSOUT=* //SORTLIB DD DSN=SORT.SORTLIB,DISP=SHR //ADM@WDS DD DSN=TMAX01.ADMWDS1,DISP=(OLD,DELETE,KEEP) //SORTWK01 DD UNIT=3380,LABEL=(,NL) //SORTWK02 DD UNIT=3380,LABEL=(,NL) //SORTWK03 DD UNIT=3380,LABEL=(,NL) //ADM@LPD DD DSN=TMAX01.ADMLPD,UNIT=3380,VOL=SER=DEFVOL, // LABEL=(,SL),DISP=(NEW,KEEP) //ADM@PXR DD DSN=TMAX01.ADMPXR,UNIT=3380,VOL=SER=DEFVOL, // LABEL=(,SL),DISP=(NEW,KEEP) // 유의사항 ADMPXR 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. ADMPXR 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 ADMPXR 유틸리티프로그램에러 제 3 장재편성유틸리티 53

3.7. ADMPXU ADMPXU 유틸리티는 Prefix Resolution 유틸리티인 ADMPXR에서생성한데이터셋을입력받아 Logical Relationship을가진세그먼트들각각의 Prefix 부분의포인터정보를갱신한다. OpenFrame의 ADMPXU 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB의 ADMPXU 유틸리티에대응한다. DD 설정 DD 설정은다음과같다. ADM@DBD DD database DD ADM@PXR DD ADM@LST DD ADM@IPT DD 재편성대상데이터베이스의 DBD가위치하는라이브러리를지정한다. 필수이다. 재편성대상데이터베이스의데이터셋을지정한다. DD 이름은 DBD에서지정한것과동일해야한다. 필수이다. Prefix Resolution 유틸리티인 ADMPXR에서 ADM@PXR DD로생성한데이터셋을지정한다. 필수이다. ADMPXU 유틸리티의메시지가출력된다. 필수이다. 입력컨트롤문장들이들어있는데이터셋이다. 필수이다. 명령어설정 ADMPXU 유틸리티에서기술하는명령어는다음과같다. ADMURG 명령어구문은다음과같다. ADMURG PGM=ADMPXU PGM 유틸리티 Region 의 ADMPXU 을실행한다. 통계정보 Prefix Update 작업이정상적으로종료되면다음과같은통계정보를 ADM@LST DD 에출력한다. *** HIERARCHICAL DIRECT DB PREFIX UPDATE *** 54 Tibero HiDB 유틸리티참조안내서

RECORD LEVEL STATISTICS TOTAL RECORDS BY DATASET =============================================== DD NAME READ UPDATE UPDATE RECORD RECORD POINTER ----------------------------------------------- PBM01D1 3252 3252 103957 ----------------------------------------------- TOTAL 3252 3252 103957 =============================================== RECORD LEVEL STATISTICS 의필드은다음과같다. DD NAME READ RECORD UPDATE RECORD UPDATE POINTER Prefix Update 작업의대상이되는데이터베이스의 DD 이름으로 DBD에기술된것과동일하다. ADM@PXR DD의입력데이터셋의읽은레코드총개수이다. Prefix Update를실시한테이터베이스에서갱신된레코드의총개수이다. 갱신된 Prefix의총개수이다. 사용예제 다음은 ADM@PXR DD로입력받은 TMAX01.ADMPXR 데이터셋을읽어서데이터베이스의데이터셋인 TMAX01.TMAX1DD1과 TMAX01.TMAX1DD2의세그먼트 Prefix를갱신하는예제이다. //ADMPXU JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* P R E F I X U P D A T E //******************************************************************* //STEP010 EXEC PGM=ADM //STEPCAT DD DSN=VSAM.USERCAT,DISP=SHR //ADM@LST DD SYSOUT=* //ADM@DBD DD DSN=ADM.DBDMOD,DISP=SHR //ADM@PXR DD DSN=TMAX01.ADMPXR,DISP=(OLD,DELETE,KEEP) //TMAX1I1 DD DSN=TMAX01.TMAX1IX1,DISP=OLD //TMAX1D1 DD DSN=TMAX01.TMAX1DD1,DISP=OLD //TMAX1D2 DD DSN=TMAX01.TMAX1DD2,DISP=OLD //ADM@IPT DD * ADMURG PGM=ADMPXU /* // 제 3 장재편성유틸리티 55

유의사항 ADMPXU 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. ADMPXU 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 ADMPXU 유틸리티프로그램에러 3.8. ADMSIM ADMSIM 유틸리티는 Secondary Index 데이터베이스의재편성을위한 Load와 Unload 기능을제공한다. ADMSIM 유틸리티프로그램은다음과같은기능을수행한다. CREATE 기능 HD 재편성로드유틸리티인 ADMHDR에서생성한인덱스작업 (work) 데이터셋이나 ADMSIM 유틸리티가생성한 Secondary Index 작업데이터셋을입력으로받아해당데이터베이스에로드한다. UNLOAD 기능 Secondary Index 데이터베이스를읽어순차데이터셋을생성한다. SCAN 기능 OpenFrame 에서는미지원기능이다. OpenFrame 의 ADMSIM 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB 의 ADMSIM 유틸리티 에대응한다. 56 Tibero HiDB 유틸리티참조안내서

DD 설정 DD 설정은다음과같다. ADM@DBD DD ADM@LST DD database DD ADM@IXW DD ADM@OX1 DD ADM@IPT DD 컨트롤문장에서입력한데이터베이스를정의한 DBD가위치하는라이브러리를지정한다. 필수이다. ADMSIM 유틸리티의메시지가출력된다. 필수이다. 컨트롤문장에서입력한데이터베이스를구성하는모든데이터셋의 DD명을기술한다. DBD에정의한 DD명과동일해야하며필수이다. 데이터베이스로로드할 Secondary Index 작업데이터셋을지정한다. Reload 기능을사용할경우필수이다. 출력할 Secondary Index 작업데이터셋을지정한다. Unload 기능을사용할경우필수이다. 컨트롤문장들을입력한다. 필수이다. 명령어설정 ADMSIM 유틸리티에서기술하는명령어는다음과같다. CREATE 입력으로받은 ADM@IXW DD 데이터셋의인덱스정보를 Reload할 Secondary Index 데이터베이스를지정한다. {CREATE C} DB={(dbd-name[,dbd-name[,...]]) @ALL}[,SORT={YES NO}] DB SORT Reload 대상 Secondary Index 데이터베이스의 DBD명을지정한다. ADM@IXW DD의데이터셋에들어있는모든데이터베이스를지정하는경우는 @ALL을기술한다. 최대 255개까지지정가능하다. 입력데이터셋에대한 SORT 기능의사용여부를지정한다. - YES: SORT 기능을사용한다. 입력데이터셋이 concatenate 데이터셋인경 우반드시 YES 로지정해야한다.( 기본값 ) - NO: SORT 기능을사용하지않는다. UNLOAD ADM@OX1 DD 로지정한데이터셋으로 Unload 할 Secondary Index 데이터베이스를지정한다. 제 3 장재편성유틸리티 57

{UNLOAD U} DB=(dbd-name[,dbd-name[,...]])[,VERIFY={YES NO}] DB VERIFY 재편성 Unload 대상 Secondary Index 데이터베이스의 DBD 이름을지정한다. 최대 255개까지지정가능하다. OpenFrame에서는기술하더라도무시하는이다. 통계정보 Secondary Index 데이터베이스에대한재편성작업이정상적으로종료되면다음과같은통계정보를 ADM@LST DD에출력한다. *** SECONDARY INDEX DB UNLOAD(RELOAD) *** RECORED LEVEL STATISTICS TOTAL RECORDS BY DATASET ==================================== DD NAME READ WRITE RECORD RECORD ------------------------------------ TMXIDX1 1320 1320 ------------------------------------ TOTAL 1320 1320 ==================================== RECORD LEVEL STATISTICS 의필드은다음과같다. DD NAME READ RECORD WRITE RECORD 재편성 Unload 또는 Reload 대상데이터베이스의 DD명이다. Secondary Index 데이터베이스또는 Secondary Index 작업데이터셋에서읽은레코드의총개수이다. Secondary Index 데이터베이스또는 Secondary Index 작업출력데이터셋을생성할때기록한레코드총개수이다. 사용예제 다음은 ADM@IXW DD의 TMAX01.ADMIXW Secondary Index 작업데이터셋을입력으로받아컨트롤문장에서입력한 TMAXDBX1 DBD와 TMAXDBX2 DBD가정의한 Secondary Index 데이터베이스로 Reload 하는예제이다. //ADMSIM JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //****************************************************************** //* SECONDARY INDEX DB CREATE UTILITY (ADMSIM) * 58 Tibero HiDB 유틸리티참조안내서

//****************************************************************** //STEP010 EXEC PGM=ADMSIM //ADM@DBD DD DSN=ADM.DBDMOD,DISP=SHR //ADM@LST DD SYSOUT=* //ADM@IXW DD DSN=TMAX01.ADMIXW,UNIT=TAPE, // VOL=SER=100000,DISP=(OLD,KEEP) //TMAX01I1 DD DSN=TMAX01.IX1,DISP=SHR //TMAX01I2 DD DSN=TMAX01.IX2,DISP=SHR //ADM@IPT DD * CREATE DB=(TMAXDBX1,TMAXDBX2),SORT=YES /* // 다음은컨트롤문장에서입력한 TMAXDBX1 DBD와 TMAXDBX2 DBD가정의한 Secondary Index 데이 터베이스의내용을 ADM@OX1 DD의 TMAX01.ADM0X1 데이터셋으로 Unload하는예제이다. //ADMSIM JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //****************************************************************** //* SECONDARY INDEX DB UNLOAD UTILITY (ADMSIM) * //****************************************************************** //STEP010 EXEC PGM=ADMSIM //ADM@DBD DD DSN=ADM.DBDMOD,DISP=SHR //ADM@LST DD SYSOUT=* //ADM@OX1 DD DSN=TMAX01.ADMOX1,UNIT=TAPE, // VOL=SER=100000,DISP=(NEW,KEEP) //TMAX01I1 DD DSN=TMAX01.IX1,DISP=SHR //TMAX01I2 DD DSN=TMAX01.IX2,DISP=SHR //ADM@IPT DD * UNLOAD DB=(TMAXDBX1,TMAXDBX2) /* // 유의사항 ADMSIM 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. ADMSIM 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 제 3 장재편성유틸리티 59

코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 ADMSIM 유틸리티프로그램에러 3.9. DFSURG10 DFSURG10 유틸리티는 HD 재편성 Reload 유틸리티인 DFSURGL0에서생성한 Logical Relationship 정보관련데이터셋을입력으로받아 Prefix Update 유틸리티인 DFSURGP0에서입력으로사용할 Prefix Resolution 데이터셋을생성한다. Prefix Resolution은 Logical Relationship을갖는세그먼트간의포인터정보를다시맺어주기위한중간작업단계를의미한다. DFSURG10 유틸리티는 Reload 후확정된논리적부모와자식세그먼트의포인터정보가들어있는데이터셋을각각입력받아내부적으로 SORT 처리를통해상호관계를연결시키는 Prefix Update에필요한중간정보데이터셋을생성한다. DFSURG10 유틸리티프로그램은다음과같은기능을수행한다. Prefix Update 유틸리티인 DFSURGP0에입력으로사용할 Logical Relationship 포인터정보를가진 Prefix Resolution 데이터셋생성 Prefix Resolultion 작업의통계정보출력 OpenFrame 의 DFSURG10 유틸리티는 IBM IMS/DB 의 DFSURG10 유틸리티에대응한다. 참고 DFSURG10유틸리티는입력데이터셋의정보를가공하기위하여 UNIX 시스템에서기본적으로제공하는 SORT 프로그램을내부적으로사용한다. 따라서이유틸리티를실행하기전에 SORT 프로그램의정상실행여부를확인하여야한다. EXEC 설정 EXEC 문장의설정은다음과같다. PGM=DFSURG10 PGM DFSURG10 유틸리티를호출한다. 60 Tibero HiDB 유틸리티참조안내서

DD 설정 DD 설정은다음과같다. SORTLIB DD SORTWKnn DD SORTIN DD DFSURWF2 DD DFSURWF3 DD SYSOUT DD DFSURCDS DD DFSURIDX DD IBM Mainframe에서는운영시스템의 SORT/MERGE 프로그램의 Load Module 라이브러리를지정하나 OpenFrame에서는 UNIX 시스템에서기본적으로제공하는 SORT 프로그램을사용하게되므로필수로설정하지않아도된다. IBM Mainframe에서는 SORT/MERGE 프로그램의중간데이터셋을임시로저장할위치를정의하나 OpenFrame에서는 UNIX 시스템의 SORT 프로그램이 /tmp등의디렉터리를자체적으로이용하므로필수로설정하지않아도된다. HD 재편성 Reload 유틸리티인 DFSURGL0에서생성한데이터셋을지정한다. DFSURG10유틸리티는이데이터셋을입력으로사용하므로필수이다. SORT 작업의중간결과를저장하는데이터셋을지정한다. 필수이다. DFSURG10 유틸리티의최종결과데이터셋을지정한다. Prefix Update 유틸리티인 DFSURGP0에서이데이터셋을입력으로사용한다. DFSURG10 유틸리티의메시지가출력된다. 필수이다. 예비재편성유틸리티인 DFSURPR0에서생성한컨트롤데이터셋을지정한다. 선택이다. Secondary Index를사용하는데이터베이스인경우 HISAM Unload 유틸리티인 DFSURUL0에서입력으로사용할데이터셋을이 DD를통하여생성한다. 명령어설정 DFSURG10 유틸리티는컨트롤문장을사용하지않는다. 통계정보 Prefix Resolution 작업이정상적으로종료되면다음과같은통계정보를 SYSOUT DD 에출력한다. *** HIERARCHICAL DIRECT DB PREFIX RESOLUTION *** SEGMENT LEVEL STATISTICS TOTAL SEGMENTS BY SEGMENT TYPE =============================================== DBD SEGMENT LOGICAL LOGICAL SECONDARY NAME NAME PARENT CHILD INDEX ----------------------------------------------- PBM01PD PBM01VAA 9628 0 0 제 3 장재편성유틸리티 61

PBM01PD PBM01VAF 0 28243 0 ----------------------------------------------- TOTAL 9628 28243 0 =============================================== RECORD LEVEL STATISTICS TOTAL RECORDS BY DATASET ============================== DD NAME WRITE RECORD ------------------------------ PBM01D1 103957 ------------------------------ TOTAL 103957 ============================== SEGMENT LEVEL STATISTICS 의필드은다음과같다. DBD NAME SEG MENT LOGICAL PARENT LOGICAL CHILD SECONDARY INDEX 같은라인의통계정보가적용되는 DBD의이름이다. 같은라인의통계정보가적용되는세그먼트의이름이다. 입력데이터셋에들어있는 Logical Relationship의논리적부모세그먼트인스턴스의총개수이다. 입력데이터셋에들어있는 Logical Relationship의논리적자식세그먼트인스턴스의총개수이다. 입력데이터셋에들어있는 Secondary Index 세그먼트인스턴스의총개수이다. RECORD LEVEL STATISTICS 의필드은다음과같다. DD NAME WRITE RECORD Prefix Resolution 정보가적용될데이터베이스데이터셋의 DD 이름이다. Prefix Resolution 출력데이터셋에쓰여진 DD 별레코드건수이다. 사용예제 다음은 HD 재편성 Reload 유틸리티인 DFSURGL0에서생성한데이터셋을 SORTIN DD로입력받아 Prefix Resolution 데이터셋을 DFSURWF3 DD로출력하는예제이다. //DFSURG10 JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* D B P R E F I X R E S O L U T I O N 62 Tibero HiDB 유틸리티참조안내서

//******************************************************************* //STEP010 EXEC PGM=DFSURG10 //STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1200 //SORTLIB DD DSN=SORT.SORTLIB,DISP=SHR //SORTIN DD DSN=TMAX01.DFSURWF1,DISP=(OLD,DELETE,KEEP) //SORTWK01 DD SPACE=(CYL,80),UNIT=3380 //SORTWK02 DD SPACE=(CYL,80),UNIT=3380 //SORTWK03 DD SPACE=(CYL,80),UNIT=3380 //DFSURWF2 DD DSN=TMAX01.DFSURWF2,DISP=(,CATLG,DELETE), // UNIT=3380, // DCB=(BLKSIZE=1008,LRECL=900,RECFM=VB), // SPACE=(CYL,(50,10)) //DFSURWF3 DD DSN=TMAX01.DFSURWF3,DISP=(,CATLG,DELETE), // UNIT=3380, // DCB=(BLKSIZE=1008,LRECL=300,RECFM=VB), // SPACE=(CYL,(50,10)) //DFSURCDS DD DSN=TMAX01.DFSURCDS,DISP=(OLD,DELETE,KEEP) /* 유의사항 DFSURG10 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 SYSPRINT DD 에출력하고에러에해당하는코드를반환한다. DFSURG10 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 DFSURG10 유틸리티프로그램에러 16 SORT 프로그램에서에러가발생한경우에발생한다. 제 3 장재편성유틸리티 63

3.10. DFSURGL0 DFSURGL0 유틸리티는 HD 재편성 Unload 유틸리티인 DFSURGU0에서생성한데이터셋을입력으로하여 HDAM, HIDAM 또는 HISAM 데이터베이스로 Reload한다. DFSURGL0 유틸리티프로그램은다음과같은기능을수행한다. DFSURGU0 유틸리티가생성한재편성용 Unload 데이터셋을 HDAM, HIDAM, HISAM 데이터베이스로 Reload Logical Relationship 및 Secondary Index 정보가담긴워크데이터셋생성 데이터베이스 Reload 후세그먼트통계정보출력 OpenFrame 의 DFSURGL0 유틸리티는 IBM IMS/DB 의 DFSURGL0 유틸리티에대응한다. EXEC 설정 EXEC 문장의설정은다음과같다. PGM=DFSRRC00,PARM='ULU,DFSURGL0,dbd-name' PGM PARM DFSURGL0 유틸리티는 IMS/DB 사용프로그램의실행유틸리티인 DFSRRC00 을통해실행된다. - ULU,DFSURGL0: 유틸리티 Region의 DFSURGL0을실행한다. - dbd-name: Reload 대상데이터베이스의 DBD 이름을지정한다. DD 설정 DD 설정은다음과같다. IMS DD database DD SYSPRINT DD EXEC 문장에서파라미터로입력한 DBD가위치하는라이브러리를지정한다. 필수이다. Unload 대상데이터베이스데이터셋을지정한다. 데이터베이스 DD 이름은반드시 DBD에서기술된 DD 이름과동일해야한다. HIDAM 데이터베이스인경우관련인덱스데이터셋도함께지정해야한다. 필수이다. DFSURGL0 유틸리티의메시지가출력된다. 필수이다. 64 Tibero HiDB 유틸리티참조안내서

DFSUINPT DD DFSURWF1 DD DFSURCDS DD HD 재편성 Unload 유틸리티인 DFSURGU0에서생성한데이터셋으로 Reload 대상입력데이터셋을지정한다. 필수이다. Reload 대상데이터베이스가세그먼트간의 Logical Relationship을갖는경우생성할작업용데이터셋을지정한다. 데이터셋은 Prefix Resolution 유틸리티인 DFSURG10에서입력데이터셋으로사용되며 Reload할때발생한 Logical Re lationship 또는 Secondary Index 관련정보가담긴다. 예비재편성유틸리티인 ADMPRG에서생성한컨트롤데이터셋을지정한다. 선택이다. 명령어설정 OpenFrame 의 DFSURGL0 유틸리티는명령어를사용하지않는다. 따라서 IBM Mainframe 의컨트롤문장 이기술되더라도무시한다. 통계정보 데이터베이스 Reload 작업이정상적으로종료되면다음과같은통계정보를 SYSPRINT DD 에출력한다. *** HIERARCHICAL DIRECT DB REORG RELOAD *** SEGMENT LEVEL STATISTICS TOTAL SEGMENTS BY SEGMENT TYPE =========================================== SEGMENT SEGMENT NAME LEVEL RELOADED DIFFERENCE ------------------------------------------- PBM01VAA 1 9628 PBM01VAD 2 9628 PBM01VAE 2 0 PBM01VAB 2 28243 PBM01VAF 3 28243 PBM01VAC 3 15586 PBM01VAG 2 0 ------------------------------------------- TOTAL SEGMENTS IN DATABASE UNLOADED RELOADED DIFFERENCE 91328 91328 =========================================== 제 3 장재편성유틸리티 65

SEGMENT LEVEL STATISTICS 의필드은다음과같다. SEGMENT NAME SEGMENT LEVEL RELOADED DIFFERENCE 같은라인의통계정보가적용되는세그먼트이름이다. 데이터베이스내세그먼트의계층레벨번호이다. 데이터베이스에 Reload된세그먼트인스턴스의총개수이다. Reload 건수와 Unload 건수가일치하면공백으로표시된다. Reload 건수가더많은경우는플러스 (+) 기호와, Unload 건수가더많은경우는마이너스 (-) 기호와해당건수가함께표시된다. TOTAL SEGMENTS IN DATABASE 의필드은다음과같다. UNLOADED RELOADED DIFFERENCE HD 재편성 Unload 유틸리티인 DFSURGU0에서 Unload할때계수한모든세그먼트인스턴스들의개수이다. HD 재편성 Reload 유틸리티인 DFSURGL0에서 Reload할때계수한모든세그먼트인스턴스들의개수이다. Reload 건수와 Unload 건수가일치하면공백으로표시된다. 같지않으면차이나는건수가표시된다. 사용예제 다음은 HD 재편성 Unload 유틸리티인 DFSURGU0에서생성한 TMAX01.DB1 데이터셋을 DFSUINPT DD로지정하여 TMAX01DB DBD에서정의한데이터베이스로 Reload하는예제이다. TMAX01I1 DD는인덱스데이터셋을지정한것이며 TMAX01D1과 TMAX01D2 DD는데이터베이스의데이터셋을지정한것이다. DFSURWF1 DD는 Logical Relationship 정보가들어있는 TMAX01.DFSURWF1 데이터셋을지정한것으로, Reload 중생성되며 Prefix Resolution 유틸리티인 DFSURG10에서입력데이터셋으로사용된다. //DFSURGL0 JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* R E L O A D ( H I D A M ) //******************************************************************* //STEP020 EXEC PGM=DFSRRC00,PARM='ULU,DFSURGL0,TMAX01DB' //STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR //IMS DD DSN=IMS.DBDMOD,DISP=SHR //SYSPRINT DD SYSOUT=* //DFSUINPT DD DSN=TMAX01.DB1,DISP=SHR //DFSURWF1 DD DSN=TMAX01.DFSURWF1,UNIT=3380, // SPACE=(TRK,(5000,500),RLSE), // DCB=(BLKSIZE=1008,LRECL=300,RECFM=VB), 66 Tibero HiDB 유틸리티참조안내서

// DISP=(,CATLG,DELETE) //DFSURCDS DD DSN=TMAX01.DFSURCDS,DISP=SHR //TMAX01I1 DD DSN=TMAX01.IX1,DISP=SHR //TMAX01D1 DD DSN=TMAX01.DD1,DISP=SHR //TMAX01D2 DD DSN=TMAX01.DD2,DISP=SHR 유의사항 DFSURGL0 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 SYSPRINT DD 에출력하고에러에해당하는코드를반환한다. DFSURGL0 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 4 8 16 Reload 대상세그먼트가존재하지않는경우에발생한다. Reload 건수와 Unload 건수가불일치하는경우에발생한다. 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 데이터베이스 Reload 작업의실패 - 기타 DFSURGL0 유틸리티프로그램에러 3.11. DFSURGP0 DFSURGP0 유틸리티는 Prefix Resolution 유틸리티인 DFSURG10에서생성한데이터셋을입력받아논리관계를갖는세그먼트들각각의 Prefix 부분을갱신한다. OpenFrame의 DFSURGP0 유틸리티는 IBM IMS/DB의 DFSURGP0 유틸리티에대응한다. EXEC 설정 EXEC 문장의설정은다음과같다. PGM=DFSRRC00,PARM='ULU,DFSURGP0' 제 3 장재편성유틸리티 67

PGM PARM DFSURGP0 유틸리티는 IMS/DB 사용프로그램의실행유틸리티인 DFSRRC00 을통해실행된다. 유틸리티 Region의 DFSURGP0을실행한다. DD 설정 DD 설정은다음과같다. IMS DD database DD DFSURWF3 DD SYSPRINT DD SYSIN DD 재편성대상데이터베이스의 DBD가위치하는라이브러리를지정한다. 필수이다. 재편성대상데이터베이스의데이터셋을지정한다. DD 이름은 DBD에서지정한것과동일해야한다. 필수이다. Prefix Resolution 유틸리티인 DFSURG10에서 DFSURWF3 DD로생성한데이터셋을지정한다. 필수이다. DFSURGP0 유틸리티의메시지가출력된다. 필수이다. 입력컨트롤문장들이들어있는데이터셋이나 OpenFrame에서는참조하지않는다. 명령어설정 OpenFrame 의 DFSURGP0 유틸리티는컨트롤문장을사용하지않는다. 통계정보 Prefix Update 작업이정상적으로종료되면다음과같은통계정보를 SYSPRINT DD 에출력한다. *** HIERARCHICAL DIRECT DB PREFIX UPDATE *** RECORD LEVEL STATISTICS TOTAL RECORDS BY DATASET =============================================== DD NAME READ UPDATE UPDATE RECORD RECORD POINTER ----------------------------------------------- PBM01D1 3252 3252 103957 ----------------------------------------------- 68 Tibero HiDB 유틸리티참조안내서

TOTAL 3252 3252 103957 =============================================== RECORD LEVEL STATISTICS 의필드은다음과같다. DD NAME READ RECORD UPDATE RECORD UPDATE POINTER Prefix Update 작업의대상이되는데이터베이스의 DD 이름으로 DBD에기술된것과동일하다. DFSURWF3 DD의입력데이터셋의읽은레코드총개수이다. Prefix Update를실시한테이터베이스에서갱신된레코드의총개수이다. 갱신된 Prefix의총개수이다. 사용예제 다음은 DFSURWF3 DD로입력받은 TMAX01.DFSURWF3 데이터셋을읽어데이터베이스데이터셋인 TMAX01.TMAX1DD1과 TMAX01.TMAX1DD2의세그먼트 Prefix를갱신하는예제이다. //DFSURGP0 JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* P R E F I X U P D A T E //******************************************************************* //STEP010 EXEC PGM=DFSRRC00,PARM='ULU,DFSURGP0' //STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR //SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1200 //IMS DD DSN=IMS.DBDMOD,DISP=SHR //DFSURWF3 DD DSN=TMAX01.DFSURWF3,DISP=(OLD,DELETE,KEEP) //TMAX1I1 DD DSN=TMAX01.TMAX1IX1,DISP=OLD //TMAX1D1 DD DSN=TMAX01.TMAX1DD1,DISP=OLD //TMAX1D2 DD DSN=TMAX01.TMAX1DD2,DISP=OLD //DFSVSAMP DD * 2048,10 /* 유의사항 DFSURGP0 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 제 3 장재편성유틸리티 69

해당에러메시지를 SYSPRINT DD 에출력하고에러에해당하는코드를반환한다. DFSURGP0 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 DFSURGP0 유틸리티프로그램에러 3.12. DFSURGU0 DFSURGU0 유틸리티는 HDAM, HIDAM 또는 HISAM 액세스메소드로정의된데이터베이스를읽어데이터베이스재편성에필요한순차데이터셋 (SDS) 을생성한다. DFSURGU0 유틸리티프로그램으로다음과같은기능을수행한다. HDAM, HIDAM, HISAM 데이터베이스의재편성용 Unload 데이터셋생성 Unload 데이터셋의세그먼트통계정보출력 OpenFrame 의 DFSURGU0 유틸리티는 IBM IMS/DB 의 DFSURGU0 유틸리티에대응한다. EXEC 설정 EXEC 문장의설정은다음과같다. PGM=DFSRRC00,PARM='ULU,DFSURGU0,dbd-name' PGM PARM DFSURGU0 유틸리티는 IMS/DB 사용프로그램의실행유틸리티인 DFSRRC00 을통해실행된다. - ULU,DFSURGU0: 유틸리티 Region의 DFSURGU0을실행한다. - dbd-name: Unload 대상데이터베이스의 DBD 이름을지정한다. 70 Tibero HiDB 유틸리티참조안내서

DD 설정 DD 설정은다음과같다. IMS DD database DD SYSPRINT DD DFSURGU1 DD EXEC 문장에서파라미터로입력한 DBD가위치하는라이브러리를지정한다. 필수이다. Unload 대상데이터베이스데이터셋을지정한다. 데이터베이스 DD 이름은반드시 DBD에서기술된 DD 이름과동일해야한다. HIDAM 데이터베이스인경우관련인덱스데이터셋도함께지정해야한다. 필수이다. DFSURGU0 유틸리티의메시지가출력된다. 필수이다. 데이터베이스를 Unload하여출력할순차데이터셋을지정한다. 필수이다. 명령어설정 OpenFrame 의 DFSURGU0 유틸리티는명령어를사용하지않는다. 따라서 IBM Mainframe 의내용이기 술되더라도무시한다. 통계정보 데이터베이스 Unload 작업이정상적으로종료되면다음과같은통계정보를 SYSPRINT DD 에출력한다. ******************** HIERARCHICAL DIRECT DB REORG UNLOAD ********************** D A T A B A S E S T A T I S T I C S SEGMENT LEVEL STATISTICS RECORD LEVEL STATISTICS =============================================================================== MAXMUM AVG MAXIMUM AVG SEGMENT SEGMENT TOTAL SEGMENTS AVG COUNT PER TWINS TWINS CHILDREN CHILDREN NAME LEVEL BY SEG TYPE DB RECORD ------------------------------------------------------------------------------- 1 1.00 1873 8.48 PBM01VAA 1 9628 1.00 1 1.00 0 0.00 PBM01VAD 2 9628 1.00 0 0.00 0 0.00 PBM01VAE 2 0 0.00 567 2.93 12 1.55 PBM01VAB 2 28243 2.93 1 1.00 0 0.00 PBM01VAF 3 28243 2.93 11 0.55 0 0.00 PBM01VAC 3 15586 1.61 ------------------------------------------------------------------------------- TOTAL SEGMENTS IN DATABASE= 91328 AVERAGE DATABASE RECORD LENGTH= 2271 BYTES =============================================================================== 제 3 장재편성유틸리티 71

SEGMENT LEVEL STATISTICS 의필드은다음과같다. MAXIMUM TWINS AVG TWINS MAXIMUM CHIL DREN AVG CHILDREN SEGMENT NAME SEGMENT LEVEL 같은부모세그먼트인스턴스에종속된트윈세그먼트인스턴스의최대개수이다. 루트세그먼트는항상 1의값을가진다. 같은부모세그먼트인스턴스에종속된트윈세그먼트인스턴스의평균개수이다. 같은부모세그먼트인스턴스에종속된자식세그먼트인스턴스의최대개수이다. 같은부모세그먼트인스턴스에종속된자식세그먼트인스턴스의평균개수이다. 최하위세그먼트의경우 0의값을가진다. 같은라인의통계정보가적용되는세그먼트이름이다. 세그먼트의계층레벨번호이다. 상위에서하위로나열된다. RECORD LEVEL STATISTICS 의필드은다음과같다. TOTAL SEGMENTS BY SEG TYPE TOTAL COUNT PER DB RECORD 같은세그먼트타입을가진인스턴스의총개수이다. 1개의레코드에들어있는같은세그먼트타입을가진인스턴스의평균개수이다. 사용예제 다음은 TMAX01DB DBD에서정의한데이터베이스를읽어 DFSURGU1 DD의 TMAX01.DB1 데이터셋으 로 Unload하는예제이다. TMAX01I1 DD는인덱스데이터셋을지정한것이며 TMAX01D1과 TMAX01D2 DD는데이터베이스데이터셋을지정한것이다. //DFSURGU0 JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //****************************************************************** //* HD REORGANIZATION UNLOAD UTILITY (DFSURGU0) * //****************************************************************** //STEP010 EXEC PGM=DFSRRC00,PARM='ULU,DFSURGU0,TMAX01DB' //STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR //IMS DD DSN=IMS.DBDMOD,DISP=SHR //SYSPRINT DD SYSOUT=* //TMAX01I1 DD DSN=TMAX01.IX1,DISP=SHR //TMAX01D1 DD DSN=TMAX01.DD1,DISP=SHR //TMAX01D2 DD DSN=TMAX01.DD2,DISP=SHR //DFSURGU1 DD DSN=TMAX01.DB1,DISP=(,CATLG,DELETE), // UNIT=3380,LABEL=(,SL) 72 Tibero HiDB 유틸리티참조안내서

유의사항 DFSURGU0 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 SYSPRINT DD 에출력하고에러에해당하는코드를반환한다. DFSURGU0 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 DFSURGU0 유틸리티프로그램에러 3.13. DFSURPR0 DFSURPR0 유틸리티는데이터베이스재편성관련유틸리티들의입력으로사용되는컨트롤데이터셋을생성한다. 이컨트롤데이터셋에는사용자가 SYSIN에서기술한컨트롤문장과관련 DBD 정보가저장된다. OpenFrame의 DFSURPR0 유틸리티는 IBM IMS/DB의 DFSURPR0 유틸리티와대응한다. DD 설정 DD 설정은다음과같다. IMS DD SYSIN DD SYSPRINT DD DFSURCDS DD 컨트롤문장에서입력한데이터베이스를정의한 DBD가위치하는라이브러리를지정한다. 필수이다. 컨트롤문장들을입력한다. 필수이다. DFSURPR0 유틸리티의메시지가출력된다. 필수이다. DFSURPR0 유틸리티가생성하는컨트롤데이터셋을기술한다. 필수이다. 제 3 장재편성유틸리티 73

명령어설정 DFSURPR0 유틸리티에서기술하는명령어는다음과같다. DBIL / DBR / DBM 데이터베이스재편성작업과관련된데이터베이스들을지정하는명령어이다. 명령어구문은다음과같다. {DBIL DBR DBM}=dbd-name[,...] DBIL DBR DBM dbd-name[,...] OpenFrame에서는 DBIL, DBR, DBM 명령어구분의의미가없으므로아무값을기술해도무방하다. 데이터베이스재편성작업과관련된모든데이터베이스들의 DBD 이름을기술한다. DBD 이름은반드시 8자로기술해야하며 DBD 이름의길이가 8자보다적은경우는나머지를공백으로채워야한다. OPTIONS 데이터베이스재편성작업에서참조하는옵션을지정하는명령어이다. 명령어구문은다음과같다. OPTIONS=([{NOPUNCH PUNCH}][,STAT][,SUMM][,{ABENDOFF ABEND}]) OPTIONS IBM Mainframe에서는데이터베이스재편성작업중참조하는옵션들을지정하는이나 OpenFrame에서는내부적으로옵션에대한참조처리를하지않는다. 따라서어떤옵션을기술해도문법적에러는발생하지않는다. 사용예제 SYSIN에서기술한데이터베이스 DBD들을참조하여 TMAX.DFSURCDS 컨트롤데이터셋을생성하는예제이다. //DFSURPR0 JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* P R E R E O R G //******************************************************************* //STEP010 EXEC PGM=DFSRRC00,PARM='ULU,DFSURPR0' //* **** EXECUTE PREREORGANIZATION UTILITY **** //STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR 74 Tibero HiDB 유틸리티참조안내서

//IMS DD DSN=IMS.DBDMOD,DISP=SHR //DFSURCDS DD DSN=TMAX.DFSURCDS,DISP=(,CATLG,DELETE), // UNIT=3380, // DCB=(BLKSIZE=1600),SPACE=(01600,(01500,0500),RLSE) //SYSPRINT DD SYSOUT=* //SYSIN DD * DBIL=TMAXDB1,TMAXDB2 OPTIONS=(,STAT,SUMM) /* 유의사항 DFSURPR0 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 SYSPRINT DD 에출력하고에러에해당하는코드를반환한다. DFSURPR0 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 DFSURPR0 유틸리티프로그램에러 3.14. DFSURRL0 DFSURRL0 유틸리티는 HISAM 재편성 Unload 유틸리티인 DFSURUL0에서생성한데이터셋을입력으로하여 HISAM 또는인덱스데이터베이스로 Reload한다. DFSURRL0 유틸리티프로그램은다음과같은기능을수행한다. HISAM 데이터베이스 Reload Secondary Index 데이터베이스 Reload HIDAM 데이터베이스의 Primary Index Reload 제 3 장재편성유틸리티 75

OpenFrame 의 DFSURRL0 유틸리티는 IBM IMS/DB 의 DFSURRL0 유틸리티에대응한다. EXEC 설정 EXEC 문장의설정은다음과같다. PGM=DFSRRC00,PARM='ULU,DFSURRL0' PGM PARM DFSURRL0 유틸리티는 IMS/DB 사용프로그램의실행유틸리티인 DFSRRC00 을통해실행된다. 유틸리티 Region의 DFSURRL0을실행한다. DD 설정 DD 설정은다음과같다. IMS DD database DD SYSPRINT DD DFSUIN01 DD DFSURWF1 DD SYSIN DD EXEC 문장에서파라미터로입력한 DBD가위치하는라이브러리를지정한다. 필수이다. Unload 대상데이터베이스데이터셋을지정한다. 데이터베이스 DD 이름은반드시 DBD에서기술된 DD 이름과동일해야한다. HIDAM 데이터베이스인경우관련인덱스데이터셋도함께지정해야한다. 필수이다. DFSURRL0 유틸리티의메시지가출력된다. 필수이다. HISAM 재편성 Unload 유틸리티인 DFSURUL0에서생성한데이터셋으로 Reload 대상입력데이터셋을지정한다. 필수이다. Reload 대상데이터베이스가세그먼트간의 Logical Relationship을갖는경우생성할작업용데이터셋을지정한다. 데이터셋은 Prefix Resolution 유틸리티인 DFSURG10에서입력데이터셋으로사용되며 Reload할때발생한 Logical Re lationship 또는 Secondary Index 관련정보가담긴다. DFSURRL0 유틸리티리처리옵션등을지정하는컨트롤문장을기술하는 DD 이나 OpenFrame에서는사용하지않는다. 명령어설정 OpenFrame 의 DFSURRL0 유틸리티는명령어를사용하지않는다. 따라서 IBM Mainframe 의컨트롤문장 이기술되더라도무시한다. 76 Tibero HiDB 유틸리티참조안내서

통계정보 HISAM 데이터베이스 Reload 작업이정상적으로종료되면다음과같은통계정보를 SYSPRINT DD에출력한다. *** HIERARCHICAL DIRECT DB REORG RELOAD *** SEGMENT LEVEL STATISTICS TOTAL SEGMENTS BY SEGMENT TYPE =========================================== SEGMENT SEGMENT NAME LEVEL RELOADED DIFFERENCE ------------------------------------------- PBM01VAA 1 9628 PBM01VAD 2 9628 PBM01VAE 2 0 PBM01VAB 2 28243 PBM01VAF 3 28243 PBM01VAC 3 15586 PBM01VAG 2 0 ------------------------------------------- TOTAL SEGMENTS IN DATABASE UNLOADED RELOADED DIFFERENCE 91328 91328 =========================================== SEGMENT LEVEL STATISTICS 의필드은다음과같다. SEGMENT NAME SEGMENT LEVEL RELOADED DIFFERENCE 같은라인의통계정보가적용되는세그먼트이름이다. 데이터베이스내세그먼트의계층레벨번호이다. 데이터베이스에 Reload된세그먼트인스턴스의총개수이다. Reload 건수와 Unload 건수가일치하면공백으로표시된다. Reload 건수가더많은경우는플러스 (+) 기호와, Unload 건수가더많은경우는마이너스 (-) 기호와해당건수가함께표시된다. Secondary Index 데이터베이스 Reload 작업이정상적으로종료되면다음과같은통계정보를 SYSPRINT DD에출력한다. *** SECONDARY INDEX DB UNLOAD *** RECORED LEVEL STATISTICS TOTAL RECORDS BY DATASET ==================================== DD NAME READ WRITE 제 3 장재편성유틸리티 77

RECORD RECORD ------------------------------------ TMXIDX1 1320 1320 ------------------------------------ TOTAL 1320 1320 ==================================== TOTAL SEGMENTS IN DATABASE 의필드은다음과같다. DD NAME READ RECORD WRITE RECORD Reload 대상데이터베이스의 DD 이름이다. 입력데이터셋에서읽은레코드총개수이다. Reload 대상데이터베이스에기록한레코드총개수이다. 사용예제 다음은 HISAM 재편성 Unload 유틸리티인 DFSURUL0 에서생성한 TMAX01.PDFSUR10 데이터셋을 DFSUIN01 DD 로지정하여 TMAX1S2 에서지정한 HISAM 데이터베이스로 Reload 하는예제이다. //DFSURRL0 JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* R E L O A D ( H I S A M ) //******************************************************************* //STEP060 EXEC PGM=DFSRRC00,PARM='ULU,DFSURRL0' //STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR //DFSRESLB DD DSN=IMSVS.RESLIB,DISP=SHR //IMS DD DSN=IMS.DBDMOD,DISP=SHR //SYSPRINT DD SYSOUT=* //DFSUIN01 DD DSN=TMAX01.PDFSUR10,DISP=(OLD,DELETE,KEEP) //TMAX1S2 DD DSN=TMAX01.PBM02SI2,DISP=OLD //DFSVSAMP DD DSN=TMAX.PARMLIB(VSAMBUF),DISP=SHR //SYSIN DD * OPTIONS=STATS /* 유의사항 DFSURRL0 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 78 Tibero HiDB 유틸리티참조안내서

에러가발생한경우 해당에러메시지를 SYSPRINT DD 에출력하고에러에해당하는코드를반환한다. DFSURRL0 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 4 8 16 Reload 대상세그먼트가존재하지않는경우에발생한다. Reload 건수와 Unload 건수가불일치하는경우에발생한다. 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 데이터베이스 Reload 작업의실패 - 기타 DFSURRL0 유틸리티프로그램에러 3.15. DFSURUL0 DFSURUL0 유틸리티는 HISAM 재편성 Unload 유틸리티로다음과같은기능을수행한다. HISAM 데이터베이스 Unload HD Reload 유틸리티인 DFSURGL0 에서생성한 Secondary Index 정보데이터셋을입력으로받아 HISAM Reload 유틸리티인 DFSURRL0 의입력포맷에맞춘데이터셋생성 OpenFrame 의 DFSURUL0 유틸리티는 IBM IMS/DB 의 DFSURUL0 유틸리티에대응한다. EXEC 설정 EXEC 문장의설정은다음과같다. PGM=DFSRRC00,PARM='ULU,DFSURUL0' PGM PARM DFSURUL0 유틸리티는 IMS/DB 사용프로그램의실행유틸리티인 DFSRRC00 을통해실행된다. 유틸리티 Region의 DFSURUL0 유틸리티를실행한다. 제 3 장재편성유틸리티 79

DD 설정 DD 설정은다음과같다. IMS DD vsamksds DD vsamesds DD SYSPRINT DD dataout DD indexwrkds DD SYSIN DD 참조대상 DBD가위치하는라이브러리를지정한다. 필수이다. 재편성대상인데이터베이스의 VSAM KSDS 데이터셋을지정한다. vsamksds DD 이름은반드시 DBD에서기술된 DD 이름과동일해야한다. SYSIN에서위치 4에입력한 DD 이름과도동일해야한다. 필수이다. 재편성대상인데이터베이스의 VSAM ESDS 데이터셋을지정한다. vsamksds DD 이름은반드시 DBD에서기술된 DD 이름과동일해야한다. 필수이다. DFSURUL0 유틸리티의메시지가출력된다. 필수이다. 재편성된출력데이터셋을기술한다. SYSIN에서위치 22에입력한 DD명과동일해야하며필수이다. Prefix Resolution 유틸리티인 DFSURG10에서 DFSURIDX DD로생성한데이터셋을기술한다. SYSIN에서위치 40에입력한 DD 이름과동일해야하며필수이다. 입력컨트롤문장이담긴데이터셋을지정한다. 필수이다. 명령어설정 SYSIN 에기술된문장은위치에따라다음의내용을의미한다. 위치 1 R 또는 X 중에하나가입력되어야한다. - R: HISAM 재편성 Unload 기능을사용한다. - X: Secondary Index 재편성기능을사용한다. 2 3 4-12 13-21 22-30 1 또는 2 중하나가입력되어야한다. 출력데이터셋의개수를의미하나 Open Frame에서는입력과관계없이 1개의출력데이터셋만생성하고있다. M, E, R 또는공백중하나가입력되어야한다. OpenFrame에서는참조하지않는부분이나 E 또는 R을입력한경우위치 49에값이입력되어야한다. 재편성대상인데이터베이스의 DBD 이름을기술한다. 재편성대상인데이터베이스의 DD 이름을기술한다. DBD에기술된 DD 이름으로입력해야한다. 1번째출력데이터셋의 DD 이름을기술한다. JCL에해당 DD 이름이정의되어있어야한다. 80 Tibero HiDB 유틸리티참조안내서

위치 31-39 40-48 49 50-80 2번째출력데이터셋의 DD 이름을기술한다. JCL에해당 DD 이름이정의되어있어야한다. 컨트롤문장위치 1에서 X를지정한경우 Secondary Index 작업 (work) 데이터셋의 DD 이름이기술되어야한다. 컨트롤문장위치 3에서 E 또는 R을지정한경우 1Byte 상수가기술되어야한다. 주석또는 CI나레코드크기등을기술하는부분이나 OpenFrame에서는무시한다. 통계정보 HISAM 데이터베이스 Unload의경우작업이정상적으로종료되면다음과같은통계정보를 SYSPRINT DD에출력한다. ******* HIERARCHICAL INDEXED SEQUENTIAL DATA BASE REORGANIZATION UNLOAD ****** D A T A B A S E S T A T I S T I C S SEGMENT LEVEL STATISTICS RECORD LEVEL STATISTICS =============================================================================== MAXMUM AVG MAXIMUM AVG SEGMENT SEGMENT TOTAL SEGMENTS AVG COUNT PER TWINS TWINS CHILDREN CHILDREN NAME LEVEL BY SEG TYPE DB RECORD ------------------------------------------------------------------------------- 1 1.00 1873 8.48 PBM01VAA 1 9628 1.00 1 1.00 0 0.00 PBM01VAD 2 9628 1.00 0 0.00 0 0.00 PBM01VAE 2 0 0.00 567 2.93 12 1.55 PBM01VAB 2 28243 2.93 1 1.00 0 0.00 PBM01VAF 3 28243 2.93 11 0.55 0 0.00 PBM01VAC 3 15586 1.61 ------------------------------------------------------------------------------- TOTAL SEGMENTS IN DATABASE= 91328 AVERAGE DATABASE RECORD LENGTH= 2271 BYTES =============================================================================== SEGMENT LEVEL STATISTICS 의필드은다음과같다. MAXIMUM TWINS AVG TWINS MAXIMUM CHIL DREN 같은부모세그먼트인스턴스에종속된트윈세그먼트인스턴스의최대개수이다. 루트세그먼트는항상 1의값을가진다. 같은부모세그먼트인스턴스에종속된트윈세그먼트인스턴스의평균개수이다. 같은부모세그먼트인스턴스에종속된자식세그먼트인스턴스의최대개수이다. 제 3 장재편성유틸리티 81

AVG CHILDREN SEGMENT NAME SEGMENT LEVEL 같은부모세그먼트인스턴스에종속된자식세그먼트인스턴스의평균개수이다. 최하위세그먼트의경우 0의값을가진다. 같은라인의통계정보가적용되는세그먼트이름이다. 세그먼트의계층레벨번호이다. 상위에서하위로나열된다. RECORD LEVEL STATISTICS 의필드은다음과같다. TOTAL SEGMENTS BY SEG TYPE TOTAL COUNT PER DB RECORD 같은세그먼트타입을가진인스턴스의총개수이다. 1 개의레코드안의같은세그먼트타입을갖는인스턴스의평균개수이다. 재편성용 Secondary Index 작업 (work) 데이터셋을처리한경우작업이정상적으로종료되면다음과같 은통계정보를 SYSPRINT DD에출력한다. *** SECONDARY INDEX DB UNLOAD *** RECORED LEVEL STATISTICS TOTAL RECORDS BY DATASET ==================================== DD NAME READ WRITE RECORD RECORD ------------------------------------ TMXIDX1 1320 1320 ------------------------------------ TOTAL 1320 1320 ==================================== RECORD LEVEL STATISTICS 의필드은다음과같다. DD NAME READ RECORD WRITE RECORD 재편성대상데이터베이스의 DD 이름이다. Secondary Index 작업 (work) 데이터셋에서읽은레코드총개수이다. 출력데이터셋을생성할때기록한레코드총개수이다. 82 Tibero HiDB 유틸리티참조안내서

사용예제 다음은 NDXDS DD Secondary Index 작업 (work) 데이터셋을입력으로받아인덱스재편성용데이터셋 인 OUT1 DD와 OUT2 DD를각각생성하는예제이다. //DFSURUL0 JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //******************************************************************* //* U N L O A D ( D F S U R U L 0) //******************************************************************* //STEP010 EXEC PGM=DFSRRC00,PARM='ULU,DFSURUL0' //STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR //DFSRESLB DD DSN=IMSVS.RESLIB,DISP=SHR //IMS DD DSN=IMS.DBDMOD,DISP=SHR //SYSPRINT DD SYSOUT=* //NDXDS DD DSN=TMAX01.DFSURIDX,DISP=(OLD,DELETE,KEEP) //OUT1 DD DSN=TMAX01.PDFSUR05,DISP=(,CATLG,DELETE), // SPACE=(CYL,(2,1)),UNIT=WRKK //OUT2 DD DSN=PBM82.PDFSUR10,DISP=(,CATLG,DELETE), // SPACE=(CYL,(2,1)),UNIT=WRKK //TMAX1S1 DD DSN=TMAX01.PBM02SI1,DISP=OLD //TMAX1S2 DD DSN=TMAX01.PBM02SI2,DISP=OLD //DFSVSAMP DD DSN=TMAX.PARMLIB(VSAMBUF),DISP=SHR //SYSIN DD * X1MPBM02P1 TMAX1S1 OUT1 NDXDS X1MPBM02P2 TMAX1S2 OUT2 NDXDS /* 유의사항 DFSURUL0 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 SYSPRINT DD 에출력하고에러에해당하는코드를반환한다. DFSURUL0 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - 기타 DFSURUL0 유틸리티프로그램에러 제 3 장재편성유틸리티 83

제 4 장초기화유틸리티 본장에서는초기화유틸리티에대해기술한다. 4.1. DBFUMIN0 DBFUMIN0 유틸리티는 1개이상의 DEDB 데이터셋을초기화할때사용한다. DEDB의최소작업단위인 CI 영역을분석하여각영역별 Prefix와 Suffix 포맷에따라레코드의포인터연결작업및데이터초기화작업을진행한다. DEDB는그역할과특성에따라다음과같은 3가지영역으로구성된다. Root Addressable Part 데이터가먼저기록되는기본적인영역인 Base Section과할당된 Base Section의용량이초과되면기록되는 Dependent Overflow Section으로나뉜다. Independent Overflow Part Root Addressable Part 의 Overflow Section 용량이초과된경우사용하는영역이다. Sequential Dependent Part DEDB 를정의할때사용여부를선택적으로지정할수있으며, 데이터가순차적으로저장되기때문에 데이터수집이나로그같은대용량데이터의삽입속도를높이기위해사용된다. OpenFrame 의 DBFUMIN0 유틸리티는 IBM IMS/DB 의 DBFUMIN0 유틸리티에대응한다. EXEC 설정 EXEC 문장의설정은다음과같다. //STEP EXEC PGM=DBFUMIN0 PGM DBFUMIN0 유틸리티를실행한다. 제 4 장초기화유틸리티 85

DD 설정 DD 설정은다음과같다. ACBLIB DD areaname DD SYSPRINT DD CONTROL DD 초기화대상데이터베이스의정보를가지고있는 ACBLIB의 DBD 멤버가위치한라이브러리를지정한다. 초기화대상데이터베이스영역의데이터셋을지정한다. DBFUMIN0 유틸리티의에러메시지나통계를출력할데이터셋을지정한다. DBFUMIN0 유틸리티에서필요한입력컨트롤문장을기술한다. 명령어설정 DBFUMIN0 유틸리티의 CONTROL DD에기술하는명령어는다음과같다. AREA 초기화대상영역이름을지정하는명령으로명령어구문은다음과같다. AREA={areaname DD ALL} areaname DD ALL 초기화대상 areaname DD 이름을기술한다. 이름은 8자이내여야하며 1번에 1개의이름만지정가능하다. DEDB 내의모든영역을초기화할때지정한다. 사용예제 다음은 DEDB 내의모든영역을초기화하는예제이다. //DBFUMIN0 JOB MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K //FORMAT EXEC PGM=DBFUMIN0 //ACBLIB DD DSNAME=DEDB.ACBLIB(AREA01),DISP=SHR //DEDB1 DD DSNAME=IMS.TEST.DEDB1,DISP=OLD //DEDB2 DD DSNAME=IMS.TEST.DEDB2,DISP=OLD //DEDB3 DD DSNAME=IMS.TEST.DEDB3,DISP=OLD //SYSPRINT DD SYSOUT=* //CONTROL DD * AREA=ALL /* 86 Tibero HiDB 유틸리티참조안내서

유의사항 DBFUMIN0 유틸리티프로그램을실행하기전에 IDCAMS를사용하여 DEDB 데이터셋을생성하고 ACBLIB 에초기화대상데이터베이스의 DBD 멤버가존재해야한다. 여러개의 AREA를초기화하는도중에러가발생하면초기화진행을중단한다. DBFUMIN0 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 SYSPRINT DD 에출력하고에러에해당하는코드를반환한다. DBFUMIN0 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. - OpenFrame 시스템라이브러리초기화실패 - DEDB 초기화작업의실패 - 기타 DBFUMIN0 유틸리티프로그램에러 제 4 장초기화유틸리티 87

제 5 장지원유틸리티 본장에서는지원유틸리티에대해기술한다. 5.1. ADMDBA ADMDBA는 Batch 환경에서 COBOL이나 PL/I 언어로작성된애플리케이션을사용하지않고도 DL/I 함수를호출할수있게해주는유틸리티프로그램이다. ADMDBA 유틸리티를통해 DL/I 함수의모든기능을호출하여 HiDB의데이터를직접조회하거나갱신할수있다. ADMDBA 유틸리티프로그램으로다음과같은기능을수행할수있다. DL/I 함수호출기능 DL/I 함수호출후 Status Code 에따른논리제어기능 DL/I 함수호출결과와관련된각종정보출력기능 ( 세그먼트내용과길이, PCB 내용, Status Code, 시 간정보등 ) DL/I 함수호출통계정보출력기능 OpenFrame 의 ADMDBA 유틸리티는 Hitachi VOS3 시스템에서기동하는 ADM/DB 의 ADMDBA 유틸리티 에대응한다. 참고 DL/I 함수에대한자세한내용은 "Tibero HiDB 안내서 " 의 " 제 3 장 DL/I 함수호출 " 을참고한다. DD 설정 DD 설정은다음과같다. ADM@DBD DD 사용자가접근할데이터베이스를정의한 DBD가위치하는라이브러리를지정한다. 선택이며지정하지않을경우 ims.conf의 DBDLIB_NAME에서기술한라이브러리를사용한다. 제 5 장지원유틸리티 89

ADM@PAS DD database DD ADM@LST DD ADM@IPT DD DBA@IPT DD 사용자가접근할데이터베이스를정의한 PAS가위치하는라이브러리를지정한다. 선택이며지정하지않을경우 ims.conf의 PSBLIB_NAME에서기술한라이브러리를사용한다. 사용자가접근할데이터베이스를구성하는모든데이터셋을지정한다. 데이터베이스 DD 이름은반드시 DBD에서기술한 DD 이름과동일해야한다. HIDAM 데이터베이스인경우관련인덱스데이터셋도함께지정해야한다. 필수이다. ADM과 ADMDBA 유틸리티의메시지를출력할데이터셋을지정한다. 필수이다. ADMDBA를호출하는 ADM 유틸리티에서사용하는컨트롤문장들을입력한다. 필수이다. ADMDBA 유틸리티에서사용하는컨트롤문장들을입력한다. 필수이다. 명령어설정 ADM@IPT DD에기술하는명령어는다음과같다. ADMBCH Batch 환경에서 ADMDBA 유틸리티를실행하기위한명령어이다. Online 환경에서는 ADMBMP 명령을사용하나미지원기능이다. 명령어구문은다음과같다. ADMBCH PGM=ADMDBA,PAS=pas-name PGM PAS Batch 환경에서 ADMDBA을실행한다. 접근하고자하는데이터베이스에대해 1개이상의 PCB가정의된 PAS 이름을지정한다. DBA@IPT DD 에기술하는명령어는다음과같다. 명령어 DBA SET DISP ADMDBA의각종처리조건을지정한다. 컨트롤문장의입력타입, 각종메시지, 호출결과의출력여부, 데이터기억영역의설정등을지정한다. DL/I 함수호출후각종정보출력여부를지정한다. 90 Tibero HiDB 유틸리티참조안내서

명령어 EXEC CALL MATCH IF DBAGEN END DL/I 함수호출에관련된통계정보를출력한다. DL/I 함수를호출하는명령어이다. DL/I 함수호출후의 Status Code나세그먼트이름등이예상한결과와일치하는지비교한다. DL/I 함수호출후결과에대한비교조건과값을지정하여특정컨트롤문장으로분기처리한다. 하나의논리처리단위가종료되는것을나타낸다. 컨트롤문장의마지막인것을지정한다. ADMDBA 의명령어는일반적으로다음의순서로입력한다. @ DBA @ SET... @ DISP... @ CALL... SSA데이터또는삽입, 갱신데이터 @ CALL... SSA데이터또는삽입, 갱신데이터 @ MATCH... 비교데이터 @ EXEC... @ DBA LOGIC=Y @ DISP...... @LOOP CALL... @ IF BRANCHE(@LOOP, 비교데이터 )... @ DBAGEN @ END 명령어를기술할때기본적인문법규칙은다음과같다. 명령어를입력할때 '@' 로시작하고하나이상의공백을기술한다음명령어를기술한다. 명령어에대한레이블을지정할때 '@' 다음에공백없이기술한다. DBA 명령어는복수입력이가능하다. DBA 명령어를지정할경우 LOGIC=Y 로설정하면 DBA 명령어는 DBAGEN 명령어와반드시한쌍을이 루어야한다. 그러나중첩구조로는기술할수없다. 제 5 장지원유틸리티 91

END 명령어는입력명령어들의가장마지막에지정한다. SET, DISP 명령어는여러번기술이가능하나현재실행중인명령어전에최종적으로기술한내용이 적용된다. CALL 명령어는필요에따라 SSA 데이터또는입력데이터를하나이상지정할수있다. 명령어를지정할때다음라인으로이어지는경우라인의마지막에콤마 (,) 를지정한다. SSA 데이터나삽입, 갱신데이터를기술하였을때다음라인으로이어지는경우 72 컬럼에공백이외의 문자를지정한다. 선두컬럼이애스터리스크 (*) 로시작하거나기술한명령어의옵션이후공백다음에애스터리스크 (*) 를 지정하면주석으로간주한다. 다음은각명령어별옵션에대한상세이다. DBA ADMDBA의처리조건을지정한다. 처리조건에는 Status Code별처리, DL/I 호출에필요한기억영역크기, SSA 최대개수, 논리기능사용여부등이있다. 명령어구문은다음과같다. @ DBA [COND=((status-code,{RTN ABEND})[,(status-code,{RTN ABEND}),...])] [,WORK=area-size] [,SSA=(max-ssa-num,max-cont-card-num)] [,EXIT=([user-exit-rtn1][,user-exit-rtn2])] [,LOGIC={(Y[,{statement-num 100}]) N}] COND DL/I 함수호출후지정한 Status Code 가반환되었을때의처리방법을지정한다. - status-code: 2Byte 크기의문자로지정한다. Status Code 그룹을지정하는경우는 1 번째자리에 Status Code 의선두문자를지정하고 2 번째자리에는역슬래쉬 (\) 문자 를지정한다. ( 예 : P\,C\ ) Status Code별처리방법에대해서는다음의명령을지정한다. - RTN: ADM에정상처리코드를반환한다. - ABEND: ADM에에러처리코드를반환한다. COND 문의각 Status Code별처리방법은최대 5개까지지정가능하다. 92 Tibero HiDB 유틸리티참조안내서

WORK SSA EXIT LOGIC DL/I 함수를호출할때사용하는데이터기억영역의최대크기를지정한다. 지정하지않을경우기본값으로 500Byte가지정된다. 지정한크기보다큰데이터를읽은경우는정상적인동작을보장하기어렵기때문에충분한크기로지정해야한다. 지정가능한 SSA의최대개수와데이터스테이트먼트로계속지정가능한카드의최대수를지정하는으로미지원기능이다. ADM을호출하기전과후에호출할사용자함수 (User Exit Routine) 를지정하는으로미지원기능이다. 논리기능의사용여부를지정한다. 논리기능이란 IF 명령어를이용한분기처리기능을의미한다. 논리기능을사용하는것으로지정한경우다른 DBA 명령어가시작되기전에 DBAGEN 명령어를지정해야한다. statement-num 은사용가능한컨트롤문장의개수를지정하는것이나 OpenFrame 에 서는미지원하는기능으로지정하더라도무시된다. DBA 명령어를기술할때기본규칙은다음과같다. WORK 로설정한기억영역의내용은다음의 DBA 명령어가입력될때초기화된다. COND 설정은다음 DBA 명령어의 COND 설정이입력되기전까지유효하다. 다음은 DBA 명령어의입력예제이다. DL/I 함수호출의 Status Code 가 PA 이거나 C 로시작하는경우에 러종료한다. 또한논리기능의사용을지정하였으므로 IF 명령어를사용할수있다. 데이터기억영역의 크기는 200Byte 로설정하였다. @ DBA COND=((PA,ABEND),(C\,ABEND)),LOGIC=Y,WORK=200 SET 컨트롤문장의입력타입, 각종메시지, 호출결과의출력여부, 데이터기억영역의설정등을지정한다. 명령어구문은다음과같다. @ S[ET] [INPUT={R C}] [,LIST=({Y N})[,{Y N}])] [,CI[NIT]=(count-var[,init-val])] [,CO[UNT]=(count-var[,inc-val])] [,PCB=({Y[,[pcb-name][,pcb-num]] N})] [,DATA=(position[,length][,{SP C0 B0}])] INPUT 컨트롤문장의입력타입을지정한다. 제 5 장지원유틸리티 93

- R: DBA@IPT 로입력한다. ( 기본값 ) - C: TSS 단말로입력할때지정하나 OpenFrame 에서는미지원하는기능으로 C 를 지정하면문법에러를발생시킨다. LIST CI[NIT] 컨트롤문장의각종메시지함수호출결과의출력여부를지정하는으로미지원 기능이다. 카운터변수의초기값을설정한다. - count-var: 반복처리에이용할카운터변수명을지정한다. 변수명은 C1, C2, C3, C4, C5 중에서만선택한다. - init-val: 카운터변수에설정할초기값을지정한다. ( 기본값 : 1) CO[UNT] 카운터변수의증가값을설정한다. - count-var: 증가시킬카운터변수의이름을지정한다. - inc-val: 카운터변수에더할값을지정한다. ( 기본값 : 1) PCB CALL 명령어에서 PCB 이름이나 PCB 번호의지정을생략한경우기본값을지정한 다. - Y: CALL 명령어에서 PCB 이름또는 PCB 번호를생략한경우기본값을사용한다. - N: 이전의 SET 명령어에서지정한기본값을무효로만든다. PCB 번호의기본값은 1로한다. 후속의 CALL 명령어에서는반드시 PCB 이름을지정해야한다. - PCB 이름 : CALL 명령어에서 PCB 이름을생략한경우기본값을지정한다. - PCB 번호 : CALL 명령어에서 PCB 번호를생략한경우기본값을지정한다. DATA 데이터기억영역의임의의부분에지정한데이터를설정한다. - position: 데이터기억영역의선두로부터변위값 (offset) 을지정한다. 선두는 0부터시작한다. - length: 설정할데이터의길이를지정한다. 생략한경우, position으로부터데이터기억영역의끝까지의길이를가정한다. - SP: 지정한범위를공백데이터로초기화한다. - B0: 지정한범위를 2진형식의 '0' 으로초기화한다. - C0: 지정한범위를캐릭터형식의 '0' 으로초기화한다. 94 Tibero HiDB 유틸리티참조안내서

SET 명령어를기술할때기본규칙은다음과같다. DATA 의 position 과 length 는 1 개만지정가능하다. DATA 에서 SP,B0,C0 을지정하지않은경우 SET 명령어직후에반드시데이터를지정해야한다. SET 명령어에서지정한만변경되고지정하지않은은이전에설정한값으로유지된다. 다음은 SET 명령어로데이터기억영역의 3 부분의값을설정하는예제이다. 데이터기억영역의선두로 부터 9Byte 를 123456789 로, 16Byte 부터 4Byte 를 ABCD 로, 28Byte 부터 100Byte 를공백데이터로초기화 한다. @ SET DATA=(0,9) 123456789 @ SET DATA=(15,4) ABCD @ SET DATA=(27,100,SP) DISP DL/I 함수호출후각종정보출력여부를지정한다. 여러번지정가능하며지정한에대해서만변경하고지정하지않은은기본값이나이전에지정한값이유지된다. 명령어구문은다음과같다. @ D[ISP] [TIME=[{Y N}] [,SEG={(Y[,{X C}]) N}] [,DBPCB={(Y[,{X C}]) N}] [,LTPCB={(Y[,{X C}]) N}] [,ERROR={(Y[,{Y N}]) N}] TIME DL/I 함수호출후시간정보의출력여부를지정한다. 시간정보는 DL/I 함수의호출시 작시간, 종료시간, 경과시간으로표시된다. - Y: 시간정보를출력한다. ( 기본값 ) - N: 시간정보를출력하지않는다. SEG DL/I 함수호출후세그먼트의내용의출력여부를지정한다. - Y: 세그먼트의내용을출력한다. 출력하는경우다음의 X와 C 중에서출력형식을결정한다. - X: 16진수형식과문자형식을혼합하여출력한다. ( 기본값 ) - C: 1Byte 문자형식으로만출력한다. 제 5 장지원유틸리티 95

- N: 세그먼트의내용을출력하지않는다. DBPCB DL/I 함수호출후 DBPCB 내용의출력여부를지정한다. - Y: DBPCB의내용을출력한다. 출력하는경우다음의 X와 C 중에서출력형식을결정한다. - X: 16진수형식과문자형식을혼합하여출력한다. ( 기본값 ) - C: 1Byte 문자형식으로만출력한다. - N: DBPCB의내용을출력하지않는다. LTPCB ERROR DL/I 함수호출후 LTPCB나 IOPCB 내용의출력여부를지정하는으로미지원기능이다. DL/I 함수호출후 Status Code가 GA, GD 및스페이스이외인경우메시지출력여부를지정하는으로미지원기능이다. DISP 명령어를기술할때기본규칙은다음과같다. DISP 명령어에서지정한만변경되고지정하지않은은기본값이나이전에설정한값으로유 지된다. 다음은 DL/I 함수의처리시간정보를출력하고세그먼트의내용을 1Byte 문자형식으로출력하고, DBPCB 의내용을 16 진수형식과 1Byte 문자형식으로혼합하여출력하는예제이다. @ DISP TIME=Y,SEG=(Y,C),DBPCB=(Y,X) EXEC DL/I 함수호출에관련된통계정보를출력한다. 여러번지정이가능하며지정된시점에서지정된오퍼랜드의기능을실행한다. 명령어구문은다음과같다. @ E[XEC] STAT={CALL POOL ALL} STAT 통계정보의출력을지정한다. - CALL: 각 DL/I 함수호출마다기능별호출횟수를출력한다. - POOL: 데이터베이스버퍼 Pool 의 Prefix 부분을출력하는설정으로미지원기능이 다. 96 Tibero HiDB 유틸리티참조안내서

- ALL: CALL, POOL 의양쪽모두의정보를출력하나 OpenFrame 에서는 CALL 옵션 의기능만수행한다. EXEC 명령어를기술할때기본규칙은다음과같다. EXEC 명령어가지정된시점에해당기능을실행한다. 다음은 DL/I 함수의기능별호출횟수를출력하는예제이다. @ EXEC STAT=CALL CALL 데이터베이스에접근하기위한 DL/I 함수를호출하는명령어로호출에필요한여러가지정보들도함께지정한다. 명령어구문은다음과같다. @ C[ALL] P=(func-code[,pcb-name[,pcb-num[,ssa-num[,{Y N}[,{P C \},{call-repeat-num ALL}]]]]]) [,DATA=((position,length)[,(position,length)[,...]])] func-code pcb-name pcb-num ssa-num {Y N} DL/I 함수의함수코드를입력한다. 함수코드에대한자세한내용은 "Tibero HiDB 안내서 " 의 " 제3장 DL/I 함수호출 " 을참고한다접근하고자하는데이터베이스의 PCB 이름을 8자이내로지정한다. Open Frame에서는 DBPCB 이름을지정한다. 다중 PCB가지정되는경우대상이되는 PCB의번호를지정한다. ( 기본값 : 1( 최초의 PCB) ) SSA를지정한경우 SSA의개수를지정한다. ( 기본값 : 0) - Y: 데이터의삽입및갱신을위한데이터문장을지정한다. - N: 데이터의삽입및갱신위한데이터문장을지정하지않는다. ( 기본값 ) {P C \} - P: CALL 명령어에서지정한정보를반복사용한다. - C: CALL 명령어에서 SSA 로지정한정보를반복사용한다. - \: CALL 명령어에서지정한 SSA 와삽입및갱신을위한데이터정보를반 복사용한다. 제 5 장지원유틸리티 97

반복호출의사용방법은표다음의반복호출에대한지정방법의표를참조 한다. {call-repeat-num ALL} - call-repeat-num: CALL 명령어의실행반복횟수를지정한다. - ALL: 함수코드가 GN 계열인경우만사용해야하고 Status Code 가 GA, GD, 스페이스이외의코드가발견될때까지반복호출이실행된다. GN 계열이외에서지정한경우무한하게호출될수있다. DATA=(position,length) 데이터기억영역의임의의부분을갱신한후데이터의삽입이나갱신을위 한 DL/I 함수를호출한다. - position: 데이터기억영역의선두로부터변위값 (offset) 을지정한다. 선두는 0 부터시작한다. - length: 갱신하는데이터의길이를지정한다. 다음은반복호출에대한지정방법이다. 조건 P 지정 C 지정 \ 지정 SSA 개수는 0 이고삽입 @ C P=(GN,DB,,,,P,10) @ C P=(GN,DB,,,,C,10) @ C P=(GN,DB,,,,\,10) 및갱신데이터없음 GN 을 10 회호출한다. GN 을 10 회호출한다. GN 을 10 회호출한다. SSA 개수는 1 이고삽입 @ C P=(GU,DB,,1,,P,3) @ C P=(GN,DB,,1,,C,3) @ C P=(GN,DB,,1,,\,3) 및갱신데이터없음 SSA1 SSA1 SSA1 SSA2 SSA1 데이터와함께 GN SSA1 데이터와함께 GN SSA3 을 3 회호출한다. 을 3 회호출한다. GU 를 3 회호출한다. SSA 데이터는반복횟수만큼 지정한다. SSA 개수는 1 이고삽입 @ C P=(IS @ C P=(IS @ C P=(IS 및갱신데이터있음 RT,DB,,1,Y,P,3) RT,DB,,1,Y,C,3) RT,DB,,1,Y,\,3) 데이터 1 데이터 1 데이터 SSA1 SSA SSA 데이터 2 데이터 2 동일한삽입, 갱신데이터 SSA2 데이터 3 와동일한 SSA 데이터로 ISRT를 3회호출한다. 고 98 Tibero HiDB 유틸리티참조안내서

조건 P 지정 C 지정 \ 지정 테이터 3 ISRT 를 3 회호출한다. 데 유한키를가지지않는세 SSA3 이터는반복횟수만큼지정한다. 그먼트의경우유효하다. ISRT 를 3 회호출한다. 삽 입, 갱신데이터와 SSA 데이터는반복횟수만큼 지정한다. CALL 명령어를기술할경우기본규칙은다음과같다. SSA 수, 삽입및갱신데이터를지정한경우반드시 CALL 명령어직후에기술한다. 순서는삽입및갱 신데이터, SSA 데이터순이다. DATA 은 1 개에서 5 개까지지정할수있다. DATA 을지정하고 func-code 가 REPL 또는 ISRT 이면 Y( 삽입갱신데이터있음 ) 를지정해야한다. DATA 을지정한경우 CALL 명령어직후에 1 컬럼부터데이터를반드시지정해야한다. 데이터의 지정순서는 DATA 의지정순서와같아야한다. CHKP, XRST 호출은사용할수없다. OpenFrame 에서는가변길이세그먼트데이터처리는지원하지않는다. 다음은 DL/I 함수의 GU 를호출하여 TMAXDB PCB 의데이터베이스로부터 SSA 데이터로지정한키에해 당하는 VENDOR 세그먼트의인스턴스를검색하는예제이다. @ CALL P=(GU,TMAXDB,,1) PRODUCT (KEY = 10001) 다음은 PRODUCT 세그먼트에서키가 10001 인인스턴스를조회하여데이터의일부 (6Byte 째부터 9Byte 길이의데이터 ) 를수정하고 REPL 함수를호출하여해당데이터를갱신하는예제이다. @ CALL P=(GHU,TMAXDB,,1) PRODUCT (KEY = 10001) @ CALL P=(REPL,TMAXDB,,,Y),DATA(5,9) OPENFRAME 제 5 장지원유틸리티 99

다음은 PRODUCT 세그먼트에서키가 10001 인인스턴스데이터를조회한뒤해당데이터기억영역의일 부를수정하고 ISRT 를호출하여수정한데이터의내용으로데이터베이스에 2 건을삽입하는예제이다. @ CALL P=(GU,TMAXDB,,1) PRODUCT (KEY = 10001) @ CALL P=(ISRT,TMAXDB,,1,Y,C,2),DATA=((0,5),(5,9)) 20001 TIBERO PRODUCT 20002 PROFRAME MATCH DL/I 함수호출후의 Status Code나세그먼트이름등이예상한결과와일치하는지비교하여해당결과를출력한다. 명령어구문은다음과같다. @ M[ATCH] [STC=status-code][,LEV=seg-lev][,NAME=seg-name][,DATA=(position,length)] STC LEV NAME DATA 비교하려는 Status Code를지정한다. Status Code가공백인경우는 SP로지정한다. 비교하려는세그먼트의레벨번호를지정한다. 01~15의범위로지정한다. 비교하려는세그먼트의이름을지정한다. 8자이내로지정한다. 비교하려는데이터에대한정보를지정한다. - position: 데이터기억영역의선두로부터변위값 (offset) 을지정한다. 선두는 0 부터 시작한다. - length: 갱신하는데이터의길이를지정한다. MATCH 명령어를기술할때기본규칙은다음과같다. DATA 을기술한경우 MATCH 명령어직후에비교하려는데이터를반드시지정해야한다. 일치하지않는이발견된경우이후에기술한비교는실시하지않는다. MATCH 명령어에서지정한은 STC, LEV, NAME, DATA 의순서로비교를실시하고일치한경우와 일치하지않은경우각각에따른메시지를출력한다. LEV, NAME 은 CALL 명령어다음에지정한경우에만유효하고 CALL 명령어다음이아닌경우는 무시한다. 100 Tibero HiDB 유틸리티참조안내서

다음은 Status Code 가공백이고세그먼트이름은 VENDOR 이고데이터기억영역의 6Byte 부터 5Byte 길 이의데이터와입력한데이터 ('12345') 를비교하는예제이다. @ MATCH STC=SP,NAME=VENDOR,DATA=(5,5) 12345 IF 논리기능을사용하는경우 DL/I 함수호출후결과에대한비교조건과값을지정하여특정컨트롤문장으로분기하여처리하도록하는명령어이다. DBA 명령어에서논리기능을사용하지않는것으로지정한경우무시된다. 특정컨트롤문장으로무조건분기처리도가능하다. 분기조건으로는다음의내용을지정할수있다. Status Code 세그먼트레벨번호 세그먼트이름 데이터영역 카운터변수 명령어구문은다음과같다. @ IF {B[RANCH]=(@label[,{STC LEV NAME count-var},{eq NE LT LE GT GE},comparative-value]) B[RANCH]=(@lable[,DATA,{EQ NE LT LE GT GE}[,{SP C0 B0}]])} [,DATA(position,length)] @label 분기할컨트롤문장의레이블이름을지정한다. 레이블이름은 7 자리이내의 영, 숫자이며생략할수없다. DBA 명령어에서는레이블이름을지정할수없다. {STC LEV NAME countvar} 비교대상을지정하는것으로내용은다음과같다. - STC: Status Code 와비교한다. - LEV: 세그먼트의레벨번호를비교한다. - NAME: 세그먼트의이름과비교한다. - count-var: 카운터변수의값과비교하는경우변수명을지정하는이다. 제 5 장지원유틸리티 101

DATA {EQ NE LT LE GT GE} 데이터와비교하는것을지정한다. DATA 를지정한경우비교하려는데이터를 IF 명령어직후에반드시지정해야한다. 비교값으로 SP, B0, C0을지정한경우는생략이가능하다. 비교조건을지정하는것으로내용은다음과같다. - EQ: 비교대상이비교값과동일하다. - NE: 비교대상이비교값과동일하지않다. - LT: 비교대상이비교값보다작다. - LE: 비교대상이비교값과동일하거나작다. - GT: 비교대상이비교값보다크다. - GE: 비교대상이비교값과동일하거나크다. 비교연산자를생략한경우무조건지정한레이블명칭을가진명령어로분기한다. comparative-value 비교대상값을지정하다. 비교대상에대한비교값은다음과같다. - STC: Status Code로 2Byte 문자를지정한다. Status Code가스페이스인경우 SP로지정하며생략할수없다. 2번째자리에 '\' 를지정한경우 1번째자리의문자하고만비교한다. 예를들어 'P\' 로지정한경우 PA,PB,PC 등이해당된다. - LEV: 세그먼트의레벨번호를지정한다. 레벨번호는 00~15의범위에서지정가능하며생략할수없다. - count-var: 카운터변수와비교하려는값을지정한다. - DATA: 데이터의비교값을지정한다. DATA(position,length) 비교대상데이터에대한정보를지정한다. - position: 데이터기억영역의선두로부터변위값 (offset) 을지정한다. 선두 는 0 부터시작한다. - length: 갱신하는데이터의길이를지정한다. IF 명령어를기술할때기본규칙은다음과같다. IF 명령어하나당비교은 1 개만기술가능하다. 복수을비교하려면 IF 명령어를여러개지정 한다. 무조건분기시키고싶을때는분기처의레이블이름만지정한다. 102 Tibero HiDB 유틸리티참조안내서

지정한레이블이름을가진분기처가없을때는현 IF 명령어의다음문장을실행한다. DBA 명령어에서논리기능을사용하지않는것으로지정한경우 IF 명령어는무시된다. 다음은 Status Code 가스페이스가아닌경우 LOOP 레이블을가진명령어로분기하는예제이다. @ IF BRANCH=(@LOOP,STC,NE,SP) 다음은무조건 LOOP 레이블을가진명령어로분기하는예제이다. @ IF BRANCH=@LOOP 다음은데이터기억영역의 2Byte 부터 5Byte 길이의데이터가 12345 와동일한경우 LOOP 레이블을가 진명령어로분기하는예제이다. @ IF BRANCH=(@LOOP,DATA,EQ),DATA(2,5) 12345 DBAGEN DBA 명령어에서논리기능을사용하는것으로지정한경우, 하나의논리처리단위가종료되는것을나타낸다. 논리처리단위란기술한 DBA 명령어로부터처음만나는 DBAGEN 명령어사이에기술한다른명령어들의구성을의미한다. 논리처리단위안에서 IF 명령어를기술하는경우그논리처리단위바깥에있는레이블은지정할수없다. DBA 명령어에서논리기능을사용하는것으로지정한경우에만 DBAGEN 문은유효하며그렇지않은경우는무시된다. 명령어구문은다음과같다. @ DBAGEN END 컨트롤문장의마지막인것을지정한다. 이후에기술된컨트롤문장들은모두무시된다. 명령어구문은다음과같다. @ END 제 5 장지원유틸리티 103

사용예제 다음은 DL/I 프로그램의 GN 함수를 3 번호출하여데이터베이스의세그먼트내용을조회하는예제이다. //ADMDBA JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1) //JS01 EXEC PGM=ADM //ISRTDS01 DD DSN=HDBISRT1.TESTDD0,DISP=OLD //ISRTIDX DD DSN=HDBISRT1.TESTIX0,DISP=OLD //ADM@LST DD SYSOUT=* //ADM@IPT DD * ADMBCH PGM=ADMDBA,PAS=ISRTPAS1,ADMID=ADMA /* //DBA@IPT DD * @ DBA WORK=2000,COND=((P\,ABEND),(C\,ABEND),(SB,ABEND)), LOGIC=Y @ D SEG=(Y,X),DBPCB=(Y,X),ERROR=(Y,Y) @LOP C P=(GN,ISRTDBD1,,,,P,3) @ DBAGEN @ END /* // 104 Tibero HiDB 유틸리티참조안내서

다음은위의 JCL 을실행한후 ADM@LST DD 에출력하는내용이다. [ 그림 5.1] ADMDBA 의출력내용 (1) (2) (3) (4) (5) ADMDBA 시작메시지이다. 5자리일련번호와입력한컨트롤문장이다. 검색계열함수를호출한경우데이터기억영역에채워진세그먼트내용 ( 문자형식,16 진수형식혼합포맷 ) 이다. DL/I 함수호출후 DBPCB의내용 ( 문자형식,16진수형식혼합포맷 ) 이다. DL/I 함수호출결과정보이다. 왼쪽부터순서대로다음의내용을나타낸다. - 세그먼트이름 - STC=Status Code - L= 세그먼트길이 제 5 장지원유틸리티 105

- LEV= 세그먼트레벨번호 - FC=DL/I 함수코드 - CNT=DL/I 함수호출횟수 ( 반복호출을지정했을경우출력 ) - FT=DL/I 함수호출시작시각 ( 시 / 분 / 초 / 밀리초 / 마이크로초 ) - LT=DL/I 함수호출종료시각 ( 시 / 분 / 초 / 밀리초 / 마이크로초 ) - DL/I 함수호출경과시간 ( 시 / 분 / 초 / 밀리초 / 마이크로초 ) (6) (7) DL/I 함수별호출횟수이다. ADMDBA 종료메시지이다. 다음은 ADMDBA 의논리기능과카운터변수를이용한예제이다. 데이터베이스로부터 5 건을조회하여해 당데이터를삭제한다. //ADMDBA JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1) //JS01 EXEC PGM=ADM //ISRTDS01 DD DSN=HDBISRT1.TESTDD0,DISP=OLD //ISRTIDX DD DSN=HDBISRT1.TESTIX0,DISP=OLD //ADM@LST DD SYSOUT=* //ADM@IPT DD * ADMBCH PGM=ADMDBA,PAS=ISRTPAS1,ADMID=ADMA /* //DBA@IPT DD * @ DBA LOGIC=Y,WORK=500 @ DISP SEG=(Y,C),TIME=N @ SET CINIT=(C1,1) @LOOP CALL P=(GHU,TMAXDB) @ CALL P=(DLET,TMAXDB) @ SET COUNT=(C1,1) @ IF BRANCH=(@LOOP,C1,LE,5) @ DBAGEN @ END /* // 106 Tibero HiDB 유틸리티참조안내서

위예제의논리기능흐름은다음과같다. [ 그림 5.2] ADMDBA 의논리기능흐름 유의사항 ADMDBA 유틸리티프로그램을실행한결과는다음과같다. 정상적으로실행한경우코드 0을반환한다. 에러가발생한경우 해당에러메시지를 ADM@LST DD 에출력하고에러에해당하는코드를반환한다. ADMDBA 유틸리티프로그램에서발생할수있는에러코드는다음과같다. 코드 8 프로그램처리에러또는시스템과관련된에러로다음의경우가해당된다. 제 5 장지원유틸리티 107