The document provides an overview of Job Control Language (JCL) used to communicate with the IBM mainframe operating system. It describes the key components of JCL including JOB, EXEC and DD statements. JOB statements name a job and supply accounting/scheduling information. EXEC statements call programs for execution and can invoke cataloged procedures. DD statements define resources like input/output files used by the job. The document outlines the format, fields and common parameters used in each JCL statement type.
Mainframe jcl exec and dd statements part - 3janaki ram
EXEC STATEMENT(EXEC)
EXEC Statement is used to identify program name or procedure name.
Maximum we can code 255 EXEC statements in a JOB.
In EXEC statement has two kinds of parameters
Position parameter Keyword parameter
PGM TIME , COND
PROC REGION , PARM
If you not mention any thing default it takes PROC
PGM
This is a positional parameter which must be coded after EXEC with one blank. This parameter indicates the name of program (or) procedure name
Syntax
//STEPNAME EXEC PGM=REPORT (OR)
PROC = PROCEDURE NAME
PARM
It is keyword parameter and it is mainly used for passing the data to another program.
To pass input to Application program
To invoke complier option.
This is a keyword parameter at activity / step level must be coded with exec operand after PGM parameter.
This parameter allows MAX(100) characters.
To receive PARM parameter data, Cobol program must be coded with “Procedure Division Using Parameter ” option.
These parameters must be declared in the linkage section.
DATA DESCRIPTOR STATEMENT ( DD STMT)
It is used to identify files( input and output ) used in JCL
DD name act as a bridge b/w Cobol program and execution JCL
In DD statement has two kinds of parameters.
Position Parameter Keyword Parameter
* DSN,DISP
DATA SPACE,UNIT
DUMMY DCB,VOLUME
*
Position parameter at DD level used with SYSIN to pass data to Cobol programs this is known as In stream data any number of records can be passed to the program.
In stream data is used to pass values from JCL to Cobol dynamically.
To accept the values in Cobol program, we should have equivalent accept verbs.
Syntax
//SYSIN DD * ------- Entry of in stream data
100
200
/* ---------------------- End of in stream data
DATA
We can pass any thing to another program including special character
Syntax
//SYSIN DD DATA
100
/*
200
/*
DUMMY
All files are treated as End of the file
Syntax
//SYSIN DD DUMMY
NOTE
There is no input to the application all input files treated as End of the file.
DSN
Through DSN we can refer temporary / permanent file
Is a physical space or file where the records will be stored.
DISP
DISP parameter is used to identify the mode of the file.
DISP= ( STATUS, NORMAL , ABNORMAL )
TERMINATION TERMINATION
NEW DELETE DELETE
OLD KEEP KEEP
SHR CATLG CATLG
MOD UNCATLG UNCATLG
NEW Creating the data set first time
OLD Already created accessing the data set all resources are allocated exclusively . No other user can until is released by the current user. If dataset is not existing this creates.
SHR The data set can be accessed by multiple users at a time.
MOD Appending the records to the existing record
NOTE If the dataset is not existing , then MOD is assumed as NEW and writes records to the dataset.
Mainframe jcl exec and dd statements part - 3janaki ram
EXEC STATEMENT(EXEC)
EXEC Statement is used to identify program name or procedure name.
Maximum we can code 255 EXEC statements in a JOB.
In EXEC statement has two kinds of parameters
Position parameter Keyword parameter
PGM TIME , COND
PROC REGION , PARM
If you not mention any thing default it takes PROC
PGM
This is a positional parameter which must be coded after EXEC with one blank. This parameter indicates the name of program (or) procedure name
Syntax
//STEPNAME EXEC PGM=REPORT (OR)
PROC = PROCEDURE NAME
PARM
It is keyword parameter and it is mainly used for passing the data to another program.
To pass input to Application program
To invoke complier option.
This is a keyword parameter at activity / step level must be coded with exec operand after PGM parameter.
This parameter allows MAX(100) characters.
To receive PARM parameter data, Cobol program must be coded with “Procedure Division Using Parameter ” option.
These parameters must be declared in the linkage section.
DATA DESCRIPTOR STATEMENT ( DD STMT)
It is used to identify files( input and output ) used in JCL
DD name act as a bridge b/w Cobol program and execution JCL
In DD statement has two kinds of parameters.
Position Parameter Keyword Parameter
* DSN,DISP
DATA SPACE,UNIT
DUMMY DCB,VOLUME
*
Position parameter at DD level used with SYSIN to pass data to Cobol programs this is known as In stream data any number of records can be passed to the program.
In stream data is used to pass values from JCL to Cobol dynamically.
To accept the values in Cobol program, we should have equivalent accept verbs.
Syntax
//SYSIN DD * ------- Entry of in stream data
100
200
/* ---------------------- End of in stream data
DATA
We can pass any thing to another program including special character
Syntax
//SYSIN DD DATA
100
/*
200
/*
DUMMY
All files are treated as End of the file
Syntax
//SYSIN DD DUMMY
NOTE
There is no input to the application all input files treated as End of the file.
DSN
Through DSN we can refer temporary / permanent file
Is a physical space or file where the records will be stored.
DISP
DISP parameter is used to identify the mode of the file.
DISP= ( STATUS, NORMAL , ABNORMAL )
TERMINATION TERMINATION
NEW DELETE DELETE
OLD KEEP KEEP
SHR CATLG CATLG
MOD UNCATLG UNCATLG
NEW Creating the data set first time
OLD Already created accessing the data set all resources are allocated exclusively . No other user can until is released by the current user. If dataset is not existing this creates.
SHR The data set can be accessed by multiple users at a time.
MOD Appending the records to the existing record
NOTE If the dataset is not existing , then MOD is assumed as NEW and writes records to the dataset.
JCL
Job Control Language (JCL) is a name for scripting languages used On IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem.
JCL acts as an interface between application programming and MVS Operating system.
Jcl is used for compilation and execution of batch programs.
Apart from the above functionalities JCL can also be used for,
1. Controlling the jobs.
2. Create GDG’S.
3. Allocate PDS,PS file with IBM Utilities.
4. Create Procs.
5. Sort the files.
JCL Coding Sheet
1,2,3----------Column Numbers----------72,73------------80
//JOBNAME JOB PARAMETERS------COMMENTS
// EXEC
// DD
//* ------------ Comment (* in 3rd column indicates line in comment)
//------------ End of JCL
Where // ----- Identification Field
job name------- Naming field
JOB,EXEC,DD - Statement / Operation
NOTE
If we want to continue parameters in the next line end the last parameter with “,” and continue next parameter only in 4-16 columns.
There are three statements in JCL.
JOB
EXEC
DD
JOB Statement:
Job statement is used to identify job name and job related parameters
JOBCARD = job name + job related parameters.
Syntax
//JOBNAME JOB ACCOUNT INFORMATION,’USERNAME’,CLASS=A-Z/0-9,
// NOTIFY =&SYSUID/RACF ID,MSGCLASS,
// MSGLEVEL=(X,Y),PRTY=0-15,
// TIME=(M,S),REGION=MB/KB,TYPRUN=SCAN/
// HOLD/COPY,COND=(RC,OPERATOR,STEPNAME)
// COND=ONLY OR COND=EVEN,RESTART=STEPNAME
JOBNAME
It is required to identify this job from other jobs in the SPOOL
1 to 8 characters minimum 1 character and maximum is 8 character.
1st character must be alphabet.
Other characters can be alphabets or numeric or $,&,#.
Example
Job names for personal or lab sessions
Userid + 1 / 2 chars
KC03P83$ ------- Userid is KC03P83
KC03P84&--------Userid is KCO3P84
ACCOUNTING INFORMATION
It is a keyword parameter and codes it after JOB statement.
It is used for billing purpose, in real time when we submit any job it is going to take some CPU time. Based on the CPU time there will be some amount involved where this amount has to go will be decided by A/C information parameters.
Examples
(8012T)
(80121I)
(8012M)
USERNAME
It is used to identify the user who has written the JCL.
It can be maximum of 20 characters.
Note Both A/C information and user name are positional parameters and the remaining job
card parameters are keyword parameters.
EX1: //KC03P83A JOB (487A),’JANAKI RAM’
EX2: //KC03P84& JOB (488T),’SOMISETTY’
NOTIFY
To which user id the job has to be notification after successful or unsuccessful completion.
Successful completion means MAXCC = 0 (or) 04 unsuccessful completion means MAXCC > 04.
If it is not coded,then user has to check the status of the job from the spo
Top jcl interview questions and answers job interview tipsjcltutorial
You'll likely be asked difficult questions during the interview. Preparing the list of likely questions in advance will help you easily transition from question to question.
This slide contains all the basic concepts of ISPF. It's giving the simple and easy step to get the knowledge of Interactive system productivity facility. If u like it then give me feedback on email anilbharti85@gmail.com Thanks v much.
A K Bharti
Maintec Technologies provides affordable access to latest Mainframe infrastructure for development, training, additional short term capacity increases and outsourcing needs. Leverage our Mainframe infrastructure, without investing the time, expense and manpower it would take to build your own!.
Contains information about the DB2 DSNZPARM that forms the DB2 configuration parameters. All about the different types of zPARMs. A way to update them dynamically.
This presentation covers the basic DB2 objects description. Covers the basic administration using IBM utilities. Their complete phase wise operation and termination recoveries. Also have talked about the most frequently used DB2 catalog tables, what's the need for them in DB2. And finally have shown some SPUFI panels and their usage.
DB2 for z/OS - Starter's guide to memory monitoring and controlFlorence Dubois
DB2 for z/OS makes more and more use of REAL memory to improve performance and reduce cost. But if you don't carefully budget and monitor the use of REAL memory on your system, you could be putting your applications at risk. This presentation will go back to the basics and answer the most common questions about REAL memory management including: how does DB2 uses virtual and REAL memory? how to build a budget based on system settings and buffer pool sizes? how to size the LFAREA? what are the key performance indicators and how do I know I am running 'safely'? what can be done to protect the system?
JCL
Job Control Language (JCL) is a name for scripting languages used On IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem.
JCL acts as an interface between application programming and MVS Operating system.
Jcl is used for compilation and execution of batch programs.
Apart from the above functionalities JCL can also be used for,
1. Controlling the jobs.
2. Create GDG’S.
3. Allocate PDS,PS file with IBM Utilities.
4. Create Procs.
5. Sort the files.
JCL Coding Sheet
1,2,3----------Column Numbers----------72,73------------80
//JOBNAME JOB PARAMETERS------COMMENTS
// EXEC
// DD
//* ------------ Comment (* in 3rd column indicates line in comment)
//------------ End of JCL
Where // ----- Identification Field
job name------- Naming field
JOB,EXEC,DD - Statement / Operation
NOTE
If we want to continue parameters in the next line end the last parameter with “,” and continue next parameter only in 4-16 columns.
There are three statements in JCL.
JOB
EXEC
DD
JOB Statement:
Job statement is used to identify job name and job related parameters
JOBCARD = job name + job related parameters.
Syntax
//JOBNAME JOB ACCOUNT INFORMATION,’USERNAME’,CLASS=A-Z/0-9,
// NOTIFY =&SYSUID/RACF ID,MSGCLASS,
// MSGLEVEL=(X,Y),PRTY=0-15,
// TIME=(M,S),REGION=MB/KB,TYPRUN=SCAN/
// HOLD/COPY,COND=(RC,OPERATOR,STEPNAME)
// COND=ONLY OR COND=EVEN,RESTART=STEPNAME
JOBNAME
It is required to identify this job from other jobs in the SPOOL
1 to 8 characters minimum 1 character and maximum is 8 character.
1st character must be alphabet.
Other characters can be alphabets or numeric or $,&,#.
Example
Job names for personal or lab sessions
Userid + 1 / 2 chars
KC03P83$ ------- Userid is KC03P83
KC03P84&--------Userid is KCO3P84
ACCOUNTING INFORMATION
It is a keyword parameter and codes it after JOB statement.
It is used for billing purpose, in real time when we submit any job it is going to take some CPU time. Based on the CPU time there will be some amount involved where this amount has to go will be decided by A/C information parameters.
Examples
(8012T)
(80121I)
(8012M)
USERNAME
It is used to identify the user who has written the JCL.
It can be maximum of 20 characters.
Note Both A/C information and user name are positional parameters and the remaining job
card parameters are keyword parameters.
EX1: //KC03P83A JOB (487A),’JANAKI RAM’
EX2: //KC03P84& JOB (488T),’SOMISETTY’
NOTIFY
To which user id the job has to be notification after successful or unsuccessful completion.
Successful completion means MAXCC = 0 (or) 04 unsuccessful completion means MAXCC > 04.
If it is not coded,then user has to check the status of the job from the spo
Top jcl interview questions and answers job interview tipsjcltutorial
You'll likely be asked difficult questions during the interview. Preparing the list of likely questions in advance will help you easily transition from question to question.
This slide contains all the basic concepts of ISPF. It's giving the simple and easy step to get the knowledge of Interactive system productivity facility. If u like it then give me feedback on email anilbharti85@gmail.com Thanks v much.
A K Bharti
Maintec Technologies provides affordable access to latest Mainframe infrastructure for development, training, additional short term capacity increases and outsourcing needs. Leverage our Mainframe infrastructure, without investing the time, expense and manpower it would take to build your own!.
Contains information about the DB2 DSNZPARM that forms the DB2 configuration parameters. All about the different types of zPARMs. A way to update them dynamically.
This presentation covers the basic DB2 objects description. Covers the basic administration using IBM utilities. Their complete phase wise operation and termination recoveries. Also have talked about the most frequently used DB2 catalog tables, what's the need for them in DB2. And finally have shown some SPUFI panels and their usage.
DB2 for z/OS - Starter's guide to memory monitoring and controlFlorence Dubois
DB2 for z/OS makes more and more use of REAL memory to improve performance and reduce cost. But if you don't carefully budget and monitor the use of REAL memory on your system, you could be putting your applications at risk. This presentation will go back to the basics and answer the most common questions about REAL memory management including: how does DB2 uses virtual and REAL memory? how to build a budget based on system settings and buffer pool sizes? how to size the LFAREA? what are the key performance indicators and how do I know I am running 'safely'? what can be done to protect the system?
"Dear Students,
Greetings from www.etraining.guru
We provide BEST online training for IBM DB2 LUW/UDB DBA by a database architect. Our DB2 Trainer comes with a working experience of 11+ years, 9+ years in DB2 and a DB2 certified professional.
DB2 LUW DBA Course Content: http://www.etraining.guru/course/dba/online-training-db2-luw-udb-dba
Course Cost: USD 350 (or) INR 21000
Number of Hours: 30-35 hours
Regards,
Karthik
www.etraining.guru
This PPT File, helps with the Basic Interview Questions specially for DataBase Domain.. For more questions , please log in to www.rekruitin.com
By ReKruiTIn.com
Sneak Peek into the New ChangeMan ZMF ReleaseSerena Software
Mainframe Virtual User Group January 28 2016
Peek behind the Serena development curtain and check out the latest features of our new release, ChangeMan ZMF 8.1.1. Last year, we delivered ChangeMan ZMF version 8 which provided innovative release management, unmatched development support, and superior scalability and extendibility.
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docxgilpinleeanna
MSCD650 Final Exam feedback Form
MSCD650 Final Exam Grading Form
(Instructions follow the form)
Coding
55 Percent
Points Earned
Comments:
Trigger Code:
· Code meets requirements
· Code compiles cleanly
/15
Pre-Calculation Procedure Code
· Code meets requirements
· Code compiles cleanly
/15
PL/SQL Block Code
· Code meets requirements
· Code compiles cleanly
/15
Function Code
· Code meets requirements
· Code compiles cleanly
/10
/55
Unit Testing
35 Percent
Points Earned
Comments:
Unit Test for Trigger Code:
· All conditions are thoroughly tested
· The code runs successfully
· All data to prove test worked is displayed
/10
Unit Test for Procedure Code:
· All conditions are thoroughly tested
· The code runs successfully
· All data to prove test worked is displayed
· The tester can easily follow the path of the execution.
/10
.
Unit Test for PL/SQL Block Code:
· All conditions are thoroughly tested
· The code runs successfully
· All data to prove test worked is displayed
· The tester can easily follow the path of the execution.
/10
Unit Test for View/Function Code:
· All conditions are thoroughly tested
· The code runs successfully
· All data to prove test worked is displayed
· The tester can easily follow the path of the execution.
/5
/35
Documentation
10 Percent
Points Earned
Comments:
Presentation:
· The document is easy to read.
· The document is Professional in appearance
· It is easy for the reader to find what they are looking for.
/5
Documentation:
· Code is documented so that anyone who picks it up knows what it is doing.
/5
/10
Total 100
Percent
Points Earned
Comments:
Case Study
Overview of assignment
As a new ABC Consultant assigned to the XYZ Company, you have been asked to enhance the current system to include payroll processing. Although the current employee table has monthly salary and commission columns, it does not provide any means for storing employee deductions. You will add the tables necessary to store employee deductions. Next you will create a payroll pre-calculation program that will calculate the net pay for all the employees via a batch process (a stored procedure in a package, which will call other stored procedures within the package). Although this is not a complete payroll system, the unit test results must be accurate.
Next you will create two PL/SQL blocks for inserting and deleting rows from the employee deduction table. These PL/SQL blocks will be passed information from host or bind variables and a third PL/SQL block which will assign the variables defined in SQL*Plus (e.g. employee number, dollar amount and deduction name). Since the XYZ Company wants to track changes to the employee and employee deduction tables, you will create two database triggers that will update audit tables when rows are changed or deleted.
The XYZ Company also requires a view that will display specific employee information, plus the number of deductions for an employe ...
Design of Real - Time Operating System Using Keil µVision Ideiosrjce
IOSR journal of VLSI and Signal Processing (IOSRJVSP) is a double blind peer reviewed International Journal that publishes articles which contribute new results in all areas of VLSI Design & Signal Processing. The goal of this journal is to bring together researchers and practitioners from academia and industry to focus on advanced VLSI Design & Signal Processing concepts and establishing new collaborations in these areas.Design and realization of microelectronic systems using VLSI/ULSI technologies require close collaboration among scientists and engineers in the fields of systems architecture, logic and circuit design, chips and wafer fabrication, packaging, testing and systems applications. Generation of specifications, design and verification must be performed at all abstraction levels, including the system, register-transfer, logic, circuit, transistor and process levels.
SQL Performance Tuning and New Features in Oracle 19cRachelBarker26
What's new in Oracle 19c (and CMiC R12) and the reporting software Jaspersoft Studios. If you are not interested in Jasper go ahead and skip to page 26. Explains how to read an execution plan and what to look for in an optimized execution plan.
Health care or healthcare is the maintenance or improvement of health via the diagnosis, treatment, and prevention of disease, illness, injury, and other physical and mental impairments in human beings
Manufacturing is the production of merchandise for use or sale using labour and machines, tools, chemical and biological processing, or formulation. The term may refer to a range of human activity, from handicraft to high tech, but is most commonly applied to industrial production, in which raw materials are transformed into finished goods on a large scale.
Logistics is the function of making goods and other resources physically available for use as and when required. This generally includes two basic activities of moving or transporting these resources, and storing them at different location till required for use or further transportation.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
3. Course Outline
Introduction - Job Control Language
JOB Statements
EXEC Statements
DD Statements
GDG and some commonly used utilities
Commonly Occurring Abend Codes
Q & A
3
4. What is JCL ?
• What is a JCL?
– Job Control Language - means of communication between an application
program and the computer's operating system (the IBM OS 390 MVS
Operating System).
• What Can I Do With JCL?
– Submit a job to the operating system
– Request resources needed to run the job
– Control the system’s processing of the job
• What is needed to Write JCL?
– Access to the IBM mainframe computer
– A valid TSO user ID
4
5. What is a Job?
• Job is something that you want to accomplish with the aid
of a mainframe
• Examples
Copy a data set
Execute a program
Process multiple job steps.
5
6. Functions of JCL
• It identifies your Job to the system.
• It describes the Job’s requirements.
• It directs the execution of the program(s)
• It describes the devices(readers,printers etc.) and
resources(datasets) needed by the program(s).
• JCL statements provide information that the operating
system needs to execute a job
6
7. JCL Statement Format
• Job Control Language (JCL) is very precise.
• It has specific rules of grammar and syntax that must be
followed.
• Must not contain any irregularities.
• The JCL will be rejected if it contains typographical
errors (including extra or missing spaces or commas),
fields in the wrong order, etc.
• JCL and JES2 statements (except for comments) must not
contain lower case letters.
7
8. JCL Statement Types
• JOB STATEMENT :
Provides accounting information as well as job name to
each job.
• EXEC STATEMENT:
Calls specified program or procedure for execution.
• DD STATEMENT:
Provides details about the various resources used by the
program.
8
9. JCL Statement Types
• COMMENT STATEMENT:
The comment statement contains comments. It is used
primarily to document a program and its resource
requirements.
• DELIMITER STATEMENT:
The delimiter statement signifies the end of a job step or
end of data.
• NULL STATEMENT:
The null statement signifies the end of a job.
9
10. JCL Statement Fields
Each Job Statement is logically divided into:
Identifier Field
Name Field
Operation Field
Parameter Field
Comment Field
10
11. JCL Statement Fields(contd..)
//L110 JOB (00124,'MONTHLY STATISTICS'),
// CLASS=P,MSGCLASS=P,REGION=0M
//LST11008 EXEC PGM=TEST
//LST11018 EXEC LST11018,ENV=IPHP,UNITCT=CART,CTL=IPHP,
// UNITDA=PRODDA
//SYSIN DD *
//SYSPRINT DD SYSOUT=*
11
Identifier
field
Name
field
Operation
field
Parameter
field
12. JCL Statement Fields
– Identifier Field
Indicates to the system that a statement is a JCL
statement rather than data.
The identifier field is located in columns 1, 2 and 3
Indicates if it is a JCL statement , delimiter statement or a
comment statement
// indicates it is a JCL statement
/* indicates it is a delimiter statement
//* indicates it is a Comment statement
12
//JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
13. JCL Statement Fields
– Name Field
The name field associates a name with the JCL statement
so that the system can refer to it.
For JCL statements, code the name as follows:
The name must begin in column 3.
The name is 1 through 8 alphanumeric or special ($,
#, @) characters.
The first character must be an alphabet or special
character ($, #, @).
The name must be followed by at least one blank.
13
//JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
14. JCL Statement Fields
- Operation Field
The operation field specifies the statement function.
Code the operation field as follows:
The operation field follows the name field.
The operation field must be preceded and followed
by at least one blank.
The Operation field is required and begins anywhere
in columns 4 through 15.
14
//JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
15. JCL Statement Fields
– Parameter Field
• The parameter field, also sometimes referred to as the
operand field
• The Operand Field provides details and instructions
necessary for the system to perform the job. It is composed of
one or more parameters, separated by commas.
• There are positional parameters, which appear in a specific
order, and keyword parameters, which are of the form
KEYWORD=VALUE.
15 //JOB1 JOB (A189), ‘C RANADE’,CLASS=A,PRTY=6
16. JCL Statement Fields
– Comments Field
The comments field contains any information you seem
helpful when you code the control statement. Code the
comments field as follows:
The comments field follows the parameter field.
The comments field must be preceded by at least
one blank and ends in column 71.
You can code comments after the parameter field
even though you continue the parameter field on
a subsequent statement
16
//STEP001 EXEC PGM=PROGRAM1 => NEW PGM
//INPUT1 DD DSN=INFILE,DISP=SHR
//REPORT1 DD SYSOUT=*
17. JOB statement
• The Job statement names a job, supplies accounting
and billing information, and supplies options to
control processing of the job.
• The JOB statement is always your first JCL
statement. It signals the beginning of a job and the
end of any previous job and assigns a name to your
job.
//L116 JOB (00124,‘PROGRAMMER NAME'),
// CLASS=J,MSGCLASS=Z,REGION=0M,MSGLEVEL=(0,0),
// NOTIFY=SYSID,TIME=(2,30),TYPRUN=SCAN,RESTART=STEP2
• The JOB card requires
– the Job name, which appears on the header page of your output,
– the word JOB in the Operation field,
– the accounting information for your job,
– the programmer's name.
17
18. Positional Parameters
on the Job Card
Positional parameter must precede the keyword
parameters.
Job Accounting information parameter
identifies the account number which will be billed
for the CPU time utilized on the mainframe
Syntax
(account-number,additional-accounting-information)
//JOB1 JOB (A189,DEPT1)
19. Positional Parameters
on the Job Card
Programmer-Name parameter
Name
Information related to the job being submitted
The PROGRAMMER name can be a maximum of 20
characters.
//JOB1 JOB (A189),SUNIL
20. Keyword Parameters
on the Job Card
• Must follow positional parameter
• Can be coded in any order
CLASS
PRTY
MSGCLASS
MSGLEVEL
REGION
TYPRUN
20
21. CLASS parameter
The CLASS parameter is used to assign your job to a job
processing class. The CLASS parameter specifies the class in
which the job will be run and it depends on the characteristics
of Job.
CLASS=n where n varies from A-Z or from 0-9.
If one does not specify the CLASS parameter the installation
establishes a default CLASS.
21
//JOB1 JOB (A189),SUNIL,CLASS=K
22. PRTY parameter
The PRTY parameter is related to the CLASS parameter
It assigns priority to jobs which belong to the same class
PRTY=priority
Priority is a number between 0 to 14, or 0 to 15
The job with a higher number takes precedence over a job
with a lower number
A job with priority 10 will run before a job with priority 3.
22
//JOB1 JOB (A189),SUNIL,CLASS=8,PRTY=6
//JOB2 JOB (B189),SUNIL,CLASS=8,PRTY=9
23. The MSGCLASS Parameter
The MSGCLASS parameter assigns the job log for a job to a
particular sysout output class. MSGCLASS specifies the
default print class for all output data sets generated by the
job.
MSGCLASS = n, where n is any value from A – Z or from
0 – 9. If omitted, the default MSGCLASS=A (Printer) is set
by the installation. The job log contains the JOB statement,
the JCL for the job, JCL processing messages, in-stream
and cataloged procedure statements, and JES2 messages
and MVS operator messages, if any.
23
MSGCLASS parameter
//JOB1 JOB (A189),SUNIL,CLASS=8,PRTY=6,MSGCLASS=A
24. MSGLEVEL Parameter
The MSGLEVEL parameter is used to controls the
amount of system messages generated for a Job.
The following job log elements can be controlled:
– Log messages indicating the job name, user name etc
routed to output device
– JCL statements comprising that job are output
– Messages related to execution of the job will be
output
– The output of the program being executed is output
24
MSGLEVEL=(statements, messages)
//JOB1 JOB (A189),MSGLEVEL=(1,1)
25. • Values for 'statements' in the MSGLEVEL
keyword can be one of these:
– 0 – Print only JOB statements
– 1 – Print all JCL and JES statements & messages
– 2 – Print only input JCL statements
• Values for 'messages' in the MSGLEVEL
keyword can be one of these:
– 0 – will result in only allocation/termination messages being output
if the job terminates abnormally
The system prints only JCL messages. It prints JES and operator
messages only if the job abnormally terminates, and prints SMS
messages only if SMS fails the job.
– 1 – will result in all allocation/termination message being output
regardless of whether the job terminates normally or abnormally
• Default value is (1,1)
25
MSGLEVEL Parameter
26. The JCL output for a batch job or any piece of work handled by JES2
or JES3 is a collection of three data sets. These three data sets (in the
order they appear in the output) are:
JES JOB LOG (JESMSGLG)
STATEMENT IMAGES (JESJCL)
SYSTEM MESSAGES (JESYSMSG)
Statements
Indicates which job control statements the system is to print in the
statement images portion of the JCL output. This subparameter is
one of the following numbers:
0 : The system prints the JOB statement and all comments and JCL
statements up to the first EXEC statement.
1 : The system prints all JCL statements, JES2 or JES3 control
statements, the procedure statements, and IEF653I messages, which
give the values assigned to symbolic parameters in the procedure
statements.
2 : The system prints only JCL statements and JES2 or JES3 control
statements.
26
MSGLEVEL Parameter
27. • Messages
Indicates which messages the system is to
print in the system messages portion of the JCL
output.
This subparameter is one of the following
numbers:
0 : The system prints only JCL messages. It
prints JES and operator messages only if the job
abnormally terminates, and prints SMS
messages only if SMS fails the job.
1 : The system prints JCL, JES, operator, and
SMS messages.27
MSGLEVEL Parameter
29. REGION parameter
• REGION: The REGION parameter specifies the
amount of computer memory allocated for your
job. If the REGION parameter is omitted, the
system uses a default region size set by the
installation.
• Syntax:
– REGION [.procstepname ]={valueK} / {valueM} = 0M
valueK Specifies the required storage in kilobytes
valueM Specifies the required storage in megabytes
– A JOB statement REGION parameter applies to all steps of the job and
overrides any EXEC statement REGION parameters.
• REGION=0K or REGION=0M
The above mentioned parameters allows the
program to request the largest available region
size.29
30. TYPRUN parameter
• The TYPRUN parameter is used to specify a special type
of job processing, such as whether a job is to be held
until it is released, and whether its execution
is to be suppressed altogether
• Syntax
TYPRUN=HOLD
or
TYPRUN=SCAN
30
31. TYPRUN parameter
• TYPRUN=HOLD
//JOB1 JOB (A123),’RANADE’,TYPRUN=HOLD
In this example, JOB1 will be held until it is released by
the operator
• TYPRUN=SCAN
//JOB1 JOB (A123),’RANADE’,TYPRUN=SCAN
In this example, the JCL will be checked for syntax
errors
31
32. NOTIFY Parameter
• NOTIFY: This parameter notifies TSO session of the
completion of a job. The message to the TSO terminal
indicates whether the job was cancelled or ABENDed.
• On your JCL JOB card, use the NOTIFY parameter as follows:
– //jobname JOB (accounting info,'description',)
// NOTIFY=userid where userid is 1 through 7
alphanumeric characters and must be valid one.
– NOTE: If you are logged on at the time the job completes,
the message will appear immediately. If not, the message
will appear the next time you begin a TSO session.
32
//JOB1 JOB (A123),’RANADE’,NOTIFY=ABCDEFG
33. TIME parameter
• The TIME parameter specifies the maximum CPU time
allocated for a job. If a job uses less than the amount
specified, then the account is billed only for the time used.
If a job tries to use more time than the maximum specified,
the job will terminate with an S322 ABEND. The TIME
parameter has two positional subparameters, minute and
second.
TIME=(min,sec) or TIME=min or TIME=(,sec)
The time parameter on the job card does not override
the step parameter.
33
34. • TIME=NOLIMIT or TIME=1440 – Indicates that the Job
can use the processor for the unlimited period of time.(
ie : 24 hrs)
• TIME=MAXIMUM – Indicates that the Job can use the
processor for the maximum amount of time ie: 357912
mins.(248.55 days)
34
TIME parameter
35. • TIME parameter coded on both Job and Exec
//JOB1 JOB (A123),’LITTLE
STEVIE’,TIME=12
//STEP1 EXEC
PGM=PROGRAM1,TIME=4
//STEP2 EXEC
PGM=PROGRAM2,TIME=4
//STEP3 EXEC
PGM=PROGRAM3,TIME=4
35
TIME parameter
36. RESTART Parameter
• . RESTART :
– It specifies the new starting step for a Job.
• RESTART=STEP2 – starts from the STEP2
• RESTART=Procname. Stepname – starts from the a step within a cataloged
procedure
• RESTART=* - starts from the first step.
• Note: Datasets created in or after restarted step of
previous run may still exist and should be deleted first
• RESTART=Y or RESTART=N
The restart parameter is used to restart a job if it
terminates abnormally. Setting RESTART to Y results
in the job being restarted from scratch. Setting it to N
results in the job being started from the step at which
it is terminated
36
37. EXEC
• EXEC (execute) statement is used to name the program
to be executed or invokes cataloged or in-stream
procedure that the job is to execute
• The EXEC statement marks the beginning of each step in
a job or a procedure.
• A job can have a maximum of 255 EXEC statements
Syntax
//stepname EXEC PGM=program-name,keyword parameters
37
39. EXEC statement Fields
• Name field:
– It must be unique within the job.
– The stepname must begin in column 3.
– It can contain max of 8 alphanumeric or national
characters
– The first character must be a alphabet.
• Operation Field:
– This field consists of characters EXEC and can start in
any column.
– The word EXEC must be preceded and followed by a
blank.
39
40. EXEC statement Fields
• Parameter field:
EXEC statement has 2 types of parameter fields.
– Positional Parameter Field
– Keyword Parameter Field.
• Comment field:
The comments field follows the parameter field after at
least one intervening blank.
40
41. Positional Parameter field
• The two positional parameter of EXEC
statements are:
– PGM
• It refers to a program name
• The program name must be 8 characters long.
– PROC or Procedure name
• It refers to procedure name.
41
42. PGM Parameter
• PGM parameter:
– It is used to name the program that the system is
to execute.
– Coded as first parameter in EXEC statement.
• The specified program must be a load member of a
partitioned data set (PDS) used as a system library, a
private library, or a temporary library.
• PGM=program-name
– Program name specifies the member name of the
program to be executed.
42
44. PROC Parameter
• Grouping JCL statements together and giving them a
name
• PROC parameter is used to specify that the system is to
call and execute a cataloged or in-stream procedure.
• Syntax
– {PROC=procedure-name} or {procedure-name}
• procedure-name Identifies the procedure to be called and
executed:
• The name on the PROC statement that begins an in-stream
procedure. The in-stream procedure must appear earlier in
this job.
• Not more than 255 job steps can be coded in one
procedure
44
46. PROC - Types
• Cataloged procedure
Grouping JCL statements together, giving them
a name, and recording the name as a partitioned
data set
• In-Stream Procedure
Grouping JCL statements together and making
them a part of the JCL input stream
46
47. IN-STREAM PROC
• An in-stream procedure is different in that they
are not members of partitioned datasets.
• They are included in input stream of job itself.
• Rules for coding IN-STREAM PROC’s
– They must begin with PROC statement
– They end with PEND statement
– They must be coded immediately after JOB statement
& before first EXEC statement
– No more than 15 in-stream procedures can be coded
in a Job
47
48. IN-STREAM PROC(contd..)
//JOB1 JOB (A123),NAME
//INST1 PROC
//STEP1 EXEC PGM=PROGRAM1
//DD1 DD DSN=FILE1,DISP=SHR
//STEP2 EXEC PGM=PROGRAM1
//DD2 DD DSN=FILE2,DISP=DHR
// PEND
//STEP3 EXEC INST1
The EXEC statements between PROC & PEND statements are
not executed when they are first encountered in the Job Stream,
but they are saved as a procedure so that they can be executed
later. It is executed when the EXEC statement mentioning the
IN-STREAM procedure is encountered.
48
49. Cataloged procedures
• A cataloged procedure is a set of job control statements
that are grouped together, given a name and then
recorded as a member of a partitioned dataset.
• Rules for coding cataloged proc
They must begin with PROC statement
PEND statement is not required
The procedure name must be unique within the
procedure library.
Once the procedure has been created and tested, it can
be catalogued and placed inside a system or user defined
library
49
51. Catalogued vs
In stream procedure• Cataloged procedures are members of PDS and remain
there until they are deleted. In stream procedures are not
members of PDS, and exist only for the duration of the
job
• PROC statement is mandatory in both procedures
• PEND statement cannot not coded in catalogued
procedures
51
52. Keyword Parameters
of EXEC statement
• Must follow positional parameters.
• Can be coded in any sequence
• The keyword parameter coded in a jobstep
will apply only to that step
• Keyword parameters
– ACCT
– PARM
– ADDRSPC
– DPRTY
– COND
– REGION
– TIME
52
53. ACCT
• Used to supply accounting information for the job step
that it is used in
• Syntax
ACCT=account-information
• Account information can contain more than one sub
parameter
• Max number of characters that can be included in
accounting information including commas is 142
• Ex
//STEP1 EXEC PGM=PROGRAM1,ACCT=(A123,RR)
53
54. ADDRSPC
• ADDRSPC –(Address Space) Indicates the type of storage for the
present step.
– This parameter cannot override the specific type of storage coded in
the job statement but can override the system default.
– Syntax=ADDRSPC[procstepname]={VIRT/REAL}
• VIRT - requests virtual storage. The system can page the job
step.
• REAL - requests real storage. The system cannot page the job
step and must place the job step in central storage.
• The system uses the EXEC statement ADDRSPC parameter only
when no ADDRSPC parameter is on the job statement.
– Example
• //CAC1 EXEC PGM=A,ADDRSPC=VIRT
• //CAC2 EXEC PROC=B,ADDRSPC=REAL,REGION=8K
54
55. DPRTY
• Assign a dispatching priority to the job step to
determine the order in which the tasks are to be
executed
• Syntax
DRPTY=(value1, value2)
value1 => 0-15 specifies the priority of the jobstep
higher the number higher the prioirty
value2 => 0-15
DPRTY=(value1)*(16) + value2
• Exa
//JOB1 JOB (A123),’RANANDE’
//STEP1 EXEC PGM=PROGRAM1,DPRTY(12,9)
Priority in STEP1 is determined as
(12*16) + 9 = 192 + 9 = 201
55
56. COND Parameter
• COND: This parameter is used to test the return codes
from previous job steps in order to determine if the
present step is to be executed or bypassed.
• Syntax= COND[.procstepname]=(code, relational
operator,[step name])
If the condition is false, then the step will get executed
and if the condition is true, the step will be bypassed.
E.g. COND=(30,LE)
56
57. Condition Codes
• Condition codes can range from 0 to 4095.
Common condition codes are:
– 0 no errors or warnings detected
– 4 possible error (warning) detected but execution is possible.
– 8 serious error detected, likely to fail.
– 12 severe error detected, execution impossible.
– 16 terminal error, execution cannot continue
• The condition parameter coded on the JOB statement applies
to all the job steps within the job, and it overrides COND parameters
coded on the EXEC statement, if they exist.
• The relational operators that can be used are GT, GE, LT, LE, EQ &
NE.
57
59. COND in EXEC statement
• The COND parameter coded on the EXEC statement applies
only to the step that it is coded in. The job step is executed or
bypassed depending upon the condition codes issues by one
or more prior job steps
• Syntax
COND=(comparison-code,condition,stepname,ONLY)
• Stepname : specifies the name of the preceding step whose
return code is to be checked.
• If COND=EVEN executes the Jobstep whether or not the
previous step has abended.
• COND=ONLY is used for steps that perform recovery
processing that should be invoked only in the event of an
abend. It helps to execute the Jobstep only if a previous step
has abended.
59
62. PARM Parameter
• PARM : Passes control information to the job
step when the step is initiated.
• This is useful for passing runtime
information to an application program
• Syntax
PARM[procstepname]= information.
• Information can be of 100 characters.
Examples
//STEP1 EXEC PGM=PROGRAM1,PARM=‘M’
LINKAGE SECTION.
01 PARM-FIELD.
05 PARM-LENGTH PIC S9(04) COMP.
05 PARM-RUN-TYPE PIC X(01).
62
63. PARM Parameter(Examples)
• The system passes P1,123,P2=5 to the processing
program named APG22.
RUN3 EXEC PGM=APG22,PARM='P1,123,P2=5‘
• The system passes MT5 to the first step of the procedure
named PROC81. If PROC81 contains more steps and
their EXEC statements contain PARM parameters, the
system nullifies those PARM parameters.
ABCDEF EXEC PROC81,PARM=MT5
63
64. REGION Parameter
• Region
– This parameter is used to specify the amount of central or
virtual storage that the steps requires(inclusive of the
storage for all the programs in the step to be executed.)
• Syntax:
– REGION [.procstepname ]={valueK}
{valueM}
– valueK Specifies the required storage in kilobytes
– valueM Specifies the required storage in megabytes
– A JOB statement REGION parameter applies to all steps of
the job and overrides any EXEC statement REGION
parameters.
64
66. Time Parameter
• TIME parameter is used to specify the maximum
amount of time that a job step may use the
processor or to find out through messages how
much processor time a step used.
• You can use the TIME parameter on an EXEC
statement to increase or decrease the amount of
processor time available to a job step over the
default value.
• TIME [.procstepname ]= {([minutes ][,seconds ])}
{1440 }
{NOLIMIT }
{MAXIMUM }
66
68. DD STATEMENT
• DD (data definition) statement is used to convey information
about the data that will be read or written within Job.
• Syntax:
– //ELECSTD DD DSN=PSET.CDRS.SAS.CDRS341.ELECSTD.FLATFILE,
– // DISP=SHR
• The DD statement must immediately follow the EXEC
statement
• The DD statement consists of the characters // in columns 1
and 2 and four fields: name, operation (DD), parameter, and
comments.
• A DD statement is required for each data set.
• Each ddname should be unique within the job step.
• The ddname is 1 through 8 alphanumeric or national ($, #, @)
characters.
• The first character must be alphabetic or national ($, #, @).
• The ddname must be followed by at least one blank.68
69. DD Statement Fields
• Name field:
Each ddname should be unique within the job step.
• Operation Field:
The operation field consists of the characters DD and must be
preceded and followed by at least one blank. It can begin in
any column.
• Comments Field:
The comments field follows the parameter field after at least
one intervening blank.
• Parameter Field:
A DD statement has two kinds of parameters: positional and
keyword.
69
71. Positional Parameters
of DD statements
• May be coded in the operands field.
• Positional Parameters
– *
– DATA
– DUMMY
71
72. Positional Parameters
of DD statements
• * specifies that data follows immediately; no keyword
parameters may follow. The data may not contain any
records beginning with // or /*.
– A cataloged or in-stream procedure cannot contain a
DD * statement.
//JOB1 JOB A100,JOHN
//STEP1 EXEC PGM=PROGRAM1
//SYSIN DD *
< Lines of data>
/*
72
73. Positional Parameters
of DD statements
• DATA : specifies that data follows immediately;
keyword parameters may follow the DATA positional
parameter.
• DUMMY : specifies that if the file is an output file, the
output is to be discarded. If the file is an input file, it
specifies that there is no data.
• Example
– //MYDS DD DSNAME=REPORT
– //A DD DSNAME=FILE
73
74. Temporary vs Permanent dataset
• A temporary data set is a data set that you create
and delete within a job. When you use DSNAME
for a temporary data set, code the name as two
ampersands (&&) followed by a character string 1
to 8 characters in length
&&dsname Specifies the name of a temporary data set.
• Example
//JOB1 JOB A123,’JOE HARRY’
//STEP1 EXEC PGM=PROGRAM1
//DATA1 DD DSN=&&TEMPDATA
• A permanent data set is not deleted after a job
completion and may be catalogued, if requested.
//JOB1 JOB A123,’JOE HARRY’
//STEP1 EXEC PGM=PROGRAM1
//DATA1 DD DSN=USER.TEST.REVENUE.FILE,DISP=SHR
74
75. DUMMY/NULL FILE
• Data Set Name for Dummy Data Set :
– NULLFILE
– Specifies a dummy data set. NULLFILE has the same
effect as coding the DD DUMMY parameter.
NULLFILE must be coded as a single-word
parameter.
75
76. Keyword Parameters
of DD statement
• Keyword parameters must follow the positional
parameters if both are coded
76
Syntax
//ddname DD DSN=data_set_name,
DISP=(status,normal_disposition,abnormal_disposition
)
DSN
DISP
UNIT
SPACE
DCB
VOLUME
77. DISP Parameter
• Used to instruct the system as to the current status
of a data set
• It also indicates the steps to be taken with the
dataset upon successful or unsuccessful execution
of a Job
• Syntax DISP=(status,normal-disposition,abnormal-
disposition)
• status - indicates current status of dataset
– NEW – the dataset does not exist and should be created
– OLD – the dataset exists and should be allocated for exclusive use
– SHR – the dataset exists and should be allocated for shared use
– MOD – the dataset is allocated for exclusive use and is positioned at the end
of the data, so additional records may be added after last record
77
78. DISP Parameter
• normal-disposition –
specifies how the dataset is to disposed
upon normal execution of job
– DELETE – the dataset is deleted . If the dataset was retrieved from
catalog, it is also uncataloged
– KEEP – the dataset is retained
– CATLG – the dataset is retained and catalog entry is made
– UNCATLG – the dataset is retained but it’s catalog entry remove
– PASS – Normal disposition only. The dataset is retained for use by
a later job step
78
79. DISP Parameter
• abnormal-disposition –
specifies how the dataset is to be disposed
upon abnormal execution of job
– DELETE – the dataset is deleted . If the dataset was retrieved from
catalog, it is also uncataloged
– KEEP – the dataset is retained
– CATLG – the dataset is retained and catalog entry is made
– UNCATLG – the dataset is retained but it’s catalog entry remove
79
80. DISP Parameter
• Default values for DISP parameter
If status subparameter is omitted MVS assumes it as
NEW
If normal-disposition subparameter is omitted the
default depends on the status subparameter
If status subparameter is NEW the normal
disposition subparameter is DELETE else KEEP
If abnormal disposition subparameter is omitted it
takes whatever value specified in normal disposition
subparameter
80
81. DISP Parameter
DISP=SHR
Allocates an existing dataset for shared access, normal and
abnormal disposition parameter default is KEEP
• DISP=OLD
Allocates an existing dataset for exclusive access, normal and
abnormal disposition default set to KEEP
• DISP=MOD
If dataset exists, extend it else create it. The access is exclusive,
normal and abnormal disposition default is set to KEEP
• DISP=(NEW,CATLG)
Allocates a new dataset and catalogs it, abnormal disposition
set to CATLG
81
82. DISP Parameter
• DISP=(OLD,DELETE)
Allocates and existing dataset and deletes it , abnormal
disposition set to DELETE
• DISP=(,KEEP,DELETE)
Allocates a new dataset and keeps it if job step ends
normally, if job step ends abnormally the dataset is
deleted
• DISP=(NEW,CATLG,DELETE)
The dataset is created, cataloged if the job step ends
normally and deletes it if job step ends abnormally
82
83. UNIT Parameter
• UNIT : specifies whether the dataset is to reside on disk
or tape; device can be DISK for disk datasets, TAPE for
cartridge tape datasets, or REEL for reel (round) tape
datasets.
• UNIT= [device_address]
//JOB1 JOB A123,’NAME’
//STEP1 EXEC PGM=PGM1
//DATA1 DD DSN=FILE1,
// UNIT=S04
• UNIT= [device_type]
//JOB1 JOB A123,’NAME’
//STEP1 EXEC PGM=PGM2
//DATA1 DD DSN=FILE2,
// UNIT=3390
83
86. VOLUME Parameter
• VOL parameter
– Specifies the volume on which the dataset resides; name is either
a disk pack or a tape name.
– This parameter can be omitted for an existing catalogued data
set.
• VOL=SER
– This is used to request specific volumes
• //JOB1 JOB D12,’GIREESH’
• //STEP1 EXEC PGM=PGM1
• //NAME1 DD DSN=DATA1,
• // VOL=SER=23456
• VOL=REF subparameter
– This is used to specify a volume which has been previously
defined within same Job, but not in current step
– VOL=REF=*.referback
86
88. SPACE Parameter
• Space parameter:
– Used to specify the storage requirements on direct access devices
– Syntax SPACE=
(CYL,(primary,secondary,directory),RLSE)
– =
(TRK,(primary,secondary,directory),RLSE)
– =
(BLK,(primary,secondary,directory),RLSE)
– Primary – specifies how many units of space to allocate for
the dataset’s primary extents.
– Secondary – if the file requires space more than what is
allocated in primary extent, secondary extents can be used
to allocate upto 15 times the primary extents
– Directory – this is used only for partitioned datasets
• this is used to record the names and locations of members
created within partitioned datasets
• It should be a number that specifies how many 256-byte blocks
are to be contained in the directory of a PDS88
89. SPACE Parameter
• RLSE –
specifies that any unused space is to be released when
the job step is finished with the data set.
– This parameter is optional; it should be coded for
sequential data sets only.
Example
– SPACE=(TRK,(20,5),RLSE)
– The maximum space that could be allocated is: 20 +
5(15) = 95 tracks.
89
90. DCB Parameter
• The DCB parameter contains the information necessary to complete the
data control block.
• Syntax
DCB=(RECFM=format,LRECL=record-length,
BLKSIZE=block-size)
//DD1A DD DSNAME=EVER,
// DISP=(NEW,KEEP),
// UNIT=SYSDA,
//
DCB=(RECFM=FB,LRECL=326,BLKSIZE=23472),
// SPACE =(TRK,(20,5),RLSE)
90
91. DCB Parameter
• Important subparameters of DCB parameter:
• BLKSIZE : specifies the number of bytes (characters) per
block,where b is a multiple of the LRECL.
• LRECL : specifies the logical record length (n) for fixed
or variable length records; omit LRECL for records of
undefined length.
91
92. DCB Parameter
• RECFM : specifies the record format. Common values
for RECFM are
– U for undefined-length records,
– V or VB for variable-length or variable-blocked
records,
– F or FB for fixed-length or fixed-blocked records, and
– FA, FBA, or VBA for fixed, fixed-blocked, or variable-
blocked records with a printer control character as the
first byte of data.
92
93. SYSOUT Parameter
• SYSOUT :
– Specifies one character output class associated with
SYSOUT dataset
– Syntax SYSOUT=class
– If SYSOUT=* then output class specified in
MSGCLASS parameter of JOB statement is used
– Routes the system output to the class associated with
output device indicated
– class can be any alphanumeric character from A – Z,
0 – 9 or *
93
94. JOBLIB DD Statement
• JOBLIB statement:
– Identifies a private library that the system is to search for
the program named in each EXEC statement PGM
parameter in the job.
– Only if the system does not find the program in the private
library, does it search system libraries.
– Syntax //JOBLIB DD parameter [,parameter ]...[comments
]
• We can concatenate job libraries
• Do not include a JOBLIB DD statement in an in-stream or
cataloged procedure.
94
96. STEPLIB DD Statement
• Use the STEPLIB DD statement to
– Syntax //STEPLIB DD parameter [,parameter
]...[comments ]
– Overriding a JOBLIB
• If the system lib is defined in a STEPLIB DD statement then
the system will ignore the JOBLIB DD statement for that
step.
96
98. Concatenating Data Sets
• Datasets can be concatenated and perceived together as
one file by coding each applicable dataset name one after
another
• Rules for coding
– Up to 255 sequential datasets and 16 PDS files can be
concatenated together
– The LRECL value must be same for all the datasets.
– All datasets concatenated together must have the same type of
record format
– All datasets concatenated together must exist in the same type of
device
– The dataset which has the largest bulksize must be given first.
98
99. Concatenating Data Sets
If tape datasets are concatenated datasets together, then
block size of the first dataset must be larger than or
equal to, that of the subsequent dataset
A PS cannot be concatenated with PDS.
Sample JCL
//JOB1 JOB 001,’AL’
//STEP1 EXEC PFM=CONCAT1
//DATA1 DD DSN=FILE1
// DD DSN=FILE2
// DD DSN=FILE3
– Here the files FILE1,FILE2 & FILE3 are concatenated
together.
99
100. Referring Back of Datasets
• A referback is a reference to an earlier DD statement in
the job or in a catalogued or in-stream procedure called
by a job step.
• A referback is in the form of *.ddname or
*.stepname.ddname or
*stepname.procstepname.ddname.
//INPUT DD DSN=*.STEP1.OUTPUT
//OUTPUT DD DSN=CLASS.FILE,DCB=*STEP1.OUT1
100
101. JCLLIB statement
• JCLLIB statement is used to identify the names of the
private libraries that the system uses for the job.
• Syntax
• //[name ]JCLLIB ORDER=(library [,library
]...)[comments ]
• The private libraries that you specify on the JCLLIB
statement must comply with following rules:
– The private library must be cataloged.
– The private library must be accessible to the job.
• JCLLIB statement should be coded after JOB statement
and before first exec statement.
• //JCLLIB DD DSN=MMA2.PROCLIB,DISP=SHR
101
102. Utilities
• IEBGENER
Copy sequential files
• IEBCOPY
Copy partitioned data sets
Compress partitioned data sets
• IEFBR14
Null program commonly used for creation, deletion or
updating a dataset with out having to execute any
specific datasets
102
103. GDG – Generation Data Groups
• These are groups of datasets that are related to each
other chronologically and functionally
• Index
– NAME
– LIMIT
– EMPTY/NOEMPTY
– SCRATCH/NOSCRATH
103
104. How to define a GDG index
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DEFINE GDG(NAME(FINANCES.MONTHLY)-
LIMIT(5) -
NOEMPTY -
SCRATCH)
/*
//
104
105. How to define a GDG index
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DEFINE GDG(NAME(FINANCES.MONTHLY)-
LIMIT(5) -
NOEMPTY -
SCRATCH)
/*
//
105
107. Deleting a GDG
Deleting a GDG dataset
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IEFBR14
//DEL1 DD DSN=FINANCES.MONTHLY(0),
// DISP=(OLD,DELETE,DELETE)
Deleting a GDG INDEX
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DELETE(FINANCES.MONTHLY)GDG
/*
107
108. Deleting a GDG
Deleting a GDG INDEX Using FORCE
//JOB1 JOB (A123),’TEST JOB’
//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DELETE(FINANCES.MONTHLY)GDG FORCE
/*
108
110. Utilities – SORT
TO COPY ALL THE RECORDS FROM INPUT FILE TO OUTPUT FILE
SORT FIELDS=COPY
TO COPY THOSE RECORDS WHICH SATISFY A PARTICULAR
CONDITION.
INCLUDE COND=(38,10,CH,EQ,C'57071509',OR,36,10,CH,EQ,C' 57105779')
TO OMIT THOSE RECORDS WHICH SATISFY A PARTICULAR
CONDITION.
OMIT COND=(19,1,CH,EQ,C'S',OR,19,1,CH,EQ,C'S')
TO SKIP CERTAIN NO OF RECORDS
SORT FIELDS=COPY,SKIPREC=1000
TO STOP AFTER COPYING CERTAIN NO OF RECORDS
SORT FIELDS=COPY,STOPAFT=5000
110
111. Utilities – SORT
SKIPREC AND STOPREC CAN BE USED IN COMBINATION
SORT FIELDS=COPY,SKIPREC=1000,STOPAFT=5000
111
113. Common Abend Codes
Code Description
SOC4 Subscript being out of range
SOC7 Caused by bad data, which the program was unable
to detect
S222 Caused by the job being cancelled by the operator
SB37 Caused by lack of sufficient secondary space
SE37 Caused by lack of space for PDS
SD37 Caused by lack of sufficient primary space
113