Открыть сервис

JCL

JCL (Job Control Language — язык управления заданиями) — это язык описания заданий (скриптов) для операционной системы IBM z/OS (и её предшественников OS/360, MVS), предназначенный для управления запуском пакетных (batch) задач в мейнфреймовых средах. JCL определяет, какие программы должны быть выполнены, какие наборы данных (файлы) используются, какие ресурсы системы выделяются, и как обрабатываются ошибки. JCL не является языком программирования общего назначения — это язык управления рабочими потоками, ориентированный на пакетную обработку.

История

JCL был разработан компанией IBM в середине 1960-х годов для операционной системы OS/360, которая стала основой для последующих мейнфреймовых ОС. Первоначально JCL предназначался для описания последовательности шагов (job steps) в пакетных заданиях, где каждый шаг запускал отдельную программу или утилиту. С развитием операционных систем (MVS, OS/390, z/OS) JCL эволюционировал, но сохранил обратную совместимость: многие конструкции, созданные в 1960-х, работают и в современных системах.

В 1970–1980-х годах JCL стал стандартом де-факто для управления пакетной обработкой на мейнфреймах IBM, которые доминировали в корпоративных вычислениях. С появлением распределённых систем и Unix-подобных ОС в 1990-х годах популярность JCL снизилась, однако он остаётся критически важным в банковской сфере, страховании, государственных системах и других отраслях, где используются мейнфреймы.

Основные концепции и синтаксис

JCL состоит из набора операторов (statements), каждый из которых начинается с символа // в первой колонке строки. Строки JCL имеют фиксированный формат: колонки 1–2 — символы //, колонка 3 — необязательный идентификатор, колонки 4–71 — тело оператора, колонки 72–80 — необязательный порядковый номер (игнорируется системой).

Основные типы операторов:

Оператор JOB

Задаёт имя задания и его параметры (например, класс выполнения, приоритет, учётную запись пользователя). `` //MYJOB JOB (ACCT#),'USER NAME',CLASS=A,MSGCLASS=X ``

Оператор EXEC

Указывает, какую программу или процедуру (процедура — набор шагов JCL, сохранённый в библиотеке) выполнить в данном шаге. `` //STEP1 EXEC PGM=IEFBR14 ``

Оператор DD (Data Definition)

Описывает набор данных (файл), используемый в шаге: его расположение, тип носителя, атрибуты (размер, организация записи), а также режим доступа (ввод, вывод, обновление). DD-операторы могут ссылаться на физические файлы (DSN — Data Set Name) или на временные наборы данных. `` //SYSPRINT DD SYSOUT=* //INPUT DD DSN=MY.DATA.SET,DISP=SHR ``

Оператор PROC и ENDPROC

Используются для определения встроенных процедур (inline procedures) внутри задания.

Оператор PEND

Завершает определение процедуры.

Структура задания

Типичное JCL-задание состоит из трёх частей:

  1. JOB-оператор — начало задания.
  2. Последовательность шагов (EXEC + DD) — каждый шаг запускает программу с определёнными входными/выходными данными.
  3. Конец задания — система автоматически завершает задание после последнего шага; явного оператора конца нет.

Пример простого задания, копирующего файл: `` //COPYJOB JOB (123),'COPY FILE',CLASS=A //STEP1 EXEC PGM=IEBGENER //SYSUT1 DD DSN=INPUT.FILE,DISP=SHR //SYSUT2 DD DSN=OUTPUT.FILE,DISP=(NEW,CATLG), // UNIT=SYSDA,SPACE=(CYL,(10,5)) //SYSPRINT DD SYSOUT=* ``

Классификация и виды операторов

По функциональному назначению:

По способу использования:

Характеристики и особенности

Применение

JCL используется в основном в корпоративных средах, где требуются высокая надёжность, масштабируемость и пакетная обработка больших объёмов данных. Основные области применения:

В России JCL применяется в организациях, использующих мейнфреймы IBM (например, в Сбербанке, ВТБ, РЖД, Пенсионном фонде РФ), а также в системах, мигрировавших с советских ЕС ЭВМ на платформу IBM.

Интересные факты

Критика

JCL подвергается критике за:

Тем не менее, в среде мейнфреймов JCL остаётся незаменимым инструментом благодаря стабильности, производительности и огромной накопленной базе заданий.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →