z/OS DFSMSdfp Advanced Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Using RDJFCB to Retrieve Allocation Information

z/OS DFSMSdfp Advanced Services
SC23-6861-01

RDJFCB uses DCB exit list entry type 13 to retrieve allocation information (JFCBs and volume serial numbers) for data sets that might be concatenated. The exit list entry code is X'13', and is defined as “retrieve allocation information.” The second through fourth bytes of this entry must point to an allocation retrieval list (ARL), as described in Table 1. If you issue RDJFCB, this DCB exit list entry retrieves all JFCBs for the specified concatenated data sets, and lists of all volume serial numbers for these data sets. The block size, as specified on the DD statement of each data set, is put into the extended information segment following the volume serial numbers. If this block size field is 0, the block size of the data set is in the JFCB. You can either select JFCBs in the concatenation or, by default, retrieve all of them. RDJFCB uses the parameter list to receive and return information about the request. See Figure 1 for an example of usage.

OPEN TYPE=J does not recognize this exit list entry.

You can use the IHAARL macro (shown here) to generate and map the ARL. Your program might issue a GETMAIN or STORAGE macro for the ARL, or, if you specify DSECT=NO, the ARL is generated within your program's storage. The ARL must be below 16 MB. The allocation retrieval area (ARA), acquired by RDJFCB through a GETMAIN macro, can be above or below 16 MB.

The format of the IHAARL macro is:

Read syntax diagramSkip visual syntax diagram
>>-+-------+--IHAARL--+----------------+--+----------------+---->
   '-label-'          |        .-YES-. |  '-,PREFIX=prefix-'   
                      '-DSECT=-+-NO--+-'                       

>--+-----------------+-----------------------------------------><
   |         .-NO--. |   
   '-,DESCR=-+-YES-+-'   

DSECT=YES or NO
Specifies whether the symbol at the beginning of the generated area appears on a DSECT instruction or a DC instruction. For DSECT=NO, the symbol appears on a DC instruction. The default is DSECT=YES.
PREFIX=prefix
Allows you to invoke the macro more than once per assembly. Specifies a character string with which all generated symbols are to be prefixed. Do not specify delimiters, such as quotation marks. If you omit this operand or specify a null value, the prefix defaults to the characters ARL.
DESCR=YES or NO
Specifies whether the macro expansion includes the macro description (prolog). The default is DESCR=NO.

Table 1 and Table 2 describe the formats of the allocation retrieval list and allocation retrieval area, respectively.

Table 1. Format of the Allocation Retrieval List (mapped by the IHAARL macro)
Offset Bytes Name Description

The following fields are set by the caller of RDJFCB.

0 (X'00') 2 ARLLEN Length of this area. Value should be 36.
2 (X'02') 2 ARLIDENT EBCDIC 'AR'
4 (X'04') 1 ARLOPT1 Option byte.
  0 . . . . . . . ARLLANY ARA must be below 16 MB.
  1... ....   ARA can be above 16 MB.
  .1.. .... ARLUSS Request ARA have a path name for each entry for which PATH was coded.
  . .xx xxxx   Reserved. Must be zero.
       
5 (X'05') 7 ARLRSVD1 Reserved. Must be zero.
12 (X'0C') 2 ARLRETRV Number of data sets for which to retrieve information. If 0, retrieve all in the concatenation.
14 (X'0E') 2 ARLFIRST Number of first data set in concatenation for which to retrieve information. 0 or 1 specifies retrieval of information beginning with first data set in the concatenation.

The following fields are set by RDJFCB

16 (X'10') 4 ARLAREA Address of ARA. See Table 2.
20 (X'14') 1 ARLPOOL Storage subpool containing ARA.
21 (X'15') 3 ARLRLEN Length of ARA.
24 (X'18') 2 ARLRTRVD Number of concatenated data sets for which JFCBs were retrieved.
26 (X'1A') 2 ARLCONC Number of concatenated data sets. If no concatenation, this value is 1.
28 (X'1C') 1 ARLRCODE Reason Code:
  • 0 = Requested information was read.
The following reason codes are related to return code 8:
  • 4 = ARLFIRST is greater than ARLCONC.
  • 8 = Insufficient storage to read information. ARLPOOL and ARLRLEN describe what RDJFCB needs.
29 (X'1D') 7 ARLRSVD2 Reserved. Used by RDJFCB.
Table 2. Format of the Allocation Retrieval Area (mapped by the IHAARA macro)
Offset Bytes Name Description
0 (X'00') 2 ARALEN Length of the information for this data set (including this field). The starting address of the ARA plus the value in the length field designates the address of the ARA for the next data set in the concatenation, if requested. Do not use the length field to calculate the number of volumes.
2 (X'02') 1 ARAFLG Flags.
  1... .... ARAXINF Extended information segment is present.
  .xxx xxxx   Reserved. Must be zero.
3 (X'03') 1 ARAXINOF Offset in doublewords from the beginning of the allocation retrieval area for the current data set to the extended information segment.
4 (X'04') 176(Dec) ARAJFCB JFCB
180 (X'B4') variable * Sixth and subsequent volume serial numbers. Determined by the value in JFCBNVOL. If the number of volume serial numbers is fewer than the specified volume count, entries at the end of the list might contain all blanks. If the first byte of an entry is X'FF', the JCL-specified VOL=REF and the volume could not be determined.

Extended Information Segment. The DSECT name is ARAXINFO.

0 (X'00') 2 ARAXINLN Length of the extended information segment (including this field).
2 (X'02') 2 ARAPATHO If other than zero, ARAPATHO is the offset from beginning of extended information segment to the path name (ARAPATHNAME); in this case, the data set name in the JFCB is meaningless. If zero, then this entry does not contain a path name.
4 (X'04') 4   Reserved. Must be 0.
8 (X'08') 8 ARAXLBKS Block size for this data set or 0. If 0 then block size can be found in the JFCB in ARAJFCB. Start of change If JFCBLKSZ is set, this field will be returned with a value of 0. End of change
16 (X'10') 8 ARABKSLM The maximum allowed value for system determined block size (BLKSZLIM or DFABLKSZ value in DFA). This integer value is meaningful only if block size (BLKSIZE) is omitted from all sources and the application program opens for output. It is the first value available from these sources:
  1. BLKSZLIM keyword on the DD statement or dynamic allocation.
  2. Block size limit in data class. Set by storage administrator. Available even if the data set is not SMS-managed.
  3. System default set in TAPEBLKSZLIM keyword in DEVSUPxx member in SYS1.PARMLIB by system programmer. Also available in DFA.
  4. 32760

The minimum value in the current level of the operating system is 32760.

24 (X'16') 16 * Reserved.
The following fields are present only if ARAPATHO is non-zero:
    ARAPATHNAME DSECT
x 2 ARAPATHLEN Length of path name, excluding any trailing blanks. Calculate the value of x by adding the value in the two bytes in ARAPATHO to the address of ARAXINLN.
x+2 255 ARAPATHNAM Path name.
  257 ARAPNAMLEN Symbolic length of maximum path name section.

When you have finished using information from the retrieval areas, you should issue FREEMAIN or STORAGE macro to free any areas that were acquired through GETMAIN (including the ARA, acquired by RDJFCB). When coding the FREEMAIN or STORAGE macro, specify the length, subpool, and address values from the ARLRLEN, ARLPOOL, and ARLAREA fields, respectively. The DSECT name is ARAXINFO.

Code the FREEMAIN macro as shown:
FREEMAIN RU,LV=length,SP=subpool,A=address

If RDJFCB successfully fills in the ARL field, register 15 is set to zero. Otherwise see Table 1.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014