ADALOD は、次の情報を格納するために TEMP データセットを使用します。
再スタート情報
削除する各レコードのデータストレージ RABN/ISN(UPDATE のみ)
処理開始時のノーマルインデックスの内容(UPDATE のみ)
入力データセットから取得されたディスクリプタ値
ADAM オーバーフローエリア(ADAM ファイルのみ)
入力データセットからディスクリプタ値を収集しているときに TEMP データセットがいっぱいになると、ADALOD は、残りのディスクリプタをシーケンシャル中間ファイル DD/FILEA に書き込みます(JCL で指定されている場合)。 ディスクリプタは、新しいインデックスが作成された時点で読み戻されます。
DD/FILEA コールが実際に行われると、すべてのディスクリプタ値を保持できるだけの十分な大きさの TEMP データセットを指定した場合に比べ、ADALOD の処理速度が著しく低下します。 DD/FILEA TEMP データセットは、ADALOD 処理中にすべてのディスクリプタに対して十分なスペースを確保するための安全策としてのみ使用するのが一般的です。 したがって、DD/FILEA TEMP ファイルを指定することにより、中間エリアのオーバーランが原因となる ADALOD のアベンドを避けることができます。
注意:
ISN を削除するためにのみ ADALOD UPDATE を実行している場合は、次の 3 手順の合計として TEMP データセットのサイズを計算する必要があります。
TEMP データセットのパート 1 には、以下が含まれます。
RABN 1:再スタート情報
RABN 2:ファイルの FCB
RABN 3 - n:DETAB(DE の件数 * 116) 例えば、1 つのエレメントは 116 バイトです。 DE の件数は、FDT に含まれる DE の個数になります。
TEMP データセットのパート 2 には、削除する ISN のリストおよびそれに属する DS-RABN(エレメントごとに 6 バイト)が含まれます。 計算式は次のとおりです。
(6 * to-be-deleted-ISNs) / (TEMPBLKSIZE - 16) = needed-blocks
パート 3 には、完全な NI が含まれます。
(count NI-BLKS * ASSOBLKSIZE) / (TEMPBLKSIZE - 16) = needed blocks