System Programmer and SMP/E
Part Three - Challenge #12

Background:

System Programmer Responsibilities

In a mainframe IT organization, the System Programmer plays a central role with a diverse set of technical skills.

A System Programmer is responsible for maintaining a fully operational environment and resolving problems quickly. Responsibilities of the job include technical services, support, and consultation to the entire IT organization. The system programmer installs, customizes, and maintains the operating system, and installs or upgrades other software products that run on the system.

A highly experienced System Programmer:

  • develops operational procedures
  • develops systems administration procedures
  • develops application development procedures
  • assists system administration staff with issues involving operating system services
  • assists development staff with issues involving operating system services
  • provides on-call support for any escalated issue beyond the technical capability of other groups

What is SMP/E?

A software tool exists to install z/OS and z/OS software products. The software tool tracks all modifications to z/OS and z/OS software products. The software tool is Systems Modification Program/Extended (SMP/E)

When an operating system problem is encountered and the failing component appears to be an IBM owned component, the System Programmer contacts IBM with the error messages. IBM will request information about the maintenance level applied to various components of the operating system. SMP/E is used to quickly answer those questions. An understanding of SMP/E is required to work with IBM to resolve problems.

SMP/E is a repository of details about the highly advanced IBM Z flagship operating system, z/OS, and the IBM products added to the z/OS environment, such as DB2 and COBOL.

Learning SMP/E is an exercise in comprehending terminology. The specialized SMP/E skill is expected of any z/OS System Programmer position.

z/OS system might appear to be one large block of code. Actually, z/OS is a complex system comprising of many different smaller blocks of code. Each of those smaller blocks of code perform a specific function within the system.

Each system function is composed of one or more load modules. In a z/OS environment, a load module represents the basic unit of machine-readable, executable code.

The following terminology will be referred to in the challenge. You are not expected to memorize any of the terminology. Awareness of the terminology puts you on the learning path to be a skilled System Programmer.


SMP/E - LMOD, MOD, and MAC
  • LMOD
      SMP/E terminology for load module, executable code
      Load modules are created by combining one or more object modules
  • MOD
      SMP/E terminology for an object module, used to create a load module, LMOD
    LMOD can consist of one or many MODs
  • MAC
      Macro source code
      While MODs are shipped as object modules, in some cases a MOD is required to be assembled by SMP/E
      because a z/OS distributed MAC, macro, source code changed
    These building blocks, MAC, MOD, LMOD, are called elements by SMP/E.

    A change to an element is a system modification,SYSMOD.

    Note: Other SMP/E elements exist, but understanding MAC, MOD, and LMOD will make learning about the other SMP/E elements pretty easy.


SMP/E - CSI, RECEIVE, APPLY, ACCEPT, and RESTORE
  • CSI
      Consolidated Software Inventory
      A related group of SMP/E data sets with information about the elements
  • RECEIVE
      SMP/E command to read SYSMODs into SMP/E CSI data sets
    Global Zone stores information about "received" software
  • APPLY
      SMP/E command to update SMP/E CSI data sets with SYSMODs previously received
    Target Zone stores information about "applied" software
    Target Libraries stores the software used by running system
  • ACCEPT
      SMP/E command to update SMP/E CSI data sets accepting SYSMODs as permanent
    Distribution Zone store information about "accepted" software
    Distribution Libraries stores the initial installation software and "accepted" software
      used in the event a backout ("restore") is necessary
  • RESTORE
      SMP/E command to update SMP/E CSI data sets backing out previously applied SYSMOD

SMP/E - SYSMOD

There are 4 types of SYSMOD

  1. FUNCTION SYSMOD
      Entire operating system or product consisting of many components
    FMID unique 7 digit alphanumeric value used to identify various FUNCTION SYSMODs
      FMID - Function Management IDentifier, example HBB77A0
  2. PTF SYSMOD
      Fix for operating system component or product component
    RMID unique 7 digit alphanumeric value is used to identify various PTF SYSMODs
      RMID - Replacement Management IDentifier, example UA12345
  3. APAR SYSMOD
      Fix for operating system component or product component (NOT FULLY TESTED)
    RMID unique 7 digit alphanumeric value is used to identify various APAR SYSMODs
      RMID - Replacement Management IDentifier, example OA12345
  4. USERMOD
      Customer modification to the z/OS environment such as local system exit

A collection of PTF SYSMODs are distributed as:

  • PUT
      Program Update Tape
      Collection of PTF SYSMODs(fixes) routinely published to keep software maintenance current
  • RSU
      Recommended Service Update
      Collection of PTF SYSMODs (fixes) routinely published to keep software maintenance current

SMP/E SYSMOD Processing

Challenge situation

A system problem just came to your attention.

A system element, EZAFTPCU, was involved with a reported system issue.

You need to find out maintenance details about EZAFTPCU such as when was EZAFTPCU last changed, etc.


Challenge:

Retrieve z/OS module maintenance information using SMP/E panels

SMP/E panels will be used to retrieve information about the system module.

When using SMP/E panels, IEC331I and IEC251I messsage might appear - ignore them and enter to proceed.

  1. Enter SM from ISPF Primary Option Menu to display the SMP/E Dialog Panels
      Press F3 or enter end to exit from the initial Welcome! tutorial panel
  2. Tab to SMPCSI DATA SET field, type 'MVS.GLOBAL.CSI',
      tab back to top command input,
      enter 3 (Query)
  3. Enter 1 (CSI Query)
  4. Information for the CSI Query panel follows:
      MVST is the ZONE NAME
      You do not have information on the ENTRY TYPE - leave it blank
      EZAFTPCU is the ENTRY NAME
  5. On the CSI QUERY - SELECT TYPE panel, the ENTRY TYPE is displayed
      Tab to the left of the displayed ENTRY TYPE. then enter s to select
  6. CSI QUERY panel displayed the found ENTRY TYPE
    RMID name is visible in the display
    LMOD name is visible in the display
      You need RMID and LMOD names to complete the challenge
      Press F3 twice will return to CSI QUERY panel
  7. From CSI QUERY panel:
    MVST is ZONE NAME
    SYSMOD is ENTRY TYPE
      Type the RMID name in the ENTRY NAME field, then enter
      Observe -
        Type of SYSMOD is PTF
        Date/Time maintenance was applied to the element
      Press F3 to CSI QUERY panel
  8. From CSI QUERY panel:
    MVST is ZONE NAME
    LMOD is ENTRY TYPE
      Type the LMOD name in the ENTRY NAME field, then enter
    LMOD entry included executable location identified by the SYSLIB entry
    You need the SYSLIB name to complete the challenge

Submit JCL to execute SMP/E utility program

What you know is the problem situation implicated a named MOD. The MOD is a part of a named LMOD. The MOD was changed by a SYSMOD type PTF, identified by a unique RMID number.

A JCL job will be used to write the information about the MOD, LMOD, and PTF SYSMOD into your p3.output data set as member #12.

  1. Create new member SMP in your JCL data set
  2. Copy 'zos.mtm2019.public.jcl(smp)' into your JCL(SMP)
  3. Replace AAAA with the target zone name
  4. Replace BBBBBBBB with the MOD name
  5. Replace CCCCCCCC with the LMOD name
  6. Replace DDDDDDDD with the RMID or SYSMOD PTF unique number
  7. Replace EEEEEEEE with the SYSLIB system library data set identifier
  8. Submit the JCL and review JCL job output

If everything was done correctly, then the information found using the SMP panels, was written to member #12 in your p3.output data set.


You now have exposure to few System Programmer responsibilities and day to day tasks using SMP/E.

Next: Challenge #13