Loading a DEDB
You load data into a DEDB database with a load program similar to that used for loading other IMS databases. Unlike other load programs, this program runs as a batch message program.
The following five steps are necessary to load a DEDB:
Procedure
- Calculate space requirements
The following example assures that root and sequential dependent segment types are loaded in one area.
Assume all root segments are 200 bytes long (198 bytes of data plus 2 bytes for the length field) and that there are 850 root segments in the area. On the average, there are 30 SDEP segments per record. Each is 150 bytes long (148 bytes of data and a 2-byte length field). The CI size is 1024 bytes.
A. Calculate the minimum space required to hold root segments:1024 CI length minus - 21 CI control fields ____ equals amount of space for root segments 1003 and their prefixes. 1003 / 214 = 4.6 Amount of root and root prefix space divided by length of one root with its prefix equals the number of segments that will fit in one CI. DEDB segments do not span CIs. Therefore, only four roots will fit in a CI. 850 / 4 = 212.5 The minimum amount of space to hold the defined number of roots to be inserted in this area (850) requires 213 CIs.
After choosing a UOW size, you can determine the DBD specifications for the root addressable and independent overflow parts using the result of the above calculation as a base.
B. Calculate the minimum space required to hold the sequential dependent segments:1024 CI length minus - 17 CI control fields ____ equals amount of space for sequential 1007 dependents and their prefixes. 1007 / 160 = 6.2 Amount of sequential dependent and prefix space divided by length of one sequential dependent plus its prefix equals the number of segments that will fit in one CI. Six SDEP segments will fit in a CI. 30 / 6 = 5 CIs Minimum amount of space required to hold 30 sequential dependent segments from one root. For 850 roots, the minimum amount of space required is 850 * 5 = 4250 CIs.
C. Factor into your calculations additional space to take into account:- The
reorganization UOW
, which is the same size as a regular UOW - Two control data CIs allocated at the beginning of the root addressable part
- One control data CI for each 120 CIs in the independent overflow
part
Assuming a UOW size of 20 CIs, the minimum amount of space to be allocated is: 213 + 4250 + 20 + 2 + 1 = 4486 CIs.
- The
- Set up the DBD specifications according to the above results, and execute the DBD generation.
- Allocate the VSAM cluster using VSAM Access Method Services.
The following example shows how to allocate an area that would later be referred to as AREA1 in a DBDGEN:
DEFINE - CLUSTER - (NAME (AREA1) - VOLUMES (SER123) - NONINDEXED - CYLINDERS (22) - CONTROLINTERVALSIZE (1024) - RECORDSIZE (1017) - SPEED) - DATA - (NAME(DATA1)) - CATALOG(USERCATLG)
The following keywords have special significance when defining an area:- NAME
- The name supplied for the cluster is the name subsequently referred to as the area name. The name for the data component is optional.
- NONINDEXED
- DEDB areas are non-indexed clusters.
- CONTROLINTERVALSIZE
- The value supplied, because of a VSAM ICIP requirement, must be 512, 1024, 2048, or 4096.
- RECORDSIZE
- The record size is 7 less than the CI size. These 7 bytes are used for VSAM control information at the end of each CI.
- SPEED
- This keyword is recommended for performance reasons.
- CATALOG
- This optional parameter can be used to specify a user catalog.
- Run the DEDB initialization utility (DBFUMIN0).
This offline utility must be run to format each area to DBD specifications. Root-addressable and independent-overflow parts are allocated accordingly. The space left in the VSAM cluster is reserved for the sequential-dependent part. Up to 2048 areas can be specified in one utility run; however, the area initializations are serialized. After the run, check the statistical information report against the space calculation results.
- Run the user DEDB load program
A BMP program is used to load the DEDB. The randomizing routine used during the loading of the DEDB might have been tailored to direct specific ranges of data to specific areas of the DEDB.
If the load operation fails, the area must be scratched, reallocated, and initialized.