OpenFrame HiDBの再編成ユーティリティ
本章では、OpenFrame HiDBデータベースの再編成ユーティリティについて説明します。
2. DFSURGL0
DFSURGL0は、HD再編成アンロード・ユーティリティであるDFSURGU0によって作成されたデータセットをHDAM、HIDAMまたはHISAMデータベースにリロードするためのユーティリティ・プログラムです。
以下は、DFSURGL0が提供する機能です。
-
DFSURGU0によって作成された再編成アンロード・データセットをHDAM、HIDAM、HISAMデータベースにリロードします。
-
論理関係または二次索引の情報が含まれた作業データセットを作成します。
-
データベースをリロードした後、セグメントの統計情報を出力します。
HiDBのDFSURGL0ユーティリティは、IBM IMS/DBのDFSURGL0ユーティリティに対応されます。 |
2.1. EXEC文の設定
以下は、EXEC文の構文です。
PGM=DFSRRC00,PARM='ULU,DFSURGL0,dbd-name'
項目 | 説明 |
---|---|
PGM |
DFSURGL0は、IMS/DBを使用するプログラムの実行ユーティリティであるDFSRRC00を介して実行されます。 |
PARM |
|
2.2. DD文の設定
以下は、DDの設定項目です。
項目 | 説明 |
---|---|
IMS DD |
EXEC文でパラメータとして入力したDBDが入っているライブラリを指定します。(必須項目) |
database DD |
アンロード対象のデータベース・データセットを指定します。(必須項目) データベースのDD名はDBDにあるDD名と一致している必要があります。HIDAMデータベースの場合は、関連する索引データセットも一緒に指定します。 |
SYSPRINT DD |
DFSURGL0ユーティリティのメッセージが出力されます。(必須項目) |
DFSUINPT DD |
リロード対象の入力データセットを指定します。HD再編成アンロード・ユーティリティであるDFSURGU0によって作成されたデータセットです。(必須項目) 入力データセットをDUMMYと記述した場合は、HDAMとHIDAMデータベースが初期化されます。 |
DFSURWF1 DD |
リロード対象のデータベースがセグメント間の論理関係を持つ場合に作成する作業データセットを指定します。 データセットは接頭部解決ユーティリティであるDFSURGL0によって入力データセットとして使用され、リロード時に発生した論理関係または二次索引関連の情報が含まれます。 |
DFSURCDS DD |
HiDBでは、構文解析のみサポートします。 |
DFSURLOG DD |
リロード・ログを出力するデータセットを指定します。(選択項目) リロードに失敗した場合、その原因となるセグメント・データを見つける際に使用します。ログ・データセットには、リロード入力データセットのセグメント順番、セグメント名、ステータス・コード、セグメント・キー値が記録されます。 |
2.4. 統計情報
データベースのリロードが正常に終了すると、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
リロードとアンロードの数が一致すると空白で表示されます。
アンロードよりもリロードの数が大きければプラス記号(+)が、アンロードの数が大きければマイナス記号(-)が付けられます。
-
TOTAL SEGMENTS IN DATABASEフィールドの項目
項目 説明 UNLOADED
HD再編成アンロード・ユーティリティであるDFSURGU0によってカウントされたすべてのセグメント・インスタンスの総数です。
RELOADED
HD再編成リロード・ユーティリティであるDFSURGL0によってカウントされたすべてのセグメント・インスタンスの総数です。
DIFFERENCE
リロードとアンロードの数が一致すると空白で表示されます。一致しない場合は、その差が表示されます。
2.5. 使用例
以下は、HD再編成アンロード・ユーティリティであるDFSURGU0によって作成されたTMAX01.DB1データセットをDFSUINPT DDに指定し、TMAX01DB DBDに定義されているデータベースにリロードする例です。
//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), // 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
TMAX01I1 DDは、索引データセットを指定したものであり、TMAX01D1とTMAX01D2 DDは、データベース・データセットを指定したものです。DFSURWF1 DDは、論理関係情報が含まれたTMAX01. DFSURWF1データセットを指定したものであり、リロード中に作成され、接頭部解決ユーティリティのDFSURGL0で入力データセットとして使用されます。
2.6. 戻りコード
以下は、DFSURGL0ユーティリティの戻りコードです。
-
正常に実行された場合
戻りコード0を返します。
-
エラーが発生した場合
SYSPRINT DDにエラーメッセージを出力し、該当するエラーコードを返します。
コード 説明 4
リロード対象のセグメントが存在しない場合に発生します。
8
リロードとアンロードの数が一致しない場合に発生します。
16
プログラム処理またはシステム・エラーです。次のような場合に発生します。
-
OpenFrameシステム・ライブラリの初期化に失敗した場合
-
データベース・リロードに失敗した場合
-
その他のDFSURGL0ユーティリティ・プログラムのエラー
-
3. DFSURGU0
DFSURGU0は、HDAM、HIDAMまたはHISAMアクセス方式で定義されたデータベースを読み取り、データベースの再編成に必要な順次データセット(SDS)を作成するためのユーティリティ・プログラムです。
以下は、DFSURGU0が提供する機能です。
-
HDAM、HIDAM、HISAMデータベースを再編成するためのアンロード・データセットを作成します。
-
アンロード・データセットのセグメント統計情報の出力します。
HiDBのDFSURGU0ユーティリティは、IBM IMS/DBのDFSURGU0ユーティリティに対応されます。 |
3.1. EXEC文の設定
以下は、EXEC文の構文です。
PGM=DFSRRC00,PARM='ULU,DFSURGU0,dbd-name,[formatopt]'
項目 | 説明 |
---|---|
PGM |
DFSURGU0は、IMS/DBを使用するプログラムの実行ユーティリティであるDFSRRC00を介して実行されます。 |
PARM |
|
3.2. DD文の設定
以下は、DDの設定項目です。
項目 | 説明 |
---|---|
IMS DD |
EXEC文でパラメータとして入力したDBDが入っているライブラリを指定します。(必須項目) |
database DD |
アンロード対象のデータベース・データセットを指定します。(必須項目) データベースのDD名はDBDにあるDD名と一致している必要があります。HIDAMデータベースの場合は、関連する索引データセットも一緒に指定します。 |
SYSPRINT DD |
DFSURGU0ユーティリティのメッセージが出力されます。(必須項目) |
DFSURGU1 DD |
データベースをアンロードして出力する順次データセットを指定します。(必須項目) アンロード・データセットのフォーマットについては、HiDBマイグレーション・データ・フォーマットを参照してください。 |
3.4. 統計情報
データベースのアンロードが正常に終了すると、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 ===============================================================================
-
SEGMENT LEVEL STATISTICSフィールドの項目
項目 説明 MAXIMUM TWINS
同じ親セグメント・インスタンスの下にあるツイン・セグメント・インスタンスの最大数です。ルート・セグメントの値は、常に1です。
AVG TWINS
同じ親セグメント・インスタンスの下にあるツイン・セグメント・インスタンスの平均数です。
MAXIMUM CHILDREN
同じ親セグメント・インスタンスの下にある子セグメント・インスタンスの最大数です。
AVG CHILDREN
同じ親セグメント・インスタンスの下にある子セグメント・インスタンスの平均数です。最下位にあるセグメントの値は0です。
SEGMENT NAME
同じ行の統計情報が適用されるセグメント名です。
SEGMENT LEVEL
セグメントの階層レベルです、上位から順にリストされます。
-
RECORD LEVEL STATISTICSフィールドの項目
項目 説明 TOTAL SEGMENTS BY SEG TYPE
同じセグメント・タイプを持つインスタンスの総数です。
AVG COUNT PER DB RECORD
1つのレコードに入っている同じセグメント・タイプを持つインスタンスの平均数です。
3.5. 使用例
以下は、TMAX01DB DBDに定義されているデータベースを読み取り、DFSURGU1 DDのTMAX01.DB1データセットにアンロードする例です。
//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)
TMAX01I1 DDは、索引データセットを指定したものであり、TMAX01D1とTMAX01D2 DDは、データベース・データセットを指定したものです。