The BMODTT utility routine is used to control the free place search and the reuse of database keys.
Reusing database keys
The contents of the DBTT entries of deleted records differ from those for which a record has never been stored. By default or in the case of the BMODTT statement REUSE, DBH and BINILOAD make no distinction between the two types of DBTT entries when records are stored. Only after a BMODTT statement KEEP the database keys of deleted records are not used. The BMODTT statement REMOVE enables you to equate (once) all database keys of deleted records to those of records which have never been used, as a result of which the memory of all the records which have been deleted in the past is lost; the existing option concerning their reusability by the BMODTT or BOUTLOAD utility routine (REUSE, KEEP) remains unchanged.
The information on deleted records is not shown by BOUTLOAD and is also lost when the BOUTLOAD statement EXPORT-RECORD or REMOVE-RECORD with RECORD-NAME=*ALL is used as the database is reformatted in this case. The information on the locked DBTT entries is not transferred to the new database when the database is converted using BPGSIZE, either.
The ’NO REUSE’ column in the BPSIA log provides you with information on the fundamental reusability of database keys.
Free place search
The SET and RESET statements can be used to control how the free place search is performed, i.e. if the primary task is to optimally utilize the space (SET) or if the ’ATTACHED’ and ’PLACEMENT OPTIMIZATION’ location specifications set via SSL are to be fulfilled (RESET, default setting).