Reference information for using IMS macros
Use IMS macro statements to generate a sequence of assembler statements from a single source statement. IMS provides a set of macro statements for system definition.
For example, to describe program resource requirements for your application programs, use the APPLCTN macro. To define characteristics of VTAM® nodes and non VTAM communication, use the TERMINAL macro.
The APPLCTN, DATABASE, RTCODE, and TRANSACT macros are used to define application programs, databases, Fast Path route codes, and transactions. These IMS resources can be changed, added, and deleted by using either dynamic resource definition (DRD) or online change. The online change process requires that some system definition tasks be performed offline. The DRD process, which uses CREATE, DELETE, and UPDATE commands to define these resources, does not require any offline tasks. When DRD is enabled (by specifying MODBLKS=DYN in the DFSCGxxx PROCLIB member), online change for resources in the IMS.MODBLKS data set, but not for other resources, is disabled. Likewise, when DRD is disabled (MODBLKS=OLC in the DFSCGxxx PROCLIB member), commands that are used for DRD, except for some types of the UPDATE command, are not supported. The UPDATE commands that change status or runtime values are supported.
System definition macros and their uses
The following table contains a list of IMS system definition macros. Selecting the appropriate macros to define your system describes which macros and macro keywords can be modified by which type of system definition.
Type of macro statement | Macro name | Resources each macro defines | |
---|---|---|---|
System configuration macros | FPCTRL macro | Fast Path options | |
IMSCTRL macro | Library naming, JCL options, and ETO feature | ||
IMSGEN macro | z/OS system and control options | ||
MSGQUEUE macro | Message queue device and message sizes | ||
Database and application macros | APPLCTN macro | Program characteristics and PSB names | |
DATABASE macro | DBD names | ||
RTCODE macro | Fast Path message routing | ||
TRANSACT macro | Transaction processing options | ||
Data communication macros | Non-VTAM device1 | COMM macro | General communication options |
LINE macro | Communication line to IMS | ||
LINEGRP macro |
DD names for communication devices |
||
NAME macro | LTERM definition | ||
TERMINAL macro | Physical characteristics of terminal | ||
Multiple System Coupling | MSLINK macro | Logical Link names | |
MSNAME macro | Partner systems | ||
MSPLINK macro | Physical link names | ||
NAME macro | LTERM definition | ||
VTAM | COMM macro | General communication options | |
NAME macro | LTERM definition | ||
SUBPOOL macro | Set of LTERMs for a static ISC session | ||
TERMINAL macro | Physical characteristics of a static terminal | ||
TYPE macro | VTAM terminal type | ||
VTAMPOOL macro | Multiple systems with ISC sessions | ||
1 See the LINEGRP UNITYPE= keyword for detailed information. |
Resource naming rules
- Names cannot include a blank, comma, period, hyphen, or equal sign.
- All PSB and DMB names must begin with an alphabetic character (alphabetic = A through Z, #, $, and @) followed by zero to seven alphanumeric characters.
- The PSB name, DBF#FPU0 is a reserved name.
- For route codes, DBFDFRT1 is a reserved name.
- Logical terminal names and transaction codes must be one to eight alphanumeric characters in length. (Alphanumeric = A through Z, #, $, and @, 0 - 9.) Each name within the set comprising LTERM names and transaction codes must be unique.
- User IDs that are passed to RACF® must be one to eight
alphanumeric characters, that is, letters A through Z, digits 0 - 9, and the national characters #,
$, and @.
For ETO terminals, if the user ID is used to build the LTERM structure, the user ID must be one to eight alphanumeric characters.
- Node names must be unique among themselves, but can duplicate LTERM names, transaction codes, or subpool names.
- Subpool names must be unique among themselves, but can duplicate LTERM names, transaction codes, or node names.
- IMS null words must not be used as resource names (FOR, TO, ON, AFTER, and SECURITY). Also, resource names must not begin with DFS (except for DFSIVPxx and DFSSAMxx, and DFSCONE for transactions) or DBCDM; nor should WTOR, MSDB, SDB, DBRC, BASICEDT, or ISCEDT and its aliases be used as a resource name.
- Command keywords must not be used as resource names.
Related reading: For more information about command keyword restrictions, see List of reserved words.
- Symbolic names can be used to define 3270 and SLU Type 2 devices. See the description of the TYPE= keyword of the TERMINAL macro statement for the format of these names. A symbolic name must be used to define the format of any 3270 display device with a screen size other than 480 or 1920 characters.
- Resource names must not end with the IMS ID or the CRC character that was chosen by coding the CMDCHAR parameter of the IMSCTRL
macro. The last characters of a command are checked during multisegment command processing. If the
characters match the IMS ID or the CRC, the command is assumed
to be a multisegment command. Command processing waits for the rest of the command.
For example, if you define a NODE whose name ends with
IMS ID IMSA
, and you issue the command IMSADIS NODE xxxxIMSA, the command does not run. The endingIMSA
in the NODE name indicates a multisegment command. To run this command, enter:'IMSADIS NODE xxxxIMSA. '
Maximum occurrences of each IMS system definition macro statement
Each IMS macro statement can appear in an IMS system definition a limited number of times.
The maximum number of IMS resources that can be defined is a design limit (that is, a theoretical limit). You should not assume that your installation can successfully define the maximum number of IMS resources that is shown in the following table. The actual limit on this number is influenced by many limiting factors in your hardware and software configuration.
- 16777215/184 (SMB length from SMBTOTSZ) = 91,180 transactions
- 16777215/112 (PDIR length from PDIRLEN) = 149,796 programs
- 16777215/48 (RCTE length from RCTELEN) = 349,525 routing codes
- Databases are limited to 32,700.
- 2147483647/184(V14 SMB length from SMBTOTSZ) = 11,671,106 transactions
- 2147483647/112(V14 PDIR length from PDIRLEN) = 19,173,961 programs
- 2147483647/48(V14 RCTE length from RCTELEN) = 44,739,242 routing codes
- Databases are limited to 32,700.
The following table shows the maximum number of times each macro statement can occur.
Macro statement | Maximum occurrences |
---|---|
APPLCTN |
149,796 for PDS |
BUFPOOLS | 1 |
COMM | 1 |
DATABASE1 | 32,700 |
FPCTRL | 1 |
IDLIST | 1000 |
IMSCTRL | 1 |
IMSGEN | 1 |
LINE | 1000 |
LINEGRP | 676 - (Number of MSPLINK macros specified) |
MSGQUEUE | 1 |
MSLINK | 676 or 9996 |
MSNAME | 676 |
MSPLINK | 676 or 9996 - (Number of LINEGRP macros specified) |
NAME | 999,999 - (Number of switched line macros specified) |
RTCODE |
349,525 for PDS |
SUBPOOL | 999,999 - (Number of TERMINAL and STATION macros specified) |
TERMINAL2 | 200,000 |
TRANSACT |
91,180 for PDS |
Transaction Edit Routines3 | 255 |
TYPE | 200,000 |
User routines4 | 200 |
VTAMPOOL5 | 1 |
- In IMS execution, database allocation is limited to the number of DD names that z/OS allows.
- Because of the size of the IMS control block, the maximum
number of static terminal resources that can be defined is approximately 200,000.Recommendation: If your system includes many terminals, use the ETO feature. By using the ETO feature, you can manage terminals more effectively during IMS online activity.
- Transaction Edit routines are specified in the EDIT operand of the TRANSACT macro. Although the limit of TRANSACT statements is 999,999, only 255 transaction edit routines are accepted.
- User Routines: Refer to the user-supplied physical terminal output and input edit routines (specified in the EDIT operand of the LINEGRP and TYPE macros).
- VTAMPOOL is used once for each set of LU 6.1 subpools defined. It can be used multiple times within a system definition to define multiple sets of LU 6.1 subpools.
- The MSLINK and MSPLINK maximum occurrences are 999.
Coding conventions
- Uppercase letters, stand-alone numbers, and punctuation marks must be coded exactly as shown. The only exceptions are subscripts, which are not coded.
- Lowercase letters, words, and associated numbers represent variables for which specific values can be substituted.
- A space or the lowercase
b
indicates one blank position. - If an alternative item is underlined, it is the default. IMS assumes that if none of the items is coded, the underlined item is automatically the choice.
- You must specify positional parameters in the order shown.
- You can specify keyword parameters in any order.