Allocating output unload data sets

The unload data set can be allocated by using DD statements that are supplied in the JCL, or by using dynamic allocation.

BMC recommends dynamic allocation because of the flexibility and improved control that it provides.

You can specify the optional OFILECTL subcommand to combine the data targeted to one or more output areas into a single output data set. One unload data set is produced for each OFILECTL subcommand that is specified. Do not code the OAREA keyword on the UNLOAD command. Code this keyword on the OFILECTL subcommand to specify the output areas to be placed into the unload data set.

If no OFILECTL subcommand is specified, a separate unload data set is produced for each output area. The DD statement for each unload data set is named OAREAxxx, which uses a three-digit area number, or OARxxxxx, which uses a five-digit area number. The OAREAxxx DD statement can only be used for area numbers 1 through 999. The OARxxxxx DD statement can be used for area numbers 1 through 2048, and must be used for area numbers greater than 999. If this DD statement is omitted from the JCL, Fast Path Reorg/EP tries to dynamically allocate the output unload data set by using the OUTPUT_DSN_MASK keyword. The data set name that is generated by using this mask must be a preexisting cataloged data set.

You can specify the PFPTOTAL DD statement to allocate an optional output PFPTOTAL data set. This output data set can be used as an audit file to verify segment output totals after using the unload process.

The PFPTOTAL data set is designed for input to a user-written program. For more information about the PFPTOTAL DD statement and the record format, see the Fast Path/EP Series Reference Manual documentation Open link .

Using JCL to allocate the unload data set

Use the DDNAME keyword to indicate that the unload data set is allocated by using JCL DD statements.

The example in the following figure uses a JCL DD statement to allocate an unload data set. All output areas are written into a single unload data set.

//PFP EXEC PGM=PFPMAIN,REGION=0M
//STEPLIB  DD DISP=SHR,DSN=BMC.PFP.LOAD
//         DD DISP=SHR,DSN=IMS.RESLIB
//ddname1  DD UNIT=3400,DISP=(NEW,CATLG),
//      DSN=
your.dataset.name
//PFPSYSIN DD *
 UNLOAD   DBD=
dbdname,IAREA=ALL
 OFILECTL  OAREA=ALL,DDNAME=ddname1
/*

Dynamic allocation for the unload data set

In the example shown in the following figure, the input and output area data sets are dynamically allocated.

The output data set names are in the form PFP.dbdname.ULxxxxx, where xxxxx is the five-digit area number.

UNLOAD DBD=
dbdname,
  OAREA=ALL,OUTPUT_DSN_MASK='PFP.&DBD.UL&AREA#5'

You can specify the optional OFILECTL subcommand to combine the data targeted to one or more output areas into a single output data set. One unload data set is produced for each OFILECTL subcommand that is specified. Do not code the OAREA keyword on the UNLOAD command. Instead, code this keyword on the OFILECTL subcommand to specify the output areas to be placed into the unload data set.

Use the DSNAME keyword to indicate that the unload data set is to be dynamically allocated, and to supply a mask for constructing the data set name. Substitution variables within the mask can be used to generate unique names for each unload data set.

Additional keywords such as UNIT, DISP, and DATACLAS can be used to control the allocation and disposition of the data set, similar to the corresponding JCL keywords.

The example in the following figure requests the creation of two unload data sets. The first data set contains data for output areas areanam1 and areanam2. The second data set is allocated to a disk device and contains data for output area area1024.

UNLOAD DBD=
dbdname,IAREA=ALL
  OFILECTL OAREA=(
areanam1,
areanam2),
 DSNAME='
dataset-name1-mask',
 UNIT=TAPE,DISP=(NEW,CATLG)
  OFILECTL OAREA=(
area1024)
 DSNAME='
dataset-name2-mask'
 UNIT=3390,VOLSER=123456,
 SPACE=(CYL,100,10,RLSE),
 DISP=(NEW,CATLG,DELETE)

Note

The ddname that is used for dynamic allocation of the output data sets depends on the area number of the first area that is listed in the OAREA keyword. If the first area that is listed in the OAREA keyword has an area number between 1 and 999, the OAREAxxx DD is used for dynamic allocation, where xxx is the 3-digit area number. If the first area that is listed in the OAREA keyword has an area number between 1000 and 2048, OARxxxxx is used for dynamic allocation, wherexxxxx is the area number. If an OAREAxxx or OARxxxxx DD statement is supplied in the JCL, it is used instead of the dynamic allocation parameters.

Using generation data set groups

The data set name specified with the DSNAME keyword can refer to a generation data group (GDG). Code the DSNAME keyword to specify the base name for the GDG. As an option, you can include the '(+1)' relative generation number as part of the DSNAME keyword.

The following example requests that all unload data be written to a single data set. The unload data set is allocated as the next generation within a predefined GDG.

UNLOAD DBD=
dbdname,IAREA=ALL
 OFILECTL OAREA=ALL,DSNAME='
gdg-dataset-name-mask(+1)',
 DISP=(NEW,CATLG),UNIT=TAPE


This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Comments