MOD entry (distribution and target zone)

The MOD entry describes a particular module, its function and service level, and how it relates to a load module in the target library. A MOD entry is generally created by one of the following methods:
  • Installing a SYSMOD that contains the module. MOD entries are created the first time you install a SYSMOD that contains a ++MOD statement for a module that does not yet have a MOD entry. If the module comes from a copied distribution library, SMP/E also builds an LMOD entry with the same name. For additional information about copied libraries and the creation of LMOD entries, see DLIB entry (distribution and target zone) and SMP/E for z/OS Commands.

    A MOD entry can also be created when you install a SYSMOD that causes the assembled source to be linked to the distribution library. This can happen when a SYSMOD contains both a ++MOD and a ++SRC statement for the same module, or when the DISTMOD operand is specified on the ++SRC statement.

  • Processing JCLIN. MOD entries can be built during JCLIN processing when SMP/E scans the link-edit and copy steps. A MOD entry built during JCLIN processing is always associated with an LMOD entry. Thus, when the module is changed, SMP/E can determine which load modules are affected. For additional information, see the "Processing" sub-topic of the JCLIN command topic in SMP/E for z/OS Commands.

Subentries

These are the subentries for the MOD entry as they appear in the LIST output:
name
is the name of the module represented by the MOD entry.

The name can contain from 1 to 8 alphanumeric characters and $, #, @, or hex C0.

ASSEMBLE
indicates that the source for this module must always be assembled, even if the object module is supplied in the SYSMOD.

The UCL operand is ASSEMBLE.

CSECT
specifies the CSECTs present in this module.
The UCL operand is CSECT(name).
  • The CSECT subentry is not required. However, if CSECT is missing, SMP/E assumes that the module contains only one CSECT, whose name matches the module name.
  • A CSECT name can contain from 1 to 8 characters.
    The name can contain any characters except the following:
    • Comma ,
    • Left parenthesis (
    • Right parenthesis )
    • Blank  
  • Comments are not allowed within a CSECT name. For example, the following is not allowed:
    CSECT ( /* this is a csect name */ CSECT01)

    The comment is interpreted as part of the CSECT name, instead of a comment.

  • The list of CSECT names must include all of the CSECTs in the module, even if one of the CSECTs matches the module name.
  • Once a ++MOD with the CSECT operand is processed, SMP/E saves the CSECT information in the MOD entry. From then on, SMP/E uses that saved information if it is not supplied on subsequent SYSMODs.
  • If a module is changed from multiple CSECTs to a single CSECT that matches the module name, the CSECT operand must be specified with one name in order to get SMP/E to store that information in the MOD entry.
DALIAS
specifies the alias name for the module, where the alias exists only in the distribution library.

The UCL operand is DALIAS(name).

The DALIAS name can contain from 1 to 8 alphanumeric characters.

DISTLIB
is the ddname of the module distribution library.

The UCL operand is DISTLIB(ddname).

The ddname can contain from 1 to 8 alphanumeric characters.

FMID
identifies the functional owner of this module. The functional owner is the last function SYSMOD that replaced this module.
The UCL operand is FMID(sysmod_id).
  • The SYSMOD ID must contain 7 alphanumeric characters.
  • Some MOD entries, specifically those associated with a system generation assembly, may have no functional owner. The DISTLIB for these modules is SYSPUNCH. They may have either no FMID, or one of the following values:
    • If the module has no functional owner but was assembled during system generation, *SYSGEN appears as the FMID.
    • If the module has no functional owner and was not assembled during system generation, ??????? appears as the FMID.
LASTUPD
identifies the cause of the last change to this MOD entry.
Note: If a given UCLIN command specifies only cross-zone subentries, this field is not changed.
The UCL operand is LASTUPD(value). This subentry can contain one of the following values:
JCLIN
indicates that the change was made during JCLIN command processing.
UCLIN
indicates that the change was made as a result of UCLIN processing.
sysmod-id
indicates that the change was made during installation of the specified SYSMOD. The SYSMOD did one of the following:
  • Contained inline JCLIN that affected the module
  • Changed the distribution library for the module through the DISTLIB operand on the ++MOD statement
  • Added the module to an existing load module through the LMOD operand on the ++MOD statement

The SYSMOD ID must contain 7 alphanumeric characters.

LASTUPD TYPE
indicates how the entry was last changed.
Note: If a given UCLIN command specifies only cross-zone subentries, this field is not changed.
The UCL operand is LASTUPDTYPE(value). This subentry can contain one of the following values:
ADD
The entry was added.
DEL
A subentry in the entry was deleted.
MOV
The module was moved.
UPD
The entry was updated.
LKED ATTRIBUTES
identifies the link-edit attributes that must be used when this module is link-edited. SMP/E supports the following link-edit attributes. For more information, see z/OS MVS Program Management: User's Guide and Reference.
AC=1
specifies that the AC=1 parameter, which is the authorization code, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is AC=1.

ALIGN2
specifies that the ALIGN2 parameter (alignment on a 2KB boundary) is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is ALIGN2 or ALN2.

AMODE=24
specifies that the AMODE=24 parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is AMODE=24 or AMOD=24.

AMODE=31
specifies that the AMODE=31 parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is AMODE=31 or AMOD=31.

AMODE=64
specifies that the AMODE=64 parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is AMODE=64 or AMOD=64.

AMODE=ANY
specifies that the AMODE=ANY parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is AMODE=ANY or AMOD=ANY.

AMODE=MIN
specifies that the AMODE=MIN parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is AMODE=MIN or AMOD=MIN.

COMPAT
specifies that the COMPAT parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is COMPAT=LKED|PM1|PM2|PM3|PM4.

DC
specifies that the DC parameter, which is the downward compatible attribute, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is DC.

FETCHOPT
specifies that the FETCHOPT parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is FETCHOPT(PACK|NOPACK, PRIME|NOPRIME).

FILL
specifies that the FILL parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is FILL(nn), where nn is the 2-character representation of a single hex byte (00 - FF).

HOBSET
specifies that the HOBSET parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is HOBSET.

MAXBLK
specifies that the MAXBLK parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is MAXBLK(nnnnn), where nnnnn is a number between 256 and 32760.

NE
specifies that the NE parameter, which is the noneditable attribute, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is NE.

NOCALL
specifies that the NCAL parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is NOCALL or NCAL.

OL
specifies that the OL parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is OL.

OVLY
specifies that the OVLY parameter, which specifies that the module is in overlay structure, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is OVLY.

REFR
specifies that the REFR parameter, which is the refreshable attribute, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is REFR.

RENT
specifies that the RENT parameter, which indicates that the module is reentrant, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is RENT.

REUS
specifies that the REUS parameter, which indicates that the module is reusable, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is REUS.

REUS(NONE)
specifies that the REUS(NONE) parameter, which indicates that the module cannot be reused, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is REUS(NONE).

RMODE=24
specifies that the RMODE=24 parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is RMODE=24 or RMOD=24.

RMODE=31
specifies that the RMODE=ANY parameter is to be passed to the link-edit utility when the module is link-edited. (RMODE=31 is a synonym for RMODE=ANY.)

The UCL operand is RMODE=31 or RMOD=31.

RMODE=ANY
specifies that the RMODE=ANY parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is RMODE=ANY or RMOD=ANY.

RMODE=SPLIT
specifies that the RMODE=SPLIT parameter is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is RMODE=SPLIT or RMOD=SPLIT.

SCTR
specifies that the SCTR parameter, which indicates that the module can be scatter-loaded, is to be passed to the link-edit utility when the module is link-edited.

The UCL operand is SCTR.

STD
is a special SMP/E indication that the module should be link-edited with none of the previously listed attributes.

When this indicator is present and a link-edit is to be done, SMP/E will pass the link-edit utility only those parameters specified in the appropriate link-edit UTILITY entry.

The UCL operand is STD.

UPCASE
specifies that the UPCASE parameter, which indicates how the Binder should process symbol names, is to be passed to the link-edit utility when the module is link-edited.
The UCL operand is UPCASE(YES|NO).
  • UPCASE(YES) and UPCASE(NO) are mutually exclusive.
LMOD
specifies the names of the load modules into which this module was copied or link-edited on the target system.
The UCL operand is LMOD(name).
  • The load module names can contain from 1 to 8 alphanumeric characters.
  • If there are no LMOD names in a MOD entry, SMP/E assumes that the module was not selected when the SYSMOD containing the module was initially installed. Therefore, during APPLY processing, SMP/E will not link or copy the module into any target library.
RMID
identifies the last SYSMOD that replaced this module. Any subsequent SYSMOD that modifies this module must have a defined relationship (such as PRE or SUP) with this SYSMOD.
The UCL operand is RMID(sysmod_id).
  • The SYSMOD ID must contain 7 alphanumeric characters.
  • If RMID is not specified, but FMID is, SMP/E sets the RMID subentry to the FMID value.
  • RMID is not required for a module assembled during system generation. The DISTLIB for these modules is SYSPUNCH.
RMIDASM
specifies that the last replacement (RMID) to the module was done by a SYSMOD that caused an assembly of the module as a result of a source or macro modification.

The UCL operand is RMIDASM.

TALIAS
specifies one or more alias names for the module, where the alias exists in the distribution library and, for copied modules, also in the target library.

The UCL operand is TALIAS(name).

The alias names can contain from 1 to 8 alphanumeric characters.

UMID
identifies all those SYSMODs that have updated this module since it was last replaced. Any subsequent SYSMOD that modifies this module must have a defined relation (such as PRE or SUP) with all these SYSMODs.

The UCL operand is UMID(sysmod_id).

The SYSMOD ID must contain 7 alphanumeric characters.

XZLMOD
specifies one or more load modules in other zones into which this module was added by the LINK MODULE command. The name of the zone supplying each module is also indicated.
The UCL operand is XZLMOD((load module,zone)…).
  • The zone name specified for an XZLMOD subentry cannot match the name of the set-to zone.
  • An entry can contain XZLMOD and XZLMODP subentries without any other subentries.
  • If UCLIN is used to update an existing MOD entry and only cross-zone subentries are changed (XZLMOD and XZLMODP), SMP/E does not update the LASTUPD and LASTUPDTYPE subentries.
  • The XZLMOD subentry is added to a MOD entry automatically during LINK MODULE command processing. However, it is never automatically removed.
XZLMODP
indicates that this module has been linked into one or more load modules controlled by a different target zone, and that XZLMOD subentries exist in this MOD entry.
The UCL operand is XZLMODP.
  • It is never necessary to specify the XZLMODP subentry on a UCL statement. SMP/E automatically determines the setting of XZLMODP, according to whether the MOD entry contains XZLMOD subentries.
  • You cannot add the XZLMODP subentry to a MOD entry that does not contain XZLMOD subentries.
  • You cannot delete the XZLMODP subentry from a MOD entry containing XZLMOD subentries.
  • An entry can contain XZLMOD and XZLMODP subentries without any other subentries.
  • If UCLIN is used to update an existing MOD entry and only cross-zone subentries are changed (XZLMOD and XZLMODP), SMP/E does not update the LASTUPD and LASTUPDTYPE subentries.

LIST Examples

To list all the MOD entries in a particular zone, you can use the following commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
LIST     MOD                /* List all MOD entries.    */.
To list specific MOD entries, you can use these commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
LIST     MOD(MOD01          /* List only these two      */
             MOD02)         /* entries.                 */.
The format of the LIST output for each MOD entry is the same for both of these commands. The only difference is the number of MOD entries listed. The following examples show LIST output for MOD entries. Figure 1 does not have cross-zone subentries. Figure 2 does.
Figure 1. MOD entry: sample LIST output (no cross-zone subentries)
PAGE nnnn  - NOW SET TO zzzzzz ZONE nnnnnnn  DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST OUTPUT

TGT1          MODULE ENTRIES

  NAME

ASSEM01   LASTUPD         = JCLIN   TYPE=ADD
          LIBRARIES       = DISTLIB=SYSPUNCH
          LMOD            = LMOD99A   LMOD99B

ASSEM02   LASTUPD         = JCLIN   TYPE=ADD
          LIBRARIES       = DISTLIB=SYSPUNCH
          LMOD            = ASSEM02

DL1MOD1   LASTUPD         = DL1F001 TYPE=ADD
          LIBRARIES       = DISTLIB=DLIB3
          FMID            = DL1F001
          RMID            = DL1F001
          LMOD            = DL1LMOD

MOD01     LASTUPD         = JXY1102 TYPE=ADD
          LIBRARIES       = DISTLIB=AOS12
          FMID            = JXY1102
          RMID            = JXY1102
          CSECT           = MOD01C1   MOD01C2   MOD01C3
          LMOD            = LMOD01

MOD02     LASTUPD         = JXY1102 TYPE=ADD
          LIBRARIES       = DISTLIB=AOS12
          FMID            = JXY1102
          RMID            = JXY1102
          CSECT           = MOD02C1
          LMOD            = LMOD01    LMOD02

MOD03     LASTUPD         = JXY1121 TYPE=UPD
          LIBRARIES       = DISTLIB=AOS12
          FMID            = JXY1121
          RMID            = JXY1121
          UMID            = UZ00010   UZ00014
          LMOD            = LMOD03

MOD04     LASTUPD         = JXY1121 TYPE=UPD
          LIBRARIES       = DISTLIB=AOS12
          ASSEMBLE
          FMID            = JXY1121
          RMID            = JXY1121
                            RMIDASM
          LMOD            = MOD04

MOD05     LASTUPD         = JXY0001 TYPE=ADD
          LIBRARIES       = DISTLIB=DLIB1
          FMID            = JXY0001
          RMID            = JXY0001

MOD06     LASTUPD         = JXY0001 TYPE=ADD
          LIBRARIES       = DISTLIB=DLIB1
          FMID            = JXY0001
          RMID            = JXY0001
Figure 2. MOD entry: sample LIST output (cross-zone entries)
PAGE nnnn  - NOW SET TO zzzzzz ZONE nnnnnnn  DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST OUTPUT

NOW SET TO TARGET ZONE CICS1

CICS1         MODULE ENTRIES

  NAME

CICSMOD1  LASTUPD         = LINK    TYPE=UPD
          LIBRARIES       = DISTLIB=ARESLIB
          FMID            = HCI1703
          RMID            = HCI1703
          LMOD            = CICSMOD1
          XZLMODP
          XZLMOD          = LMOD01   IN ZONE ZOSZNA
                            LMOD02   IN ZONE ZOSZNA
                            LMOD01   IN ZONE ZOSZNB

CICSMOD2  LASTUPD         = LINK    TYPE=UPD
          LIBRARIES       = DISTLIB=ARESLIB
          FMID            = HCI1703
          RMID            = HCI1703
          LMOD            = CICSMOD2
          XZLMODP
          XZLMOD          = LMOD01   IN ZONE ZOSZNA
                            LMOD02   IN ZONE ZOSZNA
                            LMODAA01 IN ZONE ZOSZNB
                            LMOD01   IN ZONE ZOSZNB

CICSMOD3  LASTUPD         = HCI1703 TYPE=ADD
          LIBRARIES       = DISTLIB=ARESLIB
          FMID            = HCI1703
          RMID            = HCI1703
          LMOD            = CICSLMD2

CICSMOD4  XZLMODP
          XZLMOD          = LMOD01   IN ZONE ZOSZNA
                            LMOD01   IN ZONE ZOSZNB
By specifying the FORFMID operand, you can reduce the number of MOD entries listed. When FORFMID is specified, SMP/E lists a MOD entry only if its FMID matches one of the FMIDs specified on the FORFMID operand. For example, to list MOD entries whose FMIDs are either defined in FMIDSET TP or are JXY1102, you can use these commands:
SET      BDY(TGT1)          /* Set to target zone.      */.
LIST     MOD                /* List all MOD entries     */
         FORFMID(TP         /* for the TP FMIDSET       */
                 JXY1102)   /* and FMID JXY1102.        */.
You can also use the LIST command to find out the names of all SYSMODs that have updated a module. To include the names of these SYSMODs in the LIST output, you can use the XREF operand, as shown in these commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
LIST     MOD                /* List all module entries  */
         XREF               /* and related SYSMODs.     */.
Note:
  1. XREF can be used either in mass mode or in select mode.
  2. SMP/E obtains the data included for the XREF operand by checking all the SYSMOD entries to find which SYSMODs contained ++MOD or ++ZAP statements for this module. Because this data is not contained in the MOD entry itself, you cannot use UCLIN to change it in the MOD entry.
Figure 3 is an example of the LIST output produced when the XREF operand is used.
Figure 3. MOD entry: sample LIST output when XREF is specified
PAGE nnnn  - NOW SET TO zzzzzz ZONE nnnnnnn  DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST OUTPUT

TGT1          MODULE ENTRIES


  NAME

ASSEM01   LASTUPD         = JCLIN   TYPE=ADD
          LIBRARIES       = DISTLIB=SYSPUNCH
          LMOD            = LMOD99A   LMOD99B

ASSEM02   LASTUPD         = JCLIN   TYPE=ADD
          LIBRARIES       = DISTLIB=SYSPUNCH
          LMOD            = ASSEM02
MOD01     LASTUPD         = JXY1102 TYPE=ADD
          LIBRARIES       = DISTLIB=AOS12
          FMID            = JXY1102
          RMID            = JXY1102
          CSECT           = MOD01C1   MOD01C2   MOD01C3
          LMOD            = LMOD01
          SYSMOD HISTORY  = SYSMOD   TYPE      DATE   MCS     --STATUS--
                            JXY1102  FUNCTION 07.100  MOD     APP    ACC
MOD02     LASTUPD         = JXY1102 TYPE=ADD
          LIBRARIES       = DISTLIB=AOS12
          FMID            = JXY1102
          RMID            = JXY1102
          CSECT           = MOD02C1
          LMOD            = LMOD01    LMOD02
          SYSMOD HISTORY  = SYSMOD   TYPE      DATE   MCS     --STATUS--
                            JXY1102  FUNCTION 07.100  MOD     APP    ACC
MOD03     LASTUPD         = JXY1121 TYPE=UPD
          LIBRARIES       = DISTLIB=AOS12
          FMID            = JXY1121
          RMID            = JXY1121
          UMID            = UZ00010   UZ00014
          LMOD            = LMOD03
          SYSMOD HISTORY  = SYSMOD   TYPE      DATE   MCS     --STATUS--
                            JXY1102  FUNCTION 07.100  MOD     APP    ACC
                            JXY1121  FUNCTION 07.150  MOD     APP    ACC
                            UZ00010  PTF      07.150  ZAP     APP
                            UZ00014  PTF      07.160  ZAP     APP

MOD04     LASTUPD         = JXY1121 TYPE=UPD
          LIBRARIES       = DISTLIB=AOS12
          ASSEMBLE
          FMID            = JXY1121
          RMID            = JXY1121
                            RMIDASM
          LMOD            = MOD04
          SYSMOD HISTORY  = SYSMOD   TYPE      DATE   MCS     --STATUS--
                            JXY1102  FUNCTION 07.100  MOD     APP    ACC
                            JXY1121  FUNCTION 07.150  ASSEM   APP    ACC

UNLOAD Examples

To dump the MOD entries in UCL format, you can use the UNLOAD command. To unload all the MOD entries in a particular zone, you can use the following commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
UNLOAD   MOD                /* Unload all MOD entries.  */.
To unload specific MOD entries, you can use these commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
UNLOAD   MOD(MOD01          /* Unload only these two    */
             MOD02)         /* entries.                 */.
The format of the UNLOAD output for each MOD entry is the same for both of these commands. The only difference is the number of MOD entries unloaded. The following examples show UNLOAD output for MOD entries. Figure 4 does not have cross-zone subentries. Figure 5 does.
Figure 4. MOD entry: sample UNLOAD output (no cross-zone subentries)
UCLIN .
REP       MOD             ( ASSEM01  )
          LASTUPD         ( JCLIN    )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( SYSPUNCH )
          LMOD            ( LMOD99A   LMOD99B  )
                          .
REP       MOD             ( ASSEM02  )
          LASTUPD         ( JCLIN    )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( SYSPUNCH )
          LMOD            ( ASSEM02  )
                          .

REP       MOD             ( DL1MOD1  )
          LASTUPD         ( DL1F001 )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( DLIB3    )
          FMID            ( DL1F001 )
          RMID            ( DL1F001 )
          LMOD            ( DL1LMOD  )
                          .
REP       MOD             ( MOD01    )
          LASTUPD         ( JXY1102  )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( AOS12    )
          FMID            ( JXY1102 )
          RMID            ( JXY1102 )
          CSECT           ( MOD01C1   MOD01C2   MOD01C3  )
          LMOD            ( LMOD01   )
                          .
REP       MOD             ( MOD02    )
          LASTUPD         ( JXY1102  )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( AOS12    )
          FMID            ( JXY1102 )
          RMID            ( JXY1102 )
          CSECT           ( MOD02C1 )
          LMOD            ( LMOD01    LMOD02   )
                          .
REP       MOD             ( MOD03    )
          LASTUPD         ( JXY1121  )
          LASTUPDTYPE     ( UPD )
          DISTLIB         ( AOS12    )
          FMID            ( JXY1121 )
          RMID            ( JXY1121 )
          UMID            ( UZ00010   UZ00014  )
          LMOD            ( LMOD03   )
                          .
REP       MOD             ( MOD04    )
          LASTUPD         ( JXY1121  )
          LASTUPDTYPE     ( UPD )
          DISTLIB         ( AOS12    )
          ASSEMBLE
          FMID            ( JXY1121 )
          RMID            ( JXY1121 )
                            RMIDASM
          LMOD            ( MOD04   )
                          .
REP       MOD             ( MOD05    )
          LASTUPD         ( JXY0001  )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( DLIB1    )
          FMID            ( JXY0001 )
          RMID            ( JXY0001 )
                          .
ENDUCL.
Figure 5. MOD entry: sample UNLOAD output (cross-zone subentries)
UCLIN .
REP       MOD             ( CICSMOD1 )
          LASTUPD         ( HCI1703  )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( ARESLIB  )
          FMID            ( HCI1703 )
          RMID            ( HCI1703 )
          LMOD            ( CICSMOD1 )
          /* CROSS-ZONE*/   XZLMODP
          XZLMOD          (
                           ( LMOD01   ZOSZNA   )
                           ( LMOD01   ZOSZNB   )
                                              )
                          .
REP       MOD             ( CICSMOD2 )
          LASTUPD         ( HCI1703  )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( ARESLIB  )
          FMID            ( HCI1703 )
          RMID            ( HCI1703 )
          LMOD            ( CICSMOD2 )
          /* CROSS-ZONE*/   XZLMODP
          XZLMOD          (
                           ( LMOD01   ZOSZNA   )
                           ( LMOD01   ZOSZNB   )
                           ( LMODAA01 ZOSZNB   )
                                               )
                          .
REP       MOD             ( CICSMOD3 )
          LASTUPD         ( HCI1703  )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( ARESLIB  )
          FMID            ( HCI1703 )
          RMID            ( HCI1703 )
          LMOD            ( CICSLMD2 )
                          .
REP       MOD             ( CICSMOD4 )
          /* CROSS-ZONE*/   XZLMODP
          XZLMOD          (
                           ( LMOD01   ZOSZNA   )
                           ( LMOD01   ZOSZNB   )
                                              )
                          .
ENDUCL.
By specifying the FORFMID operand, you can reduce the number of MOD entries unloaded. When FORFMID is specified, SMP/E unloads a MOD entry only if its FMID matches one of the FMIDs specified on the FORFMID operand. For example, to unload MOD entries whose FMIDs are either defined in FMIDSET TP or are JXY1102, you can use these commands:
SET      BDY(TGT1)          /* Set to target zone.      */.
UNLOAD   MOD                /* Unload all MOD entries   */
         FORFMID(TP         /* for the TP FMIDSET       */
                 JXY1102)   /* and FMID JXY1102.        */.

UCLIN Examples

You can use the ADD, REP, and DEL UCL statements to change subentries in the MOD entry. After the UCLIN changes are done, the MOD entry must contain at least the following subentries:
  • DISTLIB
  • FMID
  • RMID

Otherwise, there is not enough information in the entry to process the module. If any of the required subentries are missing, SMP/E does not make the requested UCL updates to the entry, and the entry remains as it was before the UCL command.

The following examples are provided to help you use the MOD entry.