Since data objects are stored in container files, HDS has to decide when to open and close these files (it would be very inefficient if a file had to be opened every time an object within it was referenced). To allow control over this, HDS locators are divided into two classes termed primary and secondary. It is primary locators that are responsible for holding container files open.
To be more specific, an HDS container file will remain open, so that
data objects within it are accessible, for as long as there is at
least one valid primary locator associated with it (that is, with one
of the data objects within the file). Not surprisingly, those routines
intended for opening container files (HDS_OPEN,
HDS_NEW and HDS_WILD) will
return primary locators - so that the file subsequently remains
open. However, all other routines return secondary locators (with the
exception of DAT_PRMRY, which may be used to
manipulate this attribute - see §).