DFSDLOC0

DFSDLOC0 is the DL/I Database Open/Close module. It opens and closes all database datasets and primary and secondary indices. DFSDLOC0 can be invoked from several places including the DL/I call analyzer DFSDLA00, DL/I retrieve DFSDLR00, and DL/I delete/replace DFSDLD00.

DFSDLOC0 not only opens the dataset DCB/ACB, it also loads the randomizer, segment edit compression routines, and secondary index maintenance routines. Control blocks are valued with database information, datasets are assigned to OSAM or VSAM buffer pools, and other modules are called for DBRC, lock management, and dataset use indicator (DUI) processing. Special processing is also done for data sets opened for load.

For database close processing everything is undone. The data set is closed, the randomizer and routines are deleted, fields are valued, and other modules are called to process data set close. DFSDLOC0 will also initiate the purge of all buffers for the data set.

Hints

The proportion of CPU used by DFSDLOC0 should be very small. There is one performance consideration for database open/close. If the pool that holds the database control block (DMB pool) is too small, an unused database might be closed to make room for a database just referenced whose control block is not in the pool. Many database opens and closes can occur as databases vie for space in the pool. Examine the IMS log for type x'20' (open) and x'21' (close) log records for a history of the database opens and closes.

Reference Sources

More information is available in the IMS DBSOURCE Library Data Set. See your IMS systems programmer.