The theme of Part 3 is to explore the roles and technical responsibilities in a z Systems z/OS environment. These environments are critical to the day to day operation of the world economy.
The only requirement is to allocate P3.OUTPUT data set.
From ISPF panel
Execution of part3 routine allocated CC#####.P3.OUTPUT and wrote member #01
You are ready for the next challenge
Mainframe systems are designed to be used by large numbers of people. The vast majority of these people are unaware they are using a mainframe. For example: When you check your bank balance using your smartphone, it is not the smartphone that has your bank balance, it is a mainframe. When you make an airline reservation, it is not the browser or smartphone the completed the transaction, it is a mainframe. Many more examples exist.
The sophistication and complexity of these z Systems that serve the users require a variety of roles for 7x24x365 support. Additionally, separation of duties are implemented to insure adequate control and audit requirements. These systems should never depend upon one person.
The system operator monitors and controls the z Systems mainframe hardware and software. The operator monitors the system consoles for abnormnal conditions, and works with the system programming and production control staff to ensure the health and normal operation of the systems.
Actually, the majority of the z Systems mainframe data center operational tasks are automated. However, as an airplane has autopilot, it is best to have an experienced pilot in the plane in case something goes wrong to execute unplanned course corrections, etc.
This challenge includes use of SDSF to process z/OS commands.
While SDSF has commands, / at the SDSF command prompt will display of System Command Extension panel or / followed by a system command will execute the system command. All system commands and responses are written to the system log (SYSLOG)
SDSF has a user log for collecting command input and responses for the immediate session. Take the following actions to understand how it works:
The above resulted in P3.OUTPUT(#02) written with the content of ULOG which includes the system commands followed by the system command responses.
Take a moment to view the following link. Quickly scroll through the entire IBM Knowledge Center link page to observe all that is available related to z/OS MVS System Commands.z/OS MVS System Commands Reference
The system program linklist, aka LNKLST, is a list of libraries containing executable modules. When JCL is submitted to execute a program, this system program link list is searched by default to locate the JCL requested program.
z/OS MVS System Command Reference IBM Knowledge Center link is available to display information about the LNKLST set.
Locate and execute the z/OS MVS System Command to display the system program linklist. Enter this system command using SDSF ULOG, then print the system command and response to P3.OUTPUT(#02)
Part 2 challenges included exposure to:
Given Part 2 was a race, you may need to review Part 2 challenges to help complete this challenge. Part 3 is not a race, so you can take your time to piece things together to complete this challenge.
The objective is to find 8 separate numbers from 8 unique places in the z/OS environment, then total those 8 decimal numbers. Success is the correct decimal total of the 8 numbers.
To determine the first number
Enter necessary z/OS system command to output the system link list. The previous challenge was to display the system link list.
Observe the system link list output has a respective list entry NUMBER associated with the DSNAME in the output.
The respective data set NUMBER associated with the LAST DSNAME of the system link list is the first number in the series of 8 numbers.
To determine the second number
CC#####.DATA member name Z1 column 65 and 66 is a Packed Decimal number. This Packed Decimal number is the second number.
*Note: Packed Decimal can be either a negative or positive number based upon last hexidecimal digit
To determine the third number
/u/public/num/number3 contains the third number
To determine the forth number
Successful JOB09 compile and execution of a COBOL program will write the forth number in the JCL JOB output.
The COBOL source program has a minor error that must be corrected to compile. The JCL DDNAME COBOL.SYSIN references the program source data set and member name.COBOL Basic Syntax Tutorial
Now that the compile problem is corrected, execution fails due to a JCL problem. The JCL must be corrected to successfully execute the compiled COBOL program.
JESMSGLG CSV003I message explains the program execution JCL problem
DDNAME LKED.SYSLMOD contains the executable module name from the previous JCL COBOL compile step.
To determine the fifth number
DB2 table WC.ALPHANUM row #1, field name NUMBER has fifth number. You learned how to use DB2 interactively in Part 2 to select rows from tables.
To determine the sixth number
CC#####.DATA member name NUM is an ASCII format number.
This number is 4 digits located columns 1, 2, 3, and 4.
To determine the seventh number
PUBLIC.VSAM is VSAM data set.
The forth record of PUBLIC.VSAM is the seventh number
To determine the eighth number
/u/public/num/packed has a Packed Decimal number that begins in column 1 of row 1.
Once you have the sum of all 8 numbers,=6 and then enter ch3end
The ch3end routine will prompt you for the sum of the 8 numbers
COBOL manages some of the most critical data and business logic in the world's economy.
As an example, if you are employed by a large financial organization and you eventually assume some of the critical day to day responsibilities for the operation of the financial organization, you will quickly learn that outages and crippled operations are totally unacceptable due to the amount of money lost and risk to the continued viability of the organization.
COBOL programming language, COBOL compiler optimization, and COBOL runtime performance has over 50 years of technology advancements contributing to the well being of world economies foundation. The core business logic of many large enterprises has decades of business improvement and tuning embedded in COBOL programs.
The point - whatever you read or hear about COBOL, be very scepticle. If you ever have the opportunity to work directly with someone involved in writing or maintaining critical business logic using COBOL, you will be learning about the operation of the core business. Business managers, business analysts, and decision makers come and go. The sum of all good business decisions can frequently be found in the decades of changes implemented in COBOL programs. The answer to "How does this business actually work?" can be found in COBOL programs.
Add the following to your awareness of COBOL. It is an absolute myth that you must be at least 50 years old to be good with COBOL. COBOL is incredible easy to learn and understand. One of the many reasons financial institutions like COBOL, is the fact that it is not necessary to be a programmer to read and understand the logic. This is important because critical business logic code is subject to audit. Auditors are not programmers. However, auditors are responsible for insuring the business financial statements are presented fairly. It is COBOL processing that frequently result in the business ledger updates and subsequent financial statements.
So, now a real world lesson, a comment recently made in an well known business journal by someone with a suspect agenda was quoted as saying, "COBOL is a computing language used in business and finance. It was first designed in 1959 and is pretty old and slow." A highly experienced business technology person knows the only true part of that last sentence was that COBOL was first designed in 1959.
It's no secret that lots of banks still run millions of lines of COBOL on mainframes. They probably want to replace that at some point. Why haven't they? Most banks have been around long enough to still feel the pain from the ~1960's Software Crisis. After spending enormous amounts of money, and time, on developing their computer systems, they finally ended up with a fully functional, well-tested, stable COBOL core system.
Speaking with people that have actually worked on such systems, nowadays they have Java frontends and wrappers which add functionality or more modern interfaces, they run the application on virtualized replicated servers, but in the end, everything runs through that single core. And that core is never touched or changed, unless absolutely necessary.
And from a software engineering perspective, that even makes sense. Rewrites are always more expensive than planned, and always take longer than planned (ok, probably not always. But often.). Never change a running system etc.., unless very good technical and business reasons exist.
That is real world!
While Part 2 exposed you to COBOL, this challenge will re-enforce awareness of COBOL that could prove valuable during your career.
COBOL that runs in z/OS Environment is Enterprise COBOL.
Submit 10 COBOL compiles where the compiled COBOL source code starts out simple, then increases in functionality. These 10 COBOL compiles include 5 that successfully complete and 5 with a problem to correct.
Each successful compile is immediately followed by a compile with a problem. The successful compile can help resolve the problem with the subsequent job.
A few excellent URLs to help with this challenge
For convience, you are given JCL with in-stream COBOL source code in the same PDS member to edit the COBOL source code and immediately submit for compile and execution.
1st Pair of COBOL compile jobs, CBL1 and CBL2
2nd Pair of COBOL compile jobs, CBL3 and CBL4
3rd Pair of COBOL compile jobs, CBL5 and CBL6
4th Pair of COBOL compile jobs, CBL7 and CBL8
5th Pair of COBOL compile jobs, CBL9 and CBL10
Upon correction of the problems, =6 , then submit 'zos.public.jcl(ch4)'. This will write CC#####.P3.OUTPUT(#04)
The z System hardware architecture hosting z/OS has capabilities that is perhaps the absolute best platform for Java and JVMs
These capabilities include
Java 8 exploits z Systems new SIMD vector hardware instructions for the Java libraries and numerous frequently used functions. Benchmarks exploiting SIMD vector hardware instructions improved by between 2X and 60X.
In the z/OS environment, the unix shell, JCL, and middleware such as CICS is available to execute Java where Java APIs exist to read from and write to any combination of z/OS data sources.
While Java can read and write to any z/OS data source, a very powerful Java API is the ability to read and write to relational database tables. A Java driver, (JDBC - Java Database Connectivity), enables this capability.
You are given a Java program that successfully connects to DB2 for z/OS relational database table, executes a SQL statement to count the number unique world currencies, then prints the count. The challenge is to modify this Java program to also count the number of unique world universities, then print counts for both unique world currencies and unique world universities
The following tips apply to REXX and COBOL programming languages and equally apply to those with very little Java specific experience:
Programming languages have:
A few needed Java coding facts for accomplishing this challenge
Review Java code that will need to be modified
The objective of this challenge is for the Java program to write a count for both Number of World Currencies and Number of World Universites. The DB2 for z/OS relational table with World Universites is WC.UNIV.
Modify Java code to include count for Number of World Universities =
In the event, original copy of Java source is needed
C and C++ can be compiled and executed using either JCL or Unix System Services shell. C and C++ in the z/OS environment can read, write, and update any of the z/OS data sources. Standards compliance with support for international C and C++ programming language standards and GNU C/C++ compatibility extensions for ease of application migration to z Systems.
The IBM z/OS XL C/C++ compiler exploits the latest z/Architecture, including the latest IBM z13 servers. It enables development of high-performing business applications and system programs on z/OS, while maximizing hardware use and improving application performance. It works in concert with z/OS problem determination tools.
C language source code, CPGM, will require corrections to write to the respective JCL DDNAME. CPGM will read a record from a Unix file and write the record to P3.OUTPUT(#06).
Edit CC#####.JCL(CPGM). The JCL to compile the source is the first 3 lines. At the bottom are the JCL statement to execute the compiled C program.
Several corrections are required. If you submit and review the output, the first problem is a compile failure. The SYSOUT DDNAME from C StepName explains that a name in the program was either not found or declared in the C program. Review the output. Study the "name" in the program. You will determine the problem is related to a misspelled name.
Upon successful compile, the execution fails. Review the EXECCPGM StepName output. Review the JCL DDNAME read by the program. Once the program source is corrected and successful executes, then a record from /u/public/message is written to P3.OUTPUT(#06).
Assembler = Speed. There are a number of cases in large enterprises where speed is paramount over ease of programming.
ASMPGM assembler program counts from 1 to 10 using a loop. The incremented number is in register 3. The assembler mnemonic (A) is the add instruction. The assembler program will PUT "Hi! I can count fast." before entering the loop. Modify the assembler program to PUT each newly incremented number. If done correctly, P3.OUTPUT(#07) will include:
Hi! I can count very fast. 00000001 00000002 00000003 00000004 00000005 00000006 00000007 00000008 00000009 00000010
Several load statements in this assembler program have absolutely no impact on anything. The reason they are in the program is to show how assembler uses CPU registers for CPU operations in a later challenge. So, please do not remove them. The load instructions that have no impact are:
L 6,=C'abc ' L 7,=F'1234' L 8,=C'1234' LA 9,10
tso submit jcl(asmpgm)
The ASMPGM program output is written to P3.OUTPUT(#07)
edit jcl(asmpgm) and modify the in-stream source code to PUT each newly incremented number. submit , then review JCL job output and P3.OUTPUT(#07) for success.
Part 2 Challenge 9 used the ISMF, Interactive Storage Management Facility, panels which is a major disk administration tool. ISMF enables disk administrators to effectively manage the overall disk storage capacity for the enterprise.
Part 2 Challenge 10 explained "extents" where an "extent" is a contiguous area of disk space with an absolute beginning and ending location on disk. Each data set has 1 primary extent and optionally many secondary extents as needed. The disk VTOC, Volume Table of Content, keeps a record of all the extents on that disk volume.
A large enterprise z/OS environment can have thousands of disk volumes and thousands of tape volumes. Each disk volume and tape volume will have a unique volume label. These thousands of disk volumes and tape volumes are capable of storing millions of data sets.
While each disk and tape knows what data set names are contained on its own disk volume or tape volume, how can z/OS find a specific data set name among the thousands of volumes?
This challenge will provide that answer. This knowledge would begin to qualify you as a disk administrator candidate. If you are interviewed for large enterprise disk storage administrator position, the hiring authority would be impressed that you would have this knowledge.
What is the Master Catalog and what are User Catalogs?
The Master Catalog and User Catalogs is the short answer to "how can z/OS find a requested data set name among the thousands of volumes?"
However, the next question is, "how does the Master Catalog and User Catalogs manage to keep track of these thousands of disk volumes, tape volumes, and millions of data set names?
On your 3270 Emulator, locate the PA1 icon or keypad. PA1 is Attention, an interrupt, which is similar to cntl-c in Linux or Unix. If unable to locate PA1, then typically ESC or Alt-Ins will generate the PA1 signal. The next action you will take is going to create more output than you want to page through via the enter key to each '***'.
LISTC is short for List Catalog.
Things that z/OS technicians know about the Master Catalog and User Catalogs:
When LISTC was entered with PROFILE NOPREFIX, then the list catalog command started listing everything in the Master Catalog. The very first entry listed in the Master Catalog is the Master Catalog data set name.
When LISTC was entered with PROFILE PREFIX(CC#####), then the list catalog command started listing only catalog entries that begin with CC#####.
Best practices that are well known by experienced large enterprise Disk Administrators:
submit jcl(dsninfo) and review the output
This JCL that executes a series of system utility programs to gather CATALOG and VTOC details about a specific data set name might be something a disk administrator has in their personal JCL library toolbox.
A REXX routine was created to get specific data set name information displayed on the 3270 session immediately. A few errors exist in the REXX routine. Review of the JCL containing the system utility program control statements has the the challenge solution.
The REXX routine is taking only the most critical information to the you as a disk administrator. Specifically, only 2 of the 4 JCL steps are needed in the REXX routine, ALIAS and VTOCDSCB.
The objective is for the REXX routine to produce output from the DSNINFO JCL job ALIAS and VTOCDSCB steps. This is a total of 3 commands in the REXX routine that need minor alterations.
Edit CC#####.REXX.CLIST, then enter ex to left of member DSNINFO. This will execute the REXX routine that must be corrected to produce the same output as DSNINFO JCL job steps ALIAS and VTOCDSCB.
Use zos.public.hud.data.csv as the test case data set name input for the REXX routine.
Once satisfied with that REXX routine output, then submit 'zos.public.jcl(dsninfo)' . This JCL will write output from your REXX routine into P3.OUTPUT(#08)
Security Administration roles and security best practices have always been critical. The internet has enabled public's indirect access to critical data sources. This has increased the intensity around security. Audit functions are also critical. The security administer will typically conduct audit functions in an attempt to find and address problems before auditors discover issues which must be reported.
You (the new security administrator) were asked to provide "all audit records for a specific user", TEST003.
RACF data base activity and z/OS SMF system activity records are collected routinely to produce reports such as this one.
The senior security administrator gave you the instructions below to print the requested report. The senior security administrator told you that many reports exist and each unique report as a unique 4 character value. The senior security administrator does not remember which 4 character value is associated with the "all audit records for a specific user" report. You will need to identify that 4 character value.
If the instructions were followed accurately, then RACFPRT output will include the report in PRINT DDNAME.
Enter XDC to the left of the PRINT DDNAME output. An SDSF Open Print Data Set panel will appear. Type P3.OUTPUT(#09) in the Data set name field, then enter SHR in the Disposition field. This will write PRINT DDNAME report into P3.OUTPUT(#09).
Software program execution requires hardware. Computing hardware consist of complex electronics. Electronic transistors can be either 0V (Volt) or greater than 0V. The 0V is represented by a binary 0 and the greater than 0V is represented by a binary 1. Therefore, computers process binary bits (0V or +V) at the lowest level.
Hardware architectures differ. Every processor or processor family has its own machine code instruction set. Instructions are patterns of bits that by physical design correspond to different commands to the machine.
It is not practical to write a software program using machine code instructions just like it is not practical to enter data as binary strings. Each hardware architectue includes an Assembler with Assembler Language instruction mnemonics that translate into architecture dependent binary strings. Assembler mnemonics generate machine code. Most software programs are written in High-Level Languages which are compiled into assembler mnemonics which in turn generate the hardware dependent machine code.
Java is an exception. Java is compiled into byte code. A Java Virtual Machine, JVM, exists to execute the byte code. Each hardware architecture has a machine dependent JVM available to process the Java byte code. This is why Java executable code can be considered portable between hardware architectures without the need to compile into native machine code. However, the translation abstraction level adds some significant overhead.
Very large enterprises and software development companies write applications in Assembler because processing speed is paramount. Also, understanding assembler provides deep machine insight that can prove valuable to clearly identify root cause of complex problems.
ASMPGM assembler program from challenge #07 will be used in this challenge to explore Assembler mnemonics, machine code instructions, and CPU registers role in processing the machine code instructions
Take the following actions to familiarize yourself with TSO TEST environment.
ZOS.PUBLIC.ASMPGM.LISTING is the ASMPGM compile listing with nmemonics and respective machine code instruction. This same listing has the output of the TSO TEST environment you just explored following the compile listing.
Note: Please DO NOT Edit ZOS.PUBLIC.ASMPGM.LISTING. It cannot be changed and it could prohibit others from viewing it which would require your session to be cancelled to free the listing for others to view.
View (v) ZOS.PUBLIC.ASMPGM.LISTING to observe the following:
Following these questions with multiple choice answers, you will be instructed to execute a routine to collect your answers.
**************************************************** * Question #1 * * * * What is ASMPGM first machine operation code * * instruction? * * * * Enter the number of your answer * * * * 1) 00028DC0 * * 2) USING * * 3) 47 * * 4) CSECT * * 5) F0 * * 6) B * * * **************************************************** * Question #2 * * * * What is ASMPGM Assembler Mnemonic at +56? * * * * Enter the number of your answer * * * * 1) 00DA2618 * * 2) 1B * * 3) 22 * * 4) None * * 5) SR * * 6) R2 * * * **************************************************** * Question #3 * * * * What is ASMPGM machine operation code * * instruction +60? * * * * Enter the number of the best answer * * * * 1) 4E * * 2) CVD * * 3) LOOP * * 4) DS * * 5) 0H * * 6) 00DA2618 * * * **************************************************** * Question #4 * * * * What is ASMPGM Assembler Mnemonic at +A2? * * * * Enter the number of the best answer * * * * 1) 00028E4A * * 2) 0H * * 3) DS * * 4) EXIT * * 5) 58 * * 6) L * * * **************************************************** * Question #5 * * * * What is the first ASMPGM machine code * * instruction to be executed by ASMPGM? * * * * Enter the number of your answer * * * * 1) B SETUP * * 2) CSECT * * 3) RO EQU 0 * * 4) STM RETREG,BASEREG,12(SAVEREG) * * 5) USING ASMPGM,ENTRYREG * * 6) 47F0F014 * * * **************************************************** * Question #6 * * * * Which ASMPGM register contains the result of * * the add instruction? * * * * Enter the number of your answer * * * * 1) 1 * * 2) 2 * * 3) 3 * * 4) 7 * * 5) 15 * * 6) 6 * * * **************************************************** * Question #7 * * * * What ASMPGM displacement offset is used to * * reference the character literal 'abc * * * * Enter the number of your answer * * * * 1) +14 * * 2) +4E * * 3) +151 * * 4) +228 * * 5) +53 * * 6) +60 * * * **************************************************** * Question #8 * * * * What ASMPGM displacement offset has the program * * compile date? * * * * Enter the number of your answer * * * * 1) +4 * * 2) +20 * * 3) +C * * 4) +21 * * 5) +0 * * 6) +14 * * * **************************************************** * Question #9 * * * * What is the ASMPGM hex displacement offset of * * the source code SETUP label containing STM * * assembler mnemonic? * * * * Enter the number of your answer * * * * 1) +0 * * 2) +C * * 3) +F * * 4) +14 * * 5) +18 * * 6) +32 * * * **************************************************** * Question #10 * * * * What Assembler Mnemonic places x'A' in register 9* * as displayed at breakpoint +A2 * * * * Enter the number of your answer * * * * 1) ST * * 2) 58 * * 3) L * * 4) DS * * 5) LA * * 6) 41 * * * ****************************************************
Enter =6 , then enter asmquiz from the ISPF Command Shell panel
Each execution of asmquiz will replace previous answers.
In a mainframe IT organization, the systems programmer plays a central role which requires diverse set of technology skills.
A systems programmer maintains both hardware and software systems and resolves system problems. Responsibilities of the job include: installation and maintenance of the systems as well as technical consultation, services, and support to the organization.
A highly experienced systems programmer:
The system programmer installs, customizes, and maintains the operating system, and also installs or upgrades products that run on the system.
The system programmer might be presented with the latest version of the operating system to upgrade the existing systems. A software tool exists to install z/OS and z/OS software products. This software tool tracks all modifications to z/OS and z/OS software products. This software tool is Systems Modification Program/Extended (SMP/E)
Use SMP/E to locate the modification level of a system module.
If you are a z/OS Systems Programmer, a responsibility includes debugging of a reported problem and providing corrective action. You isolated a problem that appears to be a defect in a specific IBM component. As a result, you contact IBM defect support to report the problem. IBM defect support works with you to drill deeper into the failing component. Ability to use SMP/E is critical to working with IBM to drill deeper into the failing component.
A systems programmer must have excellent understanding of SMP/E terminology and will as a result of repeated use of the SMP/E tool.
Overview of SMP/E Terminology
Overview of SMP/E Software Installation and Maintenance Process
SYSMOD - System Modification
While ISPF panels for SMP/E exist, this challenge will not use the panels. The challenge will use JCL to execute the SMP/E tool.
Situation - You isolated a problem in ICHRCP00. ICH is the 3 digit unique identifier for the 'RACF Base' component. You contact IBM defect support. IBM defect support wants you to provide the last date of maintanence applied to ICHRCP00 and the PTF name applied on that date to ICHRCP00.
The objective is to find the 4 digit target zone name. submit jcl(listzone) . The SMPLIST DDNAME output include ZONEINDEX values. The 4 character ZONEINDEX value associated with TARGET MVS.MVST.CSI in the output. The 4 character string is the target zone name.
The objective is to find the 'RACF Base' FUNCTION SYSMOD. Edit jcl(listfunc) , Replace 'target_zone_name' with the TARGET zone name that was obtained from Step 1, then submit . Find the RACF Base in the SMPLIST DDNAME output using f 'RACF Base' . The FMID name value associated with the RACF Base is what is needed from the job output.
The objective is to find the RACF Base component, ICHRCP00, in the target zone. Edit jcl(listfmid) . Replace 'target_zone_name' with the TARGET zone name that was obtained from Step 1 and replace 'fmid_name' from Step 2. , then submit . Review job output SMPLIST DDNAME. The output has multiple entries for ICHRCP00, one entry for each time maintenance was applied to ICHRCP00. You are interested only in the last maintenance applied. Search from the bottom of the output as follows:
The latest maintenance activity applied to ICHRCP00 target library component contains 'TYPE = PTF' line. To the left of 'TYPE = PTF' is the PTF name that has a UA prefix followed by a number.
The objective is to confirm the PTF name associated the current maintenance applied to ICHRCP00. Edit jcl(listmod) . Replace 'target_zone_name' with the correct TARGET zone name. Replace 'module_name' with module ICHRCP00, then submit . Review the SMPLIST DDNAME output and locate the last PTF that updated ICHRCP00. The PTF name has the form UAxxxxx. The RMID value in the output is the PTF name.
The objective is to determine the date of the last maintenance applied to ICHRCP00. Edit jcl(listptf) . Replace 'target_zone_name' with the correct TARGET zone name. Replace 'PTF_name' with the PTF name found in Step 4, then submit . The output is written to CC#####.P3.OUTPUT(#11) and the output contains the date maintenance was applied to ICHRCP00.
A Systems Programmer does not know it all. However, they get very good at knowing which professional manuals to reference and figuring things out. The more they are required to figure out, the more effective they are in their Systems Programmer role.
When a Systems Programmer installs a new release of Enterprise COBOL for z/OS, they become familiar with "need to know" facts such as the COBOL target library data set names, the Enterprise COBOL for z/OS supplied compile JCL Procedures, etc.
DevOps is a popular clipped compound that emphasizes the collaboration and communication between business application developers and other IT professionals where Dev represents development and Ops represents the other IT professionals. Quite commonly the other IT professionals is the Systems Programmer in z/OS environments. This relationship has existed for many decades in the mainframe environment, long before the clipped compound, DevOps, was created as a result of implementing an "Agile Infrastructure".
Developers (Dev) are dependent upon procedures created and maintained by a Systems Programmer (Ops).
An example would be a JCL PROC (Procedure) used by developers to compile COBOL.
You installed a new release of Enterprise COBOL for z/OS. You need to modify the IBM supplied JCL PROC (Procedure) that development will use to compile COBOL source code using the new release of the z/OS COBOL compiler.
The development staff requested assembler-language expansion produced in the new COBOL compiler source listings.
You are aware the COBOL compiler benefits from newer and faster machine instructions in current z System hardware.
The challenge is to modify the IBM supplied JCL PROC shipped with the new release of Enterprise COBOL for z/OS to include assembler-language expansion in the COBOL compiler source listing and specify the current z System hardware architecture for the new COBOL compiler to benefit from newer and faster machine instructions in you current z System hardware.
Things you currently know as the Systems Programmer to accomplish the challenge:
Review cobtest COMPILE SYSPRINT DDNAME
Edit CC#####.JCL(COBCLG) PARM=options to include 1) assembler-language in the COBOL COMPILE SYSPRINT and 2) z System hardware level of the contest z System.
Use Chapter 2. in the Customization Guide to find needed COBOL compiler options.
submit jcl(cobtest) to test added options
Once the COBOL COMPILE SYSPRINT includes the needed compile option changes, then tso submit jcl(cobtest#) to direct the compile sysprint output to P3.OUTPUT(#12)
The contest z/OS system is one of many operating systems running on the contest z Systems hardware. z Systems hardware can run 5 unique operating systems:
Communication between the operating systems in a z Systems frame eliminates requirement for extra cables and the response is near zero because the communication path can be configured to remain within the z Systems frame
A z Systems can be hardware partitioned. This hardware partitioning is called LPAR. This LPAR hardware hipervisor is assigned CPU's, Memory, and Peripheral Devices such as disk, network, tape, etc, from the total available resource pool. A single z System is capable or running up to 85 LPARs.
Any of the 5 operating systems can run in an LPAR.
When z/VM is running in an LPAR, then 'guest' operating systems can run under the control of z/VM. z/VM is a software hipervisor. Any of the above 5 operating systems can be hosted as a virtual machine with the z/VM environment.
It is common to 100's and even 1000's of operating systems as 'guests' of z/VM. Running 8,000 virtual servers on a single system with near zero network delay between the operating systems is a fantastic industrial strength architecture.
This challenge will give you the opportunity to learn about the z/VM that is controlling the contest z/OS.
A routine exists to enter z/VM commands from your TSO/ISPF session.
Enter =6 to display ISPF Command Shell panel.
Enter the following commands to display z/VM information related to this z/OS guest operating systems:
where ####### is the VSWITCH name available from 'Q LAN ALL' and 'Q NIC ALL'
Note: Q is abbreviation for z/VM QUERY command
Checking your results:
While commands return output to your screen, it also writes output to P3.OUTPUT(#13)
Therefore, the output from the last z/VM Q command is stored in P3.OUTPUT(#13)
Success is when P3.OUTPUT(#13) contain LAN DETAILS from the VSWITCH name.
The importance of data encryption and decryption is increasing due to the amount of sensitive data flowing across public communication systems. Data can traverse layers of encryption and decryption. Cryptographic algorithms are used to manage public-private key pairs to accomplish data security.Public-key cryptography
This challenge will demonstrate a very simple use of a key pair to encrypt and decrypt messages. However, the industry accepted mechanisms are significantly more complex.
Completing the challenge requires decryption of an encrypted secret message. A REXX routine that was used to encrypt the 'SECRET' message is available to you. You create a REXX encryption routine from a copy of the REXX decryption routine, then modify the encryption REXX routine. The objective is to use your REXX decryption routine to decrypt the 'SECRET' and write the decrypted message to P3.OUTPUT(#14).Challenge Details:
Data Analytics will increase in importance during the next couple of years using technologies such as z/OS Apache Spark. SQL provides analytic functions today where z/OS Apache Spark will provide SQLContext capability for read-only data in memory, dataframes, coupled with machine learning algorithms in the near future. Therefore, your SQL skills will enable you to quickly become skilled with technologies such as z/OS Apache Spark.
This challenge has neither a right or wrong answer. This challenge requires innovative business insights about data using SQL.
This challenge assumes your ability to use interactive DB2 SQL from Part 2 Challenge 11 and 12. You will not be given detailed "how to" instructions in this challenge.
The data for this challenge is two DB2 tables, a client profile table (CLIENT_INFO) with approximately 6000 clients and a payment table (SPPAYTB) with approximately 1.5 million card transactions from the 6000 clients over a 1 year period.
DB2 table CARDUSR.CLIENT_INFOColumn Names - ( Description )
DB2 table CARDUSR.SPPAYTBColumn Names - ( Description )
CC####.SQL(ANALYSIS) can contain at least 1 and no more than 5 SELECT SQL statements that provide business insights from the client and payment tables. Each SELECT statements may contain subselects, built-in functions, case expressions, search conditions, joins, etc., etc. A SELECT SQL statement is anything that begins with SELECT and ends with semicolom (;), the SQL statement terminator.
Suggested sources of information (hyperlinks) for this challenge:
Your SELECT statement(s) will be judged according to the business insights in the result set. This challenge will help judges select the top place finishers for all those that have successfully completed all the Part 3 challenges. Completing this challenge along with the other Part 3 challenges will most likely earn you at least an Honorable Mention on the Part 3 Wall of Fame.
Once done, then:
Completing Part 3 makes it highly probable your name and school will be posted in Part 3 Wall of Fame. This is a distinguished and relatively short list. You will be in this list at least as an Honorable Mention and possibly as a top place winner.
Bottom line: You cannot. No routine is provided to score the answers you submitted. Additionally, the last challenge is very open ended for the purpose of distinguishing yourself from other contestants by doing something innovative with the data to produce business insight reports that may influence business decisions.
The last challenge is scored by a judge panel. The judges independently score each of the contestants suggested business insights from the data. The judge scores are averaged to select the winners.