IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Explanation of the JCL for DBDGEN and PSBGEN


IBM Mainframe Forums -> IMS DB/DC
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Mar 01, 2007 4:48 pm
Reply with quote

From time to time people want to know about the DBDGEN and PSBGEN Here's the explanation of a job for generating a DBD and PSB.

The assembler compiler IEV90.
Code:

//C      EXEC  PGM=IEV90,PARM='OBJECT,NODECK'     


The library containing the macro's delivered by IBM for generating the object. The name of the library depends on your site.
Code:
                       
//SYSLIB   DD DSN=SYS.IMS.MACLIB,DISP=SHR


In our shop the following macro's are used. Just a small piece is shown.
Code:

********************************* Top of Data **************************
         MACRO                                                 @BIAA4   
         DBD   &NAME=,&ACCESS=,&RMNAME=,&PASSWD=NO,                    X
               &EXIT=,&VERSION=,&PSNAME=,&DATXEXIT=NO          @PQ13662
.*                                                                     
.*************************************************************@SCPYRT**
.*                                                                    *
.*    Licensed Materials - Property of IBM                            *
.*                                                                    *
.*    Restricted Materials of IBM                                     *
.*                                                                    *
.*    5655-C56                                                        *
.*                                                                    *
.*    (C) Copyright IBM Corp. 1974,1998                               *
.*                                                                    *
.*************************************************************@ECPYRT**

**********************************************************************
*                                                                    *
*                                                                    *
*  FUNCTION  -  THE DBD MACRO IS AN EXTERNAL DBDGEN USER MACRO WHICH *
*     DESCRIBES THE OVERALL CHARACTERISTICS OF THE DATA BASE TO BE   *
*     DEFINED.  IT NAMES THE DATA BASE AND ALSO PROVIDES INFORMATION *
*     CONCERNING ITS ORGANIZATION.                                   *
*     THE PROCESSING IS DIVIDED INTO THE FOLLOWING SECTIONS:         *
*         INITIALIZATION                                             *
*         NAME=   OPERAND PROCESSING                                 *
*         ACCESS= OPERAND PROCESSING                                 *
*         RMNAME= OPERAND PROCESSING                                 *
*         PASSWD= OPERAND PROCESSING                                 *
*     THIS PROCESSING CONSISTS PRIMARILY OF VALIDITY CHECKING AND    *
*     THE SAVING OF SYMBOLIC PARAMETER USER INFORMATION IN THE       *
*     ASSOCIATED GLOBAL VARIABLES.                                   *
*     THIS DBD MACRO ALSO PROVIDES UPWARD COMPATIBILITY SUPPORT FOR  *
*     THE DBD STMT IN OS/360 VERSION 1 AND VERSION 2 DBDGEN.         *
*     SEE MANUALS SH20-0634 (VER. 1) AND SH20-0915 (VER. 2) FOR      *
*     FURTHER INFORMATION ABOUT OS/360 DBDGEN.                       *
*                                                                    *
*                                                                    *
*  SYMBOLS  -  SEE GLOBAL AND LOCAL SET SYMBOLS DEFINED ABOVE; ALSO: *
*                                                                    *
*     SEE IMS/VS UTILITIES REFERENCE MANUAL FOR A COMPLETE           *
*     DESCRIPTION OF THE OPERANDS OF THIS MACRO.                     *
*                                                                    *



Invoked by the inputmember
Code:

********************************* Top of Data **********************************
*                                                                               
*   DATABASE TBV PVS REPLICATOR          CREATED 25-09-2002  ROB JACOBS         
*                                                                               
*                                          PRODUKT DATA BASE                   
         DBD                                                           X       +
               ACCESS=HIDAM,                                           X       +
               NAME=DBNLREP                                                    +
         DATASET                                                       X       +
               DD1=DBNLREP,                                            X       +
               SIZE=4096,                                              X       
               DEVICE=3390                                                     +
*                                            ROOT                               
         SEGM                                                          X       +
               PARENT=0,                                               X       +
               POINTER=TB,                                             X       +
               BYTES=50,                                               X       +


Code:

********************************* Top of Data *************************
         MACRO                                                 @BIAA4 
         DBDGEN                                                       
.*                                                                     
.*************************************************************@SCPYRT**
.*                                                                    *
.*    Licensed Materials - Property of IBM                            *
.*                                                                    *
.*    Restricted Materials of IBM                                     *
.*                                                                    *
.*    5655-C56                                                        *
.*                                                                    *
.*    (C) Copyright IBM Corp. 1974,1998                               *
.*                                                                    *
.*************************************************************@ECPYRT**
.*                                                                     
**********************************************************************
*                                                                    *
*                                                                    *
*  FUNCTION  -  THE DBDGEN MACRO IS AN INTERNAL DBDGEN MACRO         *
*     WHICH PERFORMS THE FINAL CHECKS FOR THIS DBD GENERATION AND    *
*     ALSO GENERATES THE CSECTS WHICH MAKE UP THE LOAD MODULE WHICH  *
*     DESCRIBES THIS DATA BASE.  MACRO SOURSEG IS INVOKED TO         *
*     GENERATE THE SOURCE SEGMENT TABLE, THE SECONDARY INDEX TABLE,  *
*     AND THE SECONDARY INDEX MAINTENANCE ROUTINE CSECTS.            *
*     THE DBDGEN MACRO ALSO PROVIDES UPWARD COMPATIBILITY SUPPORT    *
*     FOR THE DBDGEN STMT IN OS/360 VERSION 1 AND VERSION 2 DBDGEN.  *
*     SEE MANUALS SH20-0634 (VER. 1) AND SH20-0915 (VER. 2) FOR      *
*     FURTHER INFORMATION ABOUT OS/360 DBDGEN.                       *
*                                                                    *
*                                                                    *
*  SYMBOLS  -  SEE GLOBAL AND LOCAL SET SYMBOLS DEFINED ABOVE.       *
*                                                                    *
*                                                                    *
**********************************************************************

Invoked by
Code:

*                                                                               
         DBDGEN                                                                +
         FINISH                                                                +
         END                                                                   +


For PSB's
Code:

********************************* Top of Data **************************
         MACRO                                                         
         PSBGEN &LANG=,&PSBNAME=,&SSASIZE=,&IOASIZE=,&IOEROPN=,        *
               &MAXQ=,&CMPAT=,&OLIC=,&LOCKMAX=,&GSROLBOK=      @KW40303
.*                                                                     
.*************************************************************@SCPYRT**
.*                                                                    *
.*    Licensed Materials - Property of IBM                            *
.*                                                                    *
.*    Restricted Materials of IBM                                     *
.*                                                                    *
.*    5655-C56                                                        *
.*                                                                    *
.*    (C) Copyright IBM Corp. 1974,1998                               *
.*                                                                    *
.*************************************************************@ECPYRT**


Invoked by
Code:

         PSBGEN LANG=PL/I,PSBNAME=TPNSVER                               
         END                                       


The next one is the dataset containing the compiled object input to the next step: the linker.

Code:
                                     
//SYSLIN   DD DISP=(,PASS),                                                     
//            SPACE=(80,(100,100),RLSE),                                       
//            DCB=(BLKSIZE=400,RECFM=FB,LRECL=80),                             
//            UNIT=SYSDA 


Used by IEV90
Code:
                                                     
//SYSPRINT DD SYSOUT=X,                                                         
//            SPACE=(121,(300,300),RLSE,,ROUND),                               
//            DCB=BLKSIZE=1089                                                 
//SYSUT1   DD DISP=(,DELETE),                                                   
//            SPACE=(1700,(100,50)),                                           
//            UNIT=SYSDA                                                       
//SYSUT2   DD DISP=(,DELETE),                                                   
//            SPACE=(1700,(100,50)),                                           
//            UNIT=SYSDA                                                       
//SYSUT3   DD SPACE=(1700,(100,50)),                                           
//            UNIT=(SYSDA,SEP=(SYSLIB,SYSUT1,SYSUT2))                           
//*       


the input to the compiler containing the source of DBD or PSB

Code:
                                                                     
//SYSIN    DD DSN=NTSYS.IMSVS.DBDSRC(DBNLREP),DISP=SHR


The linkstep to produce the actual DBD or PSB

Code:

//L    EXEC  PGM=DFSILNK0,PARM='XREF,LIST',COND=(0,LT,C)                       
//SYSLIN   DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE)                                 
//SYSPRINT DD SYSOUT=X,                                                         
//            SPACE=(121,(90,90),RLSE),                                         
//            DCB=BLKSIZE=1089


The library where the final DBD or PSB is stored.

Code:
                                                 
//SYSLMOD  DD DSN=NTSYS.IMSVS.DBDLIB(DBNLREP),DISP=SHR


Needed by the linker
Code:

//SYSUT1   DD DISP=(,DELETE),                                                   
//            SPACE=(1024,(100,10),RLSE),                                       
//            UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN))                                 
//*                                                                             
Back to top
View user's profile Send private message
bipinpeter

Active User


Joined: 18 Jun 2007
Posts: 213
Location: Cochin/Kerala/India

PostPosted: Sat Feb 28, 2009 11:04 am
Reply with quote

Hi Bitneuker,
I want create an PSB for my IMS program.I write a JCL as per the above instriction,Below is my JCL.

//C EXEC PGM=IEV90,PARM='OBJECT,NODECK'
//SYSLIB DD DSN=MACRO LIB,DISP=SHR
//SYSLIN DD DISP=(,CATLG),DSN=XXXX.YYYYYY.ZZZZ.ASCF.COMPILER,
// SPACE=(80,(100,100),RLSE),
// DCB=(BLKSIZE=400,RECFM=FB,LRECL=80),
// UNIT=SYSDA
//SYSPRINT DD SYSOUT=*,
// SPACE=(121,(300,300),RLSE,,ROUND),
// DCB=BLKSIZE=1089
//SYSUT1 DD DISP=(,DELETE),
// SPACE=(1700,(100,50)),
// UNIT=SYSDA
//SYSUT2 DD DISP=(,DELETE),
// SPACE=(1700,(100,50)),
// UNIT=SYSDA
//SYSUT3 DD SPACE=(1700,(100,50)),
// UNIT=SYSDA
//*
//SYSIN DD DSN=SOURCE LIBRARY OF PSB,DISP=SHR
//L EXEC PGM=DFSILNK0,PARM='XREF,LIST',COND=(0,LT,C)
//SYSLIN DD DSN=*.C.SYSLIN,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=*,
// SPACE=(121,(90,90),RLSE),
// DCB=BLKSIZE=1089
//SYSLMOD DD DSN=DESTNATION LIBRARY,DISP=SHR
//SYSUT1 DD DISP=(,DELETE),DSN=DSDD.FDFDFF.EWEE.DSD.FDA.DSA,
// SPACE=(1024,(100,10),RLSE),
// UNIT=SYSDA
//*

Do i need to add anything more?
I didnt understand the macros given for the PSB,how i can invoke them...
Please corrct if i need to do any changes...

Regards,
Bipin Peter
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> IMS DB/DC

 


Similar Topics
Topic Forum Replies
No new posts interesting explanation of DB concurr... General Talk & Fun Stuff 0
No new posts Is the explanation correct? XRST,CHKP IMS DB/DC 1
This topic is locked: you cannot edit posts or make replies. ISPF skeleton explanation TSO/ISPF 2
No new posts S0C-7 abend explanation COBOL Programming 10
No new posts Error during DBDGEN IMS DB/DC 15
Search our Forums:

Back to Top