Skip to main content
Software Engineering Services
Technology ServicesLegacy SystemsIBM MainframeVirginia · US-Based

JCL Development

We write, review, tune, and maintain JCL job streams for IBM mainframe environments. From simple utility jobs to complex multi-step production streams with checkpoint/restart and output routing, we work in the batch environment your operations team runs every night.

JCLIBM z/OSJES2JES3DFSORTIEBGENERIDCAMSTWS / CA7

Capabilities

What we do with JCL

New batch streams

Job Stream Design

New JCL job streams designed from step definition through output disposition, with proper COND parameter handling, step sequencing, and restart/recovery built in from the start.

Recovery design

Checkpoint and Restart

Adding checkpoint/restart logic to long-running jobs so that a failure mid-stream does not require reprocessing from the beginning, reducing batch window exposure.

Space · Datasets

DASD and Storage Management

Dataset allocation, space calculation, GDG management, and tape handling procedures that work within your SMS policies and storage management hierarchy.

SYSOUT · Distribution

Output Routing

Output class configuration, SYSOUT routing, and report distribution through JES spool, email gateways, or external output management systems.

Cleanup · Consolidation

Job Stream Modernization

Reviewing and consolidating job streams that have accumulated over years, removing redundant steps, correcting outdated coding practices, and improving maintainability.

TWS · CA7 · ESP

Scheduler Integration

Integrating JCL job streams with workload automation schedulers, defining dependencies, setting up calendars, and configuring job completion notifications.

Our approach

Understand the batch window first

JCL exists in the context of a production batch schedule. Before writing or changing a single step, we map the job's dependencies: what it receives from upstream jobs, what it produces for downstream jobs, and where it falls in the nightly window. Changes that save ten seconds of CPU but push the window by thirty minutes are not improvements.

Write for operations, not just for execution

A JCL job stream that executes correctly but fails silently or produces cryptic ABEND codes is a support problem. We write jobs with clear step names, meaningful SYSOUT classes, and restart documentation so that the operations team can handle a failure at 2 AM without escalation.

SORT and utility optimization

DFSORT is one of the most performance-critical utilities in a mainframe batch environment. We write SORT control statements that minimize I/O and elapsed time, and we know when to use JOINKEYS, MERGE, and OUTREC versus writing a custom COBOL program for the same task.

Testing before production

We test JCL in a development or staging environment with representative data volumes before any job touches production. For jobs that process large datasets, we validate elapsed time and resource consumption against the batch window before the first production run.

jcl_spec.json
platform: [
"IBM z/OS",
"JES2",
"JES3"
]
utilities: [
"DFSORT",
"IDCAMS",
"IEBGENER",
"IEBCOPY"
]
schedulers: [
"TWS",
"CA7",
"ESP"
]
storage: [
"SMS",
"DASD",
"Tape",
"GDG"
]
language: [
"JCL",
"REXX",
"CLIST"
]
engineering: [
"Virginia, United States"
]

All engineering work is done by US-based engineers. We do not offshore any development or architecture work.

Part of our software engineering services. We work across the full stack, cloud platforms, and architectural patterns.

FAQ

Common questions

Virginia · United States

Need JCL expertise?

If you have a batch stream that needs new development, tuning, or review, reach out and we will discuss the requirements before any work begins.