このドキュメントでは、次のトピックについて説明します。
拡張ファイルは、1 つ以上の物理コンポーネントファイルで構成された論理ファイルです。 各コンポーネントファイルには、物理 ISN 番号ではなく、論理的に番号付けされたレコードが入っています。 これらの物理コンポーネントファイルには、次のものが必要です。
同一のフィールド定義テーブル(FDT)
ファイルの MINISN と MAXISN パラメータによって定義された、異なる論理 ISN 範囲。 ISN 範囲は重複してはなりません。
コンポーネントファイル間は、昇順の ISN 順に連鎖しています。 最小の ISN 範囲を持つファイルをアンカーファイルと呼び、そのファイル番号は、拡張ファイル全体の番号です。
拡張ファイルは、最高 128 個のコンポーネントファイルで構成できます。また、4,294,967,294 件のレコードを超過してはなりません。 3 バイト ISN の Adabas コンポーネントファイルには、最高 16,777,215 件までのレコードが入り、4 バイト ISN のコンポーネントファイルには、4,294,967,294 件までのレコードが入ります。
注意:
Adabas は大きいファイルサイズや、より多くの Adabas 物理ファイルやデータベースをサポートするので、拡張ファイルの必要性はほとんどなくなっています。
拡張ファイルは、Adabas の次の機能でサポートされます。
ISN リストを処理するコマンド S8
ソートコマンド S2 と S9。 この機能を使う前に、データベースパフォーマンスやユーザーへの影響について調査してください。
拡張ファイル処理時の ET/BT サポートのために機能強化されたプリフェッチ/マルチフェッチ機能
拡張ファイルはロード時に定義します。 各物理コンポーネントファイルは、ADALOD LOAD 機能を使って別々にロードします。 最初のコンポーネントファイルを除くすべてのファイルは、アンカーファイルを参照するために ANCHOR パラメータを指定しなければなりません。 ADALOD LOAD 機能は、次の処理を実行します。
新しいファイルの FDT とアンカーファイルの FDT を比較して、それらが同じであることを確認します。
新しい ISN 範囲(新コンポーネントファイルの MINISN から MAXISN まで)をアンカーおよび他のすべてのコンポーネントファイルの ISN 範囲に対してチェックし、重複がないことを確認します。
NOACEXTENSION パラメータの指定をチェックします(アドレスコンバータエクステンションはコンポーネントファイルには許可されません)。
新しいコンポーネントファイルの MAXRECL パラメータが、既存のアンカーファイルのと等しいかチェックします。 すべてのコンポーネントファイルの MAXRECL 値は同一でなければなりません。
新しいコンポーネントファイルをロードします。
新しいコンポーネントファイルを拡張ファイルチェーンの中にリンクします。
例
次の例は、ADALOD LOAD ステートメントの拡張ファイルの定義について示しています(関連パラメータだけを示します)。
ADALOD LOAD FILE=11,NOACEXTENSION ADALOD MINISN=1,MAXISN=16000000 ADALOD ... ADALOD LOAD FILE=23,NOACEXTENSION ADALOD ANCHOR=11 ADALOD MINISN=36000001,MAXISN=50000000 ADALOD ... ADALOD LOAD FILE=17,NOACEXTENSION ADALOD ANCHOR=11 ADALOD MINISN=20000001,MAXISN=36000000
この例は、ファイル 11 を拡張ファイルとしてロードします。拡張ファイルの構成は、次のとおりです。
ファイル 11、ISN 範囲: | 1~16,000,000 |
ファイル 17、ISN 範囲: | 20,000,001~36,000,000 |
ファイル 23、ISN 範囲: | 36,000,001~50,000,000 |
拡張ファイルは、Adabas Online System のファイル定義機能を使って定義することもできます。 この機能は、拡張ファイルのアンカーまたはコンポーネントファイルとして指定でき、新しい空のファイルを作成します。 拡張ファイルメンテナンス機能を使用して既存のファイルを連鎖させることができます。
指定ファイルのアドレスコンバータの拡張(つまり、MAXISN の増加)を防止するために、必ず NOACEXTENSION パラメータを設定しなければなりません。
拡張ファイルのコンポーネントファイルをロードするとき、必ず MINISN パラメータを指定しなければなりません。
コンポーネントファイルのファイル番号は、自由に選択できます。
ANCHOR および FILE パラメータが同じファイル番号を指定すると、単一ファイルを拡張ファイルとしてロードします。
2 つめのコンポーネントファイルをロードするとき、拡張する既存の単一ファイルをアンカーファイルとして参照できます。 この場合、ADALOD は最初のファイルに NOACEXTENSION を設定してアンカーファイルにします。
注意:
この方法で作成したアンカーファイルは、コンポーネントファイルをすべて削除したときにそのアンカーステータスが失われます。 必要な場合は、ファイルをそれ自体に挿入して、アンカーステータスを再び確立できます。
コンポーネントファイルの ISN 範囲は重複してはなりませんが、ファイル範囲間で未使用 ISN のギャップが存在してもかまいません。
コンポーネントファイルが任意の順番でロードできます。
現在のアンカーファイルよりも低い ISN 範囲をもった新しいコンポーネントファイルをロードした場合、新しくロードしたファイルがアンカーファイルになります。 それ以降にロードするすべてのコンポーネントファイルの ANCHOR パラメータは、新しいアンカーファイルを参照しなければなりません。
拡張ファイルの中にコンポーネントファイルを挿入するには、「拡張ファイルの定義」で説明しているように ADALOD LOAD 機能を使うか、Adabas Online System を使います。
オンラインシステムを使う場合は、ファイル定義機能を使って新しいファイルの作成と拡張ファイルへの挿入ができます。 また、コンポーネントファイル挿入機能を使って、既存のファイルを拡張ファイルの中に挿入することができます。
コンポーネントファイルの追加による影響については、このページの「拡張ファイルの定義規則」を参照してください。
Adabas Online System のファイル削除機能を使って、コンポーネントファイルを拡張ファイルから取り除いて削除することができます。 また、ファイルを削除せずに、拡張ファイルチェーンからコンポーネントファイルを取り除くには、Adabas Online System のコンポーネントファイルリムーブ機能を使用します。
コンポーネントファイルの追加による影響については、このページの「拡張ファイルの定義規則」を参照してください。
Adabas Online System のファイル削除機能では、拡張ファイル全体を削除することもできます。これにより、アンカーファイルとすべてのコンポーネントファイルが削除できます。 ADADBS ユーティリティの DELETE 機能も、拡張ファイル全体の削除に使用できます。
ADAREP ユーティリティの出力レポートは、個々のファイルに関する通常の情報に加えて、データベース内の各拡張ファイルのコンポーネントファイルリストを出力します。 拡張ファイル情報は、Adabas Online System のファイル表示機能を使っても入手できます。
拡張ファイルを参照するユーザーコールは、Adabas ニュークリアスによって自動的に適切な物理コンポーネントファイルに送られます。 ユーザーやアプリケーションは、選択したファイルが拡張ファイルであるという通知をいっさい受けません。
Adabas コントロールブロックのファイル番号が拡張ファイルのコンポーネントファイルを指定した場合、そのコールは拡張ファイル全体に向けられたものと解釈されます。 したがって、拡張ファイルに統合されたファイルであれば、以前に既存のコンポーネントファイルにアクセスしたユーザーアプリケーションを変更せずにそのファイルにアクセスできます。なぜなら、コールは自動的に全拡張ファイルに適用されるからです。 しかし、便宜上、コールはアンカーファイルを参照することをお勧めします。
拡張ファイルに対して実行した機能が、複数のコンポーネントファイルからの結果を必要とする場合、それらの結果は結合されて 1 つの結果を作成します。 例えば、拡張ファイルに L2 コマンド(物理順に読み込み)を実行すると、アンカーファイルから順番にすべてのコンポーネントファイルの読み込みが行われます。 すなわち、1 つのコンポーネントファイルがエンドオブファイルに達すると、L2 は続けて次のコンポーネントファイルを自動的に読み込みます。 実行結果は、読み込まれた全ファイルから順番に累積されます。
その一方で、L3 コマンド(ディスクリプタ順の論理順読み込み)は、各コンポーネントファイルを別々に並行してコールするので、結果はコール元に返される前に 1 つのシーケンスにマージされます。
1 つのコマンドに対するコンポーネントファイルの並列処理を効率よく行うために、ニュークリアスセッションの ADARUN パラメータ値を大きくすることをお勧めします。
パラメータ | 説明 |
---|---|
LI | ISN テーブル(TBI)の長さ |
LQ | シーケンシャルコマンドテーブルの長さ |
LWP | Adabas ワークプールエリアの長さ |
LS | 検索/ソートエリアの長さ |
NQCID | ユーザー当たりに許可された最大アクティブコマンド ID(CID)数 |
拡張ファイル上で実行するプログラムには、次の制限事項が適用されます。
現在、拡張ファイルでは、物理カップリングやソフトカップリングはサポートされません。
拡張ファイルのマルチクライアントサポートはありません。
いったん設定した拡張ファイルのコンポーネントファイル番号を後からリナンバリングすることはできません。
拡張ファイルに Adabas Security を使用する場合、次の事項は全コンポーネントファイルで同一でなければなりません。
プロテクションプロファイル
パスワード
セキュリティバイバリュープロファイル
サイファコード
拡張ファイルは Adabas コールを発行したユーザーには透過的ですが、Adabas ユーティリティを実行する DBA は拡張ファイルの存在を意識しておく必要があります。 Adabas ユーティリティは、次のどちらかの方法で拡張ファイルを処理します。
拡張ファイル全体を処理します。
コンポーネントファイルを処理します。
拡張ファイル全体を処理するユーティリティ機能には、ADADBS、ADARES、および ADASAV の次の機能があります。
拡張ファイル全体を削除します。
ファイルリスト中にコンポーネントファイルの 1 つが指定されていると、拡張ファイル全体として処理します。 このとき、他のすべてのコンポーネントファイルも指定しなければなりません。
RESTORE(ファイル)機能
ファイルリスト中にコンポーネントファイルの 1 つが指定されていると、拡張ファイル全体として処理します。 このとき、他のすべてのコンポーネントファイルも指定しなければなりません。
SAVE(ファイル)機能
ファイルリスト中にコンポーネントファイルの 1 つが指定されていると、拡張ファイル全体として処理します。 Adabas ニュークリアスの稼働中に SAVE(ファイル)機能を実行するときは、他のコンポーネントファイルもすべて指定しなければなりません。
コンポーネントファイルを処理するユーティリティ機能には、ADADBS、ADAINV、ADALOD、ADAORD、ADAACK、ADADCK、ADAICK、ADAVAL、ADAULD、ADASCR の次の機能があります。
これらのユーティリティ機能はすべて、単一のコンポーネントファイルだけをチェックします。
CHANGE/NEWFIELD 機能 これらの機能は、単一のコンポーネントファイルのフィールド定義テーブル(FDT)を変更します。 DBA は、拡張ファイルの全コンポーネントファイルに対して CHANGE または NEWFIELD 機能を実行しなければなりません。 ADADBS は、指定されたファイルが拡張ファイルの一部であることを示すメッセージを出力した後、コンディションコード 4 で終了します。
RELEASE 機能 単一コンポーネントファイルのディスクリプタのインデックスを解放します。 DBA は、拡張ファイルの全コンポーネントファイルに対して RELEASE 機能を実行しなければなりません。 ADADBS は、指定されたファイルが拡張ファイルの一部であることを示すメッセージを出力した後、コンディションコード 4 で終了します。
INVERT 機能 単一コンポーネントファイルの新しいディスクリプタにインデックスを作成します。 DBA は、拡張ファイルの全コンポーネントファイルに対して INVERT 機能を実行しなければなりません。 ADAINV は、指定されたファイルが拡張ファイルの一部であることを示すメッセージを出力した後、コンディションコード 4 で終了します。
COUPLE 機能 ADAINV COUPLE 機能は、現在では拡張ファイルに対して使用できません。
単一のコンポーネントファイルにレコードを追加/削除します。 複数またはすべてのコンポーネントファイルの大量更新を実行するときは、すべてのコンポーネントファイルの完全な削除 ISN リストを提供できます。 ADALOD は自動的に、現在処理中のコンポーネントファイルに該当する ISN 値だけを指定範囲から選択します。 USERISN=YES で新規レコードを追加するときも同じです。
USERISN=NO で新レコードを追加するときに空き ISN が見つからないと、ISN 範囲の増加ができないので(NOACEXTENSION は全コンポーネントファイルに対して有効)、ローダーは新アドレスコンバータエクステントを割り当てることができません。 その代り、ADALOD は、エンドオブファイルになったときと同じようにインデックスを作成します。 ロードされなかった残りのレコードは後から SKIPREC パラメータを使用して別のコンポーネントファイルに追加することができます。
ADALOD は、各コンポーネントファイル間に渡ってのユニークディスクリプタ値のチェックは行いません。
これらの機能は、単一コンポーネントファイルのそれぞれの領域をリオーダします。 ファイルは論理的に変更されないので、これらの機能を拡張ファイルの全コンポーネントファイルに実行する必要はありません。
個々のコンポーネントファイルのセキュリティプロファイルを定義します。 各コンポーネントファイルのプロテクション、パスワード、セキュリティバイバリュー、およびサイファコードは、拡張ファイルの全コンポーネントファイルに対して同じに定義しなければなりません。