Unloading a DEDB by using a generalized randomizer
If you use a generalized randomizer with a DEDB, any change in the number of root anchor points (RAPs) affects the distribution of records across the DEDB. Changes that affect the number of RAPs include the following:
- Changes to the UOW or ROOT (change in RAA value)
- Increasing or decreasing the total number of areas in the DEDB
These changes to the number of RAPs require that all areas in the DEDB be input to the unload process at the same time, preferably in the same command set.
The design flexibility of Fast Path Reorg/EP enables parallel processing of DEDBs in multiple ways. The product will not terminate processing if all areas in the DEDB are not defined to the unload process when a generalized randomizer is used.
Three different techniques are available to complete the unload process when a generalized randomizer is used.
Unloading the entire database
The simplest method to unload a DEDB when a generalized randomizer is used is to execute the unload with only the DBD keyword (without IAREA and OAREA keywords) as shown in the following figure. By default, all areas are processed by the UNLOAD command. Input areas are dynamically allocated.
Unloading entire area when using generalized randomizer
//STEPLIB DD DSN=BMC.PFP.LOAD,DISP=SHR
// DD DSN=IMSVS.RESLIB,DISP=SHR
//NEWACB DD DSN=IMSVS.NEW.ACBLIB,DISP=SHR
//IMSACB DD DSN=IMSVS.OLD.ACBLIB,DISP=SHR
//OAREA001 DD DSN=PFP.UNLOAD.AREA1,DISP=(,CATLG)
// UNIT=SYSDA,SPACE=(CYL,(25,5),RLSE)
//OAREA002 DD DSN=PFP.UNLOAD.AREA2,DISP=(,CATLG)
// UNIT=SYSDA,SPACE=(CYL,(25,5),RLSE)
//OAREA003 DD DSN=PFP.UNLOAD.AREA3,DISP=(,CATLG)
// UNIT=SYSDA,SPACE=(CYL,(25,5),RLSE)
//OAREA004 DD DSN=PFP.UNLOAD.AREA4,DISP=(,CATLG)
// UNIT=SYSDA,SPACE=(CYL,(25,5),RLSE)
//PFPPRINT DD SYSOUT=*
//PFPSYSIN DD *
UNLOAD DBD=DB400
Limiting the number of output files
If you have storage constraints (DASD or tape units) and want to limit the number of output files, specify the OFILECTL subcommand on the UNLOAD command as shown in the following figure.
Specify IAREA=ALL, or omit the IAREA keyword which will default to ALL. Specifying IAREA=ALL causes all areas to be read as input. Use the OFILECTL subcommand to specify the output file data set name, but do not specify the OAREA keyword to ensure that the data for all areas will be output to a single file. Input areas are dynamically allocated.
Specifying one output file when using generalized randomizer
//STEPLIB DD DSN=BMC.PFP.LOAD,DISP=SHR
// DD DSN=IMSVS.RESLIB,DISP=SHR
//NEWACB DD DSN=IMSVS.NEW.ACBLIB,DISP=SHR
//IMSACB DD DSN=IMSVS.OLD.ACBLIB,DISP=SHR
//PFPPRINT DD SYSOUT=*
//PFPSYSIN DD *
UNLOAD DBD=DB400
OFILECTL DSNAME='PFP.UNLOAD.DB400',DISP=(NEW,CATLG),
UNIT=SYSDA,SPACE=(CYL,45,15,RLSE)
To create more than one output file, specify multiple OFILECTL subcommands, each with an OAREA keyword that specifies the desired output area or areas, as shown in the following figure. You must specify unique area names on each OAREA keyword. Do not specify the same output area name on more than one OFILECTL subcommand.
Specifying multiple output files when using generalized randomizer
OFILECTL OAREA=(AREA1,AREA3)
DSNAME='PFP.UNLOAD.DB400A',DISP=(NEW,CATLG),
UNIT=SYSDA,SPACE=(CYL,25,15,RLSE)
OFILECTL OAREA=(AREA2,AREA4)
DSNAME='PFP.UNLOAD.DB400B',DISP=(NEW,CATLG),
UNIT=SYSDA,SPACE=(CYL,25,15,RLSE)
Creating a separate unload file for each area
To create a separate unload file for the data that is contained in each area, specify the UNLOAD command with the OAREA keyword that specifies the area name as shown in the following figure. Repeat this process for each area in the DEDB. Because the input areas can be shared, all jobs can be executed concurrently.
Creating a separate unload file per area when using generalized randomizer
//STEPLIB DD DSN=BMC.PFP.LOAD,DISP=SHR
// DD DSN=IMSVS.RESLIB,DISP=SHR
//NEWACB DD DSN=IMSVS.NEW.ACBLIB,DISP=SHR
//IMSACB DD DSN=IMSVS.OLD.ACBLIB,DISP=SHR
//AREA1 DD DSN=PFP.DB400.AREA1,DISP=SHR
//AREA2 DD DSN=PFP.DB400.AREA2,DISP=SHR
//AREA3 DD DSN=PFP.DB400.AREA3,DISP=SHR
//AREA4 DD DSN=PFP.DB400.AREA4,DISP=SHR
//OAREA001 DD DSN=PFP.DB400.UNLOAD,DISP=(,CATLG),
UNIT=SYSDA,SPACE=(CYL,(15,5),RLSE)
//PFPPRINT DD SYSOUT=*
//PFPSYSIN DD *
UNLOAD DBD=DB400,OAREA=AREA1
Related topic