MAINFRAME SYSTEMS AND SERVICES

School of Engineering, Information Technology and Physical Sciences
Author: Sasha Ivkovic
Last update: 22 March 2022
Page 1 of 7
ITECH3105 -MAINFRAME SYSTEMS AND SERVICES
Assignment Specification
Title: MAJOR ASSIGNMENT (PRACTICAL ASSIGNMENT ON Z/OS) – 30%
Due Date/Time: Thu, May 19, 2022 @ 16:00 hrs
Learning Outcomes Assessed: S1, S2, S3, S4, S8, and A2
Purpose: Demonstrate critical thinking and z/OS knowledge and skills by providing a practical
solution in regard to a business problem.
Requirements: Within the z/OS environment the students are required to provide a practical solution
to a business problem by writing Unix Shell, REXX, JCL (Job Control Language) and SQL scripts, and
by using TSO, ISPF, SDSF, UNIX, and DB2 services.
Weight: 30%
Submission/Completion: Submit .zip and video file via ”Moodle > Assessment > Assessment task 4:
Major Assignment (PRACTICAL ASSIGNMENT ON Z/OS)”
links. The written code and data files will
remain on Marist z/OS and will be marked on z/OS. The electronic submission of a zip file containing
written code and files will remain on Moodle. Submitted video presentation will remain on Moodle.
Feedback: Marks in fdlMarks. The total mark out of 30% consists of two parts (15+15=30%).
Feedback to individual students will be available via Moodle.
Overview
This is an individual assignment. The day-to-day application requirements in a corporate world can be
achieved using various Mainframe services and scripting languages. In this assignment you will
provide a number of practical solutions by using ISPF, SDSF, DB2, and USS Mainframe services and
by writing Unix Shell, REXX, JCL (Job Control Language) and SQL scripts. This assignment consists
of two parts: (i) your practical solutions developed on Marist z/OS system and (ii) recorded video of
you demonstrating the solutions. In the first part you will use your knowledge and skills obtained
throughout laboratory exercises on Marist z/OS system in order to provide a practical solution to a
business problem described in “Assessment Details” section. Your practical work will include
development of various scripts using Unix Shell, REXX, JCL and SQL scripting languages in order to
work on data. For example, the input for your REXX scripts will be Ballarat’s daily maximum
temperature readings for each month of year 2020. In order to mimic a day-to-day application
requirements your scripts will be written to calculate basic stats on data obtained from Ballarat’s daily
maximum temperature readings stored in various formats including Unix file, Mainframe sequential
data set, and DB2 database table. The output of your REXX script will calculate and display basic stats
such as minimum, maximum and mean temperature for each calendar month. In the second part, after
you completed your practical solutions on Marist z/OS system you will briefly demonstrate the
solutions in a short 6 (six) minute video.
Assessment Details (Practical solutions)
Your practical work will include development of various scripts using REXX and JCL scripting
languages in order to work on data. This part of the assessment consists of 6 (six) main tasks which are
designed to test your knowledge and skills in regard to ISPF, SDSF, DB2, and USS Mainframe
services as well as Unix shell, REXX, JCL and SQL scripting.
Where do I get data file from?
Initially you will login to USS (Unix) on Marist mainframe and copy “
mydata” comma separated Unix
text file from
/tmp/ITECH3105 to your USS directory of choice.
What data is stored in the file?
The Bureau of Meteorology is Australia’s national weather, climate and water agency which collects
climate data and makes it available online for download (see
http://www.bom.gov.au/climate/data/)
The “
mydata” is a comma separated text file which contains Ballarat’s daily maximum temperature
School of Engineering, Information Technology and Physical Sciences
Author: Sasha Ivkovic
Last update: 22 March 2022
Page 2 of 7
readings for each month of year 2020. The file contains 13 columns and 32 rows. In the
first row, the file contains heading (for each calender month), while the first column contains the
numerical value for a calender day (e.g. 1
st ). Screenshot below shows the file’s rows and columns
when it is opened with OEDIT editor.
Where from will my REXX scripts read data?
Depending on the task, your REXX scripts will read data from various sources including Unix file,
z/OS sequential member data set or a DB2 table (input/output/processing details for each task are
shown tables below).
– For tasks 1 and 2 your REXX script will read data from your copy of the “
mydata” comma separated
Unix text file.
– For tasks 3, 4 and 5 your your REXX script will read data from “
MYDATA” comma separated
sequential data set (member) on z/OS which you copied from the “
mydata” comma separated Unix
text file.
– For task 6 you will import data (not the heading line) from either MYDATA (z/OS) or mydata (Unix)
into a DB2 table named “
MYDATA”. In task 6 your REXX script will read data from that table.
What is the output after my REXX scripts read data and calculate monthly stats?
Your output should be created through your REXX script and be in the CSV (comma separated value)
format. In the first row the output should contain your Marist user ID, followed by the short version of
each month name (e.g. Jan for January). In the second, third and the fourth row the output should
contain the minimum, maximum and mean temperature for each calendar month. An example of the
required textual output is shown below:
KC03B79,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec ,
Max,35.1,34.2,33.3,20.4,18.5,17.6,16.5,15,20.7,22.1,32.6,33.8
Min,14.1,16.5,16.3,11,8.1,7.3,7,6.9,7,11.6,13.6,11.3
Mean,23.3,21.4,22,16.2,13,11.2,10.8,11.5,14.5,16.9,22.5,21.4
If opened with Excel, the CSV file would contain 13 columns and 4 rows as illustrated below.

School of Engineering, Information Technology and Physical Sciences
Author: Sasha Ivkovic
Last update: 22 March 2022
Page 3 of 7
Task 1: OMVS session – Running REXX on UNIX with data input from UNIX file
Task overview: Login to USS (Unix) on Marist. Copy “mydata” comma separated Unix text file from
/tmp/ITECH3105 to your USS directory of choice. Create a REXX script named “task1” that would
read data from “
mydata” comma separated Unix text file, calculate minimum, maximum and mean
temperature and provide correct output (including the header). After testing your REXX exec script,
create a Unix shell script file named “
myscr.sh” that executes (runs) your REXX exec and stores the
output in a new Unix file named “
report1”.

Environment/Service Data Input Data Output Data Processing Program
Execution
Unix (USS) mydata
comma separated
Unix text file
(USS)
Screen output
redirected to a
Unix file named
report1
REXX interpreter
reading
instructions from
REXX script file
named “
task1
From a Unix
shell script file
myscr.sh
which calls your
REXX script.

Table 1: Input-Processing-Output specs for Task 1
Task 2: ISPF session – Running REXX on z/OS with data input from UNIX file
Task overview: Login to ISPF on Marist. Create a REXX script named “TASK2” that would read data
from “
mydata” comma separated Unix text file (from USS environment), calculate minimum,
maximum and mean temperature and provide correct output (including the header). After execution of
your REXX exec script, copy the TSO output into a sequential data set named “
REPORT2

Environment/Service Data Input Data Output Data Processing Program
Execution
z/OS,ISPF,USS mydata
comma separated
Unix text file
(USS)
TSO screen
(terminal) copied
to a sequential
data set named
REPORT2
REXX interpreter
reading
instructions from
REXX script
(sequential data
set) named
TASK2
From ISPF panel
command line

Table 2: Input-Processing-Output specs for Task 2
Task 3: ISPF session – Running REXX on z/OS with data input from z/OS data set
Task overview: Login to ISPF on Marist. Create a REXX script named “TASK3” that would read data
from “
MYDATA” comma separated sequential data set (member) which is copied from comma
separated Unix text file (from USS environment). The REXX exec should calculate minimum,
maximum and mean temperature and provide correct output (including the header). After execution of
your REXX exec script, copy the TSO output into a sequential data set named “
REPORT3

Environment/Service Data Input Data Output Data Processing Program
Execution
z/OS,ISPF MYDATA
comma separated
sequential data
set (member)
TSO screen
(terminal) copied
to a sequential
data set named
REPORT3
REXX interpreter
reading
instructions from
REXX script
(sequential data
set) named
TASK3
From ISPF panel
command line

Table 3: Input-Processing-Output specs for Task 3
School of Engineering, Information Technology and Physical Sciences
Author: Sasha Ivkovic
Last update: 22 March 2022
Page 4 of 7
Task 4: ISPF session – Running an Exec using IKJEFT01 routine – REXX exec
through PARM
Task overview: Login to ISPF on Marist. Create a REXX script named “TASK4” that would read data
from “
MYDATA” comma separated sequential data set (member) which is copied from comma
separated Unix text file (from USS environment). The REXX exec should calculate minimum,
maximum and mean temperature and provide correct output (including the header). After execution
and testing of your REXX exec script manually, create a JCL script named “
JCLTASK4
which will use IKJEFT01 routine (utility) to execute your REXX exec through PARM and store the
output into sequential data set named “
REPORT4

Environment Data Input Data Output Data Processing Program
Execution
z/OS,ISPF,SDSF MYDATA
comma separated
sequential data set
(member)
REPORT4
sequential data set
(member) created
from the JCL
script
REXX interpreter
reading
instructions from
REXX script
(sequential data
set) named
TASK4
From JCL script
named
JCLTASK4
using IKJEFT01
routine (utility)
with REXX exec
called through
PARM

Table 4: Input-Processing-Output specs for Task 4
Task 5: ISPF session – Running an Exec using IKJEFT01 routine – REXX exec through
SYSTSIN
Task overview: Login to ISPF on Marist. Create a REXX script named “TASK5” that would read data
from “
MYDATA” comma separated sequential data set (member) which is copied from comma
separated Unix text file (from USS environment). The REXX exec should calculate minimum,
maximum and mean temperature and provide correct output (including the header). After execution
and testing of your REXX exec script manually, create a JCL script named “
JCLTASK5
which will use
IKJEFT01 routine (utility) to execute your REXX exec through SYSTIN and store the
output into sequential data set named “
REPORT5

Environment Data Input Data Output Data Processing Program
Execution
z/OS,ISPF,SDSF MYDATA
comma separated
sequential data set
(member)
REPORT5
sequential data set
(member) created
from the JCL
script
REXX interpreter
reading
instructions from
REXX script
(sequential data
set) named
TASK5
From JCL script
named
JCLTASK5
using
IKJEFT01
routine (utility)
with REXX exec
called through
SYSTIN

Table 5: Input-Processing-Output specs for Task 5
Task 6: ISPF session – Running REXX on z/OS with data input from DB2 table
Task overview: Login to ISPF on Marist. Navigate to DB2 and use SQL Processor Using File Input
(SPUFI) interface to create a DB2 table named “
MYDATA”. The table should contain THREE
columns (fields): MONTH, DAY and TEMP. Populate the table with data from “
MYDATA” comma
separated sequential data set (member). MONTH should contain short names for each calender month
(e.g. Jan for January) in the range of (Jan-Dec), DAY should contain numeric values for each calendar
day in the range of 1 to 31 and TEMP should contain daily maximum temperature readings for each
month/day as per data file. Now create a REXX script named “
TASK6” that would read data from the
MYDATA” DB2 table. The REXX exec code should connect to DB and use SQL query to calculate
minimum, maximum and mean temperature for each month. From the query result, the REXX exec

School of Engineering, Information Technology and Physical Sciences
Author: Sasha Ivkovic
Last update: 22 March 2022
Page 5 of 7
code should provide correct output (including the header) on the screen (TSO) . After
execution and testing of your REXX exec script manually, create a JCL script named “
JCLTASK6
which will use IRXJCL routine (utility) to execute your REXX exec through PARM and store the
output into sequential data set named “
REPORT6

Environment Data Input Data Output Data Processing Program
Execution
z/OS,ISPF,SDSF,DB2 MYDATA
DB2 table
REPORT6
sequential data
set (member)
created from the
JCL script
REXX
interpreter
reading
instructions from
REXX script
script named
TASK6” with
connection to
DB2 service and
appropriate SQL
From JCL script
named
JCLTASK6
using IRXJCL
routine (utility)
with REXX exec
called through
PARM

Table 6: Input-Processing-Output specs for Task 6
Assessment Details (Video demo)
At the conclusion of the practical part of the assignment, you will provide a short video presentation in
which you will demonstrate your solutions. Your presentation should not exceed six (6) minutes. In this
presentation you will:
1. Introduce yourself (your name, student id and Marist user ID) [approx 10 seconds]
2. For each task listed above do: [approx 1 minute for each task = 6 minutes in total]
a) Show listing of your files (data sets) which are appropriate for the task, as per instructions in
Tables 1-6
b) Show data input (Unix file, z/OS data set or DB2 table content.
c) Open the file (data set) which contains REXX script (processing) and briefly explain your
code in the context of IPO (input-processing-output)
d) Run (execute the script) as per instructions in Tables 1-6
e) Show the output
Your presentation must be uploaded to Moodle under Assessment > “Assessment task 5: Major
Assignment” via video upload link.

School of Engineering, Information Technology and Physical Sciences
Author: Sasha Ivkovic
Last update: 22 March 2022
Page 6 of 7
Submission of the Assessment
Part 1: Practical solutions
You must create a single .zip file (NOT .rar, .gzip,etc) named <your student id>.zip where <your
student id>
is your FedUni student id number.
This .zip file must be submitted in the ”
Assessment task 4: Major Assignment (PRACTICAL
ASSIGNMENT ON Z/OS) > TASK 4 UPLOAD: .zip FILE WITH MAJOR ASSIGNMENT FILES
(15%)
” file submission drop-box provided in Moodle.
For full marks the .zip file should include the following files:
1. Three input files (data sets) including:
a) mydata” comma separated Unix text file from (USS)
b) MYDATA” comma separated sequential data set (member)
c) an image file (either png/jpeg) showing DB2 SPUFI output after “SELECT * FROM
KC03***.MYDATA” SQL query was executed
2. Six REXX script files (data sets) including:
a) task1 (see Task 1)
b) REXX script named “TASK2” (see Task 2)
c) REXX script named “TASK3” (see Task 3)
d) REXX script named “TASK4” (see Task 4)
e) REXX script named “TASK5” (see Task 5)
f) REXX script named “TASK6” (see Task 6)
3. Four program execution files (data sets) including:
g) Unix Shell script named “myscr.sh” (see Task 1)
h) JCL script named “JCLTASK4” (see Task 4)
i) JCL script named “JCLTASK5” (see Task 5)
j) JCL script named “JCLTASK6” (see Task 6)
4. Six output files (data sets) including: output1, OUTPUT2, OUTPUT3, OUTPUT4, OUTPUT5,
and
OUTPUT6.
Part 2: Video presentation file (demo)
– You must create and submit a a short video presentation in which you will demonstrate your solutions.
– Your presentation should not exceed six (6) minutes.
– This video file must be submitted in the ”
Assessment task 4: Major Assignment (PRACTICAL
ASSIGNMENT ON Z/OS) > TASK 4 UPLOAD: VIDEO PRESENTATION FILE -6 minutes max
(15%)Video Assignment
” file submission drop-box provided in Moodle.
Plagiarism
Plagiarism is the presentation of the expressed thought or work of another person as though it is one’s
own without properly acknowledging that person. You must not allow other students to copy your
work and must take care to safeguard against this happening. More information about the plagiarism
policy and procedure for the university can be found at
https://federation.edu.au/current-students/learning-and-study/online-help-with/plagiarism
School of Engineering, Information Technology and Physical Sciences
Author: Sasha Ivkovic
Last update: 22 March 2022
Page 7 of 7
Assignment Marking Rubric
Student Name:
FedUni ID:
Marist user ID:
Final mark out of 30:
_________
NOTE* For full marks, a zip and video presentation files have to be submitted via Moodle.
Part 1: Practical solutions (15%)

Criterion no attempt poor attempt occasional
attempt
fair attempt competent and
creative
REXX scripting
IPOS(Input-Processing
Output/Storage)
student makes no
attempt to
implement
IPOS via REXX
scripting
0 marks
student makes a
poor attempt to
implement
IPOS via REXX
scripting
2 marks
student makes
occasional
attempt to
implement
IPOS via REXX
scripting
3 marks
student makes a
fair attempt to
implement
IPOS via REXX
scripting
4 marks
competent and
creative
implementation of
IPOS via REXX
scripting
5 marks
JCL scripting
(execution of REXX
exec)
student makes no
attempt to
execute REXX
via JCL scripting
0 marks
student makes a
poor attempt to
execute REXX
via JCL scripting
2 marks
student makes
occasional
attempt to
execute REXX
via JCL scripting
3 marks
student makes a
fair attempt to
execute REXX
via JCL scripting
4 marks
competent and
correct execution
of REXX via JCL
scripting
5 marks
DB2 database
(DB2 services and
SQL)
student makes no
attempt in using
DB2 services and
SQL
0 marks
student makes a
poor attempt in
using DB2
services and SQL
2 marks
student makes
occasional
attempt in using
DB2 services and
SQL
3 marks
student makes a
fair attempt in
using DB2
services and SQL
4 marks
competent and
correct usage of
DB2 services and
SQL
5 marks
Part 1: Practical solution marks (out of 15)
__________
Comments:

Part 2: Video presentation/demo (15%)

Criterion non existent poor good very good competent and
creative
REXX scripting student is not able
to demonstrate
IPOS via REXX
scripting
0 marks
student’s
demonstration of
IPOS via REXX
scripting is POOR
2 marks
student’s
demonstration of
IPOS via REXX
scripting is
GOOD
3 marks
student’s
demonstration of
IPOS via REXX
scripting is VERY
GOOD
4 marks
student is
competent and
creative in
demonstrating
IPOS via REXX
scripting
5 marks
JCL scripting student is not able
to demonstrate
execution of
REXX via JCL
scripting
0 marks
student’s
demonstration of
REXX execution
via JCL scripting
is POOR
2 marks
student’s
demonstration of
REXX execution
via JCL scripting
is GOOD
3 marks
student’s
demonstration of
REXX execution
via JCL scripting
is VERY GOOD
4 marks
student is
competent and
creative in
demonstrating
REXX execution
via JCL scripting
5 marks
DB2 database student is not able
to demonstrate
usage of DB2
services and SQL
0 marks
student’s
demonstration of
DB2 services and
SQL is POOR
2 marks
student’s
demonstration of
DB2 services and
SQL is GOOD
3 marks
student’s
demonstration of
DB2 services and
SQL is VERY
GOOD
4 marks
student is
competent and
creative in
demonstrating
DB2 services and
SQL
5 marks
Part 2: Video presentation/demo marks (out of 15)
__________
Comments: