In Figure 1, the macro instruction at ALLOCINF
creates a parameter list for one DCB (INDCB), assumed to be open for
input. The JFCBs and volume serial numbers are retrieved for all data
sets allocated to DDNAME SYSLIB.
Figure 1. Sample Code
Retrieving Allocation Information Part 1 of 2 ***JCL FOR FOLLOWING INVOCATION OF RDJFCB:
//SYSLIB DD DISP=SHR,DSN=DEPT61.MACLIB
// DD DISP=SHR,DSN=CORPORAT.MACLIB
// DD PATH='/projects/sasp/maclib',PATHOPTS=ORDONLY
// DD DISP=SHR,DSN=SYS1.MACLIB
***EXAMPLE CODE TO INVOKE RDJFCB ALLOCATION INFORMATION RETRIEVAL:
* GET A COPY OF THE JFCB FOR THE FIRST OR ONLY DATA SET ALLOCATED
* TO SYSLIB AND TRY TO READ THE JFCBS VOLUME SERIAL NUMBERS
* AND PATH NAMES FOR ALL DATA SETS ALLOCATED TO SYSLIB.
*
ALLOCINF RDJFCB (INDCB)
LTR R15,R15 TEST RDJFCB RETURN CODE
BNZ NOJFCB BRANCH IF INFORMATION NOT AVAILABLE
ICM R1,X'F',SLBAREA GET AND TEST ADDRESS OF ARL
BZ OLDSYSTM GO IF SYSTEM DOES NOT SUPPORT ARL
CLI SLBRCODE,0 TEST RDJFCB REASON CODE
BNE NOJFCB BRANCH IF INFORMATION NOT AVAILABLE
*
* LOOP THROUGH THE JFCBS IN THE AREA TO WHICH SLBAREA POINTS.
* CODE CAN BE INSERTED HERE TO PRINT THE DATA SET NAMES, VOLUME SERIAL NUMBERS
* AND PATH NAMES.
L R9,SLBRTRVD GET NUMBER OF JFCB'S RETRIEVED
L R2,SLBAREA POINT TO ARA
USING ARA,R2
LOOPARA TM ARAFLG,ARAXINF BRANCH IF NO EXTENDED
BZ USEJFCB INFORMATION SEGMENT
SR R3,3 PREPARE FOR IC
IC R3,ARAXINOF GET DOUBLEWORD OFFSET
SLL R3,3 GET BYTE OFFSET
AR R3,R2 POINT TO EXTENDED INFO SEGMENT
USING ARAXINLN,R3 EXTENDED INFORMATION SEGMENT
SR R4,R4 PREPARE FOR ICM
ICM R4,B'0011',ARAPATHO BRANCH IF NO PATH
BZ USEJFCB NAME
USING ARAPATHNAME,R4
* PRINT PATH NAME
.
.
B NEXTARA
* PRINT DATA SET NAME IN JFCB.
USEJFCB ...
.
.
NEXTARA AH R2,ARALEN POINT TO NEXT ARA ENTRY
BCT R9,LOOPARA DECREMENT JFCB COUNTER, LOOP IF MORE
.
.
SR R2,R2
IC R2,SLBPOOL
SR R0,R0
ICM R0,B'0111',SLBRLEN
FREEMAIN RU,LV=(0),SP=(R2),A=SLBAREA
.
.
Figure 2. Sample Code Retrieving
Allocation Information Part 2 of 2 OLDSYSTM DS 0H ROUTINE TO HANDLE JUST LIBJFCB
.
.
*
NOJFCB DS 0H ROUTINE TO HANDLE INABILITY TO GET THE
* JFCB. THE DATA SET MAY NOT BE ALLOCATED.
.
.
*
SLBOPNX DS 0H DCB OPEN EXIT ROUTINE FOR SYSLIB.
* HANDLES RECFM, LRECL, AND BLKSIZE.
.
.
INDCB DCB DSORG=PO,DDNAME=SYSLIB,MACRF=R,SYNAD=INERROR, X
EXLST=INEXLST
INEXLST DC 0F'0',AL1(EXLDCBEX) ENTRY CODE FOR OPEN EXIT ROUTINE
DC AL3(SLBOPNX) ADDR OF DCB OPEN EXIT ROUTINE
DC AL1(EXLARL) ENTRY CODE TO RETRIEVE
* ALLOCATION INFORMATION
DC AL3(SLBSTRT) ADDR OF ALLOCATION RETRIEVAL LIST
DC AL1(EXLLASTE+EXLRJFCB) ENTRY CODE TO RETRIEVE FIRST JFCB
* AND INDICATE LAST ENTRY IN LIST
DC AL3(LIBJFCB) ADDR OF JFCB FOR FIRST DATA SET
*
* AN ALLOCATION RETRIEVAL LIST FOLLOWS, POINTED TO BY DCB EXIT LIST.
*
SLBSTRT IHAARL DSECT=NO,PREFIX=SLB
DC 0F'0'
LIBJFCB DC CL176' ' FIRST JFCB
. IHAARA ,
IHAEXLST , DCB exit list mapping