ADAFRM(新規データベースのフォーマットおよび作成)

このドキュメントでは ADAFRM ユーティリティについて説明します。

次のトピックについて説明します。


機能概要

ユーティリティ ADAFRM はデータベースに割り当てるコンテナファイル(ASSO、DATA、WORK)を作成し、データベースシステムファイルを含むデータベースを設定します。さらに、TEMP および SORT ファイルをフォーマットするために、使用することもできます。

データベースは、ADABAS.INI ファイルに含まれます。

ファイル DBnnn.INI がまだ存在しない場合、ADAFRM は、ADABAS.INI から派生したデフォルトパラメータを含む DBnnn.INI ファイルを作成し、それを適切なデータベースディレクトリに保存します(DBnnn.INI ファイルの詳細については、『Adabas 拡張オペレーション』を参照してください)。

次のルールは、作成するコンテナエクステントの場所を決定する際に適用されます。

  1. コンテナエクステントの環境変数が存在する場合、その環境変数を使用します。

  2. ADAFRM の開始前に DBnnn.INI ファイルがすでに存在し、コンテナエクステントのエントリが含まれている場合は、DBnnn.INI ファイルのエントリが使用されます。

  3. そうでない場合は、データベースディレクトリ(UNIX では $ADADATADIR/dbnnn、Windows では %ADADATADIR%\dbnnn)内に XXXXx.nnn という名前のコンテナエクステントを作成します。ここで、XXXX はコンテナタイプ、x はコンテナエクステント、および nnn はデータベース番号です。

同時にデータベースを作成せずに SORT コンテナと TEMP コンテナを作成した場合は例外となります。ここでは、次のルールが適用されます。

  1. コンテナエクステントの環境変数が存在する場合、その環境変数を使用します。

  2. それ以外の場合、XXXXx という名前で、現在のディレクトリ内にコンテナを作成します。ここで、XXXX は、コンテナタイプ、x はコンテナエクステントです。

SORT コンテナまたは TEMP コンテナだけではなく、データベースも作成した場合、作成されたコンテナエクステントは DBnnn.INI ファイルに保存されます。ADAFRM の開始前に DBnnn.INI ファイルがすでに作成されている場合、ファイル内の他のすべての値は変更されません。ファイルが存在しない場合は、デフォルト値を使用して作成されます。

データベースを作成せずに SORT コンテナまたは TEMP コンテナのみを作成する場合は、DBnnn.INI ファイルで更新は実行されません。

RAW デバイスインターフェイスの場合、ブロックの配置を意識することが必要であれば、ユーティリティ ADADEV が適しています。ファイルシステムの RAW デバイスおよびファイルは、データベースコンテナファイルに使用することができます。

ADAFRM によって 255 までの ASSO および 255 までの DATA コンテナファイルを作成することができます。ADADBM の ADD_CONTAINER 機能を使用することにより、さらに多くのコンテナを追加することができます。

ADAFRM がコンテナファイルを作成した後、グローバルな Adabas ブロックを初期化し、3 つの Adabas システムファイル(チェックポイントファイル、ET データファイル、セキュリティファイル)を挿入し、それらに対するスペースを割り当てます。チェックポイントファイルには 3000 レコード、ET データファイルには 3000 レコード、セキュリティファイルには 200 レコードが割り当てられます。

1 キロバイトから 32 キロバイトまでのブロックサイズをデータベースコンテナファイルに使用することができます。

コンテナファイルを再フォーマットようとすると、ユーティリティはエラーメッセージを発行して終了します。これは、データベースが誤って上書きされるのを防止するためです。

注意:
OpenVMS では、できるだけ物理的に連続した領域にコンテナファイルを割り当てる方式が適用されます。この理由から、パフォーマンスの低下を避けるために、ディスクスペースをできる限り最適化する必要があります。

このユーティリティは、単一機能ユーティリティです。

処理フロー

graphics/adafrm2016.png

データベースをフォーマットする場合は、次のような設定項目になります。

データセット 環境
変数/
論理名
記憶媒体 追加情報
ADABAS.INI   ディスク Adabas 拡張オペレーションマニュアル
アソシエータ ASSOx ディスク  
データストレージ DATAx ディスク  
DBnnn.INI   ディスク Adabas 拡張オペレーションマニュアル
コントロールステートメント stdin/
SYS$INPUT
  ユーティリティマニュアル
ADAFRM メッセージ stdout/
SYS$OUTPUT
  メッセージおよびコード
WORK WORK1 ディスク  

TEMP または SORT をフォーマットする場合は、次のような設定項目になります。

データセット 環境
変数/
論理名
記憶媒体 追加情報
ソートストレージ SORTx ディスク  
コントロールステートメント stdin/
SYS$INPUT
  ユーティリティマニュアル
ADAFRM メッセージ stdout/
SYS$OUTPUT
  メッセージおよびコード
一時ストレージ TEMPx ディスク  

チェックポイント

このユーティリティはチェックポイントを書き込みません。

制御パラメータ

新規データベース構築時、次にあげる制御パラメータが使用可能です。

D    ASSOBLOCKSIZE = (number[K] [,number[K]] ... )

M    ASSOSIZE = (number[B|M] [,number[B|M]]...)

D    DATABLOCKSIZE = (number[K] [,number[K]] ... )

M    DATASIZE = (number[B|M] [,number[B|M]]...)

     DBID = number

D    NAME {=|:} string

M    SORTSIZE = (number[M] [,number[M]] ... )

D    SYSFILES = (number, number, number)

M    TEMPSIZE = (number[M] [,number[M]] ... )

D    WORKBLOCKSIZE = number[K]

M    WORKSIZE = number[M | B]

ASSOBLOCKSIZE

ASSOBLOCKSIZE = (number[K] [,number[K]] ... )

このパラメータは、アソシエータコンテナファイルに対して使用されるブロックサイズを指定するものです。最初のブロックサイズは ASSO1 に、2 番目のブロックサイズが ASSO2 にというように順次対応していきます。

ブロックサイズが指定されない場合には、デフォルトの 4K が使用されます。

ASSO1 の場合は、2K から 8K のブロックサイズだけを指定できます。ASSO2 から ASSOn の場合は、1K から 32K のブロックサイズを指定できます。

注意:
ASSOBLOCKSIZE パラメータは、指定した ASSOSIZE ごとに 1 回ずつ指定する必要があります。このパラメータはペアで指定する必要があります。ASSOSIZE の指定回数が ASSOBLOCKSIZE の指定回数よりも多い場合、ブロックサイズが指定のものと違うコンテナに、最後に指定したブロックサイズが適用されます。ASSOBLOCKSIZE を指定しない場合は、デフォルト値が使用されます。

ASSOSIZE

このパラメータは、アソシエータに対して割り当てられるブロック数またはメガバイト数を指定するものです。

アソシエータが複数の物理ファイル内に含まれる場合、各ファイルのサイズを指定する必要があります。

数値に "B" が付けられている場合、サイズはブロック単位になります。それ以外の場合はメガバイト単位になります。

DATABLOCKSIZE

DATABLOCKSIZE = (number[K] [,number[K]] ... )

このパラメータは、データストレージコンテナファイルに対して使用されるブロックサイズを指定するものです。最初のブロックサイズは DATA1 に、そして 2 番目のサイズが DATA2 にというように順次対応します。

ブロックサイズを指定しない場合には、デフォルトの 32K が使用されます。

注意:
DATABLOCKSIZE パラメータは、指定した DATASIZE ごとに 1 回ずつ指定する必要があります。このパラメータはペアで指定する必要があります。DATASIZE の指定回数が DATABLOCKSIZE の指定回数よりも多い場合、ブロックサイズが指定のものと違うコンテナに、最後に指定したブロックサイズが適用されます。DATABLOCKSIZE を指定しない場合は、デフォルト値が使用されます。

DATASIZE

DATASIZE = (number[B|M] [,number[B|M]]...) 

このパラメータは、データストレージに対して割り当てられるブロック数またはメガバイト数を指定するものです。

データストレージが複数の物理ファイル内に含まれる場合、各ファイルのサイズを指定する必要があります。

数値に "B" が付けられている場合、サイズはブロック単位になります。それ以外の場合はメガバイト単位になります。

DBID

DBID = number

このパラメータは、使用対象データベースを選択するためのものです。

最小値は 1 で、最大値は 255 です。

注意:
このパラメータは、ASSO、DATA および WORK をフォーマットする場合にのみ必要とされるものです。SORT または TEMP のフォーマットする場合には使用しないでください。

NAME

NAME {=|:} string

このパラメータには、データベースに対して割り当てられる名前を指定します。この名前は、レポートユーティリティ ADAREP によって作成されるデータベースステータスレポートのタイトル内に表示されます。等号を指定する場合、「文字列」に指定された値が大文字に変換されます。コロンを指定した場合、大文字の変換は実行されません。

最大 16 文字まで指定できます。

このパラメータが省略された場合、GENERAL-DATABASE がデフォルト値として割り当てられます。

SORTSIZE

SORTSIZE = (number[M] [,number[M]] ... )

このパラメータには、SORT データセットに対して割り当てられるメガバイト数を指定します。

SORT が複数のエクステントを持っている場合は、各エクステントのサイズを指定する必要があります。エクステントは 50 まで指定できます。SORT データセットは単独でフォーマットされます。

SYSFILES

SYSFILES = (number, number, number)

このパラメータは、Adabas システムファイルに対して確保されるファイル番号を指定するものです。ここで指定したファイル番号は、ユーザーファイルに使用することはできません。

最初の番号は、チェックポイントファイルのファイル番号を指定します。

2 番目の番号はセキュリティファイルのファイル番号を指定します。

3 番目の番号はユーザーデータファイルのファイル番号を指定します。

デフォルトは、SYSFILES=(1,2,3)です。

TEMPSIZE

TEMPSIZE = (number [M] [,number[M]] ... )

このパラメータには、TEMPx に対して割り当てられるメガバイト数を指定します。

TEMP が複数の物理ファイルから構成される場合、各々のファイルのサイズを指定する必要があります。

この構成要素は、単独でフォーマットされます。

WORKBLOCKSIZE

WORKBLOCKSIZE = number[K]

このパラメータは、WORK ファイルに対して使用されるブロックサイズを指定するものです。

ブロックサイズを指定しない場合には、デフォルトの 16K が使用されます。

WORKSIZE

WORKSIZE = number [B|M]

このパラメータには、WORK1 に対して割り当てられるブロック数またはメガバイト数を指定します。

数値に "B" が付けられている場合、サイズはブロック単位になります。それ以外の場合はメガバイト単位になります。

再スタートに関する考慮事項

ADAFRM は、再スタート機能を備えていません。ADAFRM の処理が中断した場合は、再び最初から始めなければいけません。アソシエータ、データストレージ、および WORK は必ず一緒にフォーマットしなければなりません。

中断した処理で作成されたファイルをまず削除する必要があります。

コントロールステートメントの例

例:データベースのフォーマット

adafrm: dbid = 1, name = DATABASE_1
adafrm: assosize = (200M, 100M), assoblocksize = (2K, 4K)
adafrm: datasize = (500M, 500M, 2M), datablocksize = (4K, 16k)
adafrm: worksize = 50M, workblocksize = 16K

新規データベースの識別番号は 1 で、実際の名前は DATABASE_1 です。2 つの ASSO コンテナファイルが作られます。ASSO1 は、ブロックサイズが 2 キロバイトで、大きさは 200 メガバイトです。ASSO2 は、ブロックサイズが 4 キロバイトで、大きさは 100 メガバイトです。3つの DATA コンテナファイルがあり、DATA1 と DATA3 は 4 キロバイトのブロックサイズ、DATA2 は 16 キロバイトのブロックサイズです。WORK コンテナファイルは 1 つで、16 キロバイトのブロックサイズです。ファイル番号の 1~3 はそれぞれシステムファイルとして使用されます。

例:SORT および TEMP のフォーマット

adafrm: sortsize = (10M,10M)
adafrm: tempsize = 10M

説明:2 つのコンテナファイルが SORT1 と SORT2 として、それぞれ 10 メガバイトの長さでフォーマットされます。TEMP も TEMP1 として、10メガバイトの長さでフォーマットされます。