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
SMP/E terminology for load module, executable code
Load modules are created by combining one or more object modules
SMP/E terminology for an object module, used to create a load module, LMOD
LMOD can consist of one or many MODs
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
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
Consolidated Software Inventory
A related group of SMP/E data sets with information about the elements
SMP/E command to read SYSMODs into SMP/E CSI data sets
Global Zone stores information about "received" software
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
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
SMP/E command to update SMP/E CSI data sets backing out previously applied SYSMOD
SMP/E - SYSMOD
There are 4 types of SYSMOD
- 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
- 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
- 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
Customer modification to the z/OS environment such as local system exit
A collection of PTF SYSMODs are distributed as:
Program Update Tape
Collection of PTF SYSMODs(fixes) routinely published to keep software maintenance current
Recommended Service Update
Collection of PTF SYSMODs (fixes) routinely published to keep software maintenance current
SMP/E SYSMOD Processing
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.
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.
- 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
- Tab to SMPCSI DATA SET field, type 'MVS.GLOBAL.CSI',
tab back to top command input,
enter 3 (Query)
- Enter 1 (CSI Query)
- 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
- 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
- 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
- From CSI QUERY panel:
MVST is ZONE NAME
SYSMOD is ENTRY TYPE
Type the RMID name in the ENTRY NAME field, then enter
Type of SYSMOD is PTF
Date/Time maintenance was applied to the element
Press F3 to CSI QUERY panel
- 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.
- Create new member SMP in your JCL data set
- Copy 'zos.mtm2019.public.jcl(smp)' into your JCL(SMP)
- Replace AAAA with the target zone name
- Replace BBBBBBBB with the MOD name
- Replace CCCCCCCC with the LMOD name
- Replace DDDDDDDD with the RMID or SYSMOD PTF unique number
- Replace EEEEEEEE with the SYSLIB system library data set identifier
- 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.