JCL (Job Control Language)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 02:55, 22 мая 2016.
JCL
Парадигма язык сценариев
Спроектировано IBM
Первый   появившийся 1974
OS DOS, JCL OS
Расширение файла .jcl

Job Control Language (JCL) является именем для языков сценариев, используемых в операционных системах универсального компьютера типа IBM, чтобы сообщить системе о том, как выполнить пакет заданий processing|batch или запустить подсистему.

Есть два различных языка управления заданиями: один появился с операционной системы DOS/360 и до - z/VSE; а другой от ОС/360 до z/OS. Они совместно используют некоторые основные правила синтаксиса и несколько фундаментальных понятий, но в остальном очень отличаются.

У другого мэйнфреймового пакета заданий processing|batch системы была некоторая форма языка управления заданиями, названный ли этим или нет; их синтаксис полностью отличался от версий IBM, но они обычно обеспечивали подобные возможности. Интерактивные computing|Interactive системы включают "командные языки" — командные файлы (такие как PCDOS ".bat" файлы) могут быть выполнены не в интерактивном режиме, но они обычно не обеспечивают столь же устойчивую среду для выполнения не обслуживаемых заданий, как JCL. На некоторых компьютерных системах язык управления заданиями и интерактивный командный язык могут отличаться. Например, разделение по времени Option|TSO в z/OS системах использует CLIST или Rexx, как командные языки вместе с JCL для работы в пакетном режиме.

Функции пришедшие из DOS и OS JCL

Работы, шаги и процедуры

И для DOS и для ОС единица работы - задание job. Задание состоит из одного или нескольких шагов, каждый из которых является запросом, чтобы выполнить одну определенную программу. Например, передо днями реляционных баз данных, задание, представить печатный отчет для управления, состоит из следующих шагов: написанная пользователем программа, выбирает надлежащие записи и скопирует их во временный файл; Сортировка временного файла в требуемый порядок, обычно используют утилиты общего назначения; написанная пользователем программа, предоставляет информацию в пути, который прост для конечных пользователей и включает другую полезную информацию, такую как промежуточные итоги; после, написанная пользователем программа, должна отформатировать выбранные страницы информации о конечном пользователе для вывода на монитор или терминал.

И в DOS и в JCL ОС первая "карта" должна быть картой JOB, который:

  • Идентифицирует задание.
  • Обычно предоставляет информацию, чтобы позволить компьютерному отделу служб тарифицировать надлежащий пользовательский отдел.
  • Определяет, как задание в целом должно быть выполнено, например, его приоритет относительно других заданий в очереди.

Процедуры (обычно называемый procs) являются предписьменным JCL для шагов или групп шагов, вставленных в задание. Оба JCLs разрешают такие процедуры. Procs используются для повторения шагов, которые несколько раз используются в одном задании, или в нескольких различных заданиях. Они экономят время программиста и снижают риск ошибок. Чтобы выполнить процедуру, просто включают в файл JCL единственную "карту", которая копирует процедуру с указанного файла и вставляет ее в поток заданий. Кроме того, procs может включать параметры, чтобы настроить процедуру для каждого использования.

Базовый синтаксис

У DOS и JCL ОС есть максимальная применимая длина строки 80 символов, потому что, когда DOS/360 и ОС/360 использовались, основной метод обеспечения нового ввода к компьютерной системе был перфорированными картами на 80 столбцов. Позже стало возможно представить задания через диск или ленточные файлы с более длительными рекордными длинами, но компоненты представления задания операционной системы проигнорировали все после символа 80.

Строго говоря оба семейства операционных систем используют только 71 символ за строку. Символы 73-80 обычно являются порядковыми номерами карты, о которых системе, распечатанной на конце задания, сообщают и полезны для идентификации расположений любых ошибок, о которых сообщает операционная система. Символ 72 обычно оставляется незаполненный, но он может содержать непустой символ, чтобы указать, что оператор JCL продолжается на следующую карту.

Все команды, названия параметров и значения должны быть в прописных буквах, за исключением системы UNIX имена файлов Services|USS.

Все строки за исключением потокового ввода (см. ниже) должны начаться с наклонной черты "/", и все строки, которые являются процессами операционной системы должны начать с двух наклонных черт // - всегда запускающийся в первом столбце. Однако есть два исключения: оператор разделителя и оператор комментария. Разделитель начинается с наклонной черты и звездочки (/*), а оператор комментария в JCL ОС, начинается с пары наклонных черт и звездочки (//*) или звездочки в JCL DOS.

Множество операторов JCL слишком длинное, чтобы соответствовать в 71 символе, но оно может быть расширено на неопределенном числе карт продолжения:

OS JCL DOS JCL
Окончание всех фактических карт JCL кроме последней в точке, где синтаксис требует запятой (,) Заканчивающий все фактические карты JCL кроме последней в точке, где синтаксис требует запятой (,) и нет знака пробела в столбце 72
Запуск каждой карты продолжения с // в столбце 1 и затем по крайней мере 1 пространстве карты Начинающий каждую карту продолжения пробелами и продолжающийся в столбце 15

Структура наиболее распространенных типов карты:

OS JCL DOS JCL
  • //
  • Поле имени для этого оператора, после &// без пробелов между ними. Если у этого оператора нет имени, по крайней мере один пробел сразу следует //.
  • Пробел (а)
  • Тип оператора
  • Пробел (а)
  • Параметры, которые варьируются в зависимости от типа оператора, разделенного запятыми и без пробела между ними.
  • // (пробелы, если это - продолжение предыдущей строки),
  • Тип оператора для этого оператора, после // с пробелом между.
  • Пробел (а)
  • Имя ресурса
  • Пробел (а)
  • Параметры, которые варьируются в зависимости от типа оператора, разделенного запятыми и без пробела между ними. Позиционные параметры, сопровождаемые ключевыми параметрами.

Потоковый ввод

DOS и JCL ОС оба поддерживают потоковый ввод, т.е. "карты" должны быть обработаны прикладной программой, а не операционной системой. Данные, которые должны быть сохранены в течение длительного времени, будут храниться на диске, до использования интерактивных терминалов стало распространено, и единственный способ создать и отредактировать такие дисковые файлы был - создание новых данных на картах.

У DOS и JCL ОС есть различные способы сигнализировать запуск потокового ввода, оба конца в потоковом вводе с /* в столбце 1 карты. Это заставляет операционную систему продолжить обрабатывать JCL в карте после /*.

JCL ОС Операторы DD могут использоваться, чтобы описать данные в потоке, а также наборы данных. У оператора DD, имеющего дело с данными в потоке, есть звездочка (*) после идентификатора DD, например, //SYSIN DD *. Операторы JCL могут быть включены как часть данных в потоке при помощи операторов DD DATA.

JCL DOS Просто введите данные в потоке после EXEC карты для программы.

Сложность

Большая часть сложности JCL ОС, в частности происходит из большого количества опций для определения Набора данных (универсальный компьютер типа IBM) |dataset. В то время как файлы в подобных Unix операционных системах - просто произвольный набор байтов, файлы на ОС/360 и преемниках определили типы файлов и размеры, типы записи и длины, размеры блока и специфичную для устройства информацию, такие как Данные на магнитной ленте, плотность ленты и маркируют информацию. Несмотря на то, что есть системные значения по умолчанию для многих опций есть много всего, что должно быть определено программистом через комбинацию JCL и информации, закодированной в программе. Чем больше информации кодировалось в программе тем она становилась менее гибкой, таким образом, большая часть информации обычно предоставляется через JCL.

Например, для Файлу копирования на Unix пользователь вводит команду как:

cp file dest

JCL мог бы использоваться, чтобы скопировать файл на ОС/360:

//IS198CPY JOB (IS198T30500),'COPY JOB',CLASS=L,MSGCLASS=X
//COPY01   EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=OLDFILE,DISP=SHR
//SYSUT2   DD DSN=NEWFILE,
//            DISP=(NEW,CATLG,DELETE),
//            SPACE=(CYL,(40,5),RLSE),
//            DCB=(LRECL=115,BLKSIZE=1150)
//SYSIN    DD DUMMY

Второе объяснение сложности JCL - различные ожидания выполнения задания, что учтено в IBM средах Unix или PC|PC.

  • Низкопроизводительные Системные/360 центральные процессоры были менее мощными и более дорогими, чем PC середины 1980-х, для которых был разработан MS-DOS. ОС/360 был предназначен для систем с минимальной емкостью памяти 32 Кбайт и DOS/360 для систем с минимумом 16 Кбайт. A, IBM 2030|360/30 CPU— низкопроизводительный, когда о Системе/360 представили в 1964— обрабатывающий 5K к 13K инструкций в секунду, первый IBM PC в 1981 имел 16 Кбайт или 64 Кбайт памяти и обработал бы приблизительно 330,000 инструкций в секунду. В результате, JCL должен был быть прост для компьютера, и простота для использования программистами была намного более низким приоритетом. В эту эру программисты были намного более дешевыми, чем компьютеры.
  • JCL был разработан для пакетной обработки, таким образом, это должно сказать операционной системе все, включая то, что сделать в зависимости от результата шага. Например, DISP=(NEW,CATLG,DELETE),означает "если программа работает успешно, то создает новый файл и каталогизирует ее; иначе удалите новый файл". Программы работают на PC, часто зависят от пользователя, чтобы очистить после обработки проблем.
  • Системные/360 машины были разработаны, чтобы быть совместно использованными всеми пользователями в организации. Так JOB карта говорит операционной системе, как тарифицировать учетную запись пользователя (IS198T30500), какая предопределенная сумма хранения и других ресурсов может быть выделена (CLASS=L), и несколько других вещей. //SYSPRINT DD SYSOUT=* говорит компьютеру распечатывать отчет программы относительно принтера по умолчанию (вычисляя), который загружен обычной бумагой, не на некотором другом принтере, который мог бы быть загружен бланковыми чеками. DISP=SHRговорит операционной системе, что другие программы могут читать OLDFILE мультипрограммно и одновременно.

Более поздние версии DOS/360 и операционных систем ОС/360 сохраняют большинство функций исходного JCL— несмотря на то, что некоторое упрощение было сделано, чтобы избежать вынужденного переписывания клиентами всех своих JCL файлов. Много пользователей хранят как процедуру любой набор операторов JCL, который, вероятно, будет использоваться несколько раз или дважды.

Синтаксис JCL ОС подобен синтаксису Макроса в Системном/360 ассемблере и поэтому был бы знаком программистам в то время, когда много программ были кодированы на ассемблере.

DOS JCL

Позиционные параметры

 // TLBL TAPEFIL,'COPYTAPE.JOB',,,,2
 // ASSGN SYS005,200
 // DLBL DISKFIL,'COPYTAPE.JOB',0,SD
 // EXTENT SYS005,VOL01,1,0,800,1600

Параметры JCL DOS позиционны, что делает их тяжелее, чтобы читать и записывать, но проще для системы проанализировать.

  • программист должен помнить, какой элемент куда входит в каждом типе оператора.
  • если некоторые дополнительные параметры опущены, но более поздние используются, опущенные параметры должны быть представлены запятыми без пробелов, как в операторе TLBL выше.

JCL DOS в некоторой степени смягчает трудности позиционных параметров при помощи большего количества операторов с меньшим количеством параметров, чем JCL ОС. В примере ASSGN операторы DLBL и EXTENT делают ту же работу (определение, где новый дисковый файл должен храниться) как сингл DD оператор в JCL ОС.

Зависимость устройства

В исходном DOS/360 и в большинстве версий DOS/VS нужно было определить номер модели устройства, которое должно было использоваться для каждого диска или ленты даже для существующих файлов и для временных файлов, которые были бы удалены в конце задания. Это означало, что, если клиент обновил до более современного оборудования, много файлов JCL должны были быть изменены.

Более поздние члены семейства DOS/360 сокращали количество ситуаций, в которых требовались номера моделей устройства.

Ручное размещение файлов

DOS/360 первоначально требовал, чтобы программист определил расположение и размер всех файлов на хранении Прямого доступа DASD. EXTENT определяет объем, на котором находится, стартовая абсолютная дорожка и число дорожек. для z/VSE у файла может быть до 256 уровней на различных значениях.

OS JCL

JCL ОС состоит из трех типов основного утверждения:

  • JOB оператор, который идентифицирует запуск задания и информацию о целом задании, таком как тарификация, выполненный приоритет и пределы времени и пространства.
  • EXEC оператор, который идентифицирует программу, которая будет выполняться на этом шаге задания и информации о шаге.
  • DD операторы (Data Description), которые идентифицируют файл данных, который будет использоваться на шаге и подробной информации о том файле. DD оператор может быть в любом порядке в шаге.

С самого начала JCL для семейства ОС (до и включая z/OS) был более гибким и его было проще проще использовать.

Следующие примеры используют старый стиль синтаксиса, который был обеспечен прямо от запуска Системы/360 в 1964. Старый синтаксис все еще довольно распространен в заданиях, которые работали больше 20 лет с незначительными изменениями.

Правила для кодирования операторов JCL

Каждый Оператор JCL Разделен на 5 полей.

 Поле идентификатора поле комментариев поля параметра поля работы поля имени
                                  ^                             ^                       ^                   ^
                           нет пробела              пробел              пробел           пробел

Поле идентификатора должно быть связано с Поле имени , т.е. не должно быть никаких пробелов между ними.

  • Поле идентификатора //): поле идентификатора указывает к системе, что оператор - оператор JCL, а не данные. Поле идентификатора состоит из следующего:
    • Столбцы 1 и 2 всех операторов JCL, кроме оператора разделителя, содержат //
    • Столбцы 1 и 2 оператора разделителя содержат /*
    • Столбцы 1, 2 и 3 из оператора комментария JCL содержат //*
  • Поле имени : поле имени идентифицирует определенный оператор так, чтобы другие операторы и система могли ссылаться на него. Для операторов JCL это должно быть закодировано следующим образом:
    • Имя должно начаться в столбце 3.
    • Имя равняется 1 - 8 алфавитно-цифровому или национальному символу ($, #, @).
    • Первый символ должен быть алфавитным.
    • Имя должно сопровождаться по крайней мере одним пробелом.
  • Поле работы : поле работы определяет тип оператора, или командного оператора. Поле работы должен быть кодирован следующим образом:
    • Поле работы состоит из символов в поле синтаксиса для оператора.
    • Работа следует за полем имени.
    • Работе должен предшествовать и сопровождать по крайней мере один пробел.
    • Работа будет одним из JOB, EXEC and DD.
  • Поле параметра : поле параметра, также иногда называемое полем операнда, содержит параметры, разделенные запятыми. Поле Parameter должно быть кодировано следующим образом:
    • Поле параметра следует за полем работы.
    • Полю параметра должен предшествовать по крайней мере один пробел.
    • Поле параметра содержит параметры, которые являются ключевыми словами, которые раньше в операторе предоставляли информацию, такую как имя набора данных или программа.
  • Поле комментариев : Это содержит комментарий. Поле комментариев должен быть закодирован следующим образом:
    • Поле комментариев следует за полем параметра.
    • Полю комментариев должен предшествовать по крайней мере один пробел.

Ключевой параметр

 //NEWFILE DD DSN=MYFILE01,UNIT=DISK,SPACE=(TRK,80,10),
 //           DCB=(LRECL=100,BLKSIZE=1000),
 //           DISP=(NEW,CATLG,DELETE)

Все главные параметры операторов OS JCL идентифицированы ключевыми словами и могут быть представлены в любом порядке. Несколько из них содержат два или больше подпараметра, такие как SPACE (сколько дискового пространства, чтобы выделить новому файлу) и DCB (подробная спецификация расположения файла) в примере выше. Подпараметры иногда позиционны, как в SPACE, но у самых сложных параметров, таких как DCB, есть подпараметры ключевого слова.

Позиционный параметр должен предшествовать ключевым параметрам. Ключевые параметры всегда присваивают значения ключевому слову, используя знак равенства (=).

Доступ к данным

Оператор DD для справочных данных. Этот оператор соединяет внутреннее описание программы набора данных к данным по внешним устройствам: диски, ленты, карты, принтеры, и т.д. DD может предоставить информацию, такую как тип устройства (например, '181', '2400-5', 'TAPE'), Объем (вычислив) порядковый номер для лент или дисков и описания файла данных, вызванного DCB подпараметр после того, как Data Control Block (DCB) в программе раньше идентифицировал файл. Информация, описывающая файл, может быть получена из трех источников: информация о карте DD, информация о метке набора данных для существующего файла, хранившего на ленте или диске и макросе DCB, кодированы в программе. Когда файл открыт, эти данные объединены с информацией о DD, имеющей приоритет по информации о метке и информации о DCB, имеющей приоритет по обоим. Обновленное описание тогда записано обратно к метке набора данных. Это может привести к непреднамеренным последствиям, если неправильная информация о DCB предоставлена

Независимость от устройств

С самого начала JCL для семейства ОС предложил высокую степень независимости от устройств. Даже для новых файлов, которые должны были быть сохранены после конца задания, можно было определить тип устройства в общих обозначениях, например, UNIT=DISK или UNIT=TAPE. Конечно, если имело значение, что можно было бы определить номер модели или даже определенный адрес устройства.

Параметризованные процедуры

Процедуры OS JCL были параметризованы от запуска, делая их скорее как ассемблированый макрос или даже простые подпрограммы и таким образом увеличив их повторное использование в широком диапазоне ситуаций.

 //MYPROC PROC FNAME=MYFILE01,SPTYPE=TRK,SPINIT=50,SPEXT=10,LR=100,BLK=1000
 .....
 //NEWFILE DD DSN=&FNAME,UNIT=DISK,SPACE=(&SPTYPE,&SPINIT,&SPEXT),
 //           DCB=(LRECL=&LR,BLKSIZE=&BLK),DISP=(NEW,CATLG,DELETE)
 ....

В этом примере все значения, начинающиеся с амперсандов"&", являются параметрами, которые будут определены, когда задание запросит, чтобы процедура использовалась. Оператор PROC, в дополнение к предоставлению процедуре имени, позволяет программисту определять значения по умолчанию для каждого параметра. Таким образом, можно было использовать одну процедуру в этом примере, чтобы создать новые файлы многих различных размеров и разметок. Например:

 //JOB01  JOB ..........
 //STEP01 EXEC MYPROC FNAME=JOESFILE,SPTYPE=CYL,SPINIT=10,SPEXT=2,LR=100,BLK=2000
or
 //JOB02  JOB ..........
 //STEP01 EXEC MYPROC FNAME=SUESFILE,SPTYPE=TRK,SPINIT=500,SPEXT=100,LR=100,BLK=5000

Referbacks

В многоступенчатых заданиях более поздний шаг может использовать referback вместо того, чтобы определить полностью файл, который был уже определен на более раннем шаге. Например:

 //MYPROC ................
 //MYPR01 EXEC PGM=..........
 //NEWFILE DD DSN=&MYFILE,UNIT=DISK,SPACE=(TRK,50,10),
 //           DCB=(LRECL=100,BLKSIZE=1000),DISP=(NEW,CATLG,DELETE)
 ....
 //MYPR02 EXEC PGM=..........
 //INPUT01 DD DSN=*.MYPR01.NEWFILE

Здесь, MYPR02 использует файл, идентифицированный в качестве NEWFILE на шаге MYPR01 (DSN означает "имя набора данных" и определяет имя файла).

В заданиях, которые содержат смесь специфичного для задания JCL и вызовов процедуры, специфичный для задания шаг может вернуться к файлу, который был полностью определен в процедуре, например:

 //MYJOB JOB ..........
 //STEP01 EXEC MYPROC             Using a procedure
 //STEP02 EXEC PGM=.........      Step which is specific to this job
 //INPUT01 DD DSN=*.STEP01.MYPR01.NEWFILE

где DSN=*.STEP01.MYPR01.NEWFILE означает, "используют файл, идентифицированный в качестве NEWFILE на шаге MYPR01 процедуры, используемой шагом STEP01 этого задания". Используя имя шага, который назван процедурой, а не именем процедуры позволяет программисту несколько раз использовать одну и ту же процедуру в том же задании без беспорядка, где экземпляр процедуры используется в referback.

Комментарии

Файлы JCL могут быть длинными и сложными, и язык не просто считать. (JCL был описан как "враждебный к пользователю".) JCL ОС позволяет программистам включать два типа пояснительного текста:

  • На той же строке где оператор JCL. Они могут быть расширены, поместив символ продолжения (обычно" X") в столбце 72, сопровождаемом" // " в столбцах 1-3 следующей строки.
  • Строки, которые содержат только комментарий, часто раньше объясняли важные идеи о полной структуре JCL, а не локальные детали. Строки только для комментария также используются, чтобы делить долгие, сложные файлы JCL на разделы.
 //MYJOB JOB ..........
 //*  Lines containing only comments.
 //******** Often used to divide JCL listing into sections ********
 //STEP01 EXEC MYPROC             Comment 2 on same line as statement
 //STEP02 EXEC PGM=.........      Comment 3 has been extended and       X
 //         overflows into another line.
 //INPUT01 DD DSN=STEP01.MYPR01.NEWFILE

Конкатенация входных файлов

JCL ОС позволяет программистам связывать ("цепочечные") входные файлы так, чтобы они появились к программе как один файл, например:

//INPUT01 DD DSN=MYFILE01,DISP=SHR
//        DD DSN=JOESFILE,DISP=SHR
//        DD DSN=SUESFILE,DISP=SHR

У 2-х и третьих операторов нет значения в поле имени, таким образом, ОС рассматривает их как связи. Файлы должны иметь тот же основной тип (почти всегда последовательный) и должны иметь ту же записанную длину.

Условное выражение, обрабатывающее

ОС ожидает, что программы установят код возврата, который определяет, как успешный программа думала, что это было. Наиболее распространенные стандартные значения are:

  • 0 = Нормальный - все OK
  • 4 = Предупреждение - незначительные ошибки или проблемы
  • 8 = Ошибка - значительные ошибки или проблемы
  • 12 = Серьезная ошибка - главные ошибки или проблемы в результатах (например, файлы или представленные отчеты) нельзя доверять.
  • 16 = Терминальная ошибка - очень серьезные проблемы, не используйте результаты!

JCL ОС именует код возврата как COND ("код условия") и может использовать его, чтобы решить, выполнить ли последующие шаги. Однако в отличие от большинства современных языков программирования, условные шаги в JCL ОС не выполняются, если указанное условие - true— таким образом давало начало мнемосхеме, "Если это - истина, переходит через [не выполняя код]". Еще более того условие может только быть определено после шага, к которому оно относится. Например:

 //MYJOB JOB ...........
 //STEP01 EXEC PGM=PROG01
 ....
 //STEP02 EXEC PGM=PROG02,COND=(4,GT,STEP01)
 ....
 //STEP03 EXEC PGM=PROG03,COND=(8,LE)
 ....
 //STEP04 EXEC PGM=PROG04,COND=(ONLY,STEP01)
 ....
 //STEP05 EXEC PGM=PROG05,COND=(EVEN,STEP03)
 ....

средства:

  1. Выполнение STEP01, и собирает свой код возврата.
  2. Не работает STEP02, если номер 4 больше, чем STEP01 код возврата.
  3. Не работает STEP03, если номер 8 меньше чем или равен какому-либо предыдущему коду возврата.
  4. Выполнение STEP04, только если STEP01 неправильно законченный.
  5. Выполнение STEP05, даже если STEP03 неправильно законченный.

Это переводит в следующий псевдокод:

run STEP01
if STEP01's return code is greater than or equal to  4 then
    run STEP02
end if
if any previous return code is less than  8 then
    run STEP03
end if
if STEP01 abnormally ended then
    run STEP04
end if
if STEP03 abnormally ended then
    run STEP05
else
    run STEP05
end if

Обратите внимание на то, что, читая шаги, содержащие, COND операторы назад, можно понять их довольно легко. Это - пример Перемещения (логика) |logical перемещение. Однако IBM позже представила, ЕСЛИ условие в JCL, таким образом, делающем кодирование несколько проще для программистов при сохранении COND параметр .

Утилиты JCL

JCL использует много утилит универсального компьютера типа IBM programs|IBM утилиты, чтобы помочь в обработке данных. Утилиты являются самыми полезными в пакетной обработке. Утилиты могут быть сгруппированы в три набора:

  • Утилиты Набора данных - Создают, распечатывают, копируют, перемещают и удаляют наборы данных.
  • Системные Утилиты - Поддерживают и управляют каталогами.
  • Access Method Services - Метод доступа к виртуальной памяти (VSAM) Процесса и non-VSAM наборы данных.

Язык управления ввода заданий

В системах универсального компьютера типа IBM Job Entry Control Language или JECL набор командного языка, проверяют утверждения, которые предоставляют информацию для подсистемы спулинга – Подсистема ввода заданий 2/3|JES2 или JES3 на z/OS или Питании IBM (программное обеспечение) |VSE/POWER для VSE (операционная система) |z/VSE. Операторы JECL могут "определить, на котором сетевой компьютер, чтобы выполнить Задание stream|job, когда можно выполнить задание, и куда отправить получающийся вывод JECL отличен от языка управления заданиями (JCL), который сообщает операционной системе, как выполнить задание.

Есть различные версии JECL для этих трех сред.

ОС/360

Ранняя версия JECL для Дистанционного ввода заданий ОС/360 (Программа Номер 360S-RC-536) использовала идентификатор  ..  в столбцах 1– 2 из входной записи и состояли из единственного оператора управления: JED (Job Entry Definition). "Команды рабочей станции", такие как LOGON, LOGOFF, и STATUS также начались с  ..&nbsp

z/OS

Для JES2 JECL операторы запускаются с /* для JES3, который они запускают с //* , за исключением удаленного  /*SIGNON  и  /*SIGNOFF  команды. Команды для этих двух систем сильно отличаются.

JES2 JECL

Следующие операторы JES2 JECL используются в z/OS 1.2.0

JECL команда Функция Пример
/*$command Вводит оператора (консоль) команда /*$S PRINTER3
/*JOBPARM Определяет значения для связанных с заданием параметров /*JOBPARM TIME=10
/*MESSAGE Отправляет сообщение на консоль /*MESSAGE CALL JOE AT HOME IF JOB ABENDS
/*NETACCT Определяет номер счета для сетевого задания /*NETACCT 12345
/*NOTIFY Определяет место назначения для уведомлений /*NOTIFY SAM
/*OUTPUT Определяет опции набора данных SYSOUT /*OUTPUT FORMS=BILL
/*PRIORITY Устанавливает приоритет набора заданий /*PRIORITY 15
/*ROUTE Определяет выходное место назначения или узел выполнения /*ROUTE PRT RMT5
/*SETUP Монтирование объема запросов или другая оффлайновая работа /*SETUP TAPE01,TAPE02
/*SIGNOFF завершает удаленный сеанс /*SIGNOFF
/*SIGNON начинает удаленный сеанс /*SIGNON REMOTE5 password
/*XEQ Определяет узел выполнения /*XEQ DENVER
/*XMIT Указывает задание или набор данных, который будет передан к другому сетевому узлу /*XMIT NYC

JES3 JECL

Следующие операторы JES3 JECL используются в z/OS 1.2.0

JECL команда Функция Пример
//**command Вводит оператора JES3 (консоль) команда
//*DATASET Отмечает начало набора данных в потоке
//*ENDDATASET Отмечает конец набора данных в потоке
//*ENDPROCESS Отмечает конец серии  //*PROCESS  операторы
//*FORMAT Определяет  SYSOUT  опции набора данных
//*MAIN Определяет значения для связанных с заданием параметров
//*NET Идентифицирует отношения среди заданий, используя JES3 зависимое управление заданиями
//*NETACCT Определяет номер счета для сетевого задания
//*OPERATOR Отправляет сообщение в пульт оператора
//*PAUSE Останавливает ввод
//*PROCESS Идентифицирует нестандартное задание
//*ROUTE Определяет узел выполнения для задания
/*SIGNOFF Заканчивает удаленную сессию /*SIGNOFF
/*SIGNON Начинает удаленную сессию

z/VSE

Для VSE JECL операторы запускаются с '* $$' (отметьте единственное пространство). JECL определяет запуск и строки конца заданий JCL. Это советует VSE (операционная система) |VSE/IBM тому, как это задание обработано. Операторы JECL определяют имя задания (используемый VSE/POWER), класс, в котором задание обработано, и расположение задания (т.е. D, L, K, H).

JECL команда Функция Пример
* $$ CTL Устанавливает входной класс по умолчанию * $$ CTL CLASS=A
* $$ JOB Определяет атрибуты задания * $$ JOB JNM=PYRL,PRI=9
* $$ EOJ Отмечает конец задания * $$ EOJ
* $$ RDR Вставляет файл от 3540 во входной поток * $$ RDR SYS005,'fname',2
* $$ PRT Определяет, что характеристики файлов печати с буферизацией "LST являются синонимом для "PRT" * $$ PRT FNO=STD,COPY=2
* $$ PUN Определяет характеристики spooled файлов удара * $$ PUN DISP=T,TADDR=280
* $$ SLI Вставляет данные ("книга") от исходной библиотеки оператора во входной поток * $$ SLI A.JCL1
* $$ DATA Вставляет данные от картридера в книгу, полученную от исходной библиотеки оператора * $$ DATA INPUT1

Пример:

  * $$ JOB JNM=NAME,DISP=K,CLASS=2  [некоторые операторы JCL здесь]  * $$ EOJ

Ссылки