Guidelines for Unload/Reload where there are dependent areas and./or indexes

Document ID : KB000050170
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Unload / Reload is often run against an area which may contain cross-area pointers. Similarly, a user- or system- owned index may reference a record in an area being processed with Unload/Reload. This document addresses various questions about how this is handled.

Solution:

In designing a database, it is not unusual for the records in one area to be connected by sets to records in other areas. When performing an Unload/Reload, the utility notices these cross-area pointers and points them out in the AREA RECORD DEPENDENCY TABLE in the UNLOAD output report.

All areas which are related in this way to the area being unloaded are called dependent areas.

All areas that have set connections to records in the area being unloaded must be defined in the subschema & DMCL(s) specified in the UNLOAD, and must be available for update by the UNLOAD & RELOAD jobs, but those dependent areas do not need to also be unloaded & reloaded. When the utility runs, it may update pointers in these dependent areas if necessary, but it will not perform a full unload/reload of them.

If the cross-area pointers are for member records stored VIA an owner record that resides in the area being reloaded, performance degradation may occur in applications when accessing these member records until the member area is processed as well.

Since only the named area(s) will actually experience a full RELOAD, only those areas need to be processed with a FORMAT between the UNLOAD and the RELOAD.

For indexes, the extent to which the sets in dependent areas are updated is complete: the reload step IDMSDBL3 will rebuild system-owned and user-owned indexes completely as part of the RELOAD process, even if they are in a dependent area. The only caveat to this is that it will rebuild them as they are, so if there is any corruption in those indexes, that should be corrected before running UNLOAD/RELOAD. The UNLOAD/RELOAD will adopt orphans, just won't fix any broken chains (bad pointers) in the index records, should those exist.

If a RELOAD does not complete successfully you should restore the area(s) that are named in the UNLOAD/RELOAD as well as all dependent areas.

There is no way to know for certain whether or not updates occurred in the dependent areas, or to what extent, which is why they should be restored.