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