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. 1st ). 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: |