Data set header general section

The basic general section is identified by an identifier field of X‘00’ and a modifier field of X‘00’. Table 1 describes the format of the basic general section of the data set header.

Table 1. Fields in the general section of a data set header
Field Name Offset in Hex Length Type of Data Default Value Valid Range Description
NDHGLEN 0 2 binary none 4-32764 Length of the data set header general section.
NDHGTYPE 2 1 binary none none The major type of this section. General sections are identified by a X‘00’.
NDHGMOD 3 1 binary 0 none Modifier for the major type identifier. A modifier code of X‘00’ is the modifier for the general section.
NDHGNODE 4 8 char none N/A The destination node for the data set.

This field may be set at execution time from either NJHGPRTN or NJHGPUNN.

AS/400 sets and uses this field as the destination address for the data set.

NDHGRMT C 8 char blanks N/A Either the destination userid, remote workstation, or printer identifier.

This field may be set at execution time from either NJHGPRTR or NJHGPUNR.

AS/400 sets and uses this field as a destination userid. If the received userid is blanks or zeros, this product substitutes ‘SYSTEM’ as the destination userid.

JES2 and JES3 also use this field for the TSO/E TRANSMIT and RECEIVE commands. If this field and the NDHGXWTR field are the same, this field is used as the TSO destination userid.

RSCS sets the field to the destination userid or printer (or X‘00’ when SYSTEM is the destination).

POWER uses the field to route the NJE job to a remote workstation, userid, or program.

NDHGPROC 14 8 char blanks none The JCL procedure that was executing when this data set was created.
AS/400:
  • For print files, this field is set to the originating userid and used for the spooled file user data information.
  • For punch files, this field is set from the database file member name and used as the member name for the database file.

RSCS sets the field from the information in FILENAME. RSCS does not use the field.

POWER defaults this field and does not use it.

NDHGSTEP 1C 8 char blanks none The step name that was executing when the data set was created.

For print files, AS/400 sets this field from the spooled file name and uses this field for the spooled file name.

For punch files, AS/400 sets this field to the database file name and uses this field as the database file name.

RSCS sets the field from the information in FILETYPE. RSCS does not use the field.

POWER defaults this field and does not use it.

NDHGDD 24 8 char blanks none The DDNAME that referenced the data set when it was created.

AS/400 sets this field to the default value, but does not use it.

JES3 If blank or zero on input, JES3 uses the NJHGROOM value as a DDNAME. If NJHGROOM is blank this system uses a default DDNAME of ‘*NJEWKnn’, where ‘nn’ is an internal index value.

RSCS and POWER default the field and do not use it.

NDHGDSNO 2C 2 binary 0 0-32767 A counter incremented each time a SYSOUT data set is allocated within the same job. This field maintains the uniqueness of data sets, while allowing them to be spun off.

AS/400 sets this field to the default value, but does not use it.

JES2 uses and sets the field as follows:
  1. Ignores it on input if less than or equal to 100.
  2. Sets it from the PDBDSKEY field if less than 32767, then it will be set to zero.

There is no internal JES2 limit to this number. There is a storage limitation in the converter to 4096 datasets in one job.

JES3, RSCS, and POWER default the field and do not use it.

  2E 1       Reserved for IBM's use.
NDHGCLAS 2F 1 char A A-Z 0-9 The job's SYSOUT class.

AS/400 sets this field from the CLASS parameter on the SNDNETF and SNDNETSPLF commands, but does not use it.

JES2 sets the SYSOUT class to A if the class specified in the job's JCL is not alphanumeric.

JES3 sets the field to the SYSOUT class. If receiving an NJE SYSOUT job, this field is used if the class and type (indicated by NDHGF2PR and NDHGF2PU) do not conflict with the local system's use of class/type.

If a conflict exists, a default class is used for the appropriate type.

RSCS uses the field for the VM output class and sets it from this class unless overridden by the SYSOUT keyword on the TAG.

POWER sets the SYSOUT class to the output class. POWER Version 4.1.2 supports numeric classes for output. For all versions prior to 4.1.2, only A-Z are valid (set to A if not in the range A-Z when received).

NDHGNREC 30 4 binary 0 none The count of the number of records in the data set.

AS/400 sets this field, but does not use it.

JES2 uses the field as the line count of the data set. A spanned record counts as 1, regardless of the number of segments.

JES3 sets the number of records in the data set but does not use the information.

RSCS uses the information in a message to the user. RSCS sets the field from the record count in the spool file block.

POWER sets and uses the field as the line count.

NDHGFLG1 34 1 bits 0 none A flag byte containing the following flags:
Bit NDHGF1SP   .1 80 bit 0 none The spin data set flag.

AS/400 sets this bit off and does not use it.

JES2 sets the bit from information in the job's JCL. JES2 sometimes sets this bit for the TSO/E TRANSMIT and RECEIVE commands according to the data set disposition.

JES3 does not use this bit but sets it for spin data sets and data sets generated by the TSO/E TRANSMIT and RECEIVE commands.

RSCS uses the bit to separate data sets into individual spool files, but does not set this bit.

POWER sets the bit only if the data set is segmented and uses the bit to determine the job number. If the flag is on, the job number is set from the job header (NJHGJID), otherwise a new job number is assigned.

 

Bit NDHGF1HD   .1 40 bit 0 none The destination node is to hold the data set.

AS/400 sets and reads this bit to determine whether the print file should be held before printing.

JES2 sets the bit from information in the JCL and uses it to place the data set on the system output hold queue.

JES3 sets the bit and uses it to place the data set on the system output hold queue.

RSCS uses the bit to indicate to the destination node that it is to hold the data set. The bit is set when specified by the originator on the TAG command using the HOLD keyword.

POWER uses the bit and sets it if the data set disposition is ‘H’ or ‘L’.

Bit NDHGF1LG   .1 20 bit 0 none The job log indicator bit.

AS/400, JES3, RSCS, and POWER do not use the bit but set it to the default value.

JES2 uses the bit to indicate that the data set is the JES2 job log.

Bit NDHGF1OV   .1 10 bit 0 none The page overflow indicator. If the bit is on, the data set is allowed to print over the page fold. If off, the printer should start at the top of each page.

AS/400 sets this bit on for print files, but does not use it.

JES2 and RSCS do not use this bit but set it with the default value.

JES3 sets the bit if OVFL=OFF is specified on the //*FORMAT statement in the job's JCL. JES3 uses the bit as described above.

POWER uses the field but does not set it.

Bit NDHGF1IN   .1 08 bit 0 none The interpreter feature is to be used for punched output if punched on a device that has the interpreter feature installed.
Note: For further interpretation of this field, see the NDHGF1DF field (01 bit).

AS/400, RSCS and POWER do not use this bit but set it to the default value.

JES2 and JES3 use the information from the job's JCL to set the bit.

Bit NDHGF1LC   .1 04 bit 0 none The NDHGLNCT field (offset X‘3A’) contains information if this bit is on.

AS/400 sets this bit on for print files, but does not use it.

JES2 sets and uses the bit if field NDHGF1LC is set on.

JES3, RSCS, and POWER set this bit to the default value, but do not use it.

Bit NDHGF1ST   .1 02 bit 0 none If on, the job log data set contains statistics for the job.

AS/400 sets this bit off and does not use it.

JES2 uses the bit to avoid multiple instances of the job statistics in the job log.

JES3, RSCS, and POWER do not use this bit, but set it to the default value.

Bit NDHGF1DF   .1 01 bit 0 none Specifies whether the interpret bit (NDHGF1IN) was explicitly set off (1) or not (0). The NDHGF1DF is used with the NDHGF1IN bit as follows:
NDHGF1IN    0      1      0       1
NDHGF1DF    0      0      1       1

           |      |       |       |
            V      |      V       |
Meaning:   Use     |    Do not    |
         default   |   interpret  |
                   V              V
                Interpret      Interpret

AS/400 sets this bit to the default value, but does not use it.

JES2, RSCS, and POWER default this bit and do not use it.

NDHGRCFM 35 .5 binary 0 none Specifies the record format of the data set.
   11.. ....   undefined format
   10.. ....   fixed format
   01.. ....   variable format

AS/400:

For print files, this system sets either variable or fixed format (bits 1 and 1).

For punch files, AS/400 sets this field to X‘80’.

JES2 uses the RECFM in the DCB specified in the job's JCL to set the field. The DCB defines other settings that are not defined by this field. However, JES2 allows all flag settings and transmits them across the network.

JES3 uses the RECFM in the DCB specified in the job's JCL to set the field beginning with z/OS release 1.8.

RSCS sets this field to X‘42’ for print files, and X‘80’ for punch files.

For print files, it is used to decide what record length to use in determining whether to make an incoming file a virtual 1403 file or a 3211 file. (For further details, see the following field, NDHGLREC.)

For punch files, this field is used with NDHGLREC to determine the proper record length to use in detecting files containing punch records greater than 80 characters. It is also used in determining whether to forward punch records of a store-and-forward file with or without carriage control.

This field is modified for certain types of store-and-forward data when RSCS acts as an intermediate node.

POWER does not use this field, but sets it to C‘Cx’ (undefined) and supports all values of the field.

NDHGRCFM 35 .5 binary 0 none Specifies the control characteristics used in the data set.
... .00. no carriage control
... .10. ASA control characteristics
... .01. machine control 
         characteristics
... .11. MODCA or AFPDS print files

AS/400:

For print files this system sets:
  • carriage control to ASA, machine, or none (bits 5 and 6 off).
  • MODCA or AFPDS print files (bits 5 and 6 on).

For punch files, AS/400 sets this field to X‘80’.

JES2 uses the RECFM in the DCB specified in the job's JCL to set the field.

JES3 sets the carriage control to ASA, machine, or none (bits 5 and 6 off). Only carriage control bits are used on input.

RSCS sets this field to X‘42’ for print files, and X‘80’ for punch files.

For punch files, this field is used to determine whether to forward punch records of a store-and forward file with or without carriage control.

This field is modified for certain types of store-and-forward data when RSCS acts as an intermediate node.

For Version 3.1, this last restriction is removed.

POWER does not use this field, but sets it to X‘Cx’ (undefined). At store-and-forward nodes, files having ASA carriage control will not have the CC converted to machine carriage control.

NDHGLREC 36 2 binary 0 1-32760 The maximum logical record length (LRECL) of any record that appears within the data set. It includes the carriage control character if specified for the data set.
AS/400 sets this field to:
  • X‘80’ for punch files. When AS/400 receives punch files with records greater than 80 bytes, AS/400 truncates them at the destination node.
  • X‘32,760’ for AFPDS print files prior to Version 2.1.
  • the maximum record length of all records in the file for AFPDS, LINE, and FPDSLINE files in Version 2.1 and all subsequent releases. AS/400 records the longest record in the file when it is first spooled.
  • X‘4079’ or ‘512’ for all SCS, IPDS and ASCII files.
    Note: S/370 does not support these file types; you should route these through a S/370 only to get the final AS/400 destination.

JES2 obtains the LRECL from the DCB. It includes the carriage control character.

JES3 uses the firld if it is not 0. The following shows how JES3 defaults the field according to the type of data set and the presence of carriage control:
Print with CC   133  (132 without CC)
Punch with CC    81  (80 without CC)
NDHGLREC, cont. 36 2 binary 0 1-32760

RSCS uses this field as follows:

For incoming print files, this determines whether they are defined as 1403, 3211, or 3800 files.
   Record Length       Device
      1 - 132           1403
    133 - 150           3211
    151 - 204           3800
205 - 32765VAFP (if supported 
on a VM system)
punch records greater than 80 (greater than 81 with carriage control) are truncated at the destination node. In setting the field, RSCS obtains the LRECL from TAGRECLN (with one added to each record to account for the CCTL byte) as follows:
  1. This field is set to 80 for punch files.
  2. Virtual 3800 files that contain any load CCWs have this field set to 8192 (regardless of the actual maximum record length in the file).
RSCS does not modify this field as an intermediate node.

POWER uses the field and sets it to the maximum length of any record in the data set, up to a maximum record length of 32K-1.

NDHGDSCT 38 1 binary 0 0-255 The data set copy count. This field defines the number of copies to print or punch at the destination node and will be used if the data set is printed on an impact printer. If it is printed on a non-impact printer, the copy group count is used.
AS/400 sets this field:
  • to 0 for punch files.
  • to the number of copies left to print, then reads this field to determine the total number of copies for print files.

JES2 sets the data set copy count to the number of copies for the data set.

JES3 sets and uses the data set copy count. If the value in the field is 0, one copy of the data set is produced.

RSCS sets the field from the copy count specified on the SPOOL command. RSCS uses the field to set the spool copy count.

POWER sets the field with the information supplied from the COPY parameter of the '* $$ LST' or '* $$ PUN' statement. It is used as the copy count (defaulted to 1).

NDHGFCBI 39 1 binary 0 -31 to 31 Used as an index byte when loading the FCB on a 3211. It allows the user to print each line with the data shifted right or left by (up to) 31 characters. A negative value indicates left indexing; a positive value indicates right indexing. Right indexing adds leading blanks; left indexing removes data characters.

AS/400 sets this field to the default value, but does not use it.

JES2 supports both right and left indexing.

JES3 and POWER do not use this byte but set the byte to the default value.

RSCS does not use the field. Set from the INDEX keyword on the TAG statement. (Only positive values may be specified.)

NDHGLNCT 3A 1 binary 0 none The default lines per page for SYSOUT files. See this field only when the NDHGF1LC field is (offset X‘01’ bit) is on. A value of X‘00’ or X‘FF’ causes the system not to count lines or use a local default value, depending on the system. All other values are treated as an explicit number of lines on a page before a page eject is generated by the printing subsystem.

AS/400 sets this field to the default value, but does not use it.

JES2 obtains the value from the job's JCL. The special values X‘00’ and X‘FF’ are used as follows:

X‘00’ (default): Use the default value of the printing subsystem.

X‘FF’ : Do not force any page ejects. Let the skipping be solely determined by the carriage control (if present) in the SYSOUT data.

JES3, RSCS, and POWER do not use this field, but set it to the default value.

  3B 1       Reserved for IBM's use.
NDHGFORM 3C 8 char blanks N/A The name of the form to use when printing or punching the data set.

AS/400 sets this field to blanks if AS/400 formtype is *STD or greater than 8 characters. In all other cases, the field is set equal to AS/400 formtype.

JES2 and JES3 use only the first four bytes, followed by blanks. Forms are set to zero if not specified. If received, either zero or blanks indicate the standard (STD) forms are desired.

RSCS sets the field with the value supplied by CP FORM unless that value is overridden by the value supplied by TAG. The default is only set when the CP SPOOL command specifies NULL for the FORM name. This field is used for the CP FORM when not defaulted. When the header field contains the default (blanks), the CP FORM name is set to the installation's default.

POWER uses only the first four bytes because POWER has only four-character forms names. For a 3800 SYSOUT data set, a value of X‘00’ indicates that hardware defaults are to be used. A value of X‘40’ indicates that software defaults are to be used. When the job originated on a non-POWER system (POWER section was not present), X‘00’ is used as the software default.

NDHGFCB 44 8 char blanks N/A The name of the FCB to be used if this data set is printed.

AS/400 sets the field to blanks for print files, then reads the field to determine the printer filename to open when spooling the files.

JES2 uses only the first four bytes, followed by blanks. FCB is set to zero if not specified. If received, either zero or blanks indicate the default FCB (**** ) is desired. The first four bytes are prefixed with:
   'FCB1'    1403
   'FCB2'    3211 and 3203-5
   'FCB3'    3800
   'FCB4'    4245 and 4248

JES3 sets and uses the field, but the default is zero.

RSCS uses this field as the FCB on spool file. It is set from FCB on the SPOOL command. Only the first four characters are used. The field may be overridden by the CP TAG command (up to eight characters).

POWER uses the field as the FCB name. The field is set from the FCB name if one was specified. The last four characters may be set to ‘$$$$’ for device-independence. For a 3800 data set, a value of X‘00’ indicates that hardware defaults are to be used; a value of X‘40’ indicates that software defaults are to be used. When the job originates from a non-POWER system (POWER section was not present), X‘00’ is used as the software default.

NDHGUCS 4C 8 char blanks N/A The name of the universal character set (UCS) to use if this data set is printed. It is more commonly known as the “print train”.

AS/400 sets the field to blanks for print files and does not use it.

JES2 and JES3 use only the first four bytes, followed by blanks. UCS is set to zero if not specified. If received, either zero or blanks indicate that the default UCS (**** ) is desired. NDHATAB1 is used if UCS is specified as “****”, blanks, or zeros. JES2 prefixes the first four bytes with:
   'UCS1'    1403
   'UCS2'    3211
   'UCS3'    3203-5
   'UCS5'    4245
   'UCS6'    3262-5 and 4248

RSCS does not use the field. RSCS sets the field with the value specified on the UCS keyword in the TAG.

POWER sets the field with the UCS name specified on the * $$ LST statement.

NDHGXWTR 54 8 char blanks N/A The name of the external writer to process this data set. If equal to the NDHGRMT field, this field is also set and used by the TSO/E TRANSMIT and RECEIVE commands and the CMS SENDFILE command to allow files to be sent to individual MVS users.

AS/400 sets the field equal to NDHGRMT, but does not use it.

JES2 and JES3 set the field to the name of the external writer. A default of zero is set; either zero or blanks are accepted as defaults for input.

RSCS does not use this field but sets it to the value specified of the EXTWTR keyword if specified on TAG statement.

POWER does not use the field but sets it to the external writer name as specified on the DEST parameter.

NDHGNAME 5C 8 char blanks A-Z,0-9 This is the data set name qualifier associated with the data set at the creation node. It may be user specified or generated by the system.

AS/400 sets this field to the default value, but does not use it.

JES2 and JES3 set from the DSNAME= keyword on the DD JCL statement, or default it to a single question mark '?'. It is used to construct a resource name associated with this data set for purposes of resource access authorization.

RSCS does not use the field and sets it to the default.

POWER does not use the field and sets it to the default.

Start of changeNDHGFLG2End of change Start of change64End of change Start of change1End of change Start of changebitsEnd of change Start of change0End of change Start of changenoneEnd of change Start of changeFlag byte containing the following flags:

 

End of change
Bit NDHGF2PR   .1 80 bit 0 none If on, the data set is to be printed.

AS/400 sets and uses this bit for print files.

JES2 does not use the bit, but sets it if the output class is a print class at the output execution node.

JES3 uses this bit to denote print output. If there is print output, JES3 sets this bit.

RSCS uses the bit to cause the data set to be spooled to a printer. RSCS sets the bit if the input file is a print file.

POWER uses the bit to denote print output. It is set if the input file is a print file.

 

Bit NDHGF2PU   .1 40 bit 0 none If on, the data set is to be punched.

AS/400 sets and uses this bit for punch files.

JES2 does not use the bit, but sets it if the output class is a punch class at the output execution node.

JES3 uses this bit to denote punch output. If there is punch output, JES3 sets this bit.

RSCS uses the bit to cause output to be spooled to a punch device. RSCS sets the bit if the input file is a punch file.

POWER uses the bit to denote punch output. If there is punch output, POWER sets this bit.

Start of changeBit NDHGF2RMEnd of change   .1 20 bit 0 none If on, the FILENAME and FILETYPE are taken from the NDHGPROC and the NDFGSTEP fields respectively.

AS/400 sets this bit, but does not use it.

JES2 and JES3 do not use the bit and set it to the default.

RSCS uses the bit to take the FILENAME and FILETYPE from the NDHGPROC and the NDHGSTEP fields respectively.

POWER does not use the bit and sets it to the default.

Bit NDHGF2HB   .1 10 bit 0 none If on, the data set is to be held prior to any processing.

AS/400 sets this field to the default value, but does not use it.

JES2 sets this bit whenever the output disposition is either HOLD or LEAVE.

Start of changeJES3 sets this bit whenever the output disposition of a data set is either HOLD or LEAVE. When this bit is set on, JES3 also sets bit NDHGF1HD to hold the data set at nodes not supporting output dispositions. JES3 uses this bit and bit NDHGF2HA to determine the output disposition of an incoming data set.End of change

RSCS, and POWER do not use or set this field.

Bit NDHGF2HA   .1 08 bit 0 none If on, the data set is to be held after any processing.

AS/400 sets this field to the default value, but does not use it.

JES2 sets this bit whenever the output disposition is either KEEP or LEAVE. When this bit is set on, JES2 also sets flag NDHGF1HD to hold the data set at nodes not supporting output dispositions.

Start of changeJES3 sets this bit whenever the output disposition of a data set is either KEEP or LEAVE. When this bit is set on, JES3 also sets bit NDHGF1HD to hold the data set at nodes not supporting output dispositions. JES3 uses this bit and bit NDHGF2HB to determine the output disposition of an incoming data set.End of change

RSCS, and POWER do not use or set this field.

 

Start of changeBit NDHGF2HXEnd of change Start of change End of change Start of change.1End of change Start of change04 bitEnd of change Start of change0End of change Start of changenoneEnd of change Start of changeJES3 uses this bit to indicate that the data set should be held for external writer at JES3 nodes.

AS/400, JES2, RSCS, and POWER do not use or set this field.

End of change
Start of changeBit NDHGF2TREnd of change Start of change End of change Start of change.1End of change Start of change02 bitEnd of change Start of change0End of change Start of changenoneEnd of change Start of changeIf on, trailing blanks should be truncated.

JES3 sets this bit to indicate the data had its blanks truncated when it was created and should have them truncated when the data set is received at the targeted JES3 node.

AS/400, JES2, RSCS, and POWER do not test or set this bit.

End of change
Start of changeBit NDHGF2NOEnd of change Start of change End of change Start of change.1End of change Start of change01 bitEnd of change Start of change0End of change Start of changenoneEnd of change Start of changeIf on, this data set is a 'non-output' SYSOUT data set. The data set is not to be printed or punched; instead it contains internal control information.

JES2 uses this bit for its JCL images and step completion codes data sets (EVENTLOG).

AS400, JES3, RSCS, and POWER do not test or set this bit.

End of change
NDHGUCSO 65 1 bits 0 none The UCS option byte.

 

Bit NDHGUCSD   .1 80 bit 0 none If on, indicates the UCS will be loaded with the block data check option.

AS/400, JES2, and RSCS do not use this bit but set it to the default value. (JES2 always blocks data checks.)

 

Bit NDHGUCSF   .1 40 bit 0 none If the bit is on, the UCS will be loaded with the FOLD option.

AS/400 sets this bit to the default value, but does not use it.

JES2, JES3, and RSCS do not use this bit but set it to the default value. JES2 loads the FOLD option on a character set if bit X‘40’ of the first byte (byte 0) is on in the UCS image.

 

    .6 3F bits     Reserved for IBM's use.
  66 2       Reserved for IBM's use.
NDHGPMDE 68 8 char blanks none The process mode for the data set specified by the user. The process mode does not necessarily imply the presence of a particular type of record; it only indicates a request by the user for the preferred type of output processing. This field is used for SYSOUT selection and scheduling. The IBM-defined process modes are:
  • LINE
  • PAGE
  • SOSI1
  • SOSI2

AS/400 sets this field to the appropriate process mode depending on AS/400 devtype, igcdta, and igcosi. If none of these settings are appropriate, the field is set to blanks. See OPTB for PRMODE, see key 0018 for other values when these are not appropriate.

If neither NDHGPMDE nor PRMODE are set, or the PRMODE is a value not recognized by the AS/400, then the following values will be used:

*LINE or *AFPDSLINE if NDHGRCFM
bits are B'.01' or B'.10'
*AFPDS if NDHGRCFM bits are B'... .11.'

JES2 and JES3 set the field from the PRMODE keyword on the OUTPUT JCL statement. If PRMODE is not specified, then the data itself is examined to determine the process mode.

RSCS moves this field into an XAB and sets it from an XAB (if existing) for VM/PSF.

For Version 3.1, RSCS sets this field from the PRMODE= tag parameter.

POWER sets this field from the PRMODE operand on a JECL statement, but does not use this field.

NDHGSEGN 70 4 binary 0   The segment number of a data set which has been segmented.

AS/400 does not read or set this field.

JES2 sets this field if the segment number is less than or equal to 99999, and uses this number on the default separator page.

JES3 and POWER do not read or set this field.

  74 4       Reserved for IBM's use.