Migration considerations for removing user exit routine specification from system definition

IMS 15.6 includes migration considerations for removing user exit routine specification from system definition.

Migration considerations introduced in IMS 15

The following user exit routines are removed from the IMS nucleus and are loaded as stand-alone load modules during IMS initialization:
  • DFSCMTU0
  • DFSCNTE0
  • DFSCSMB0 and user-defined from TRANSACT EDIT=
  • DFSCTTO0 and user-defined from TYPE EDIT= or LINEGRP EDIT=
  • DFSFEBJ0
  • DFSME000-DFSME127
  • DFSPIXT0 and user-defined from TYPE EDIT= or LINEGRP EDIT=
  • DFSSIML0

In order for the IMS system to properly load the user exits during IMS initialization, either move the user exit routines to an authorized library in the JOBLIB, STEPLIB, or LINKLIST library concatenated in front of the IMS.SDFSRESL, or ensure that the library that is currently specified by the USERLIB= keyword of the IMSGEN macro is added to the JOBLIB, STEPLIB, or LINKLIST concatenation.

The USERLIB= parameter on the IMSGEN macro is no longer used because no user exits are linked during Sysgen. G121 MNOTE0 is issued if USERLIB= is specified.

With the removal of user exit routines from the nucleus, some user-defined options in the system definition COMM macro are no longer valid and are replaced by IMS startup keyword parameter definitions in the DFSPBxxx proclib member or in the JCL override. The following table lists the COMM keywords affected, their replacement keywords in the DFSPBxxx, and the user exit routines that are affected by this change. If the COMM macro keywords are specified, the stage 1 system generation assembly issues an MNOTE 2.

Table 1. COMM macro changes
COMM keyword DFSPBxxx keyword User exit Notes
FESEXIT = (NO|YES, timeout) FESEXIT = N|Y

FESTIM = timeout

DFSFEBJ0 Front End Switch routine. G118 MNOTE 2 is issued if FESEXIT=YES is specified in the COMM macro. The FESTIM= keyword in DFSPBxxx already exists before IMS 15.
MFSEXIT=(field, segment) MFSEXITF=field

MFSEXITS=segment

DFSME000-DFSME127 MFS input message field and segment edit routines. G119 MNOTE 2 is issued if MFSEXIT is specified in the COMM macro. Field specifies the range of field edit routines (000-field). Segment specifies the range of segment edit routines (segment-127).
OPTIONS=USERMSGS USERMSGS=N|Y DFSCMTU0 User message table. G120 MNOTE 2 is issued if OPTIONS=USERMSGS is specified in COMM macro.
SIMEXIT=NO|YES SIMEXIT=N|Y DFSSIML0 Shared printer message router routine. G117 MNOTE 2 is issued if SIMEXIT=YES is specified in the COMM macro.
Important: Prior to IMS 15, these user exits were linked into the IMS nucleus, which automatically made them non-reentrant (because the nucleus is non-reentrant). They are now loaded as stand-alone modules during IMS initialization. Thus, if you use IMS 15 and you link one of these user exit routines as reentrant, you must ensure that it is not dependent on any information from a previous iteration and that it does not store into itself. To learn more, see Routine binding restrictions.

If the user exit routines that are removed from the nucleus use callable services, the customer must link DFSCSI00 with each user exit.

Existing user exit routines must be examined to determine if any external references (VCONs) to the nucleus exist. Any such external references must be removed or link edit processing will fail due to unresolved external references.

The actual interfaces to the exits are not being changed. Unless the exits have VCONs to the nucleus, users don't need to update the code in the exits.