Flags (S99FLAG1)

A two-byte field that instructs the system on how to satisfy dynamic allocation requests. S99FLAG1 bit settings (except for S99CNENQ and S99MSGL0) are used only for dsname allocation requests. The bits in the field are as follows:

Table 1. S99FLG11 — First byte of S99FLAG1
Bit Bit Name Meaning When On
0 S99ONCNV Only use an existing allocation that has the convertible attribute to satisfy the request.
1 S99NOCNV Do not use an existing allocation to satisfy this request.
2 S99NOMNT Do not mount volumes or consider off-line devices. (This bit overrides S99MOUNT and S99OFFLN in S99FLAG2.) If this bit is on and the request causes a private catalog to be allocated, mounting will not be allowed for that catalog.
3 S99JBSYS Used for SYSOUT data sets, this flag indicates that the system is to treat the data set as part of the job's normal output. The data set is not expected to be dynamically deallocated (spun off). If the data set is dynamically deallocated, it will be printed immediately, but paging space will not be released until the job ends.
4 S99CNENQ Issue a conditional ENQ on the TIOT resource. If the TIOT is not available, an error code is returned to the user.
5 S99GDGNT When the bit is on, the system is to use a LOCATE to determine the relative generation number based on the most recent catalog information. The relative generation number will reflect GDG data sets created or deleted by other jobs in a multitasking environment.

When the bit is off, the system is to determine the relative generation number based on the catalog information that was available the first time the GDG was referenced during the job or TSO/E session. The relative generation number will reflect only those GDG data sets created or deleted by this job. See z/OS MVS JCL User's Guide for more information about GDG data sets, and Table 3 for an example using S99GDGNT.

6 S99MSGL0 Requests that no messages be issued for this dynamic allocation. Use this bit together with S99ERMSG (described in bit 1 of Processing options (S99EOPTS)) to obtain necessary messages. This bit overrides the MSGLEVEL parameter on the JOB card of the JCL with MSGLEVEL=(,0). Specifying S99EIMSG (described in bit 0 of Processing options (S99EOPTS)) for a dynamic allocation will override the specification of S99MSGL0.
7 S99NOMIG Do not recall migrated data sets, referenced either directly (for example, through text unit DALDSNAM) or indirectly (for example, through text units DALDCBDS or DALVLRDS). When the volume on which the data set resides is migrated and S99NOMIG is on, the CATALOG facility returns the volume name MIGRAT to allocation, and the system fails the allocation request with error reason code x'278'. If you are using a product other than DFHSM, ensure that it returns the volume name MIGRAT to the CATALOG facility under these conditions.
Table 2. S99FLG12 — Second byte of S99FLAG1
Bit Bit Name Meaning When On
8 S99NOSYM Disable symbolic substitution for the current request.
9 S99ACUCB Use 4 byte actual UCB addresses, which is known as the NOCAPTURE option.
Note:
  1. VSAM, BSAM, BPAM, QSAM and EXCP support the S99ACUCB option.
  2. The S99ACUCB “NOCAPTURE” option causes creation of an XTIOT even if S99TIOEX has not been coded. S99ACUCB does not require authorization as S99TIOEX does.
  3. When set, S99DXACU overrides this flag.
10 S99DSABA Request that the DSAB for this allocation be placed above the 16MB line.
Note:
  1. S99TIOEX (authorized users only) must be set to get an above-the-line DSAB.
  2. VSAM, BSAM, BPAM, QSAM and EXCP support the S99DSABA option.
  3. When you use S99DSABA you need to understand how the DSAB that represents the DD allocation statement is queued. Most programs use the IEFDDSRV or GETDSAB interfaces with LOC=ANY to locate information about the DD allocation; however, programs before z/OS V1R13 might access the DSAB without using these services. When you set S99DSABA, you must update your code either to use the IEFDDSRV or GETDSAB interfaces or to use the proper queuing fields in the DSAB mapping.
  4. When set, S99DXACU overrides this flag.
11 S99DXACU Request that the DSAB for this allocation be placed above the 16MB line, that the 4 byte actual UCB address, which is known as the NOCAPTURE option, be used and that an XTIOT be created. This results in bypassing the TIOT limits and below-the-line storage constraints associated with concurrently allocating many data sets.

When this bit is set, the settings of S99DSABA, S99TIOEX and S99ACUCB are ignored.

Note: To retrieve information about the allocation, you must specify LOC=ANY on the GETDSAB or IEFDDSRV services. These services are recommended instead of coding TIOT or DSAB search routines, as queuing is different for above the line DSABs and TIOTs.
12 - 15   Not an intended programming interface; set to zero.
Table 3. Example of Using the S99GDGNT bit of the S99FLAG1 field
Job 1     Job 2
DYNALLOC allocates GDG.XX(+1) as DD1 Event A    
       
DYNALLOC unallocates DD1 Event B    
       
  Event C   Allocate GDG.XX(+1), either through JCL or DYNALLOC
       
  Event D   Job ends
       
DYNALLOC allocates GDG.XX(+1) Event E    
       
Events occur in alphabetical order. At the beginning of Job 1, the base GDG is GDG.XX.G0000V00:      
       
With S99GDGNT flag off for Event E:
  • Event A allocates GDG.XX.G0001V00.
  • Event C allocates GDG.XX.G0002V00.
  • Event E allocates GDG.XX.G0001V00.
    With S99GDGNT flag on for Event E:
  • Event A allocates GDG.XX.G0001V00.
  • Event C allocates GDG.XX.G0002V00.
  • Event E allocates GDG.XX.G0003V00.