Add 関数

入力データファイルからデータベースにセグメントを追加またはリフレッシュします。

Add 関数は、入力データ・ファイルからデータベースにセグメントを追加します。これは、データをデータベースに追加したり、データベース内の一部のセグメントを更新したりするための関数です。 このため Add 関数をデータベース再構成の目的でのロードや、DBD定義を変更した後の再ロードで使用するべきではありません。

Add 関数は、データベースは再初期化されません。Add 関数は、データベースの Zeroload を実行しません。

構文 - コマンド行

mfims imsdbu ADD {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]REPLACE]
     [[NO]SEGEXIT[(program)]]
     [SEGM(position)]

構文 - JCL

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

パラメータ - コマンド行

database-name
関数を実行するデータベースの名前。
filename
関数を実行するデータベースのリストを含んでいるファイルの名前。
CLS
ユーティリティの起動前に画面をクリアします。NOCLS を使用すると、初期クリア画面は防止されます。NOCLS は、コマンド・ファイルで一連のユーティリティを実行している場合に役立ちます。
デフォルト: NOCLS
COMPRESS
入力データ・ファイルの作成時に圧縮を使用するかどうかを指定します。
デフォルト: NOCOMPRESS
サブパラメータ
program システム供給ルーチンの代わりに使用する圧縮/展開ルーチンの名前
構文規則
  1. COMPRESS 指令は、LAYOUT(G) が指定されている場合にのみ使用します。LAYOUT(D)、LAYOUT(I)、または LAYOUT(S) が指定されている場合は、この指令は不要であり、無視されます。
  2. プログラム名なしで COMPRESS を指定すると、CBLDCIMS プログラム (MFIMS ソフトウェア・ライブラリーに埋め込まれている) を使用して圧縮解除が行われます。圧縮/展開ルーチンの名前は、ユーザー記述プログラムの名前を指定することによってオーバーライドすることができます。
DATA
データ・レコード内のセグメント・データの開始位置を指定します。
デフォルト: DATA(9)
サブパラメータ
position データ・レコード内のセグメント・データの開始位置
構文規則
  1. 値 1 は、レコード・データの最初のバイトに相当します。
  2. RECFM(V) が指定されている場合、可変長レコード・プレフィックス (LL) はレコード・データの一部とみなされず、この値には影響しません。
  3. DATA 指令は、LAYOUT(G) が指定されている場合にのみ使用します。LAYOUT(D)、LAYOUT(I)、または LAYOUT(S) が指定されている場合は、この指令は不要であり、無視されます。
DSN
追加するデータ・セットの名前を指定します。
デフォルト: なし
サブパラメータ
filespec 追加するデータ・セットの名前。
構文規則
  1. filespec には、必要に応じてドライブやディレクトリを含めることができます。ドライブやディレクトリを指定しないと、現在のディレクトリがデフォルトになります。
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 重大エラー - 起こりうる一時的なステータス 一時的な I/O エラー ('file locked' または 'database locked' ステータスなど)
16 重大エラー - 永続的 - インストールの問題と考えられる 永続的な I/O エラー (無効なデータ・セット名やメンバ名がユーティリティに入力された場合や、環境変数が正しく設定されていない場合など)
20 重大エラー - 永続的 回復不能な I/O エラーまたは他の予期しないエラー
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 指令の例を次に示します。
    [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) が指定されている場合は、この指令は不要であり、無視されます。
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
レコードは固定長です。レコード長を指定するには、LRECL 指令が必要です。
構文規則
  1. RECFM 指令は、LAYOUT(G) または LAYOUT(S) が指定されている場合にのみ使用します。
  2. LAYOUT(D) または LAYOUT(I) が指定されている場合は、この指令は不要であり、無視されます。
  3. When format is set to V and LAYOUT(G) is specified, each record is prefixed with a 2-byte record length (LL) and the file is in the same format as created by the VRECGEN utility.
  4. When format is set to V and LAYOUT(S) is specified, files are in Micro Focus record sequential format.
  5. When format is set to F, you must also specify LRECL to provide the record length.
REPLACE
重複するルート・セグメントの処理方法を指定します入力ファイル内のルート・セグメントのキーがデータベースにすでに存在する場合は、そのデータベースにセグメントを追加すると、ルート衝突が発生します。REPLACE を指定すると、既存のデータベース・ルート・セグメント (および、その子) は削除され、入力ファイルからセグメントが挿入されます。
デフォルト: NOREPLACE
構文規則
  1. NOREPLACE を指定すると、入力ファイル内のセグメントは無視され、既存のデータベース・セグメントがそのまま残されます。
SEGEXIT
追加プロセス中にセグメント・データの選択および変更の制御に使用できるユーザー指定の出口プログラムの名前を指定します。
デフォルト: NOSEGEXIT
サブパラメータ
program 使用する出口プログラムの名前
構文規則
  1. NOSEGEXIT を指定すると、この出口は無効になります。
SEGM
データ・レコード内の 8 バイト・セグメント名の開始位置を指定します。
デフォルト: SEGM(1)
サブパラメータ
position データ・レコード内の 8 バイト・セグメント名の開始位置
構文規則
  1. 値 1 は、レコード・データの最初のバイトに相当します。
  2. SEGM 指令は、LAYOUT(G) が指定されている場合にのみ使用します。
  3. LAYOUT(D)、LAYOUT(I)、または LAYOUT(S) が指定されている場合は、この指令は不要であり、無視されます。
  4. RECFM(V) が指定されている場合、可変長レコード・プレフィックス (LL) はレコード・データの一部とみなされず、この値には影響しません。つまり、可変長ファイル内の LL フィールドに続く最初のフィールドがセグメント名の場合は、SEGM 値に 1 を指定します。
一般規則
  1. LTERM キー (関連または非関連) を使用する Fast Path データベースをロードする場合、SEGM 指令は、セグメント名ではなく LTERM 名の位置を示します。

パラメータ - JCL

database-name
関数を実行するデータベースの名前。
dataset-name
追加されるデータのデータセット名。
catalog-name
追加されるデータのデータセットが JESカタログに追加されている場合は、データセット名の代わりにカタログ名。
input-dataset
???

入力

Add 関数に対してサポートされている入力ファイル・フォーマットには、さまざまなものがあります。各種フォーマットの全詳細については、専用および汎用のロード入力を参照してください。 IMS Database ユーティリティ (IMSDBU) の項の 専用および汎用のロード入力 を参照してください。

セグメント Add 関数に対するデータベースは、既存の 1 次物理データベースでなければなりません。このデータベースは、ゼロロードされるか、以前にデータがロードされている必要があります。他の種類のデータベースの場合は、Add を実行しないでください。次のいずれかのデータベースに対して Add 関数を実行しようとすると、エラー・メッセージが表示されます。

  • HIDAM データベースの主索引。主索引データベースは必要ありません。MFIMS データベースの .IDX コンポーネントは、この索引に相当するものであり、1 次データベースへのセグメントの追加時に自動的に変更されます。
  • 2 次索引データベース。これらのデータベースによって索引付けされる 1 次データベースにセグメントを追加すると、これらのデータベースが自動的に変更されます。
  • ACCESS=LOGICAL として定義されたデータベース。物理データベースには、論理関係をサポートするのに必要なポインターが含まれます。
  • GSAM データベース。Add 関数では、GSAM データベースはサポートされません。
  • ゼロロードされていない、または以前にデータがロードされていないデータベース。

Add 関数では、専用データベースと共有更新 Fileshare データベースを使用できます。IMSDBU は、Remote IMS データベースや User Exit データベースへのセグメントの追加をサポートしていません。User Exit データベースにセグメントを追加する場合は、DBUTIL ユーティリティーを使用できます。

出力

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

セグメント

論理関係が含まれているデータベースにセグメントを追加するには、そのデータベースに対して PtrUpdate 関数も実行する必要があります。これにより、論理子セグメントとその論理親の間のリンクが解決されます。論理的に関連する複数のデータベースにセグメントを追加する場合は、まず各データベースに対して Add 関数を実行し、その後で各データベースに対して PtrUpdate 関数を実行することをお奨めします。

Makelist 関数は、論理的に関連するデータベースのセットに含まれているデータベースの識別を支援することができます。