IMSGEN macro

Use the IMSGEN macro to specify the assembler and binder data sets and options, and the system definition output options and features.

IMSGEN must be the last IMS system definition macro in the stage 1 input stream, and it must be followed by an assembler END statement.

Dynamic definition

Assembler and binder data sets and options cannot be dynamically defined.

Supported environments

The IMSGEN macro can be used in the DB/DC, DBCTL, and DCCTL environments.

Syntax

Read syntax diagramSkip visual syntax diagramIMSGENASM=(HLASM,SYSLIN, ddname)TERM=NOYES,ASMPRT=OFFON,UPDTPRT=ONOFF,LKPRT=(MAPXREF,LIST),LKRGN=4Msize,LKSIZE=(value1, value2),SUFFIX=0character

IMS data set options

Read syntax diagramSkip visual syntax diagramIMSGENCSSLIB=,IMSPLEX=IMSPLEXname,MACSYS=SYS1.MACLIBname,MODGEN=SYS1.MODGENname,NODE=(IMSnode1, node2, node3),OBJDSET=IMS.OBJDSETname,PROCLIB=(NO)SCEERUN=,UMAC0=name,UMAC1=name,UMAC2=name,UMAC3=name

Job Control Language options

Read syntax diagramSkip visual syntax diagramABCDEFG
A
Read syntax diagramSkip visual syntax diagram,JOBCTL=(5nbr,A, jobclass,A, outputclass, job accounting, step accounting)
B
Read syntax diagramSkip visual syntax diagram,PRTY=0n
C
Read syntax diagramSkip visual syntax diagram,JCL=(IMSGENjobname, job accounting,IMS, programmername,A, outputclass,( job miscellaneous1).(job miscellaneous2))
D
Read syntax diagramSkip visual syntax diagram,SCL=(5nbr, step accounting,( step miscellaneous1).(step miscellaneous2))
E
Read syntax diagramSkip visual syntax diagram,UJCL1=' userdata',UJCL2=' userdata',UJCL3=' userdata',UJCL4=' userdata',UJCL5=' userdata'
F
Read syntax diagramSkip visual syntax diagram,ONEJOB=(NOYES,YESNO)
G
Read syntax diagramSkip visual syntax diagram,MFSDFMT=(YESNO)

General communication options

Read syntax diagramSkip visual syntax diagram,MFSTEST=(NOYES)1,SYSMSG=NOTIMESTAMPTIMESTAMP1
Notes:
  • 1 If you specify the COMM macro, the general communication option parameters are overridden.

Security options

Read syntax diagramSkip visual syntax diagram,SECCNT=0nbr
Notes:

Positional parameters

The IMSGEN macro does not include positional parameters.

Keyword parameters

To find which parameters apply to your IMS configuration, refer to Selecting the appropriate macros to define your system.

The keyword parameters for the IMSGEN macro are divided by the possible options:

  • Assembler and binder
  • IMS data set
  • JCL
  • General communication
  • Security

Assembler and binder options

ASM=
The first parameter specifies the assembler JCL to be produced for the stage 2 assembly steps. High Level Assembler, the high-level assembler, is the only valid first parameter.

The second parameter can be used to specify the ddname to be used for the assembler object output. If the ddname is not specified, the ddname is SYSLIN.

Avoid the use of DD names other than SYSLIN, SYSGO, and SYSPUNCH if you are using the z/OS® System Modification Program (SMP) to apply maintenance to your IMS libraries. SMP does not recognize other DD names during JCLIN processing.

The option of changing the object output ddname is intended to accommodate those users who have installed an assembler and altered its ddname defaults. The stage two assembler execution statement options are PARM='OBJECT,NODECK,NODBCS'. The object file output ddname is the one that must be coded in place of the default value of SYSLIN. Also, you must use the default assembler option ALIGN for assemblies of IMS modules.

Recommendation: Use NOUSING and FLAG(NOPUSH) options to avoid assembler errors. Because the assembler code that is created might contain lowercase characters, you should not specify the assembler option COMPAT(CASE).

ASMPRT=
Specifies the assembler print options for those assembler job steps produced by IMS system definition.

ON specifies that assembly listings are to be generated.

OFF specifies that assembly listings for inline assemblies are not to be generated. The default is OFF.

LKPRT=
Specifies binder print options for those binder job steps produced by IMS system definition. These print options include:
Value
Print Option
MAP
Module map
XREF
Cross-reference table (XREF includes the MAP option)
LIST
List of control statements in statement image format

If this parameter is omitted, only binder error messages, if any, are printed.

LKRGN=
Specifies a region size value to be placed on the generated EXEC statements for execution of the binder. This parameter can be specified in kilobytes or megabytes.

In kilobytes, the value can be 1 through 7 decimal numbers (1 through 2096128).

In megabytes, the value can be 1 through 4 decimal numbers (1 through 2047).

LKSIZE=
Specifies the values to be placed in the SIZE parameter of the EXEC statements for the binder job steps.
value1
Specifies the maximum number of bytes of main storage and available virtual storage. This value can be specified in the form n (where n represents the actual number of bytes of virtual storage, not to exceed 16384000) or nK (where n represents the number of 1 KB blocks of virtual storage, not to exceed 16000 KB).
value2
Specifies the number of bytes of storage to be allocated for the load module buffer. It is expressed in the form n (where n cannot exceed 65520) or nK (which cannot exceed 63 KB).

Default values are not supplied in LKSIZE for the binder SIZE parameter. If value1 and value2 are omitted, the Binder SIZE defaults are used.

Related reading: For a more detailed description of the SIZE option, see DFSMS/MVS Program Management.

SUFFIX=
Specifies the alphanumeric suffix character appended to the generated composite control block, nucleus, MFS device characteristics table, and security directory module names when they are put into the IMS.SDFSRESL or IMS.MODBLKS data sets. The IMS online nucleus name always starts with DFSVNUC. The suffix character supplies the eighth character of the nucleus names. If the suffix character equals 0, the online nucleus name is DFSVNUC0. This concept allows the system user to generate multiple IMS systems for use in one environment where the characteristics of each system vary. The default is 0.
The modules that receive the suffix are shown in the following table. If no IMSGEN macro is coded with the default SUFFIX of 0, subsequent functions might fail due to the lack of the default, DFSUDT0.
Table 1. Modules that receive the suffix character
Module 1 Module 2 Module 3
DBFSCD0x, DBFSCD1x DFSCLVxx DFSRCTEx
DFSBLK0x DFSDDIRx DFSRSR0x
DFSCLCxx DFSFEDBx DFSSCD0x, DFSSCD1x
DFSCLIDx DFSFRB0x, DFSFRB1x DFSSMB0x
DFSCLL0x DFSISDBx DFSSYS0x
DFSCLL1x DFSISDCx DFSUDT0x
DFSCLRxx DFSOPL0x DFSVNUCx
DFSCLSxx DFSPDIRx  

The suffix is also appended to the intermediate control block assemblies for SMP/E purposes.

TERM=
Specifies the assembler TERM/NOTERM option for stage 2 assembler job steps produced by the IMS system definition.

YES specifies that the TERM option is in the PARM= field for each of the stage 2 assembler job steps. YES also specifies that the ⁄⁄SYSTERM DD statement is to be built in each of the stage 2 assembler job steps.

NO specifies that the NOTERM option is included in the PARM= for each of the stage 2 assembler job steps. The default in NO.

UPDTPRT=
Specifies whether the IEBUPDTE SYSPRINT is to be produced by IMS system definition stage 2.

ON specifies that the IEBUPDTE SYSPRINT is to be generated. The default is ON.

OFF specifies that the IEBUPDTE SYSPRINT is to be suppressed. This includes the suppression of any errors or warnings issued by the IEBUPDTE utility.

IMS data set options

CSSLIB=
Specifies the name of the z/OS (R2V10 or above) callable services library data set that is part of the concatenation of the STEPLIB DD statement of the DFSJMP and DFSJBP procedures. The specified data set name cannot be longer than 44 alphanumeric characters. If the keyword is not specified, a default value of SYS1.CSSLIB is used as the data set name.

No system definition is needed unless you are using the DFSJMP or DFSJBP procedure library members created by system definition.

IMSPLEX=
Specifies the data set qualifier (or qualifiers) for the OLCSTAT data set. This name should be the same for all IMS systems running in the same IMSplex because they all share the same OLCSTAT data set.

The name specified on the IMSPLEX option can be from one to 35 characters in length (including embedded periods). The first character of each level of qualification must be a letter, @, $, #, or a number (zero through 9). The IMSPLEX name must conform to z/OS data set naming conventions. The default name is IMSPLEX.

MACLIB=
This keyword is obsolete.
MACSYS=
Specifies the name for the MACLIB data set to be used in the stage 2 assemblies. The specified data set name cannot be longer than 44 alphanumeric characters.
MODGEN=
Specifies the name for the MODGEN data set to be used in the stage 2 assemblies. The specified data set name cannot be longer than 44 alphanumeric characters.
NODE=
Specifies the node assigned to IMS data set names.
node1
Specifies the node to be assigned to all IMS data set names, as related to the use and definition of the data set names, by IMS system definition. The specified node can contain from 1 to 26 characters, including embedded periods. The first character of each level of qualification must be a letter, @, $, or #. The remaining seven characters can be any of the preceding characters and the numerals zero through nine. The node name must conform to z/OS data set naming conventions. The default node generated is IMS.
node2
Specifies the node to be assigned to the IMS data set names listed in Table 2. This node overrides the node1 assignment for these specific data sets. The character set restrictions are as defined for node1.
node3
Specifies the node to be assigned to the IMS data set names listed in Table 2. This node overrides the node1 assignments for these specific data sets. The character set restrictions are as defined for node1.
Table 2. Node assignments for IMS data set names
node1 node2 node3
  • MSDBCP1
  • MSDBCP2
  • MSDSCP3
  • MSDBCP4
  • MSDBDUMP
  • MSDBINIT
  • QBLKS
  • QBLKSL
  • SHMSG
  • SHMSGL
  • LGMSG
  • LGMSGL
  • MODSTAT
  • MODSTAT2
  • IMSMON
  • IMSLOG
  • IMSLOG2
  • RDS
  • RDS2
  • PGMLIB
  • PSBLIB
  • DBDLIB
  • ACBLIB
  • ACBLIBA
  • ACBLIBB
  • REFERAL
  • FORMAT
  • FORMATA
  • FORMATB
  • TFORMAT
  • SYSOnnn
  • PROCLIB
  • SDFSRESL
  • SDFSMAC
  • JOBS
  • MODBLKS
  • MODBLKSA
  • MODBLKSB
  • ADFSMAC
  • ADFSLOAD
  • ADFSSRC
  • LGENIN
  • LGENOUT
OBJDSET=
Specifies the name of a cataloged partitioned data set into which assembler object modules are assembled during stage 2 of IMS system definition. The specified data set name must not be longer than 44 alphanumeric characters. If this parameter is not supplied, these modules are placed in IMS.OBJDSET.
PROCLIB=
In IMS 15.4, this parameter is no longer used. Sample procedures are generated in IMS.SDFSPROC data set. Only PROCLIB=NO is allowed.
NO
Does not generate system procedures.
SCEERUN=
Specifies the name of the System C Runtime Library data set that is part of the concatenation of the STEPLIB DD statement of the DFSJMP and DFSJBP procedures. The specified data set name cannot be longer than 44 alphanumeric characters. If the keyword is not specified, a default value of CEE.SCEERUN is used as the data set name.
USERLIB=

In IMS 15.4, this parameter is obsolete. The following description is for your reference only.

Specifies the name of the library in which user-written routines, such as message edit routines, are to be included in the generated IMS nucleus. If this operand is omitted, the library containing the routines is assumed to be node(2).SDFSRESL data set. The name of the data set, which must be cataloged, must not be longer than 44 characters.
UMAC0=
Specifies the name of a data set to be put at the top of the SYSLIB concatenation of the stage 2 assembly job steps. The specified data set name cannot be longer than 44 alphanumeric characters.
UMAC1=, UMAC2=, and UMAC3=
Specifies the name of a data set to be concatenated to the SYSLIB DD statement of the stage 2 assembly job steps. The specified data set name cannot be longer than 44 alphanumeric characters.

Typically MACSYS is used for either SYS1.MACLIB or SYS1.AMACLIB, and MODGEN is used for either SYS1.MODGEN or SYS1.AMODGEN. If the SYS1.AMACLIB and SYS1.AMODGEN data sets are specified, the UMAC1= keyword must specify SYS1.ATSOMAC. This ensures that all macros that might be referenced are at the same level.

If no value is provided, the corresponding statement is dropped from the SYSLIB DD.

JCL options

Use the first two parameters (JOBCTL and PRTY) or the last two (JCL and SCL).

JOBCTL=
The following parameters are valid:
nbr
Specifies the number of steps per JOB statement to be produced by system definition stage 1 for execution of stage 2. The maximum allowable value is 255; the default is 5. Regardless of the value specified, a JOB statement is produced for the beginning of the bind steps and for the nucleus bind step (if applicable).
jobclass
Specifies the job class to be generated on the stage 2 JOB statement. The default is A.
outputclass
Specifies the output class to be generated for the stage 2 JCL. The default is A.
job accounting, step accounting, or both
Specifies that job accounting data, step accounting data, or both, be placed in the stage 2 JCL. The length of each set of (job and step) accounting data cannot exceed 50 bytes. If job accounting data is specified, a programmer name of IMS is provided.

When the accounting information fields contain special characters (except hyphens), special considerations apply to the manner in which this field is specified. See the examples for the JCL.

PRTY=
Specifies the priority placed on the JOB statements for IMS system definition stage 2 jobs. The default is priority 0.
JCL=
The following parameters are valid:
jobname
Specifies a maximum of six alphanumeric characters to be used as the first portion of the generated job names. The last two characters of the job names are internally generated, sequentially incremented, hexadecimal numeric values representing the relative position of each job in the stage 2 stream. The default is IMSGEN.

The character set that can be used is described on the node keyword.

job accounting
Specifies job accounting data to be placed in the stage 2 JCL. The length of the accounting data cannot exceed 50 bytes.

When the accounting information fields contain special characters (except hyphens), special considerations apply to the manner in which this field is specified. See the examples for the JCL.

programmername
Specifies the programmer name to be placed in the stage 2 JCL. The default is IMS.
outputclass
Specifies the output class to be generated for the stage 2 JCL. The default is A.
job miscellaneous 1 & 2
Specifies any additional parameters the user can desire to have placed in the stage 2 JOB statements. Length of this parameter cannot exceed 60 bytes. If you code this parameter, do not code the MSGCLASS parameter.
MFSDFMT=
Specifies whether (YES) or not (NO) the default message format screens are built in stage 2 of IMS system definition. If MFSDFMT=NO, stage 2 does not have the default MFS screens generated in stage 2. The default is YES.
ONEJOB=
Subparameter1 specifies whether (YES) or not (NO) a single job is to be built for stage 2. The default is NO. If ONEJOB=NO, stage 2 has a multiple of job steps as specified in JOBCTL= subparameter 1.

Subparameter 2 specifies whether (YES) or not (NO) condition code checking for the bind steps is to be performed. If ONEJOB=(YES,YES) is specified, condition code checking is done in the bind steps. These steps are bypassed if any previous step did not complete with a condition code of 0. The default for subparameter 2 is YES if subparameter 1 is YES.

When ONEJOB= is specified for a single JOB statement, JOBCTL= and SCL= subparameter 1 are ignored.

If condition code checking is being specified for SCL= and ONEJOB= subparameter 2 is YES, a JCL error occurs due to the specification of duplicate COND= parameters.

SCL=
The following parameters are valid:
nbr
step accounting
Specifies step accounting data to be placed in the stage 2 JCL. The length of the accounting data cannot exceed 50 bytes.

When the accounting information fields contain special characters (except hyphens), special considerations apply to the manner in which this field is specified. See the examples for the JCL.

step miscellaneous
Specifies any additional parameters that you might want to place in the stage 2 EXEC statements. The length of this parameter cannot exceed 50 bytes. Do not code REGION= here, because internal IMS processing automatically generates this parameter. Do not code COND= if the MFSDFMT=NO keyword is not coded. Some of the default MFS job steps have COND= already coded.
UJCL1=,...,UJCL5=
Specifies the contents of a JCL statement that is placed between the JOB statement and the first EXEC statement in the stage 2 job stream. The specified statement cannot be longer than 60 characters. No other syntax checking of the parameter contents is done.

The intent of these keywords is to provide comment or JES control statements in the stage 2 job stream. For example, these parameters can be used to add ROUTE statements, or JOBLIB DDs.

If no value is provided, the corresponding statement is dropped from the SYSLIB DD.

General communication options

All communication operands specified are ignored and a warning message is issued if the COMM macro is specified.
MFSTEST=
Specifies whether (YES) or not (NO) the Message Format Service test facility, MFSTEST, is to be included in the generated system. YES is invalid for systems not containing MFS terminals. The default is NO.

The use of MFSTEST can degrade IMS performance due to MFSTEST use of the communication line buffer pool.

SYSMSG=
Specifies whether (TIMESTAMP) or not (NOTIMESTAMP) the system message time-stamp facility is to be included for the generated system. The default is NOTIMESTAMP.

When TIMESTAMP is specified, the time that a message was generated is inserted between the message number and the message text for each message in the table.

Security options

All the security options are ignored or overridden if the COMM macro or the security initialization parameters are specified.

SECCNT=
Specifies the maximum number of terminal and password security violations to be accepted per physical terminal and transaction command violations per transaction before master terminal notification of such violation. The default is 0, which nullifies notification to the master terminal. The number specified can range from 0 through 3.

If SECCNT is not 0, the master terminal is notified for every violation.

IMSGEN macro statement - example 1

The following figure is one example of an IMSGEN macro statement.

                                                       72
IMSGEN    ASMPRT=ON,LKPRT=(MAP,LIST),SUFFIX=9,         X
          OBJDSET=IMSXXX.OBJ,                          X
          
          NODE=IMSXXX

The example JCL indicates that:

  • An assembly listing is requested.
  • Binder print options are MAP and LIST.
  • Composite control block, nucleus, map module, nucleus and security directory blocks module suffix is 9.
  • The cataloged partitioned data set into which assembler load modules are to be placed is IMSXXX.OBJ.
  • The library containing user routines is IMSXXX.USER.
  • All IMS data set names are to be prefixed by the node IMSXXX (that is, IMSXXX.SDFSRESL).

IMSGEN macro statement - example 2

The examples of the IMSGEN macro statement shown here compare the JOB and EXEC statements produced using the JOBCTL and PRTY keywords to the statements produced using the JCL and SCL keywords.
                                                       72
IMSGEN JOBCTL=(4,D,A,(P01,9987)),PRTY=8

 //IMSGEN1 JOB (P01,9987),IMS,MSGLEVEL=1,MSGCLASS=A,
         CLASS=D,PRTY=8

IMSGEN JCL=(OSCAR,(P01,9987),FELIX,,(MSGLEVEL=1,       X
         PRTY=3,TYPRUN=HOLD))

 //OSCAR01 JOB (P01,9987),FELIX,MSGLEVEL=1,MSGCLASS=A,
         PRTY=3,TYPRUN=HOLD

IMSGEN JCL=(GEORG,(P01,"9/12/99"),IMS,D,(PRTY=3)),     X
       SCL=(3,("/83468"),(PARM=123))

 //GEOG01 JOB (P01,"9/12/99"),
 // IMS,
 // PRTY=3,
 // MSGCLASS=D
 //STEP1 EXEC PGM=IEBUPDTE,PARM=NEW,
 //            ACCT=("/83468"),
 //            PARM=123
When the accounting information consists of more than one subparameter, you must enclose the information in parentheses, not apostrophes. For example:
(5438,GROUP6).
If any of the subparameters contains special characters (except hyphens), enclose that subparameter in double apostrophes, not quotation marks. For example:
(5438,''12/15/99:'').