OpenFrame HiDB定義ツール
本章では、OpenFrame HiDBシステムが提供する定義ツールの使用方法について説明します。
1. 概要
以下は、OpenFrame HiDB(以下、HiDB)データベースのスキーマを定義し、アプリケーションからのアクセス方式を定義するツールです。
ツール | 説明 |
---|---|
アプリケーションの性能を向上させるためのACBメタデータを保存します。 |
|
HiDBデータベースのスキーマをメタ表に保存し、関連オブジェクトを作成します。 |
|
OpenFrame HiDBを使用するためのメタ表を作成します。 |
|
dbdgenツールを使用して作成されたオブジェクトを削除または初期化し、メタ表に保存されているPSBメタデータを削除します。 |
|
データベースを動的に割り当てるためのDABブロックを定義します。 |
|
データベースの論理構造、DCインターフェース・ブロックと関連メタデータを保存し、関連オブジェクトを作成します。 |
2. acbgen
acbgenツールは、アプリケーションの実行時に、性能の向上やメモリを効率的に使用するために、データベース定義ユーティリティとプログラム・アクセス定義ユーティリティで作成されたDBDメタデータおよびPSBメタデータを使用してメタ表に保存します。
HiDB関連文書では、acbgenツールによって作成されたメタデータをACBメタデータといいます。オンライン・アプリケーションでHiDBデータベースを使用するには、オンライン・サーバーを起動する前にACBメタデータを作成する必要があります。
使用方法
以下は、acbgenツールの実行方法です。
Usage: acbgen command [options] operand
-
[options]
オプション 説明 [-p psblib]
PSBに関連付けられているPDS名を指定します。(例: IMS.PSBLIB)
[-d dbdlib]
DBDに関連付けられているPDS名を指定します。(例: IMS.DBDLIB)
[-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です。
-
使用例
以下は、EXHDAMというPSBメタデータを対象にACBメタデータを作成する例です。
$ acbgen build PSB=EXHIDAMA
以下は、上記の実行結果表示される内容です。
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 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コマンドのみ指定し、オペランドは指定する必要がありません。ACBLIBAとACBLIBB関連の既存のメタデータを削除し、LIB_NAMEの設定値をACBLIBからACBLIBA、ACBLIBBに変更した後コピーします。
$ acbgen copy
以下は、上記の実行結果表示される内容です。
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ユーティリティをジョブとして実行するのではなく、UNIXシェルで直接実行できます。
dbdgenを実行すると、DBDスクリプトに記述されているデータベース・スキーマ情報がhidbinitツールによって作成されたメタ表に保存されます。
使用方法
以下は、dbdgenツールの実行方法です。
Usage: dbdgen [options] filename...
-
[options]
オプション 説明 [-f ]
既存のDBDメタデータとオブジェクトを削除してから再作成します。
-
入力項目
項目 説明 filename
DBD制御文が含まれているファイル名を指定します。複数の入力ファイルを処理するときは、連続してファイル名を指定します。
使用例
以下は、dbdgenツールを利用して、DBD制御文が含まれているEXHIDAMファイルを処理してDBDメタデータを保存する例です。
$ dbdgen EXHIDAM
以下は、上記の実行結果表示される内容です。
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コマンドを使用してメタ表を削除する例です。
$ hidbinit drop
以下は、truncateコマンドを使用してメタ表のメタデータを削除する例です。
$ hidbinit truncate
環境設定
hidbinitツールで使用するデータベース接続を設定します。(OpenFrame Baseをインストールした場合は、すでに設定されていることがあり、その設定を使用することもできます)
<dbconn.conf>
[SYS1_HIDB] DATABASE=tb_tibero USERNAME=oframe ENPASSWD=...
5. hidbmgr
hidbmgrは、HiDBのメタデータとユーザー・データ、HiDBを実行するためのライブラリを管理するための統合ツールです。
以下は、hidbmgrツールの主な機能です。
-
dbdgenツールを使用して処理したDBDのメタデータを表示、削除するか、ロード処理などで使用する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のロード処理やアプリケーション・プログラムの実行中に使用する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]
索引DBDおよびプロシージャ・オプション(PROCOPT)をLSBで記述したPSBをターゲットとするdligenコマンドについてのみ有効です。BULK INSERT機能を使用する際にバッファリングする行数を指定します。
-
-
ユーザー・データ表(セグメント表)の管理機能
以下は、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と索引DBDの表を一緒に作成します。
[-ot]
createコマンドでのみ有効であり、索引を定義しません。
[-oi]
createコマンドでのみ有効であり、索引のみ定義します。
[-poi]
createコマンドでのみ有効であり、索引を並列に定義します。
[-f]
createコマンドと一緒に使用され、ターゲットDBDセグメント関連のDBオブジェクトを削除してから作成します・
[-i]
createコマンドでのみ有効です。ターゲットDBD表の索引を削除してから再作成します。
[-id]
createコマンドでのみ有効です。ターゲットDBD表の索引を削除します
[-fk]
createコマンドでのみ有効です。ペア・セグメント表に外部キー制約を追加します。
[-fkd]
createコマンドでのみ有効です。ペア・セグメント表の外部キー制約を削除します。
[-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メインフレームのIMSシステムで使用されるIMSDALOCプロシージャのDFSMDAマクロ・コマンドをOpenFrame環境で変更なく使用できるように互換性を提供します。
使用方法
以下は、imsdalocツールの実行方法です。
Usage: imsdaloc [options] filename...
-
[options]
オプション 説明 [-l reslib]
出力PDSの名前です。(例: IMS.RESLIB)
[-v volume]
RESLIBのボリューム・シリアルです。(カタログされていない場合)
-
入力項目
項目 説明 filename
DFSMDAマクロ・コマンドが含まれているファイル名です。複数の入力ファイルを処理するときは、連続してファイル名を指定します。
使用例
以下は、imsdalocツールを使用して、DFSMDAマクロ・コマンドが入っているDFSMDA1ファイルを基にDABブロックを作成する例です。
$ imsdaloc DFSMDA1
以下は、上記の実行結果表示される内容です。
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制御文が含まれているファイル名を指定します。複数の入力ファイルを処理するときは、連続してファイル名を指定します。
使用例
以下は、psbgenツールを実行して、PSB制御文が含まれているEXHIDAMAファイルを処理してPSBメタデータを保存し、各表のDMLを作成する例です。
$ psbgen EXHIDAMA
以下は、上記の実行結果表示される内容です。
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『環境設定ガイド』を参照してください。 |