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


Reading a DSCB by Data Set Name

z/OS DFSMSdfp Advanced Services
SC23-6861-01

If you specify a data set name using OBTAIN and the CAMLST SEARCH option, the OBTAIN routine reads the 96-byte data portion of the format-1 DSCB and the absolute track address of the DSCB into virtual storage. The absolute track address is a 5-byte field in the form CCHHR that contains zeros for VIO data sets.

The format of the OBTAIN and CAMLST macros is:

Read syntax diagramSkip visual syntax diagram
>>-+-------+--OBTAIN--listname_addrx---------------------------->
   '-label-'                           

>--+-------------------------+--+-------------------+----------><
   '-NUMBERDSCB=number_dscbs-'  |         .-NOTOK-. |   
                                '-EADSCB=-+-OK----+-'   

Read syntax diagramSkip visual syntax diagram
>>-listname--CAMLST--SEARCH--,dsname_relexp--,vol_relexp-------->

>--,wkarea_relexp--+-------------------------+------------------>
                   '-NUMBERDSCB=number_dscbs-'   

>--+-------------------+---------------------------------------><
   |         .-NOTOK-. |   
   '-EADSCB=-+-OK----+-'   

listname_addrx
Points to the parameter list (labeled listname) set up by the CAMLST macro instruction.
SEARCH
Code this operand as shown.
dsname_relexp
Specifies the virtual storage location of a fully-qualified data set name. The area that contains the name must be 44 bytes long.
Tip: A DSNAME of 44 bytes of X'04' (X'040404…04') can be used to read a format-4 DSCB.
vol_relexp
Specifies the virtual storage location of the 6-byte volume serial number on which the DSCB is located.
wkarea_relexp
Specifies the virtual storage location of a 140-byte work area that you must define.
NUMBERDSCB
Specifies a value between 0 and 255 that designates the number of consecutive 140-byte return areas that are provided in wkarea_relexp. The system treats a value of 0 as a 1. Currently the system does not support a chain of more than 12 DSCBs for one data set, but it is valid for you to provide an area that is longer than currently needed. The system verifies that the provided area is valid. When you provide an area that is long enough to contain more than one DSCB, obtain processing will return DSCBs for the requested data set name in logical VTOC order until all the 140-byte return areas are used. The logical VTOC order is a format-1 DSCB, followed by zero or more format-3 DSCBs or a format-8 DSCB, followed by one or more format-9 DSCBs, followed by zero or more format-3 DSCBs. No absolute maximum number of DSCBs for a data set should be assumed. The actual number of DSCBs are returned in a field located in the first 140-byte return area.

On the OBTAIN macro you can code a register number or symbol for a register number in parentheses. It means that the specified register contains the number of DSCBs that can fit in the return area. If you code the NUMBERDSCB parameter on OBTAIN, the macro execution stores the value in the CAMLST area. You cannot code a register on the CAMLST macro.

Note that for programs run on a pre-z/OS R10 system that do not support this keyword, the NUMBERDSCB value will be treated as if it were 1.

EADSCB
Specifies whether this program supports data sets with format-8 and format-9 DSCBs. Such data sets can appear on extended address volumes.
EADSCB=OK
Code EADSCB=NOTOK when your program does not support data sets that have format-8 and format-9 DSCBs. The extent descriptors in DSCBs for a data set described with these formats may have track addresses that contain cylinder addresses 65,520 or larger. EADSCB=OK is accepted for data sets described by all DSCB types, including format-1 DSCBs, regardless of the volume size where the data set resides. Your program can also run on an older level of the system that does not support this keyword. In these cases, EADSCB=OK is ignored. EADSCB=OK sets byte 2 bit 4 in the OBTAIN parameter list to on.
EADSCB=NOTOK
Code EADSCB=NOTOK when your program does not support DSCBs that describe data sets with format-8 and format-9 DSCBs. EADSCB=NOTOK is the default when the EADSCB keyword is not specified.

When EADSCB=NOTOK is coded or assumed by default, OBTAIN will set return code 24 if the target of the OBTAIN request has a format-8 DSCB.

EADSCB=NOTOK sets byte 2 bit 4 in the OBTAIN parameter list to zero.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014