DD statements for DEDB Unload

DD statements for DEDB Unload determine the input and output data sets and how DEDB Unload is run.

EXEC statement

Specify the EXEC statement in the following format:
//    EXEC PGM=FABCUR1,PARM='DBRC=x,IMSID=xxxxxxxx,AREC=x,IMSPLEX=imsplex,
//    DBRCGRP=xxx',REGION=rrrrM 
DBRC=
Determines whether or not to use the DBRC interface.
Y
FABCUR1 uses the DBRC interface.

DEDB Unload checks the following before and after completing the unloading of records in an IMS Data Entry Database (DEDB).

  • Status of an area and the area data set

    When an area is 'not recovery needed' and any of the specified area data sets are available in DBRC, DEDB Unload performs unloading. When an area is 'recovery needed' or none of the specified area data sets are available in DBRC, the utility issues an error message and stops processing.

    At the end of the unload processing, DEDB Unload rechecks the status of the area and the area data set. If the area and/or the area data set status is changed during unload processing, the utility issues a warning message.

  • Authorization status of an area

    DEDB Unload performs unloading when an area is not authorized or is authorized with read access intent by any IMS system. If an area is authorized with update/exclusive access intent, the utility issues an error message and stops processing.

    At the end of unload processing, DEDB Unload rechecks the authorization status. If the area is authorized with update/exclusive access intent during unload processing, the utility issues a warning message.

  • Extended Error Queue Element (EEQE)

    DEDB Unload performs unloading when there is no Extended Error Queue Element (EEQE) for an area in DBRC. If any EEQEs exist in DBRC, the utility issues an error message and stops processing.

    At the end of the unload processing, DEDB Unload rechecks the existence of EEQEs. If any EEQEs are registered in DBRC during the unload processing, the utility issues a warning message.

N
FABCUR1 does not use the DBRC interface.

Default: N

AREC=
Determines whether to include an area information record in an unloaded segment record data set.
Y
FABCUR1 puts an unloaded segment record data set that includes an area information record. AREC=YES can also be specified.
N
FABCUR1 puts an unloaded segment record data set that does not include an area information record. AREC=NO can also be specified.

Default: Y

Note: With AREC=N option, an empty area is not supported for reload purpose. Both FORMAT=TFMT and LRECL=SEGTFMT options must be specified with unload process AREC=N option to take care of the empty area for reload process. FABCUR1 generates a special record for an empty area to be recognized by FABCUR3 as an empty area. An application program that accesses the unloaded segment record file must be sensitive of the special record that has X'FFFFFFFF' value in the USRRAP field.
IMSPLEX=
IMSPLEX is a one- to five-character optional parameter that specifies which IMSplex DBRC should join in.
DBRCGRP=
DBRCGRP is a one- to three-character optional parameter, which is used by DBRC to identify which sharing group the notification belongs to.
IMSID=
Determines the IMS subsystem name.
The IMS subsystem name is an eight-character alphanumeric string that comprise a valid IMS subsystem identification name. If the IMSID parameter is specified, FABCUR1 generates the buffers for temporary ESCD and SCD. Register 11 contains the address of the temporary ESCD when FABCUR1 issues a call to a randomizing module.

FABCUR1 sets only the ESCDSCD field, which contains the address of SCD, in the temporary ESCD. FABCUR1 also sets only field SSCDIMID, which contains the IMS subsystem ID, in the temporary SCD. Other fields of temporary ESCD and temporary SCD cannot be referred to. If IMSID is specified, the IMS load module library must be concatenated with the JOBLIB or STEPLIB DD.

Default: None.

Note: The actual Region size depends on the number of subtasks or output files.

DD statements

You must specify DD statements for the job control language (JCL) to run the DEDB Unload utility. The following table summarizes the DD statements for FABCUR1 JCL.

Table 1. FABCUR1 DD statements
DDNAME Use Format Required or optional
JOBLIB or STEPLIB Input PDS Required
SYSIN Input LRECL=80 Required
areaxxx Input VSAM ESDS cluster Required
adsxxx Input VSAM ESDS cluster Optional
OLDACB Input PDS Required when IMSCATHLQ=*NO
NEWACB Input PDS Optional
RMODLIB Input PDS Optional
RECON1 Input KSDS Optional (see Note)
RECON2 Input KSDS Optional (see Note)
RECON3 Input KSDS Optional (see Note)
EXITLIB Input PDS Optional
IMSDALIB Input PDS Optional
SYSPRINT Output LRECL=133 Required
DURAUDIT Output LRECL=133 Required
DURDBDFN Output Do not code DCB Required
DURDzzzO orXDzzzzzO Output Do not code any DCB other than BLKSIZE Required
DURDzzzE orXDzzzzzE Output Do not code any DCB other than BLKSIZE Optional
DURSzzzO orXSzzzzzO Output LRECL=80 Required
UR1TOTAL Output LRECL=60 Optional
EXzzzzzO or EXzzzzzE Output Do not code any DCB Optional
Note: These data sets are required when DBRC=Y is specified as a parameter on the EXEC statement.
All output files are blocked to the maximum size of the output device (unless overridden in the execution JCL). Since the blocking factor is determined at execution time, standard labels must be used on all output data sets except SYSPRINT and DURAUDIT.
JOBLIB DD or STEPLIB DD
When DBRC=Y is specified on the EXEC statement, the IMS load module library (IMSVS.SDFSRESL) must be concatenated with the FPB DEDB Unload/Reload library on the JOBLIB or STEPLIB DD.

To allocate a DBRC RECON data set and/or a DBRC non-registered area data set dynamically, the DFSMDA library data set must be concatenated.

To allocate an area data set dynamically when DBRC=N is specified, the DFSMDA library data set must be concatenated.

If you specify the IMSCATHLQ=bsdshlq keyword, the IMS Tools Base library (SGLXLOAD) must be concatenated.

SYSIN DD
This statement defines the control statement input data set. This data set can reside on a direct-access device, or be routed through the input stream.
areaxxx DD
This statement defines an input data set that is the VSAM ESDS for an area to be unloaded. The ddname used must be the ddname of the area as defined in the old DMB. There must be one DD statement for each area included in the unload request.

When the DBRC=Y parameter is specified on the EXEC statement this areaxxx DD is ignored for a DBRC registered area.

When DBRC=N is specified, or DBRC=Y is specified and the area is not registered in DBRC, this data set can be allocated dynamically by providing the associated DFSMDA member in the data set that is concatenated to the JOBLIB/STEPLIB DD statement.

adsxxx DD
This statement defines an input data set that is the VSAM ESDS for a DBRC registered area to be unloaded when DBRC=Y is specified as a parameter on the EXEC statement. The DD name and the data set name should be registered in DBRC. When the area data set is MADS (Multiple Area Data Set), more than one adsxxx DD can be specified. FABCUR1 unloads records from one of these data sets if DBRC shows that the status as available and that there are no EQEs (Error Queue Elements).

When DBRC=Y is specified and an area is registered in DBRC, all available area data sets can be allocated dynamically. If any adsxxx DD statement is specified explicitly for any area data sets that are available and registered in DBRC, dynamic allocation is not performed for all available area data sets that belong to the same area as the one with the adsxxx specification; Therefore, if you want to allocate available area data sets dynamically, do not specify any adsxxx DD statement.

When DBRC=N is specified on the EXEC statement, this adsxxx DD is ignored.

OLDACB DD
This statement defines the library that contains the old DMB for the database.

You must specify the library that contains ACB definitions either with the OLDACB DD statement or with the IMSCATHLQ=bsdshlq keyword. If IMSCATHLQ=bsdshlq is specified, ACB definitions are read from the IMS directory instead of the ACB library.

NEWACB DD
This statement defines the library that contains the new DMB for the database. This DD statement is ignored if an area is being reorganized (that is, the keyword REORG is specified). If this DD statement is present, REORG is not assumed even if there are no DBD specification changes (that is, the randomizer is called for each root segment).

If IMSCATHLQ=bsdshlq keyword is specified, NEWACB DD statement is ignored. If an ACB definition change is requested, the new DMB is retrieved from the IMS directory.

RMODLIB DD
This DD statement defines the library where the randomizer and/or segment edit/compression routines reside.

RMODLIB in the FABCUR1 step is required for segment edit/compression routines when the SYSIN COMPRESS=NO control statement (this literally means expand the segments as they are unloaded) is specified and the existing segment edit/compression routine must be used.

RMODLIB in the FABCUR1 step is required for randomizer routines when a new randomizer is to be used. The new randomizer MUST reside in the library pointed to by RMODLIB DD in the FABCUR1 step. If this new randomizer routine is required in conjunction with a segment restructure (change in DMB) and the FABCUR1 SYSIN DBDNAME control statement does NOT specify DBDNAME=REORG, then the NEWACB DD statement must also be specified.

If this DD statement is not provided, an attempt is made to load the randomizer and/or edit/compression routine from JOBLIB/STEPLIB.

RECON1 DD
This statement defines the first DBRC RECON data set. This RECON1 data set must be the RECON1 data set used in the control region.
RECON2 DD
This statement defines the second DBRC RECON data set. This RECON2 data set must be the RECON2 data set used in the control region.
RECON3 DD
This statement defines the third DBRC RECON data set. This RECON3 data set must be the RECON3 data set used in the control region.

Do not use these RECON data set ddnames if you specified dynamic allocation using the DFSMDA macro.

You need to specify the IMSPLEX and DBRCGRP parameters on the EXEC statement for parallel RECON access to make sure that all DBRC instances in a sharing group have access to the same RECON data sets.

EXITLIB DD
This statement defines the library in which the exit routine specified by the EXITRTN= control statement resides.
IMSDALIB DD
This statement defines the IMS library that contains DFSMDA members to allocate an area data set and/or RECON data sets dynamically. If this statement is provided, program FABCUR1 loads DFSMDA members from the IMSDALIB DD prior to the JOBLIB DD or the STEPLIB DD.
SYSPRINT DD
This statement defines the output data set that contains messages issued by FABCUR1. The data set can reside on a direct-access device or printer, or be routed through the output stream. You can code RECFM=FBA, LRECL=133 on your DD statement, but it is better to use:
//SYSPRINT DD SYSOUT=A
DURAUDIT DD
This statement defines the output data set that contains the Unload Audit Control report. This data set can reside on a direct-access device or printer, or be routed through the output stream. You can code RECFM=FBA,LRECL=133 on your DD statement, but it is better to use:
//DURAUDIT DD SYSOUT=A
DURDBDFN DD
This statement defines an output data set for the database definition record generated by FABCUR1. This contains data extracted from the "output" DMB that is used by the reload processor. The "output" DMB is that DMB which is used to access the database after reload processing. It is usually the DMB read from the NEWACB file; if REORG mode processing is being performed, it is the DMB from the OLDACB file. The data set must reside on a direct-access device. Space requirements depend on the size of the DMB, but a couple of tracks suffice.

The DCB attributes are calculated by FABCUR1. RECFM is VB.

  • For 3380, the default block size is 23476 bytes.
  • For 3390, the default block size is 27998 bytes.
  • For 9345, the default block size is 22928 bytes.

For other output devices, the default block size is the maximum block size of the output device. Both LRECL and BLKSIZE are accepted when they are equal or smaller than the block size listed and also larger than the total DDT record size. The default BLKSIZE is the maximum block size of the output device, and the default LRECL is the total DDT record size. Do not code any other DCB parameters in your JCL.

Do not specify DISP=MOD for this DD statement.

DURDzzzO or XDzzzzzO DD
This statement defines an output data set for all of the database segment records produced for one or more of the areas defined in the "output" DMB. A DURDzzzO DD statement is for areas in the range of 1 - 999, and an XDzzzzzO DD statement is for areas in the range of 1 - 2048. If the area number of the unloaded area is greater than 999, you should provide the XDzzzzzO DD statement. The value of zzz or zzzzz is made up of right-aligned digits, with leading zeros if needed.

The data set can reside on either a direct-access device or tape. Standard labels must be used for this data set. The DCB attributes are calculated by FABCUR1. RECFM is VB.

  • For 3380, the default block size is 23476 bytes.
  • For 3390, the default block size is 27998 bytes.
  • For 9345, the default block size is 22928 bytes.

For other output devices, the default block size is the maximum block size of the output device. Both LRECL and BLKSIZE are accepted when they are equal or smaller than the block size listed and also larger than the maximum possible unloaded segment size. The default BLKSIZE is the maximum block size of the output device, and the default LRECL is the maximum possible unloaded segment size. Do not code any other DCB parameters in your JCL. DUMMY or NULLFILE is allowed for the DD.

Do not specify DISP=MOD for these DD statements.

Notes: Whether the output area data set is empty, the DD statement of an output unloaded file is required to create an area information record on the following conditions:
  • An associated DD statement of an output unloaded file is required for those areas specified in the FILECTL statement when RMODTYPE=S is specified on the DBDNAME control statement.
  • An associated DD statement of an output unloaded file is required for all areas defined in the DMB of NEWACB when HIERCHNG=YES and/or RMODTYPE=G is specified on the DBDNAME control statement. AREACTL=ALL and 'ALL' or '(*)' on the FILECTL statement must be specified.

The rules for supplying the DURDzzzO or the XDzzzzzO data sets are discussed in FILECTL control statement.

DURDzzzE or XDzzzzzE DD
This statement defines the second copy data set for the DEDB unloaded file. For a DURDzzzE or XDzzzzzE DD statement, there must be a corresponding DURDzzzO or XDzzzzzO DD statement. A DURDzzzE DD statement is for areas in the range of 1 - 999, and an XDzzzzzE DD statement is for areas in the range of 1 - 2048. If the area number of the unloaded area is greater than 999, you should provide the XDzzzzzE DD statement. The value of zzz or zzzzz is made up of right-aligned digits, with leading zeros if needed.

The DCB attributes are calculated by FABCUR1. RECFM is VB.

  • For 3380, the default block size is 23476 bytes.
  • For 3390, the default block size is 27998 bytes.
  • For 9345, the default block size is 22928 bytes.

For other output devices, the default block size is the maximum block size of the output device. Both LRECL and BLKSIZE are accepted when they are equal or smaller than the block size listed and also larger than the maximum possible unloaded segment size. The default BLKSIZE is the maximum block size of the output device, and the default LRECL is the maximum possible unloaded segment size. Do not code any other DCB parameters in your JCL. DUMMY or NULLFILE is allowed for the DD.

Do not specify DISP=MOD for these DD statements.

DURSzzzO or XSzzzzzO DD
This statement defines an output data set that contains the SORT control statements for the segment data set associated with it. There must be a DURSzzzO or XSzzzzzO data set for each DURDzzzO or XDzzzzzO data set. A DURSzzzO DD statement is for areas in the range of 1 - 999, and an XSzzzzzO DD statement is for areas in the range of 1 - 2048. If the area number of the unloaded area is greater than 999, you should provide the XSzzzzzO DD statement. The value of zzz or zzzzz is made up of right-aligned digits, with leading zeros if needed. Space requirements are very small; one track suffices. The DCB information is hard-coded in FABCUR1. Do not code the DCB information in your JCL.

Do not specify DISP=MOD for these DD statements.

UR1TOTAL DD
This statement defines an output data set that contains the total number of unloaded segments in an area. The format of this record is described in the FABC1TAL macro, which is provided as a product-sensitive user interface.
EXzzzzzO or EXzzzzzE DD
This statement defines output data set for the SEGMCTL control statement. EXzzzzzO DD defines the primary output data set and EXzzzzzE DD defines the secondary one.
  • Do not code the DCB information in your JCL.
  • DCB attribute is the same as that of the Unloaded Segment File.
  • DUMMY or NULLFILE is allowed for this DD.
  • Do not specify DISP=MOD for these DD statements.
The EXzzzzzO/EXzzzzzE DD statement is for areas in the range of 1 - 2048. The value zzzzz is right-aligned digits, with leading zeros if needed. When the EXzzzzz/EXzzzzE DD statements for the unloaded areas are not specified in the JCL statement, the segment records are written into EX00000O/EX00000E.

The extracted segment record file layout is as follows:

         LLZZ                    XL4
         Segment name            CL8
 
 
         ROOT segment key value  0X   (variable)
         Segment data            0X   (variable, include LL)

For more information about the layout of the unloaded segment records, see the topic "Unloaded segment records layout" in the IMS Fast Path Solution Pack: IMS High Performance Fast Path Utilities User's Guide.