Load 関数

データベースを初期化し、そのデータベースを入力データ ファイルからロードします。

Load 関数は、データベースを初期化し、そのデータベースを入力データ ファイルからロードします。データベース再編成の一部としてデータベースの初期ロードを行う場合や、DBD 定義の変更後にデータベースを再ロードする場合に、この関数を使用できます。

警告: Load 関数は、ゼロロードを自動的に実行します。既存のデータベースをゼロロードすると、そのデータベースは再初期化され、データはすべて失われます。

構文 - コマンド ライン

mfims imsdbu LOAD {database-name|filename}
     [[NO]CLS] 
     [[NO]COMPRESS[(program)]]
     [DATA(position)]
     [DSN(filespec)]
     [ECHO(keyword,msglvl,stoplvl
     [[NO]INI(filespec)]
     [LAYOUT(type)]
     [[NO]LIST(filespec)]
     [LISTOPEN(disp)]
     [[NO]LOG(filespec)]
     [LRECL(length)]
     [PROGRESS(no-of-segments)]
     [RECFM(format)]
     [[NO]SEGEXIT[(program)]]
     [SEGM(position)]

構文 - JCL

//LOAD     EXEC PGM=MFDBUJCL,PARM='LOAD,database-name,{dataset-name | catalog-name}'
//SYSOUT   DD  SYSOUT=*
//INPUT    DD  DSN=input-dataset,DISP=SHR

パラメーター - コマンド ライン

database-name
関数の実行対象のデータベースの名前。
filename
関数の実行対象のデータベースのリストを含むファイルの名前。
CLS
ユーティリティの起動前に画面をクリアします。NOCLS を指定すると、画面の初期クリアは行われません。NOCLS は、コマンド ファイルで一連のユーティリティを実行している場合に役立ちます。
デフォルト: NOCLS
DSN
セグメント データを含む入力ファイルのデータセット名を指定します。
デフォルト: DSN(*.DBU)
サブパラメーター
filespec セグメント データを含む入力ファイルのデータセット名
構文規則
  1. filespec のベース名をアスタリスク (*) として指定した場合、そのアスタリスクは DBD 名に置き換えられます。
  2. 入力ファイル名には一意の拡張子を使用します。これは、データベース データ ファイルが入力ファイルと別のディレクトリにある場合でも適用されます。
  3. ドライブまたはディレクトリ (あるいはその両方) を指定しない限り、入力データセットは現在のディレクトリにあります。
  4. 入力ファイル名 (ドライブおよびディレクトリは含めない) は、データベース用のファイルの名前とは別にする必要があります。たとえば、MYDBD という名前のデータベースのデータ ファイルが MYDBD.DAT および MYDBD.IDX である場合は、入力ファイル名にはこれらのファイル名を使用できません。
ECHO
IMSDBU が表示するメッセージの表示、およびそれらのメッセージとの対話を制御します。
デフォルト: ECHO(MSGS,4,8)
サブパラメーター
keyword 表示される情報のカテゴリ。次のいずれかを指定します。
ALL
処理メッセージ、入力ソースまたは詳細情報、および終了メッセージを常に表示します。メッセージ レベルが msglvl および stoplvl 値以上の場合は、警告およびエラー メッセージが表示され、ユーザー入力を求めて停止します。
MSGS
処理メッセージおよび終了メッセージを常に表示します。ソースや詳細情報は表示されません。メッセージ レベルが msglvl および stoplvl 値以上の場合は、警告およびエラー メッセージが表示され、ユーザー入力を求めて停止します。
ERREND
ユーティリティ終了メッセージを常に表示します。メッセージ レベルが msglvl および stoplvl 値以上の場合は、警告およびエラー メッセージが表示され、ユーザー入力を求めて停止します。
ENDMSG
ユーティリティ終了戻りコードが msglvl 以上の場合のみ終了メッセージを表示します。ユーティリティ終了戻りコードが stoplvl 以上の場合は、「Press any key to continue」というメッセージが表示され、入力を求めて停止します。すべての終了メッセージで表示または停止、あるいはその両方を行うには、msglvl または stoplvl (あるいはその両方) の値としてゼロを入力します。
COND
警告またはエラー メッセージ、および終了メッセージは、どちらも msglvl および stoplvl 値を条件としています。メッセージ レベルが msglvl および stoplvl 値以上の場合は、警告およびエラー メッセージが表示され、ユーザー入力を求めて停止します。終了戻りコードが msglvl 以上の場合は、終了メッセージが表示されます。ユーティリティ終了戻りコードが stoplvl 以上の場合は、入力を求める「Press any key to continue」というメッセージが表示されます。
ERRORS
メッセージ レベルが msglvl および stoplvl 以上の場合は、入力を求める警告およびエラー メッセージが表示されます。終了メッセージは表示されません。
msglvl 表示するメッセージの重大度を示す 4 から 20 までの値。1
stoplvl ユーザー入力を求めて停止するメッセージの重大度を示す 4 から 20 までの値。1
1 次の値を指定できます。
カテゴリ 原因例
4 一般的な警告メッセージ DBDGEN が想定して続行できる DBD ソース内のマイナーなコーディング エラー
6 IMS 固有の警告メッセージ キーワードまたは文がサポート対象外で無視されるという警告 (処理は続行可能)
8 一般的な重大エラー 補正できない DBD ソース内の無効なコーディング (「no DBD statement」など)
10 IMS Option 固有の重大エラー 補正できないサポート対象外の機能が定義されている (「Exceeded some maximum」など)
12 重大エラー - 起こりうる一時的な状態 一時的な入出力エラー (「file locked」または「database locked」状態など)
16 重大エラー - 永続的 - インストールの問題の可能性 永続的な入出力エラー (無効なデータ セット名やメンバー名がユーティリティに入力された場合や、環境変数が正しく設定されていない場合など)
20 重大エラー - 永続的 回復不能な入出力エラーまたは他の予期しないエラー
INI
デフォルトの指令ファイルを指定します。
デフォルト: なし
サブパラメーター
filespec IMSDBU プログラム デフォルトをオーバーライドする指令を含む .INI ファイルの名前および場所。
構文規則
  1. filespec には、必要に応じてドライブまたはディレクトリ (あるいはその両方) を含められます。ドライブやディレクトリを指定しない場合、IMSDBU は指定された .INI ファイルを現在のディレクトリで検索します。
  2. .INI ファイルにリストされた指令は、IMSDBU プログラム デフォルトをオーバーライドします。
  3. コマンド ラインまたは対話式画面で入力された指令は、.INI ファイル内の指令をオーバーライドします。
  4. NOINI を指定すると、.INI ファイルによるプログラム デフォルトのオーバーライドは行われません。
  5. 指定した .INI ファイルが存在しない場合は、NOINI を指定した場合と同様にプログラム デフォルトの指令が使用されます。
一般規則
  1. .INI ファイルは ASCII テキスト形式のファイルで、見出し [IMSDBU] を行 1 に含み、列 1 から始まり、1 行に 1 つの指令が含まれる mfims imsdbu 指令のリストが続きます。行は改行またはファイルの末尾で終了します。コメント行は、列 1 にアスタリスク (*) またはセミコロン (;) があることで示されます。次に例を示します。
    [IMSDBU]
    PROGRESS(1000)
    ;use local log
    LOG(C:\MYDIR\MYDB.LOG)
LAYOUT
入力または出力ファイルのタイプを指定します。
デフォルト: LAYOUT(D)
サブパラメーター
type 入力ファイルのタイプ。次のいずれかになります。
D
入力ファイルは IMSDBU ファイル レイアウトです。追加の指令を使用して入力ファイルを記述する必要はありません。
G
入力ファイルは汎用レイアウトです。追加の指令を使用して入力ファイルおよびその内容を記述する必要があります。
I
入力ファイルは IBM フォーマットです。追加の指令を使用して入力ファイルを記述する必要はありません。
S
入力ファイルは順編成ファイルです。追加の指令を使用して入力ファイルおよびその内容を記述する必要があります。
構文規則
  1. G および S パラメーターに必要な追加の指令は、RECFM、LRECL、SEGM、および DATA です。
一般規則
  1. LAYOUT(I) 出力ファイルは、メインフレームへのアップロードや IMS/ESA データベースの再ロードには適していません。
LIST
詳細リスティング ファイルの場所および名前を制御します。リスティング ファイルには、ソース リスティング、完了状態、エラー メッセージ、実行統計などの項目が含まれます。
デフォルト: LIST(*.LST)
サブパラメーター
filespec リスティング ファイルに使用する名前および場所。
構文規則
  1. filespec には、必要に応じてドライブまたはディレクトリ (あるいはその両方) を含められます。ドライブやディレクトリを指定しない場合、IMDBU は現在のディレクトリにリスティング ファイルを作成します。
  2. NOLIST はリスティング ファイルの作成を抑制します。
  3. パスの指定では、パスを表す環境変数名の冒頭にドル記号 ($) を書く表記法を使用できます。たとえば、LIST($ENVVAR\*.DOC) と記述すると、ENVVAR 環境変数で指定したディレクトリに dbdname.DOC のリスト ファイルが作成されます。
  4. LIST(*.LST) または LIST(*.RPT) を指定すると、プロジェクト リスティング ディレクトリにリスティング ファイルが作成されます。
  5. パスを指定しない場合、リスティング ファイルは現在のディレクトリに作成されます。
  6. filespec のベース名をアスタリスク (*) として指定した場合、そのアスタリスクは DBD 名に置き換えられます。これにより、IMSDBU は、複数のデータベースを操作できる関数の個別レポートを提供できます。また、これは DBD 名による履歴詳細レポートの管理にも役立ちます。
  7. LISTfilespec なしで指定すると、LIST(*.LST) を指定した場合と同じ結果が得られます。
LISTOPEN
詳細リスティング ファイルのオープン ディスポジションを制御します。
デフォルト: LISTOPEN(NEW)
サブパラメーター
disp 使用するディスポジション。次のいずれかになります。
NEW
新しいリスティング ファイルを作成するか、既存のリスティング ファイルを上書きします。
MOD
リスト出力を既存のファイルに追加します。既存のファイルがない場合は、新しいリスティング ファイルを作成します。MOD を指定すると、データベース関数の詳細履歴レコードを管理できます。
構文規則
  1. NOLIST を指定した場合、LISTOPEN は無視されます。
LOG
各関数の終了メッセージ状態を示す IMSDBU アクティビティ ログを指定します。
デフォルト: LOG (IMSDBU.LOG)
サブパラメーター
filespec IMSDBU アクティビティ ログとして使用するファイルの名前および場所。
構文規則
  1. filespec には、必要に応じてドライブまたはディレクトリ (あるいはその両方) を含められます。ドライブやディレクトリを指定しない場合は、現在のディレクトリにリスティング ファイルが作成されます。
  2. NOLOG を指定すると、ログ ファイル出力は抑制されます。
一般規則
  1. ログ ファイルが存在しない場合は作成されます。
  2. ログ ファイルは、ファイルの末尾に書き込まれた最新のエントリを含む履歴ファイルです。
  3. ログ ファイルは時間とともにサイズが大きくなるため、状況に応じて定期的に削除する必要があります。
LRECL
固定長の汎用レイアウト入力レコードの長さを指定します。
デフォルト: LRECL(0)
サブパラメーター
length 固定長の汎用レイアウト入力レコードの長さ。
構文規則
  1. 固定長汎用ファイルからロードする場合、つまり LAYOUT(G) が指定されている場合は、LRECL が必要です。
  2. LAYOUT(D)、LAYOUT(I)、または LAYOUT(S) が指定されている場合は、LRECL は不要であり、無視されます。
PROGRESS
進捗レポートの頻度を制御します。
デフォルト: PROGRESS(200)
サブパラメーター
no-of-segments 進捗メッセージを表示する前に処理するセグメントの数を示す 0 から 9999 までの値。0 を指定すると、進捗レポーティングは無効になります。
構文規則
  1. 指定するセグメント数は、デフォルトの 200 より小さくしないことをお勧めします。非常に小さい値を使用すると、データベース関数のパフォーマンスが明確に低下します。
  2. 比較的高速なシステムでは、設定値を高くすると (たとえば 1000 以上にすると)、パフォーマンスが多少向上することがあります。
一般規則
  1. 進捗メッセージには、処理済みのセグメントの数、または完了率および予想残り時間が表示されます。
RECFM
入力または出力レコードのフォーマットを指定します。
デフォルト: RECFM(V)
サブパラメーター
format 入力レコードのフォーマット。次のいずれかになります。
V
レコードは可変長です。LAYOUT(G) を指定すると、各レコードにはプレフィックスとして 2 バイトのレコード長 (LL) が付き、ファイルは VRECGEN ユーティリティによって作成されるものと同じフォーマットになります。LAYOUT(S) を指定すると、ファイルは Micro Focus レコード順編成フォーマットになります。
F
レコードは固定長です。必須
構文規則
  1. RECFM は、LAYOUT(G) または LAYOUT(S) が指定されている場合にのみ使用します。
  2. LAYOUT(D) または LAYOUT(I) が指定されている場合は、RECFM は不要であり、無視されます。
  3. format を V に設定し、LAYOUT(G) を指定した場合、各レコードにはプレフィックスとして 2 バイトのレコード長 (LL) が付き、ファイルは VRECGEN ユーティリティによって作成されるものと同じフォーマットになります。
  4. format を V に設定し、LAYOUT(S) を指定した場合、ファイルは Micro Focus レコード順編成フォーマットになります。
  5. format を F に設定した場合は、LRECL を使用してレコード長を指定する必要もあります。
SEGEXIT
追加プロセス中にセグメント データの選択および変更の制御に使用できるユーザー指定の出口プログラムの名前を指定します。
デフォルト: NOSEGEXIT
サブパラメーター
program 使用する出口プログラムの名前
構文規則
  1. NOSEGEXIT を指定すると、この出口は無効になります。
SEGM
データ レコード内の 8 バイト セグメント名の開始位置を指定します。
デフォルト: SEGM(1)
サブパラメーター
position データ レコード内の 8 バイト セグメント名の開始位置。
構文規則
  1. 値 1 は、レコード データの最初のバイトに相当します。
  2. SEGM 指令は、LAYOUT(G) が指定されている場合にのみ使用します。
  3. LAYOUT(D)、LAYOUT(I)、または LAYOUT(S) が指定されている場合は、SEGM は不要であり、無視されます。
  4. RECFM(V) を指定すると、可変長レコード プレフィックス (LL) はレコード データの一部と見なされず、この値には影響しません。つまり、可変長ファイル内の LL フィールドに続く最初のフィールドがセグメント名の場合は、SEGM 値に 1 を指定します。
一般規則
  1. GSAM ファイルをロードする場合、SEGM 値は無視されます。
  2. LTERM キー (関連または非関連) を使用する Fast Path データベースをロードする場合、SEGM 指令は、セグメント名ではなく LTERM 名の位置を示します。

パラメーター - JCL

database-name
関数の実行対象のデータベースの名前。
dataset-name
ロードするデータのデータセット名。
catalog-name
ロードするデータを含むデータセットが JCL カタログ内にある場合は、データセット名の代わりにカタログ名を指定できます。
input-dataset
入力データを含むデータセット。

入力

データベースのロード用としては、さまざまな入力ファイル形式がサポートされています。

ロードされるデータベースは、DBDGEN を使用して定義された 1 次物理 DBD または GSAM DBD でなければなりません。自動ゼロロードは、物理データベースに対して実行されます。GSAM データベースには、ゼロロード ステップは必要ありません。他の種類のデータベースの場合、Load は不要であり、実行すべきではありません。次のいずれかのデータベースをロードしようとすると、エラー メッセージが表示されます。

  • HIDAM データベースの主索引。主索引データベースは必要ありません。MFIMS データベースの .IDX コンポーネントは、この索引に相当するものであり、1 次データベースのロード時に自動的に作成されます。
  • 2 次索引データベース。これらのデータベースによって索引付けされる 1 次データベースをロードすると、これらの 2 次索引データベースが自動的に作成されます。非一意キーを定義する 2 次索引 DBD は、1 次データベースに対する Load を実行する前に生成する必要があります。セグメント データが含まれているデータベースをロードすると、索引内のユーザー データはすべて失われます。
  • ACCESS=LOGICAL として定義されたデータベース。物理データベースには、論理関係をサポートするために必要なポインターが含まれます。

専用データベースをロードすることができます。IMSDBU は、User Exit データベースのロードをサポートしていません。User Exit データベースのロードには DBUTIL ユーティリティを使用できます。

出力

データベース データ ファイルは、この関数によって作成されてロードされます。また、2 次索引データベースもすべて作成されてロードされます。データベースに論理子定義が含まれている場合は、アプリケーション プログラムでデータベースにアクセスする前に PtrUpdate 関数を実行する必要があります。

論理的に関連するデータベース

論理的に関連するデータベースをロードするには、複数のステップを一定の順序で実行する必要があります。ほとんどの場合、これには複数のデータベースが伴います。Makelist 関数は、論理的に関連するデータベースのセットをロードするために必要なステップの作成を支援することができます。

Load 関数は、セグメント データの物理的なロードを実行します。Load 関数では、論理的な関係は処理されません。論理子は、PtrUpdate 関数によって論理親に接続されます。PtrUpdate は、対の論理子関係の接続や確立も行います。PtrUpdate が完了するまでは、論理子セグメントが含まれているデータベースにアプリケーションからアクセスすることはできません。