Space within an IMS database can be managed during loading or updating of
the database. After an IMS database is loaded, a space management program
can assume control from the IMS program for a period of time. During this
period of time, the space management program obtains memory addresses of
IMS control blocks built by the IMS program and further obtains
information about the IMS database. When the IMS program attempts to
insert data into the IMS database, either during loading or updating of
the database, the space management program reassumes control from the IMS
program. The space management program selects a storage location for the
data to be stored, and modifies the IMS control blocks to indicate the
storage location selected. The space management program may also insert
the data into the storage locations selected. Control is then passed back
to the IMS program. If segments are to be inserted into the IMS database,
and such segments are to be split, then the space management program
selects two storage locations for the components of the split segment to
be stored. The storage locations selected by the space management program
are selected based on IMS database user preferences.