IBM Mainframes
COBOL, JCL, CICS, DB2, VSAM, z/OS & modernization
Prepare for IBM Mainframe interviews with topics on COBOL programming, JCL, CICS transaction processing, DB2, VSAM file systems, z/OS administration, and mainframe modernization strategies.
COBOL12 topics
COBOL Program Structure
Understand the four mandatory divisions that every COBOL program is built from and what belongs in each.
COBOL Data Types: PIC Clauses, COMP and COMP-3
Know how COBOL declares data storage and why COMP-3 packed decimal is the default choice for numeric fields on the mainframe.
File Handling: SEQUENTIAL vs INDEXED Organization
Distinguish sequential and indexed file organizations in COBOL and know which I/O verbs and access modes apply to each.
PERFORM Varieties: THRU, VARYING, UNTIL, and Inline
Master the different forms of PERFORM, COBOL's core control-flow verb for looping and paragraph invocation.
STRING and UNSTRING Verbs
Understand how COBOL concatenates and splits alphanumeric fields without dynamic string types.
EVALUATE Statement
Use EVALUATE as COBOL's structured multi-branch decision construct, equivalent to switch/case but far more flexible.
Copybooks and Shared Data Structures
Explain how copybooks provide shared, reusable record layouts across COBOL programs and why they're central to mainframe maintainability.
Subroutines: CALL, Static vs Dynamic
Distinguish static and dynamic CALL in COBOL and understand the tradeoffs each brings to modularity and deployment.
Tables and OCCURS Clause
Understand how COBOL implements arrays via OCCURS and how INDEXED BY drives efficient table access.
Sorting Internal Tables
Know the techniques for sorting COBOL tables in memory when data must be ordered before further processing.
Condition Names (88-Levels)
Use 88-level condition names to give meaningful names to specific values of a data item and write self-documenting conditional logic.
REDEFINES Clause
Understand how REDEFINES lets multiple data descriptions share the same storage location and why this is both powerful and risky.
JCL10 topics
DD Statements and Dataset Allocation
Understand how DD statements connect a program's logical file references to physical datasets, devices, and allocation parameters.
JCL Procedures (PROCs) and Symbolic Parameters
Understand how cataloged and in-stream PROCs let JCL be templated and reused across jobs via symbolic parameters.
Conditional Step Execution: COND and IF/THEN/ELSE
Control whether a job step executes based on prior step return codes, using both the legacy COND parameter and the more readable IF/THEN/ELSE construct.
Generation Data Groups (GDGs)
Understand how GDGs manage a rolling series of related datasets (like daily extracts) by relative generation number instead of hardcoded names.
Sorting Data with DFSORT
Use DFSORT control statements to sort, merge, copy, and reformat datasets entirely at the JCL/utility level without writing a COBOL program.
Core Utility Programs: IEFBR14, IEBGENER, IDCAMS
Know the purpose of the most commonly used IBM utility programs invoked directly from JCL for allocation, copying, and dataset management.
Checkpoint/Restart and Job Recovery
Understand how long-running batch jobs use checkpoints to resume from a mid-point after failure instead of rerunning from the beginning.
Dataset Disposition (DISP) Deep Dive
Fully understand the three-part DISP parameter — status, normal termination, abnormal termination — and how it governs dataset access and lifecycle.
JOBLIB and STEPLIB: Load Module Search Order
Understand how JOBLIB and STEPLIB direct the system's search for executable load modules and why their scope and precedence matter.
Batch Job Scheduling Fundamentals
Understand how enterprise schedulers trigger, sequence, and monitor batch jobs beyond what raw JCL alone controls.
CICS10 topics
CICS Transaction Processing Fundamentals
Understand what a CICS transaction is, how it differs from a batch job, and why response-time and concurrency demands shape its whole design.
BMS Maps and Screen Handling
Understand how Basic Mapping Support (BMS) separates screen layout from program logic for 3270 terminal interfaces.
COMMAREA for Inter-Program Communication
Understand how COMMAREA passes data between CICS programs and preserves state across pseudo-conversational transaction turns.
Channels and Containers
Understand how channels and containers provide a more flexible, size-unrestricted alternative to COMMAREA for modern CICS program communication.
DB2 Access from CICS Programs
Understand how CICS programs issue SQL against DB2 and how the two transaction managers coordinate commit/rollback across a single unit of work.
Error Handling: HANDLE CONDITION and RESP/NOHANDLE
Understand the two competing styles of CICS error handling and why RESP-based checking has become the modern standard.
Pseudo-Conversational Programming
Understand why CICS programs release control between user screen interactions instead of waiting in memory, and how this shapes state management.
Common EXEC CICS Commands Overview
Build fluency with the everyday EXEC CICS command vocabulary for terminal I/O, file access, and program control.
Temporary Storage and Transient Data Queues
Understand CICS's two queuing mechanisms — temporary storage (TS) queues and transient data (TD) queues — and when each is the right tool.
CICS Transaction Lifecycle and Task Management
Understand how CICS dispatches, manages, and terminates tasks, and how resource contention and abends are handled at the task level.
DB210 topics
SQL Fundamentals for DB2 on z/OS
Understand the baseline SQL skills expected for DB2 z/OS interviews and how embedded SQL differs from ad hoc SQL.
Plans, Packages, and BIND
Understand how embedded SQL becomes an executable access path through the precompile-BIND process, and what plans and packages actually are.
EXPLAIN and Access Path Analysis
Use EXPLAIN to see exactly which access path DB2's optimizer chose for a query and evaluate whether it's actually efficient.
Locking, Isolation Levels, and Deadlocks
Understand DB2's locking model, the practical effect of each isolation level, and how deadlocks arise and get resolved.
DB2 Utilities: REORG, RUNSTATS, LOAD, UNLOAD
Understand the core DB2 maintenance utilities and why they must run on a regular operational cadence for healthy performance.
DB2 Performance Tuning Principles
Bring together indexing, statistics, isolation levels, and SQL-writing discipline into a coherent approach to diagnosing and fixing slow DB2 queries.
Cursors: Static and Dynamic
Understand why COBOL needs cursors to process multi-row SQL result sets and the difference between static and dynamic cursor definitions.
DB2 Stored Procedures
Understand why DB2 stored procedures exist, how they're written and called from COBOL, and what tradeoffs they introduce versus embedded SQL.
DB2 in Batch: Host Variables and SQLCA Deep Dive
Understand the operational patterns specific to batch DB2 programs, including commit frequency, host variable declaration via DCLGEN, and SQLCA fields beyond SQLCODE.
Indexes and Clustering
Understand how DB2 indexes accelerate access, why clustering indexes matter for physical row order, and the tradeoffs of adding indexes.
VSAM6 topics
VSAM KSDS: Key-Sequenced Data Sets
Understand the structure and use of KSDS, the most common VSAM organization, and how its index and data components work together.
VSAM ESDS: Entry-Sequenced Data Sets
Understand ESDS as a VSAM organization for append-only, physical-order storage referenced by relative byte address.
VSAM RRDS: Relative Record Data Sets
Understand RRDS as a VSAM organization providing fast direct access by slot number rather than by content-based key.
IDCAMS: DEFINE CLUSTER and REPRO
Gain hands-on fluency with IDCAMS control statements for defining VSAM clusters and moving data into or out of them.
Alternate Indexes
Understand how alternate indexes let a VSAM base cluster be accessed by a second, non-primary key without duplicating the underlying data.
VSAM File Status Codes and Error Handling
Recognize the most common VSAM FILE STATUS codes returned to COBOL programs and understand the disciplined error-handling patterns built around them.
z/OS7 topics
TSO/ISPF Fundamentals
Understand TSO as the interactive time-sharing interface to z/OS and ISPF as the panel-driven productivity layer built on top of it.
Dataset Organization and Naming Conventions
Understand z/OS dataset naming rules and the major dataset organizations (sequential, PDS/PDSE, VSAM) that shape how data is stored and referenced.
The z/OS Catalog Structure
Understand how the z/OS catalog maps dataset names to their physical volume locations and why catalog integrity matters operationally.
SMS: Storage Management Subsystem
Understand how SMS automates dataset allocation decisions (which volume, which storage class) based on policy rather than manual specification.
RACF and Mainframe Security
Understand how RACF controls authentication and authorization for datasets, resources, and transactions on z/OS.
Batch Job Scheduling and the Enterprise Scheduler Layer
Understand how z/OS's JES subsystem manages job execution alongside how enterprise schedulers layer higher-level dependency and calendar control on top.
z/OS Address Spaces and Memory Fundamentals
Understand how z/OS isolates work into address spaces and manages virtual storage, and why this matters for both stability and performance reasoning.
Modern5 topics
Exposing Mainframe Logic as APIs
Understand the common patterns for exposing decades-old CICS/COBOL business logic as modern REST/JSON APIs without necessarily rewriting it.
Hybrid Architecture: Microservices Alongside z/OS
Understand common hybrid architecture patterns where cloud-native microservices coexist with and depend on core mainframe systems of record.
z/OSMF: z/OS Management Facility
Understand z/OSMF as the modern web-based administration and automation interface layered on top of traditional z/OS system management.
Zowe: Open-Source Mainframe Tooling
Understand Zowe's role as an open-source framework bringing modern CLI, editor, and API tooling to z/OS development.
DevOps and CI/CD for Mainframe
Understand how modern source control, automated build/test pipelines, and CI/CD practices apply to COBOL/JCL development on z/OS.