OpenFrame NDBのツール

本章では、OpenFrame NDBシステムが提供するツールの使用方法について説明します。

1. 概要

OpenFrame NDBシステムのツールは、バッチ・ジョブで実行されるNDBユーティリティの機能を同様に提供し、システム管理者のユーザビリティを高めます。

以下は、OpenFrame NDBツールの主要機能です。

  • NDBの作成、削除、変更など、NDBの運用に必要な機能

  • NDBのデータ移行に関する機能

以下は、OpenFrame NDBシステムでサポートするツールの一覧です。

  • データベース運用ツール

    ツール 説明

    ndbadlgen

    データベース、索引テーブルまたは拡張索引テーブルの作成時に必要なファイルの内容をロードします。

    ndbcmd

    NDB DMLを使用してデータベースのレコードを変更または検索します。

    ndbinit

    NDBを初めてインストールする際に必要なメタデータ・テーブルを作成、初期化または削除します。

    ndbmgr

    データベースまたは索引を作成、初期化および削除します。

  • データベース移行ツール

    ツール 説明

    ndbconvstmt

    データファイルを保存するための制御文を作成します。

    ndbgensch

    データファイルを変換するための変換スキームを作成します。

    ndbexport

    NDBのデータを読み込んで指定されたファイルにエクスポートします。

    ndbimport

    データファイルをNDBにインポートします。

    subsc

    サブスキーマ・コピーブックを作成します。

    ndbunloader

    ndbloader用のデータファイルを作成するためのCOBOLを生成します。

    ndbloader

    ndbloader用のデータファイルを読み込んでNDBに保存します。

2. データベース運用ツール

本節では、OpenFrame NDBのデータベース運用に使用されるツールの使用方法について説明します。

2.1. ndbadlgen

ndbadlgenは、ndbmgrを実行する前にスキーマ・ファイル(データベース、索引テーブルまたは拡張索引テーブルの作成時に必要なファイルの内容)を事前に登録するツールです。

このプログラムで既存のスキーマを削除して再登録すると、既存のレコード・データは使用できなくなります。

使用方法

以下は、ndbadlgenツールを実行する方法です。

ndbadlgen {COMMAND} [options] <schema-name | adl-file-path | adl-type>
  • 入力項目

    項目 説明

    {COMMAND}

    • delete : NDB ADLスキーマ・ファイルを削除します。

    • load : ストアされたNDB ADLの情報をロードして表示します。

    • parse : NDB ADLを解析します。

    • store : NDB ADLを解析して該当のスキーマ・ファイルを登録します。

    schema-name

    索引が定義されたDBスキーマまたはXIFスキーマの名前を指定します。

    adl-file-path

    ADLファイルのパスとファイル名全体を指定します。

    adl-type

    ADLタイプ(DSCH、XIFS、SUBS、ALL)を指定します。

  • [options]

    オプション 説明

    -h

    ndbadlgenの使用方法およびオプションとコマンドに関する簡単な情報を表示します。

    -a

    ADL名を指定して、削除またはロードを実行します。

    -s

    サブスキーマADLファイルをロードします。

    -p

    ADLファイルのパスを指定して、解析またはストアを実行します。

    -t

    DSCH、XIFS、SUBS、ALLのADLタイプを指定して、該当するタイプのADL名を検索します。

使用例

以下は、SCHTEST.adlファイルを解析する例です。

$ ndbadlgen parse -p SCHTEST.adl
[ADL]
   |[SCHEMA]
   |   |[SCHEMA]
   |   |   |[SCHEMA]
   |   |   |   |[SCHEMA]
   |   |   |   |   |[NAME]
   |   |   |   |   |   |[SCHTEST]
   |   |   |   |   |[TYPE]
   |   |   |   |   |   |[DB]
   |   |   |   |   |   |   |[SLS]
   |   |   |   |[SCHEMA GROUP]
   |   |   |   |   |[SG01]
   |   |[RECORD]
   |   |   |[RECORD]
   |   |   |   |[RECORD]
   |   |   |   |   |[RFB25000]
   |   |   |[DATA]
   |   |   |   |[DATA]
   |   |   |   |   |[LEVEL]
   |   |   |   |   |   |[01]
   |   |   |   |   |[ITEM]
   |   |   |   |   |   |[P-KEY-XI]
   |   |   |[DATA]
   |   |   |   |[DATA]
   |   |   |   |   |[LEVEL]
   |   |   |   |   |   |[03]
   |   |   |   |   |[ITEM]
   |   |   |   |   |   |[P-KEY-XI1]
   |   |   |   |[PICTURE]
   |   |   |   |   |[X(010)]
   |   |   |[DATA]
   |   |   |   |[DATA]
   |   |   |   |   |[LEVEL]
   |   |   |   |   |   |[01]
   |   |   |   |   |[ITEM]
   |   |   |   |   |   |[FILLER]
   |   |   |   |[PICTURE]
   |   |   |   |   |[X(008)]
   |   |   |[DATA]
   |   |   |   |[DATA]
   |   |   |   |   |[LEVEL]
   |   |   |   |   |   |[01]
   |   |   |   |   |[ITEM]
   |   |   |   |   |   |[FILLER]
   |   |   |   |[PICTURE]
   |   |   |   |   |[X(29970)]
   |   |   |   |[COMPRESSED]
   |   |   |   |   |[TYPE1]
   |   |[RANGE]
   |   |   |[RANGE]
   |   |   |   |[RANGE]
   |   |   |   |   |[RRB25000]
   |   |   |   |[RECORD]
   |   |   |   |   |[RFB25000]
   |   |   |   |[LOCATION KEY]
   |   |   |   |   |[P-KEY-XI2]
   |   |   |   |[STRETCHED]
   |   |   |   |   |[4]
   |   |   |   |[DIVIDED]
   |   |   |   |   |[512]
   |   |   |   |[RATE]
   |   |   |   |   |[100]
   |   |   |   |[LOGICAL PAGE]
   |   |   |   |   |[1]
   |   |   |   |[ALARM]
   |   |   |   |   |[CONF]
   |   |   |   |   |   |[POINT]
   |   |   |   |   |   |   |[70]
   |   |   |   |   |   |[OPT]
   |   |   |   |   |   |   |[PRIME]
   |   |   |[SUBRANGE]
   |   |   |   |[SUBRANGE]
   |   |   |   |   |[SRB2500000]
   |   |   |   |[PRIME]
   |   |   |   |   |[2700]
   |   |   |   |[LOCATION]
   |   |   |   |   |[VALUE]
   |   |   |   |   |   |[  ]
   |   |   |   |   |[THRU]
   |   |   |   |   |   |[0 ]
   |   |[DATASET]
   |   |   |[DATASET]
   |   |   |   |[DATASET]
   |   |   |   |   |[NAME]
   |   |   |   |   |   |[FKDAT.SCHTEST.H01]
   |   |   |   |[PAGE]
   |   |   |   |   |[32632]
   |   |   |[VOLUME]
   |   |   |   |[VOLUME]
   |   |   |   |   |[NAME]
   |   |   |   |   |   |[100000]
   |   |   |   |[UNIT]
   |   |   |   |   |[F6425]
   |   |   |   |[EXTENT-ID]
   |   |   |   |   |[1]
   |   |   |   |[LOCATE]
   |   |   |   |   |[RANGE]
   |   |   |   |   |   |[NAME]
   |   |   |   |   |   |   |[RRB25000]
   |   |   |   |   |   |[SUBRANGE]
   |   |   |   |   |   |   |[NAME]
   |   |   |   |   |   |   |   |[SRB2500000]
   |   |[EXTENDED INDEX]
   |   |   |[EXTENDED INDEX]
   |   |   |   |[EXTENDED INDEX]
   |   |   |   |   |[NAME]
   |   |   |   |   |   |[XIB25A1]
   |   |   |   |   |[DATA]
   |   |   |   |   |   |[P-KEY-XI]
   |   |   |   |   |[RECORD]
   |   |   |   |   |   |[RFB25000]
   |   |   |[EXTENDED INDEX SUBRANGE]
   |   |   |   |[EXTENDED INDEX SUBRANGE]
   |   |   |   |   |[EXTENDED INDEX]
   |   |   |   |   |   |[XIB25A1]
   |   |   |   |   |[EXTENDED INDEX SUBRANGE]
   |   |   |   |   |   |[XSB250100]
   |   |   |   |   |   |   |[SUBRANGE]
   |   |   |   |   |   |   |   |[SRB2500000]
   |   |   |   |   |[EXTENDED INDEX SUBRANGE]
   |   |   |   |   |   |[XSB250101]
   |   |   |   |   |   |   |[SUBRANGE]
   |   |   |   |   |   |   |   |[SRB2500001]

以下は、SCHTEST.adlファイルをNDBメタ・テーブルにストアする例です。

$ ndbadlgen store -p SCHTEST.adl -f
>> [SCHTEST] delete done
>> [DSCH:SCHTEST] store done

以下は、SCHTEST.adlファイルをロードする例です。

$ ndbadlgen load -a SCHTEST
SCHEMA NAME IS SCHTEST FOR DB
 ;SCHEMA GROUP NAME IS SG01
 .

* ;XIF-SCHEMA (1)
*               XITEST
RECORD NAME IS RFB25000
  01 P_KEY_XI
 .

      03 P_KEY_XI1
 ;PIC X(010)
 .

      03 P_KEY_XI2
 ;PIC X(002)
 .

      03 P_KEY_XI3
 ;PIC X(010)
 .

  01 FILLER_0
 ;PIC X(008)
 .

  01 FILLER_1
 ;PIC X(29970)
.
.
. [省略]

以下は、SCHTEST.adlファイルを削除する例です。

$ ndbadlgen delete -a SCHTEST
>> [SCHTEST] delete done

2.2. ndbcmd

ndbcmdは、NDB DMLを使用してNDBのレコードを直接変更または検索するツールです。

使用方法

以下は、ndbcmdツールを実行する方法です。

ndbcmd [options]
  • [options]

    オプション 説明

    -h

    ndbcmdのオプションに関する簡単な情報を表示します。

    -V

    ndbcmdのバージョン情報を表示します。

    -b

    バッチ・モードで設定され、プロンプトが表示されません。

    -q

    DMLの実行後、FCOMの情報が表示されません。

使用例

以下は、STORE DMLを使用して、2つのレコードを保存する例です。

$ ndbcmd
NDB% READY TSTSUB02
 TSTSUB02 DML:RD DBESCB:0000 PGCSRN:             PGCS:0,0 PAGENO:0 RECID:0 RECSEQ:0 OCCID:0
NDB% STORE OWNREC01
  1 OWN1_FLD K data group
      3 OWN1_FLD1 K PIC X(010) : STORE_TEST
      3 OWN1_FLD2 K PIC X(002) : 01
      3 OWN1_FLD3 K PIC X(010) : STORE_TEST
  1 FILLER_0 PIC X(008) : TESTDATA
 TSTSUB02 DML:ST DBESCB:0000 PGCSRN:OWNREC01     PGCS:1792,3 PAGENO:-1 RECID:7 RECSEQ:3 OCCID:7696581394435
NDB% STORE OWNREC01
  1 OWN1_FLD K data group
      3 OWN1_FLD1 K PIC X(010) : STORE_TEST
      3 OWN1_FLD2 K PIC X(002) : 02
      3 OWN1_FLD3 K PIC X(010) : STORE_TEST
  1 FILLER_0 PIC X(008) : TESTDATA
 TSTSUB02 DML:ST DBESCB:0000 PGCSRN:OWNREC01     PGCS:1792,4 PAGENO:-1 RECID:7 RECSEQ:4 OCCID:7696581394436
NDB% COMMIT
NDB% FINISH
 TSTSUB02 DML:FN DBESCB:0000 PGCSRN:OWNREC01     PGCS:1792,4 PAGENO:-1 RECID:7 RECSEQ:4 OCCID:7696581394436
NDB%

以下は、上記例で保存されたレコードをGET ANY DMLを使用して検索する例です。

$ ndbcmd
NDB% READY TSTSUB02
 TSTSUB02 DML:RD DBESCB:0000 PGCSRN:             PGCS:0,0 PAGENO:0 RECID:0 RECSEQ:0 OCCID:0
NDB% GET ANY OWNREC01
      3 OWN1_FLD1 K PIC X(010) : STORE_TEST
      3 OWN1_FLD2 K PIC X(002) : 01
      3 OWN1_FLD3 K PIC X(010) : STORE_TEST
 TSTSUB02 DML:GT DBESCB:0000 PGCSRN:OWNREC01     PGCS:1792,3 PAGENO:-1 RECID:7 RECSEQ:3 OCCID:7696581394435
NDB% PRINT OWNREC01
  1 OWN1_FLD K data group
      3 OWN1_FLD1 K PIC X(010) : STORE_TEST
      3 OWN1_FLD2 K PIC X(002) : 01
      3 OWN1_FLD3 K PIC X(010) : STORE_TEST
  1 FILLER_0 PIC X(008) : TESTDATA
NDB% FINISH
 TSTSUB02 DML:FN DBESCB:0000 PGCSRN:OWNREC01     PGCS:1792,3 PAGENO:-1 RECID:7 RECSEQ:3 OCCID:7696581394435

2.3. ndbinit

ndbinitは、OpenFrame NDBを初めてインストールするときに必要なメタデータ・テーブルを作成、初期化および削除するためのツールです。

使用方法

以下は、ndbinitツールを実行する方法です。

ndbinit {COMMAND}[options]
  • 入力項目

    項目 説明

    {COMMAND}

    • create : オプションとして与えられたテーブルを作成します。

    • drop : オプションとして与えられたテーブルを削除します。

    • truncate : オプションとして与えられたテーブルを初期化します。

  • [options]

    オプション 説明

    -h

    ndbinitの使用方法およびオプションに関する簡単な情報を表示します。

    -t

    Tibero環境で指定されたテーブルを作成する表領域を指定します。

使用例

以下は、Tibero環境でDEFVOLという表領域にメタデータ・テーブルを作成および削除する例です。

$ ndbinit create -t DEFVOL
$ ndbinit drop -t DEFVOL

2.4. ndbmgr

ndbmgrは、ADL DBスキーマまたはXIFスキーマを参照し、オプションとコマンドに従ってスキーマに定義されたNDBのデータベースと索引を作成、初期化、削除するツールです。また、対象スキーマのDMLライブラリを作成します。

以下は、ndbmgrの主要機能です。

  • NDBのデータベースを作成、初期化、削除します。

  • NDBの索引を作成、初期化、削除します。

  • NDBの拡張索引を作成、初期化、削除します。

  • NDB DMLライブラリの作成

ndbmgrを実行する前に該当のスキーマ・ファイルが事前に登録されている必要があります。スキーマ・ファイルの登録時に使用されるndbadlgenツールの詳細については、ndbadlgenを参照してください。

使用方法

以下は、ndbmgrツールを実行する方法です。

ndbmgr schm {COMMAND} schema-name [options]
  • 入力項目

    項目 説明

    {COMMAND}

    • create : NDBのデータベース、索引、拡張索引を作成および初期化します。

    • truncate : NDBのデータベース、索引、拡張索引を初期化します。

    • drop : NDBのデータベース、索引、拡張索引を削除します。

    • dmlgen : 次のコマンドを実行すると、指定されているパスに対象スキーマのDMLライブラリを作成します。

      ofconfig LIST -s ndb -sec NDB_DEFAULT -k LIBRARY_PATH

    schema-name | all

    処理する対象を定義するDBスキーマまたはXIFスキーマの名前を指定します。allを指定する場合、OpenFrameに保存されているすべてのDBスキーマを対象にdmlの再作成を行います。

  • [options]

    オプション 説明

    -h

    ndbmgrの使用方法およびオプションとコマンドに関する簡単な情報を表示します。

    -V

    "ndbmgr -V"を使用してndbmgrのバージョン情報を確認します。

    -t

    テーブルを作成する表領域を指定します。

    -p page-size

    スキーマ内のレコードを検索する際、指定したページ・サイズを基準にしてページング処理します。

    -P

    DDLを実際に実行せずにスキーマのDDLを画面に表示します。

使用例

以下は、NDBのデータベースを作成する例です。

$ ndbmgr schm create SCHTEST
ndbmgr version 7.1.0(0) rona@:ofsrc7/ndb(#1) 2019-06-04 14:36:45
Managing OpenFrame NDB record tables and set tables

sacee token taken from config!
ndbmgr: creating SCHEMA (SCHTEST) objects

ndbmgr: successfully processed the request

以下は、NDBのデータベースを削除する例です。

$ ndbmgr schm drop SCHTEST
ndbmgr version 7.1.0(0) rona@:ofsrc7/ndb(#1) 2019-06-04 14:36:45
Managing OpenFrame NDB record tables and set tables

sacee token taken from config!
ndbmgr: dropping SCHEMA (SCHTEST) objects

ndbmgr: successfully processed the request

以下は、NDBの拡張索引を作成する例です。

$ ndbmgr schm create XITEST
ndbmgr version 7.1.0(0) rona@:ofsrc7/ndb(#1) 2019-06-04 14:36:45
Managing OpenFrame NDB record tables and set tables

sacee token taken from config!
ndbmgr: creating XIFSCHEMA (XITEST) objects

ndbmgr: successfully processed the request

以下は、NDB DMLライブラリを作成する例です。(DMLライブラリを作成する前に、ndbmgr schm createを使用してNDBのデータベースが作成されている必要があります。)

$ ndbmgr schm dmlgen SCHTEST
ndbmgr version 7.1.0(0) rona@:ofsrc7/ndb(#1) 2019-06-04 14:36:45
Managing OpenFrame NDB record tables and set tables

sacee token taken from config!
ndbmgr: generate SCHEMA (SCHTEST) objects

tbESQL Precompiler 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.


/home/rona/oframe7/OHOME/ndb/temp/SCHTEST_RFB25000.tbc is precompiled successfully!


ndbmgr: successfully processed the request

3. データベース移行ツール

本節では、OpenFrame NDBのデータベース移行に使用されるツールの使用方法について説明します。

3.1. ndbconvstmt

ndbconvstmtは、JXKUNLODユーティリティまたはndbexportツールで使用された制御文を使用して、JXKRELODまたはndbimportで使用できる制御文を作成するツールです。

使用方法

以下は、ndbconvstmtツールを実行する方法です。

ndbconvstmt [options] input-file output-file
  • [options]

    オプション 説明

    -h

    ndbconvstmtの使用方法およびオプションに関する簡単な情報を表示します。

    -V

    ndbconvstmtのバージョン情報を表示します。

    -r

    逆変換を実行します。

    JXKRELODまたはndbimportで使用された制御文を使用して、JXKUNLODまたはndbexportで使用できる制御文を作成します。

  • 入力項目

    項目 説明

    input-file

    JXKUNLODまたはndbexportで使用された制御文を含むファイル名を指定します。

    -rを指定する場合は、JXKRELODまたはndbimportで使用されたファイル名を指定します。

    output-file

    JXKRELODまたはndbimportで使用する制御文を保存するファイル名を指定します。

    -rを指定する場合は、JXKUNLODまたはndbexportで使用するファイル名を指定します。

使用例

以下は、NDBの変換スキームを作成する例です。

$ ndbconvstmt SCHTEST_UNLOAD SCHTEST_RELOAD
ndbconvstmt version 7.1.0(0), rona@:ofsrc7/ndb(#1) 2019-06-04 14:36:45

3.2. ndbgensch

ndbgenschは、指定されたスキーマに基づいてNDBデータベースを読み取り、データファイルを作成するユーティリティです。

使用方法

以下は、ndbgenschツールを実行する方法です。

ndbgensch [options] schema-name
  • [options]

    オプション 説明

    -h

    ndbgenschの使用方法およびオプションに関する簡単な情報を表示します。

    -V

    ndbgenschのバージョン情報を表示します。

    -o conversion-scheme-file -name

    作成される変換スキーム・ファイル名を指定します。

    -v volume-name

    ボリューム名を指定します。

    -c record-name= copybook-file-path [[,record-name= copybook-file-path]…​]

    各レコードの変換規則をコピーブックに定義する場合に設定します。

  • 入力項目

    項目 説明

    schema-name

    データベースを定義したスキーマ名を指定します。

使用例

以下は、データベースの変換スキームを作成する例です。

$ ndbgensch SCHTEST
ndbgensch version 7.1.0(0), rona@:ofsrc7/ndb(#1) 2019-06-04 14:36:45
Scheme filename = /home/rona/oframe7/OHOME/schema/SCHTEST.conv - created

3.3. ndbexport

ndbexportは、NDBのデータを読み込んで指定されたファイルにエクスポートするためのツールです。NDBをエクスポートする前に、関連するすべてのスキーマを作成しておく必要があります。

使用方法

以下は、ndbexportツールを実行する方法です。

ndbexport [options] sub-schema-name schema-name dump-dataset-name
  • [options]

    オプション 説明

    -h

    ndbexportの使用方法およびオプションに関する簡単な情報を表示します。

    -V

    ndbexportのバージョン情報を表示します。

    -v volume-name

    NDBデータが保存されるデータセットのボリューム名を指定します。

    -c control-statment-file-name

    JXKUNLODで使用される制御文が含まれたファイル名を指定します。

  • 入力項目

    項目 説明

    sub-schema-name

    エクスポート対象のデータベースを定義したサブスキーマ名を指定します。

    schema-name

    エクスポート対象のデータベースを定義したスキーマ名を指定します。

    dump-dataset-name

    ndbexportで作成するDB2形式のデータセット名を指定します。

使用例

以下は、NDBのデータを指定されたファイルにエクスポートする例です。

$ ndbexport -v DEFVOL -c MEMREC02_UNLOAD  SSTEST SCHTEST  FKAWA.SCHTEST.UNLD
ndbexport version 7.1.0(2), rona@:ofsrc7/ndb(#1) 2019-06-04 14:36:45
* JXKUNLOD START: 2019-12-18 19:08:18
_nstmts: 6
[2019-12-18T19:08:18] [U] [NDB0033I] No JCL_AIMAPG env set, rcvl check will be skipped

*********************** UNLOAD RECORD COUNT INFORMATION ***********************
UNLOAD DATA INFORMATION (RECFM=VB,BLKSIZE=08192,LRECL=05416)
  RECORD-NAME         RECORD-COUNT        RECORD-LENGTH       DATA-LENGTH
  OWNREC01            0000000001004       00066               00050
  MEMREC01            0000000003437       05416               05400
  MEMREC02            0000000020930       01016               01000
*******************************************************************************
                   TOTAL RECORD COUNT    =  0000000000025371
*******************************************************************************
[2019-12-18T19:08:19] [U] [NDB0033I] No JCL_AIMAPG env set, rcvl check will be skipped
* JXKUNLOD FINISH: 2019-12-18 19:08:19
dsmove version 7.1.0(1) rona@:ofsrc7/base(#5) 2019-09-25 14:03:01
Move or Rename a Dataset

DSMOVE SOURCE=SCHTEST.DB1.TxGCMFO,DEST=FKAWA.SCHTEST.UNLD,CATALOG=,VOLSER=DEFVOL,TARGET VOLSER=DEFVOL,TARGET CATALOG=
OFRUISVRDSMOVE2: Dataset Move OK. from=SCHTEST.DB1.TxGCMFO,to=FKAWA.SCHTEST.UNLD
COMPLETED SUCCESSFULLY.
dsdelete version 7.1.0(0) rona@:ofsrc7/base(#5) 2019-09-25 14:03:01
Delete an Existing Dataset or a Member of PDS Dataset

DSDELETE DSNAME=SCHTEST.CS1.T70mdcC,CATALOG=,VOLSER=DEFVOL,MEMBER=
OFRUISVRDSDEL: Dataset Delete OK. dsn=SCHTEST.CS1.T70mdcC
COMPLETED SUCCESSFULLY.
dsdelete version 7.1.0(0) rona@:ofsrc7/base(#5) 2019-09-25 14:03:01
Delete an Existing Dataset or a Member of PDS Dataset

DSDELETE DSNAME=SCHTEST.CN1.TFWBIGl,CATALOG=,VOLSER=DEFVOL,MEMBER=
OFRUISVRDSDEL: Dataset Delete OK. dsn=SCHTEST.CN1.TFWBIGl
COMPLETED SUCCESSFULLY.

3.4. ndbimport

ndbimportは、データファイルを順に読み込んでNDBにインポートするツールです。ndbimportを実行する前に、関連するすべてのスキーマを作成しておく必要があります。NDBのデータファイルの形式は、AIM/DBのDB2形式に従います。ndbexportツールを使用して、DB2ファイル形式のデータセットを作成することができます。

ndbimportは、DB2形式のNDBデータを読み込んで指定されたサブスキーマに含まれたスキーマにNDBデータを保存します。

使用方法

以下は、ndbimportツールを実行する方法です。

ndbimport [options] sub-schema-name schema-name source-dataset-name
  • [options]

    オプション 説明

    -h

    ndbimportrの使用方法およびオプションに関する簡単な情報を表示します。

    -V

    ndbimportのバージョン情報を確認します。

    -v volume-name

    NDBデータが保存されたデータセットおよびixdataとkrdataが保存されるデータセットのボリューム名を指定します。

    -c control-statment-file-name

    JXKRELODで使用される制御文が含まれたファイル名を指定します。

    -d

    ndbimportの実行時に作成される一時ファイル(.dat、.log、.ctl)を実行後に削除します。

    -e

    ndbimportを使用して重複チェックを行います。重複チェックのみを実行するため、データはインポートしません。

  • 入力項目

    項目 説明

    sub-schema-name

    ロード対象のデータベースを定義したサブスキーマ名を指定します。

    schema-name

    ロード対象のデータベースを定義したスキーマ名を指定します。

    source-dataset-name

    データベースにロードするデータセット名を指定します。DB2形式に従います。

使用例

以下は、ソースファイルを指定してNDBのデータベースにインポートする例です。

$ ndbimport -v DEFVOL -c SCHTEST_RELOAD SSTEST SCHTEST FKAWA.SCHTEST.H00.ASCII
ndbimport version 7.1.0(0), rona@:ofsrc7/ndb(#1) 2019-06-04 14:36:45
* JXKRELOD START: 2019-12-18 19:05:57
[2019-12-18T19:05:57] [U] [NDB0033I] No JCL_AIMAPG env set, rcvl check will be skipped

*********************** RELOAD RECORD COUNT INFORMATION ***********************
RELOAD DATA INFORMATION (RECFM=V,BLKSIZE=43328,LRECL=32760)
  RECORD-NAME         RECORD-COUNT        RECORD-LENGTH       DATA-LENGTH
  OWNREC01            0000000001004       00066               00050
  MEMREC01            0000000003437       05416               05400
  MEMREC02            0000000020930       01016               01000
*******************************************************************************
                   TOTAL RECORD COUNT    =  0000000000025371
*******************************************************************************
[2019-12-18T19:06:12] [U] [NDB0033I] No JCL_AIMAPG env set, rcvl check will be skipped
* JXKRELOD FINISH: 2019-12-18 19:06:12

3.5. subsc

COBOLアプリケーション・ソースは、レコードを定義する際にコピーブックを使用します。また、アプリケーション・ソースを簡単に作成するために頻繁に使用されるロジックをコピーブックとして作成して使用できます。ほとんどのCOBOLアプリケーション・ソースではコピーブックを使用するため、COBOLアプリケーション・ソースのコンパイルにはコピーブックが必要です。

以下は、コピーブックの種類と作成方法です。

  • ユーザー・コピーブック

    アプリケーションを簡単に作成するためにユーザーが直接作成するコピーブックです。

    openframe_ndb.confのMETA SECTIONのSUBSCPY KEYのVALUEにユーザー・コピーブックのパスを追加し、ofconfigツールを使用してそのパスにコピーブックが配布されるようにします。

    $ ofconfig import -f openframe_ndb.conf
    COMPLETED SUCCESSFULLY.
  • サブスキーマ・コピーブック

    アプリケーションがNDBのデータを使用する場合は、NDBのSUBSCHEMAに定義されたレコードを介してデータを使用することになります。SUBSCHEMAはADLで定義し、そのADL SUBSCHEMAにレコード情報が定義されます。また、subscを使用してSUBSCHEMAに定義されたレコードを抽出して指定されたパスにコピーブックを作成します。

使用方法

以下は、subscプログラムを実行する方法です。

subsc sub-schema-name
  • 入力項目

    項目 説明

    sub-schema-name

    コピーブックを定義するサブスキーマ名を指定します。

使用例

以下は、subscによってサブスキーマ・コピーブックが指定されたパスに作成されたことを示す例です。

$ subsc TSTSUB01
 * subschema copybook
   [/home/rona/oframe7/OHOME/cobcpy/subscpy/TSTSUB01.cbl] create.
subschema copybook generation success (TSTSUB01)

$ OHOME/cobcpy/subscpy$ vi TSTSUB01.cbl

    01  OWNREC01.
        02  OWN1-FLD.
          04  OWN1-FLD1  PIC X(10).
          04  OWN1-FLD2  PIC X(2).
          04  OWN1-FLD3  PIC X(10).
        02  FILLER-0  PIC X(8).
    01  MEMREC01.
        02  MEM-FLD.
          04  MEMB-FLD1  PIC X(10).
          04  MEMB-FLD2  PIC X(20).
          04  MEMB-FLD3  PIC X(10).

3.6. ndbunloader

ndbunloaderはクロスセット(Cross set)など、OpenFrame NDBでndbexportやjxkunlodを使用してデータをアンロードできない場合に使用されるアンロード用のCOBOL生成ツールです。

ndbloaderで使用できるNDBデータファイルを作成するためのCOBOLを生成します。

ndbunloaderを実行すると、NDB_DEFAULT.UNLOAD_COBOL_PATHとして設定したパスの下にスキーマ名でディレクトリを作成し、内部にRECORD、SET COBOLを生成します。

生成されるCOBOLの命名規則は以下のとおりです。

  • RECORD: スキーマ名_RECS.COBOL

  • SET: スキーマ名_SETS.COBOL

使用方法

以下は、ndbunloaderツールを実行する方法です。

ndbunloader schema-name sub-schema-name
  • 入力項目

    項目 説明

    schema-name

    アンロード対象のデータベースを定義したスキーマ名を指定します。

    sub-schema-name

    アンロード対象のデータベースを定義したサブスキーマ名を指定します。

使用例

以下は、ndbunloaderを使用してCOBOLを生成する例です。

$ ndbunloader TSTLOC01 TSTSUB01
  === UNLOAD RECORD COBOL GENERATION SUCCESS===
[/home/jaegu/OF73/OHOME/ndb/unload_cob/TSTLOC01/TSTLOC01_RECS.COBOL] created.

  === UNLOAD SET COBOL GENERATION SUCCESS===
[/home/jaegu/OF73/OHOME/ndb/unload_cob/TSTLOC01/TSTLOC01_SETS.COBOL] created.

NDBUNLOADER: successfully finished the request for the schema TSTLOC01

3.7. ndbloader

ndbloaderはクロスセット(Cross set)など、OpenFrame NDBでndbimportやjxkrelodを使用してデータをロードできない場合に使用されるNDB保存ツールです。ndbloaderを実行する前に、関連するすべてのスキーマを生成する必要があります。

ndbloaderは、ndbunloaderツールを実行して生成されたCOBOLによって作成されたNDBデータファイルを順次読み込み、NDBに保存します。

使用方法

以下は、ndbloaderツールを実行する方法です。

ndbloader command schema-name sub-schema-name source-dataset-name [options]
  • 入力項目

    項目 説明

    command

    • record: NDBレコード・データ・ファイルを使用してレコード・データをロードします。

    • set: NDBセット・データ・ファイルを使用してセット関係を保存します。セットを保存するためには、事前にレコード・データがロードされている必要があります。

    • create: NDBレコード・ファイルとNDBセット・ファイルを関連付けるキーペア・テーブルを生成します。recordコマンドを実行する前に生成されている必要があります。

    • drop: キーペア・テーブルを削除します。

    • truncate: キーペア・テーブルを初期化します。

    schema-name

    ロード対象のデータベースを定義したスキーマ名を指定します。すべてのコマンドで必須入力項目です。

    sub-schema-name

    ロード対象のデータベースを定義したサブスキーマ名を指定します。キーペア・テーブル関連のコマンド(create、drop、truncate)では入力不要です。

    source-dataset-name

    データベースにロードするデータセット名を指定します。ndbunloaderによって生成されたCOBOLを実行して作成されたデータセットである必要があります。キーペア・テーブル関連のコマンド(create、drop、truncate)では入力不要です。

  • [options]

    オプション 説明

    -i

    ndbloaderを使用してデータのロード中にエラーが発生した場合、プログラムを終了せずにエラー・メッセージのみを出力して続行します。

    -D

    ndbloaderをデバッグ・モードで実行します。

    -Y

    ndbloaderの実行中にロードするレコードとセットに関する情報を表示します。

使用例

以下は、ndbloaderを使用してNDBにデータセットをロードする例です。

ロード順序

1. キーペア・テーブルの作成

$ ndbloader create TSTLOC01
NDBLOADER version 7.3.0(2) jaegu@:ofsrc/ndb(#1) 2024-03-20 19:06:55
NDB data importer - Import NDB data

NDBLOADER: creating key pair table for schema TSTLOC01
NDBLOADER: key pair table for schema TSTLOC01 creation complete

NDBLOADER: successfully finished the request for the schema TSTLOC01


2. レコード・データのインポート

$ ndbloader record TSTLOC01 TSTSUB01 TESTDAT.REC.ASC
NDBLOADER version 7.3.0(2) root@OF73:ofsrc/ndb(#2) 2023-12-09 11:13:32
NDB data importer - Import NDB data

NDBLOADER: importing record data of schema TSTLOC01
NDBLOADER: now processing 1000 record data
NDBLOADER: now processing 2000 record data
NDBLOADER: imported 2743 record data in total

NDBLOADER: successfully finished the request for the schema TSTLOC01


3. セット関係のインポート

$ ndbloader set TSTLOC01 TSTSUB01 TESTDAT.SET.ASC
NDBLOADER version 7.3.0(2) root@OF73:ofsrc/ndb(#2) 2023-12-09 11:13:32
NDB data importer - Import NDB data

NDBLOADER: importing set relation of schema TSTLOC01
NDBLOADER: now processing 1000 set relation
NDBLOADER: imported 1631 set relation in total

NDBLOADER: successfully finished the request for the schema TSTLOC01


キーペア・テーブルの初期化(TRUNCATE)例

$ ndbloader truncate TSTLOC01
NDBLOADER version 7.3.0(2) root@OF73:ofsrc/ndb(#2) 2023-12-09 11:13:32
NDB data importer - Import NDB data

NDBLOADER: truncating key pair table of schema TSTLOC01
NDBLOADER: key pair table for schema TSTLOC01 truncation complete

NDBLOADER: successfully finished the request for the schema TSTLOC01


キーペア・テーブルの削除(DROP)例

$ ndbloader drop TSTLOC01
NDBLOADER version 7.3.0(2) root@OF73:ofsrc/ndb(#2) 2023-12-09 11:13:32
NDB data importer - Import NDB data

NDBLOADER: dropping key pair table of schema TSTLOC01
NDBLOADER: key pair table for schema TSTLOC01 drop complete

NDBLOADER: successfully finished the request for the schema TSTLOC01