OpenFrame HiDB 정의 툴

본 장에서는 OpenFrame HiDB에서 제공하는 정의 툴에 대해 기술한다.

1. 개요

다음은 OpenFrame HiDB(이하 HiDB) 데이터베이스 스키마를 정의하거나 애플리케이션에서의 접근 방식을 정의하는 프로그램 목록이다.

프로그램명 설명

acbgen

애플리케이션의 성능을 향상시키기 위한 ACB 메타 정보를 저장한다.

dbdgen

HiDB 데이터베이스 스키마를 메타 테이블에 저장하고 관련 object를 생성한다.

hidbinit

HiDB를 사용하기 위한 메타 테이블을 생성한다.

hidbmgr

dbdgen을 통해서 생성된 object들을 삭제하거나 초기화하고 메타 테이블에 저장되어 있는 PSB 메타 정보를 삭제한다.

imsdaloc

데이터베이스를 동적으로 할당하기 위한 DAB 블록을 정의한다.

psbgen

데이터베이스에 대한 논리 구조 및 DC 인터페이스 블록과 관련 메타 정보를 저장하고 관련 object를 생성한다.

2. acbgen

acbgen 툴은 애플리케이션의 실행 시점에서 성능의 향상 및 메모리의 효율적인 사용을 위해 데이터베이스 정의 유틸리티 및 프로그램 액세스 정의 유틸리티로 작성한 DBD 메타 정보 및 PSB 메타 정보를 이용해서 각각 메타 테이블에 저장한다.

HiDB 문서에서는 acbgen 툴을 통해서 생성된 메타 정보를 ACB 메타 정보라고 한다. 온라인 애플리케이션에서 HiDB 데이터베이스를 사용하려면 온라인 서버를 기동하기 전에 반드시 ACB 메타 정보를 생성해야 한다.

사용법

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

Usage: acbgen command [options] operand
  • [options]

    옵션 설명

    [-p psblib]

    PSB와 관련된 PDS 데이터셋 이름을 지정한다. (예: IMS.DBDLIB)

    [-d dbdlib]

    DBD와 관련된 PDS 데이터셋 이름을 지정한다. (예: IMS.PSBLIB)

    [-l acblib]

    ACB와 관련된 PDS 데이터셋 이름을 지정한다. (예: IMS.ACBLIB)

    [-f]

    build 명령을 사용할 때 이미 저장된 데이터는 삭제하고 처리한다.

  • 입력 항목

    항목 설명

    command

    실행해야 하는 명령을 지정한다.

    • build : ACB 메타 정보를 저장한다.

    • delete : ACB 메타 정보를 삭제한다.

    • copy : ACB 메타 정보를 복사한다. (이전 버전에서 Linux 명령어인 copy로 ACBLIB에 있던 ACB를 ACBLIBA, ACBLIBB로 복사했던 기능을 지원하기 위해 추가)

    operand

    실행해야 하는 대상을 지정한다.

    • PSB=ALL : PSBLIB 안에 있는 모든 PSB 메타 정보를 대상으로 한다(build 명령에서만 사용할 수 있다).

    • PSB=psbname : 지정된 이름의 PSB 메타 정보를 대상으로 한다.

    • DBD=dbdname : 지정된 이름의 DBD 메타 정보를 대상으로 한다.

    • BLDPSB={YES|NO} : YES로 하면 지정된 이름의 DBD 메타 정보를 참조하는 PSB 메타 정보를 함께 빌드한다(build 명령에서 DBD 오퍼랜드와 함께 사용할 수 있다). 기본값은 YES다.

사용예제

다음은 EXHIDAM이라는 PSB 메타 정보를 대상으로 ACB 메타 정보를 생성하는 예이다.

$ acbgen build PSB=EXHIDAMA

위의 acbgen 프로그램을 수행한 후 출력되는 내용은 다음과 같다.

acbgen version 7.2.0(0) oframe@oframe:ofsrc7/ims(#1) 2017-11-28 12:48:04
Application Control Block Generation Program

ACBGEN COMMAND=BUILD,OPERAND=(PSB=EXHIDAMA),ACBLIB=IMS.ACBLIB
------------------------------------------------------------
*** ACBGEN BUILD PSB=EXHIDAMA
------------------------------------------------------------
*** BUILDING PSB BLOCK....... PSBNAME=EXHIDAMA
*** BUILDING DBD BLOCK....... DBDNAME=EXHIDAM
------------------------------------------------------------
PROGRAM COMPLETED SUCCESSFULLY.

다음은 EXHIDAM이라는 DBD 메타 정보를 대상으로 ACB 메타 정보를 삭제하는 예이다.

$ acbgen delete DBD=EXIHDAM

위의 acbgen 프로그램을 수행한 후 출력되는 내용은 다음과 같다.

acbgen version 7.2.0(0) oframe@oframe:ofsrc7/ims(#1) 2017-11-28 12:48:04
Application Control Block Generation Program

ACBGEN COMMAND=DELETE,OPERAND=(DBD=EXHIDAM),ACBLIB=IMS.ACBLIB
------------------------------------------------------------
*** ACBGEN DELETE DBD=EXHIDAM
------------------------------------------------------------
*** DELETING DBD BLOCK....... DBDNAME=EXHIDAM
------------------------------------------------------------
PROGRAM COMPLETED SUCCESSFULLY.

다음은 ACBLIB 관련 ACB 메타 정보를 대상으로 ACBLIB에서 ACBLIBA, ACBLIBB로 복사하는 예이다.

이전 버전에서 IMS.ACBLIB PDS에 존재했던 모든 ACB 블록을 Linux/UNIX 명령어인 copy를 이용하여 IMS.ACBLIBA와 IMS.ACBLIBB로 복사했던 방법을 지원한다. copy 명령어만 지정하고 operand는 지정할 필요는 없다. 기존에 ACBLIBA와 ACBLIBB 관련 메타 데이터를 삭제하고 LIB_NAME이 ACBLIB으로 지정된 메타 정보를 LIB_NAME을 ACBLIBA, ACBLIBB로 지정하여 메타 데이터를 복사한다.

$ acbgen copy

위의 acbgen 프로그램을 수행한 후 출력되는 내용은 다음과 같다.

acbgen version 7.2.0(0) oframe@oframe:ofsrc7/ims(#1) 2017-11-28 12:48:04
Application Control Block Generation Program

ACBGEN COMMAND=COPY,OPERAND=(),ACBLIB=IMS.ACBLIB
------------------------------------------------------------
*** ACBGEN DELETE PSB=ALL
------------------------------------------------------------
*** ACBGEN DELETE PSB=ALL SUCCESS
------------------------------------------------------------
------------------------------------------------------------
*** ACBGEN COPY PSB=ALL
------------------------------------------------------------
ACBGEN COPY SUCCESS
------------------------------------------------------------
PROGRAM COMPLETED SUCCESSFULLY.
관련 환경설정
  • acbgen 프로그램은 출력 PDS 데이터셋을 지정하지 않은 경우 OpenFrame 환경설정 중 ims 서브젝트, IMS_DEFAULT 섹션에 ACBLIB_NAME 키의 VALUE 항목에 기술된 기본 ACBLIB PDS 이름을 이용한다.

    $ ofconfig list -s ims -sec IMS_DEFAULT -k ACBLIB_NAME
    
    ===================================================================================
      SUBJECT   |     SECTION      |        KEY         |             VALUE
    ===================================================================================
        ims     |   IMS_DEFAULT    |    ACBLIB_NAME     |           IMS.ACBLIB
    ===================================================================================
  • acbgen 프로그램은 PSB 관련 PSBLIB 데이터셋이나 DBD 관련 DBDLIB 데이터셋을 지정하지 않은 경우 OpenFrame 환경설정 중 ims 서브젝트 IMS_DEFAULT 섹션에 PSBLIB_NAME, DBDLIB_NAME 키의 VALUE 항목에 기술된 기본 PSBLIB 및 기본 DBDLIB 데이터셋 이름을 이용한다. 실제로 해당 PDS에는 아무것도 저장되지 않는다.

    $ ofconfig list -s ims -sec IMS_DEFAULT
    
    ===================================================================================
      SUBJECT   |     SECTION      |        KEY         |             VALUE
    ===================================================================================
        ims     |   IMS_DEFAULT    |    DBDLIB_NAME     |           IMS.DBDLIB
                |                  |    PSBLIB_NAME     |           IMS.PSBLIB
          :              :                   :                           :
    ===================================================================================

OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame HiDB "환경설정 안내서"를 참고한다.

3. dbdgen

dbdgen은 HiDB 데이터베이스 스키마를 시스템에 정의할 때 사용한다.

dbdgen은 DBDGEN 유틸리티를 JOB으로 실행하지 않고 UNIX 셸에서 바로 실행할 수 있는 편의 기능을 제공한다.

dbdgen을 수행하면 DBD 스크립트에 기술되어 있는 데이터베이스 스키마 정보가 hidbinit 툴을 사용해서 생성된 메타 테이블에 저장한다.

사용법

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

Usage: dbdgen [options] filename...
  • [options]

    옵션 설명

    [-f ]

    기존에 존재하는 DBD 메타 정보와 오브젝트들을 삭제하고 다시 생성한다.

  • 입력 항목

    항목 설명

    filename

    DBD 컨트롤문이 들어 있는 파일 이름을 지정한다. 여러 개의 입력 파일을 처리할 때에는 filename 뒤에 연속해서 파일명을 설정한다.

사용예제

다음은 DBD 컨트롤문이 들어 있는 EXHIDAM이라는 파일을 dbdgen 프로그램을 이용하여 DBD 메타 정보를 저장하는 예이다.

$ dbdgen EXHIDAM

위의 dbdgen 프로그램을 수행한 후 출력되는 내용은 다음과 같다.

dbdgen version 7.2.0(0) oframe@oframe:ofsrc7/ims(#4) 2017-11-28 21:51:38
Database Description Block Generation Program

DBDGEN FCOUNT=1
------------------------------------------------------------
*** Processing DBD script "EXHIDAM"
------------------------------------------------------------

>>>>> Processing DBD "EXHIDAM"
>>>>> Successfully processed DBD "EXHIDAM"

PROGRAM COMPLETED SUCCESSFULLY. Total : [1]
관련 환경설정

dbdgen 프로그램은 PDS 데이터셋을 지정하지 않은 경우 OpenFrame 환경설정 중 ims 서브젝트, IMS_DEFAULT 섹션에 DBDLIB_NAME 키의 VALUE 항목에 기술된 기본 DBDLIB PDS의 이름을 이용한다.

$ ofconfig list -s ims -sec IMS_DEFAULT -k DBDLIB_NAME

===================================================================================
  SUBJECT   |     SECTION      |         KEY         |             VALUE
===================================================================================
    ims     |   IMS_DEFAULT    |     DBDLIB_NAME     |           IMS.DBDLIB
===================================================================================

OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame HiDB "환경설정 안내서"를 참고한다.

4. hidbinit

hidbinit은 HiDB를 운영하기 위해 최초에 수행되야 하는 툴로 HiDB에서 사용하는 메타 테이블을 생성한다.

사용법

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

Usage: hidbinit command [options]
  • 입력 항목

    항목 설명

    command

    실행해야 하는 명령을 지정한다.

    • create : 메타 테이블을 생성한다.

    • drop : 메타 테이블을 삭제한다.

    • truncate : 메타 테이블에 저장되어 있는 메타 정보들을 전부 삭제한다.

  • [options]

    옵션 설명

    [-t tablespace]

    테이블 스페이스의 이름을 지정한다. 메타 테이블을 생성하는 경우에만 사용한다. (Tibero나 Oracle인 경우에 필요)

사용예제

다음은 create 명령어를 사용하여 메타 테이블을 생성하는 예이다.

$ hidbinit create SYS1_ODBC -t DEFVOL

다음은 drop command를 사용하여 메타 테이블을 삭제하는 예이다.

$ hidbinit drop

다음은 truncate 명령어를 사용해서 메타 테이블에 있는 메타 정보를 삭제하는 예이다.

$ hidbinit truncate
관련 환경설정

hidbinit 프로그램에서 사용할 DB 커넥션을 설정한다(OpenFrame Base를 설치하는 경우 미리 지정되어 있는 경우가 있고 이미 지정되어 있는 것을 사용해도 무방하다).

<dbconn.conf>

[SYS1_HIDB]
    DATABASE=tb_tibero
    USERNAME=oframe
    ENPASSWD=...

5. hidbmgr

hidbmgr는 HiDB의 메타 데이터와 사용자 데이터, HiDB를 실행하기 위한 라이브러리를 관리하기 위한 통합적인 툴이다.

hidbmgr 툴의 주요 기능은 다음과 같다.

  • dbdgen 툴로 처리한 DBD의 메타 데이터를 출력, 삭제하거나 load 등의 작업에서 사용할 DLI 라이브러리 파일을 생성한다.

  • psbgen 툴로 처리한 PSB의 메타 데이터를 출력, 삭제하거나 HiDB 응용프로그램의 동작 중 사용할 DLI 라이브러리 파일을 생성한다.

  • 특정 DBD의 세그먼트들에 대해 테이블을 생성하거나, 삭제하거나, 초기화한다.

사용법
  • DBD, PSB 관리 기능

    hidbmgr의 DBD, PSB 관리 기능을 사용하는 방법은 다음과 같다.

    Usage: hidbmgr <dbd|psb> <command> <dbd_name|psb_name> [options]
    • 입력 항목

      항목 설명

      <dbd|psb>

      명령을 실행할 대상이 DBD인지, PSB인지 지정한다.

      command

      실행하고자 하는 명령을 지정한다.

      • display : 대상 DBD 또는 PSB의 정보를 출력한다.

      • dligen : 대상 DBD 또는 PSB에 대해 load 작업 또는 응용프로그램 동작 중 사용할 DLI 라이브러리 파일을 생성한다. OpenFrame 환경설정 중 hidb 서브젝트 HIDB_DEFAULT 섹션의 HIDB_OBJECT_DIR 키에 지정한 경로에 .pc 파일이 생성되며, 해당 pc 파일을 빌드하여 생성된 라이브러리 파일은 지정한 경로에 dlilibs 디렉터리를 생성하여 추가해야 한다.

      • delete : 대상 DBD 또는 PSB의 메타 데이터를 삭제한다.

      dbd_name

      대상이 되는 DBD의 이름을 지정한다.

    • [options]

      옵션 설명

      [-vr dbd_ver]

      DBD를 대상으로 할 때만 사용하며 명령을 처리할 DBD의 버전을 설정한다. 생략할 경우 0으로 설정된다.

      [-l lib_name]

      대상이 되는 DBD 또는 PSB의 라이브러리 이름을 설정한다.

      생략할 경우 OpenFrame 환경설정 중 ims 서브젝트 IMS_DEFUALT 섹션의 DBDLIB_NAME/PSBLIB_NAME 키에 설정된 이름을 사용한다.

      [-bi buffer_count]

      Index DBD 및 procedure option(PROCOPT)을 LSB로 표기한 PSB를 대상으로 하는 dligen 명령에 대해서만 유효하며, bulk insert 기능을 사용할 때 버퍼링할 row의 개수를 지정한다.

  • 사용자 데이터 테이블(세그먼트 테이블) 관리 기능

    hidbmgr의 사용자 데이터 테이블(세그먼트 테이블) 관리 기능을 사용하는 방법은 다음과 같다.

    Usage: hidbmgr segm <command> <dbd_name> [options]
    • 입력 항목

      항목 설명

      command

      실행할 명령을 지정한다.

      • create : 대상 DBD의 세그먼트와 관련된 DB 객체들(테이블, 뷰, 인덱스, 시퀀스)을 생성한다.

      • drop : 대상 DBD의 세그먼트와 관련된 DB 객체들을 삭제한다.

      • truncate : 대상 DBD의 세그먼트와 관련된 DB 객체들을 초기화한다.

      dbd_name

      대상이 되는 DBD의 이름을 지정한다.

    • [options]

      옵션 설명

      [-vr dbd_ver]

      DBD를 대상으로 할 때만 사용하며 명령을 처리할 DBD의 버전을 설정한다. 생략할 경우 0으로 설정된다.

      [-l lib_name]

      대상이 되는 DBD의 라이브러리 이름을 설정한다.

      생략할 경우 OpenFrame 환경설정 중 ims 서브젝트 IMS_DEFUALT 섹션의 DBDLIB_NAME 키에 설정된 이름을 사용한다.

      [-a]

      create 명령에만 유효하며, 대상 DBD와 index DBD의 테이블을 함께 생성한다.

      [-ot]

      create 명령에만 유효하며, 인덱스를 정의하지 않는다.

      [-oi]

      create 명령에만 유효하며, 인덱스만 정의한다.

      [-poi]

      create 명령에만 유효하며, 인덱스를 병렬로 정의한다.

      [-f]

      create 명령과 함께 사용되어서 대상이 되는 DBD 세그먼트와 관련된 DB 객체들을 먼저 삭제하고 생성한다.

      [-i]

      create 명령에만 유효하며, 대상 DBD 테이블들의 인덱스를 drop하고 재생성한다.

      [-id]

      create 명령에만 유효하며, 대상 DBD 테이블들의 index를 drop한다.

      [-fk]

      create 명령에만 유효하며, Paired segment 테이블에 foreign key constraint를 추가한다.

      [-fkd]

      create 명령에만 유효하며, Paired segment 테이블의 foreign key constraint를 제거한다.

      [-t tablespace_name]

      create 명령에만 유효하며, 대상 DBD 테이블들을 생성할 테이블스페이스 이름을 지정한다.

OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame HiDB "환경설정 안내서"를 참고한다.

사용예제

다음은 dbd delete 명령어를 사용하여 EXHIDAM DBD의 메타 데이터를 삭제하는 예이다.

$ hidbmgr dbd delete EXHIDAM

hidbmgr version 7.2.0(0) oframe@:ofsrc7/ims(#2) 2017-11-29 09:50:54
Managing OpenFrame HiDB metadata tables and segment tables

hidbmgr: deleting DBD IMS.DBDLIB.EXHIDAM(ver.0) metadata

hidbmgr: successfully processed the request

다음은 psb dligen 명령어를 사용하여 EXHIDAML PSB를 사용할 때 필요한 DLI 라이브러리 파일들을 생성하는 예이다.

$ hidbmgr psb dligen EXHIDAML

hidbmgr version 7.2.0(0) oframe@:ofsrc7/ims(#2) 2017-11-29 09:50:54
Managing OpenFrame HiDB metadata tables and segment tables

hidbmgr: creating PSB IMS.PSBLIB.EXHIDAML DLI libraries
hidbmgr: processing PCB# 0(EXHIDAML_0)

hidbmgr: successfully processed the request

다음은 segm create 명령어를 사용하여 EXHIDAM version 1 DBD의 세그먼트와 관련된 DBD 객체들을 생성하는 예이다.

$ hidbmgr segm create EXHIDAM -vr 1

hidbmgr version 7.2.0(0) oframe@:ofsrc7/ims(#2) 2017-11-29 09:50:54
Managing OpenFrame HiDB metadata tables and segment tables

hidbmgr: creating DBD IMS.DBDLIB.EXHIDAM(ver.1) objects
hidbmgr: generating schema objects for the DBD segment SEG1
hidbmgr: generating schema objects for the DBD segment SEG2
hidbmgr: generating schema objects for the DBD segment SEG3
hidbmgr: generating schema objects for the DBD segment SEG4
hidbmgr: generating schema objects for the DBD segment SEG5

hidbmgr: successfully processed the request
관련 환경설정

hidbmgr 프로그램은 dbconn.conf에 설정된 접속 정보를 사용한다.

hidbmgr 프로그램은 PDS 데이터셋을 지정하지 않은 경우 OpenFrame 환경설정 중 ims 서브젝트, IMS_DEFAULT 섹션에 DBDLIB_NAME, PSBLIB_NAME 키의 VALUE 항목에 기술된 DBDLIB 이름과 PSBLIB 이름을 참조한다.

$ ofconfig list -s ims -sec IMS_DEFAULT

===================================================================================
  SUBJECT   |     SECTION      |        KEY         |             VALUE
===================================================================================
    ims     |   IMS_DEFAULT    |    DBDLIB_NAME     |           IMS.DBDLIB
            |                  |    PSBLIB_NAME     |           IMS.PSBLIB
      :              :                   :                           :
===================================================================================

6. imsdaloc

imsdaloc는 데이터베이스를 동적으로 할당 또는 해제하기 위해서 DD 이름, 데이터셋 이름, 디스포지션을 정의하기 위한 프로그램이다. 동적 할당에 대한 정의 정보는 DAB 블록(Dynamic Allocation Block)으로 만들어져서 시스템 라이브러리에 저장된다.

imsdaloc는 IBM Mainframe의 IMS 시스템에서 사용하는 IMSDALOC 프러시저의 DFSMDA 매크로 명령을 OpenFrame 환경에서 변경없이 사용할 수 있도록 호환성을 제공한다.

사용법

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

Usage: imsdaloc [options] filename...
  • [options]

    옵션 설명

    [-l reslib]

    출력 PDS 데이터셋 이름이다. (예: IMS.RESLIB)

    [-v volume]

    RESLIB의 볼륨 시리얼이다. (카탈로깅 안된 경우)

  • 입력 항목

    항목 설명

    filename

    DFSMDA 매크로 명령이 들어있는 파일 이름이다. 여러 개의 입력 파일을 처리할 때에는 filename 뒤에 연속해서 파일명을 설정한다.

사용예제

다음은 DFSMDA 매크로 명령이 들어 있는 DFSMDA1이라는 파일을 imsdaloc 프로그램을 이용하여 DAB 블록을 생성하는 예이다.

$ imsdaloc DFSMDA1

위의 imsdaloc 프로그램을 수행한 후 출력되는 내용은 다음과 같다.

imsdaloc version 7.2.0(0) oframe@oframe:ofsrc7/ims(#2) 2017-11-28 21:51:38
Dynamic Allocation Block Generation Program

IMSDALOC FCOUNT=1,RESLIB=IMS.RESLIB,VOLSER=100000
------------------------------------------------------------
*** processing filepath="DFSMDA1"
------------------------------------------------------------
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** end_statement matched!
mdaparser: *** mda_generation finished!!!
------------------------------------------------------------
*** ims_parse_mda("DFSMDA1") success.
------------------------------------------------------------
  MDA TYPE=DATABASE,DBNAME=DI41M101
    DATASET TYPE=DATASET,DDNAME=M1I3I1,DSNAME=IMSQA.M1I3I1,DISP=
    DATASET TYPE=DATASET,DDNAME=M1I3O1,DSNAME=IMSQA.M1I3O1,DISP=
------------------------------------------------------------
*** ims_print_mda("DI41M101") success.
------------------------------------------------------------
  MDA TYPE=DATABASE,DBNAME=DX41SK03
    DATASET TYPE=DATASET,DDNAME=DXSK0301,DSNAME=IMSQA.DB5H111,DISP=SHR
    DATASET TYPE=DATASET,DDNAME=DXSK0302,DSNAME=IMSQA.DB5H222,DISP=SHR
    DATASET TYPE=DATASET,DDNAME=DHSK0301,DSNAME=IMSQA.DB5H333,DISP=SHR
------------------------------------------------------------
*** ims_print_mda("DX41SK03") success.
------------------------------------------------------------
  MDA TYPE=DATABASE,DBNAME=DH41SK03
    DATASET TYPE=DATASET,DDNAME=DDSK0101,DSNAME=IMSQA.DB4D111,DISP=SHR
    DATASET TYPE=DATASET,DDNAME=DDSK0102,DSNAME=IMSQA.DB4D222,DISP=SHR
    DATASET TYPE=DFSDCMON,DDNAME=IMSMON,DSNAME=I115T237.IMSMON,DISP=
------------------------------------------------------------
*** ims_print_mda("DH41SK03") success.
------------------------------------------------------------
PROGRAM COMPLETED SUCCESSFULLY.
관련 환경설정

imsdaloc 프로그램은 출력 PDS 데이터셋을 지정하지 않은 경우 OpenFrame 환경설정에 ims 서브젝트의 IMS_DEFAULT 섹션 RESLIB_NAME 키의 VALUE 항목에 기술된 데이터셋에 출력한다.

$ ofconfig list -s ims -sec IMS_DEFAULT  -k RESLIB_NAME

===================================================================================
  SUBJECT   |     SECTION      |        KEY         |             VALUE
===================================================================================
    ims     |   IMS_DEFAULT    |    RESLIB_NAME     |           IMS.RESLIB
===================================================================================

OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame HiDB "환경설정 안내서"를 참고한다.

7. psbgen

psbgen은 애플리케이션에서 바라보는 HiDB 데이터베이스에 대한 논리 구조를 정의한다.

PSB가 참조하는 DBD는 dbdgen 툴로 미리 메타 정보를 구성해야 한다. psbgen을 수행하면 PSB 스크립트에 기술되어 있는 PSB와 PCB 정보를 메타 테이블에 저장한다. dbdgen 툴에 대한 자세한 내용은 dbdgen을 참고한다.

사용법

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

Usage: psbgen [options] filename...
  • [options]

    옵션 설명

    [-f ]

    기존에 존재하는 PSB 메타 정보를 삭제하고 다시 저장한다.

  • 입력 항목

    항목 설명

    filename

    PSB 컨트롤문이 들어 있는 파일 이름을 지정한다. 여러 개의 입력 파일을 처리할 때에는 filename 뒤에 연속해서 파일명을 설정한다.

사용예제

다음은 PSB 컨트롤문이 들어 있는 EXHIDAMA이라는 파일을 psbgen 프로그램을 이용하여 PSB 메타 정보를 저장하고 각 테이블별 DML을 생성하는 예이다.

$ psbgen EXHIDAMA

위의 psbgen 프로그램을 수행한 후 출력되는 내용은 다음과 같다.

psbgen version 7.2.0(0) oframe@oframe:ofsrc7/ims(#4) 2017-11-28 21:51:38
Program Specification Block Generation Program

PSBGEN FCOUNT=1ㅇ
------------------------------------------------------------
*** Processing PSB script "EXHIDAMA"
------------------------------------------------------------

>>>>> Processing PSB "EXHIDAMA"
--Removing existing PSB EXHIDAMA metadata
 ### Processing PCB# 0(EXHIDAMA_0)
>>>>> Successfully processed PSB "EXHIDAMA"

PROGRAM COMPLETED SUCCESSFULLY. Total : [1]
관련 환경설정

psbgen 프로그램은 PDS 데이터셋을 지정하지 않은 경우 OpenFrame 환경설정 중 ims 서브젝트, IMS_DEFAULT 섹션에 PSBLIB_NAME, DBDLIB_NAME 키의 VALUE 항목에 기술된 기본 PSBLIB PDS 이름을 이용한다. 또한 참조하는 DBDLIB을 지정하지 않은 경우 같은 절에 기술된 기본 DBDLIB PDS의 이름을 참조한다.

$ ofconfig list -s ims -sec IMS_DEFAULT

===================================================================================
  SUBJECT   |     SECTION      |        KEY         |             VALUE
===================================================================================
    ims     |   IMS_DEFAULT    |    DBDLIB_NAME     |           IMS.DBDLIB
            |                  |    PSBLIB_NAME     |           IMS.PSBLIB
      :              :                   :                           :
===================================================================================

OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame HiDB "환경설정 안내서"를 참고한다.