This article describes what IDMS logically deleted records are and how to physically delete them.
Release : 19.0
Component : CA IDMS
When a program ERASEs a record from a database, for all sets of which the record is a member, IDMS must keep the set "in tact".
To do this, it must change the NEXT pointer of the PRIOR record to the dbkey of the next record, and the PRIOR pointer of the NEXT record to the dbkey of the prior record.
It is always possible to efficiently do the latter because all chained sets in IDMS must have NEXT pointers defined.
However, PRIOR pointers are optional, and for sets where they are not implemented, it might not always be possible to efficiently accomplish the former.
Therefore, if IDMS has to ERASE a member of a set which does not have PRIOR pointers defined, it may have to mark the target record as logically deleted.
Logically deleted records still occupy some space in the database, but only the prefix (the dbkey pointers).
The data portion is not needed and is removed when the record is marked as logically deleted.