Running the DBDGEN procedure

Running the DBDGEN procedure is a two step assemble and bind procedure that produces database definition blocks. Stage 2 of system definition causes the DBDGEN procedure to be placed in the IMS™.PROCLIB library.

Recommendations

If your IMS system does not manage runtime application control blocks (ACB) by using the catalog, you must regenerate DBDs by using the DBDGEN utility after you import resources into z/OS by using IMS Explorer. For example, if you import a COBOL copybook definition or a new database definition to z/OS, you must use the DBDGEN utility to regenerate your database descriptions.

JCL for the DBDGEN utility

The following example shows the JCL for the DBDGEN utility.

//       PROC MBR=TEMPNAME,SOUT=A,RGN=0M,SYS2=                                  
//C      EXEC PGM=ASMA90,REGION=&RGN,                                           
//            PARM=(OBJECT,NODECK,NODBCS,                                       
//            'SIZE(MAX,ABOVE)')                                                
//SYSLIB   DD DSN=IMS.&SYS2.SDFSMAC,DISP=SHR                                    
//SYSLIN   DD UNIT=SYSDA,DISP=(,PASS),                                          
//         SPACE=(80,(100,100),RLSE),                                           
//         DCB=(BLKSIZE=80,RECFM=F,LRECL=80)                                    
//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,                                    
//         SPACE=(121,(300,300),RLSE,,ROUND)                                    
//SYSUT1   DD UNIT=SYSDA,DISP=(,DELETE),                                        
//         SPACE=(CYL,(10,5))                                                   
//L      EXEC PGM=IEWL,PARM='XREF,LIST',                                        
//            COND=(0,LT,C),REGION=4M                                           
//SYSLIN   DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE)                                  
//SYSPRINT DD SYSOUT=&SOUT,DCB=BLKSIZE=1089,                                    
//         SPACE=(121,(90,90),RLSE)                                             
//SYSLMOD  DD DISP=SHR,                                                         
//         DSN=IMS.&SYS2.DBDLIB(&MBR)                                           
//SYSUT1   DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),                                
//         SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)

Procedure to invoke the DBDGEN

To process a request for a DBDGEN, the DBD generation control statements must be created and appended to the JCL (shown in the following figure) which invokes the DBDGEN procedure.

//DBDGEN  JOB
//       EXEC DBDGEN,MBR=
//C.SYSIN  DD  *
 
       DBD
       DATASET
       SEGM
       FIELD       DBD generation control statements
       LCHILD
       XDFLD
       DBDGEN
       FINISH
       END
/*

JCL parameters

MBR=
Is the name of the DBD to be generated. This name should be the same as the first name specified for the NAME= keyword on the DBD statement. The first database name becomes the DBD member name and, in the case of a shared secondary index, the additional names are added as aliases. When a database PCB relates to this DBD generation, one of the names specified in the NAME= keyword on the DBD statement must be the name used in the DBDNAME= keyword on the database PCB statement. Except for a shared secondary index, the name used in the DBDNAME= keyword on the database PCB statement must be the same as the name used in the MBR= keyword value.
RGN=
Specifies the region size for this execution. The default is 256 KB.
SOUT=
Specifies the class assigned to SYSOUT DD statements.
SYS2=
Specifies an optional second level dsname qualifier for those data sets which are designated as Optional Replicate in an XRF complex. When specified, the parameter must be enclosed in quotes and must include a trailing period; for example, SYS2='IMSA.'.

Step C

Step C is the assembly step. The following DD statement is needed for this step.

SYSIN DD
Defines the input data sets to step C. These DD statements must be provided when invoking the procedure.

Step L

Step L is the bind step.

Example: This step can be run using AMODE=31, RMODE=24 instead of the default AMODE=24, RMODE=24 by adding AMODE=31 to the bind EXEC statement PARM list as shown as follows:
//L      EXEC  PGM=IEWL,PARM='XREF,LIST,AMODE=31',
//             COND=(0,LT,C),REGION=120K
If you do not specify different values for AMODE or RMODE, the default values are in effect. You must always run the bind step with RMODE=24. The following DD statement is needed for this step.
IMS.DBDLIB DD
Defines an output partitioned data set, IMS.DBDLIB, for the binder.