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
// 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.
- Status of an area and the area data set
- 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. - 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.
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.
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.
|
- 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 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.