Job Control Language (JCL) — език за управление на задания в IBM mainframe

Job Control Language (JCL) е наименование на езиците за писане на скриптове, използвани в операционните системи на IBM mainframe. Той инструктира системата как да изпълни пакетно задание или да стартира подсистема. JCL не е език за програмиране в класическия смисъл — той описва какви ресурси да се заделят, кои програми да се стартират и по какъв начин да се обработва вход/изход.

Каква е целта на JCL

Целта на JCL е да укаже кои програми да се изпълняват и с кои файлове (набори от данни) или устройства да работят. С JCL се задават параметри за стартиране на програми, се конфигурират входно-изходни единици, определят се условия за повторно стартиране или прескачане на стъпки и се задават зависимости между отделните стъпки на заданието.

Основни понятия и синтаксис

JCL използва редове (наречени statements), които започват с двойна наклонена черта (//) и имат строго фиксирани полета и формати. Най-често срещаните типове инструкции са:

  • JOB — дефинира началото на задание (job card), предоставя обща информация като име на заданието, приоритет, собственик и евентуално обработка на грешки;
  • EXEC — указва коя програма или процедура да се изпълни в една стъпка (step);
  • DD (Data Definition) — свързва логическите входно-изходни файлове на програмата с физически набори от данни, устройства или временни файлове; тук се задават параметри като DSN (името на набора от данни), DISP (състояние/диспозиция), UNIT (вид устройство), SPACE, DCB и др.

Примерна структура на JCL задание

Един опростен JCL пример (с обяснения):

 //MYJOB   JOB (ACCT),'ИМЕ',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //STEP1   EXEC PGM=MYPROG //INFILE  DD   DSN=MY.INPUT.DATA,DISP=SHR //OUTFILE DD   DSN=MY.OUTPUT.DATA,DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSPRINT DD   SYSOUT=* //

Обяснение:

  • //MYJOB JOB ... — начална карта за заданието, задаваща идентификатор и атрибути;
  • //STEP1 EXEC PGM=MYPROG — изпълнява програмата MYPROG;
  • //INFILE DD ... — указва набора от данни за вход;
  • //OUTFILE DD ... — указва създаване на нов набор от данни за изход с параметри за заделяне;
  • //SYSPRINT DD SYSOUT=* — изпраща изхода на принтер/системна опашка.

Управление на набори от данни (datasets) и устройства

С JCL се описва как да бъде третирано хранилището на данни: дали съществуващият набор да се използва (DISP=SHR), дали да се създаде нов (DISP=(NEW,...)), къде да се разположи (UNIT, VOLUME), и колко пространство да се задели (SPACE). В mainframe средата има множество типове устройства (например дискове SYSDA, tapes UNIT=3490 и др.), като изборът влияе на изпълнението и производителността.

Условно изпълнение и кодове за връщане

JCL поддържа условно изпълнение на стъпки (например чрез параметъра COND) — може да бъде указано да се пропусне една стъпка, ако предишна е върнала определен код за грешка. Стандартно, програмите и утилитите в z/OS връщат т.нар. return code (RC) илиabend кодове, които JCL и системните процедури използват за контрол на потока.

Процедури (PROCs) и повторна употреба

За да не се повтарят дълги групи от DD или EXEC инструкции, се използват процедури (PROCs). Процедурите могат да бъдат локални (във файла с JCL) или глобални, намиращи се в библиотека. С PROC се постига стандартизиране и по-лесна поддръжка на често използвани работни потоци.

Двете линии на IBM Job Control

Съществуват два различни езика на IBM Job Control:

  • линията на операционната система, която започва с DOS/360 и чийто последен член е z/VSE; и
  • линията от OS/360 до z/OS, като последният вече включва разширения на JES, език за контрол на въвеждането на задачи (JECL).

Те споделят някои основни правила за синтаксис и няколко основни понятия, но имат значителни различия в детайлите, поддръжката на възможности и конкретните параметри за управление на устройства и JES (Job Entry Subsystem).

Къде и кога се използва JCL днес

JCL остава в употреба в големите корпоративни среди, където работят IBM mainframe системи (банки, застрахователи, държавни институции и др.). Въпреки еволюцията на технологиите, голямо количество критични системи и данни продължават да работят върху тези платформи, което поддържа необходимостта от администратори и разработчици, които познават JCL.

Полезни съвети за работа с JCL

  • Винаги проверявайте правилата за форматиране и колонирането на редовете — старите формати са чувствителни към позицията на символите.
  • Използвайте коментари и ясни имена на JOB и STEP, за да улесните поддръжката.
  • Тествайте внимателно DISP и параметрите за създаване/изтриване на набори от данни, за да избегнете загуба на данни.
  • Използвайте PROC за повторно използвани конструкции и централизирано управление.

JCL е специализиран, но мощен инструмент за контрол на пакетно изпълнение в mainframe средите. Разбирането на основните му концепции — JOB, EXEC, DD, DISP и управлението на return code — дава възможност за надеждно и ефективно управление на сложни работни потоци.

Въпроси и отговори

В: Какво е JCL?


О: JCL е съкращение от Job Control Language (език за управление на задачите), който е скриптов език, използван в операционните системи на IBM mainframe, за да инструктира системата как да изпълни пакетна задача или да стартира подсистема.

В: Каква е целта на JCL?


О: Целта на JCL е да посочи кои програми да се изпълняват, като се използват кои файлове или устройства за вход или изход, и да посочи при какви условия да се прескочи дадена стъпка.

В: Колко различни езика за управление на задачите на IBM има?


О: Има два различни езика за управление на задачите на IBM. Единият е за линията на операционните системи, която започва с DOS/360 и чийто последен член е z/VSE, а другият е за линията от OS/360 до z/OS, като последната вече включва разширения на JES, Job Entry Control Language (JECL).

Въпрос: Какво е общото между двата различни езика за управление на задачите на IBM?


О: Двата различни езика за управление на задачите на IBM споделят някои основни правила за синтаксис и няколко основни понятия.

В: Какви са някои разлики между двата различни езика за управление на задачите на IBM?


О.: Двата различни езика IBM Job Control се различават значително.

В: Какво означава разширението JES?


О: Разширенията на JES означават език за контрол на въвеждането на задачи.

В: Кой е най-новият член на линията на операционните системи, която започва с DOS/360?


О: Най-новият член на линията на операционните системи, която започва с DOS/360, е z/VSE.

AlegsaOnline.com - 2020 / 2025 - License CC3