Datacom

 View Only

Data Reporter access to Dynamic System Tables in z/VSE

  • 1.  Data Reporter access to Dynamic System Tables in z/VSE

    Posted Apr 25, 2018 11:11 AM

    Just in case it’s any use to other CA Datacom 12.0 z/VSE clients. I have discovered that Data Reporter has access to the Dynamic System Tables in Datacom 12.0 z/VSE too (undocumented).

     

    Here is the latest incarnation of our job to generate the DLBLs and EXTENTs for all “user” databases (DBIDs 21-999). We use CA Epic uncataloged start-track-1 datasets to allocate the Datacom areas. (Note that CA Datacom datasets must not be defined to the CA Epic catalog).

     

    All areas are single-extent (for performance reasons). The proc is used to update standard labels (so that we do not have to bounce MUF when datasets move or for new datasets). We have two CA Epic pools – one for “standard” datasets and one for “large” datasets.

     

    Anyway, here is the JCL. It might prove useful as a model for others…

     

    * $$ JOB JNM=DRREPORT,CLASS=Q,PRI=1

    * $$ LST CLASS=V,DISP=D,DEST=(,vmuserid)

    // JOB DRREPORT

    // OPTION LOG,DUMP

    * //DRWORK  DD DSN=$$$.IDEAWORK.FILE1,DISP=(NEW,PASS)

    * //DROUT   DD DSN=$$$.IDEAWORK.FILE2,DISP=(NEW,PASS)

    // EXEC DRREPORT,SIZE=1M

    OPTION SORT=NONE LIST ON WRITE ONLY BLOCKED 174 DBCOMM=AUTO

    USER 'CA Datacom'

    NOTE Generate DLBL and EXTENT cards for all user areas

    DRZ1000: INPUT DATACOM RECORD=387 NAME=DRZ DBID=1000

       DEFINE DB-COMMAND              1-5   X

       DEFINE DB-KEY-NAME             6-10  X

       DEFINE DB-KEY-VALUE           11-23  X

       DEFINE  KEYDIR_NAME           11-18  X

       DEFINE  KEYDBID               19-20  B

       DEFINE  KEYAREA_NAME          21-23  X

       DEFINE DB-ELEMENT-LIST       191-201 X

       COPYDD DIR_DATASET ELEMENT

     

       DEFINE RDDRZ(1)='Y'

       DEFINE DLBL-CARD(38)='// DLBL   aaaddd,''envr.cxxname.aaaddd'''

       DEFINE  DTF-AREA EQ DLBL-CARD  11-13 X

       DEFINE  DTF-DBID EQ DLBL-CARD  14-16 N

       DEFINE  DSN-FULL EQ DLBL-CARD  19-37 X

       DEFINE DLBL-RETAIN(13)=',2099/365,DA'''

       DEFINE XTNT-CARD(37)='// EXTENT       ,epcpol,1,00,1,nnnnnn'

       DEFINE  EPIC-POOL  EQ XTNT-CARD 18-23 X

       DEFINE  TOT-TRACKS EQ XTNT-CARD 32-37 N

     

       GOTO REDNDRZ WHEN RDDRZ NE 'Y'

     

       MOVE 'REDKG'   TO DRZ1000.DB-COMMAND

       MOVE 'N'       TO RDDRZ

       MOVE 'PRODCXX' TO DRZ1000.KEYDIR_NAME

       MOVE 021       TO DRZ1000.KEYDBID

       MOVE LOW-VALUE TO DRZ1000.KEYAREA_NAME

       MOVE '-#DRZ'   TO DRZ1000.DB-KEY-NAME

       MOVE '-#DRZ'   TO DRZ1000.DB-ELEMENT-LIST

       GOTO REDDRZ

    REDNDRZ: CONTINUE

       MOVE 'REDNX'   TO DRZ1000.DB-COMMAND

    REDDRZ: CONTINUE

       GET  DRZ1000

       GOTO EOJ WHEN DRZ1000 EQ NO-RECORD-FOUND OR DRZ1000.DBID GT 999

       MOVE DRZ1000.AREA_NAME    TO DTF-AREA

       MOVE DRZ1000.DBID         TO DTF-DBID

       MOVE DRZ1000.DATASET_NAME TO DSN-FULL

       MOVE DRZ1000.TOTAL_TRACKS TO TOT-TRACKS

       MOVE 'PDCMST'             TO EPIC-POOL

       GOTO TEST WHEN DRZ1000.TOTAL_TRACKS LE 75000

       MOVE 'PDCMLG'             TO EPIC-POOL

       GOTO TEST

     

       SELECT ALL

       FORMAT DLBL-CARD DLBL-RETAIN 29 XTNT-CARD 43

    END

    /*

    NOLOG :---------------------------------------------------------------:

    NOLOG : Catalog PROC to IJSYSRS.SYSLIB                                :

    NOLOG :---------------------------------------------------------------:

    // UPSI 1

    // EXEC DITTO

    $$DITTO SET HEADERPG=NO

    $$DITTO SL LIBOUT=IJSYSRS.SYSLIB,MEMBEROUT=PRDUDB.PROC,

    $$DITTO FILEIN=DROUT,RECFMIN=FB,RECSIZE=80

    $$DITTO EOJ

    /*

    /&

    * $$ EOJ