Для Windows доступно множество бесплатных эмуляторов мэйнфреймов, которые можно использовать для написания и изучения примеров JCL.
Одним из таких эмуляторов является Hercules, который можно легко установить в Windows, выполнив несколько простых шагов, приведенных ниже:
-
Загрузите и установите эмулятор Hercules, доступный на домашнем сайте Hercules: www.hercules-390.eu
-
Полное руководство по различным командам для написания и выполнения JCL можно найти по адресу www.jaymoseley.com/hercules/installmvs/instmvs2.htm.
Загрузите и установите эмулятор Hercules, доступный на домашнем сайте Hercules: www.hercules-390.eu
Полное руководство по различным командам для написания и выполнения JCL можно найти по адресу www.jaymoseley.com/hercules/installmvs/instmvs2.htm.
Hercules — это программная реализация с открытым исходным кодом для архитектур мейнфреймов System / 370 и ESA / 390 в дополнение к новейшей 64-битной архитектуре z / Architecture. Hercules работает под Linux, Windows, Solaris, FreeBSD и Mac OS X.
Запуск JCL на мейнфреймах
Пользователь может подключиться к серверу мэйнфреймов несколькими способами, такими как тонкий клиент, фиктивный терминал, система виртуального клиента (VCS) или система виртуального рабочего стола (VDS).
Каждому действительному пользователю предоставляется логин для входа в интерфейс Z / OS (TSO / E или ISPF). В интерфейсе Z / OS JCL может быть закодирован и сохранен как элемент в многораздельном наборе данных (PDS). Когда JCL передается, он выполняется, и вывод получается, как описано в разделе обработки заданий предыдущей главы.
Структура JCL
Базовая структура JCL с общими утверждениями приведена ниже:
//SAMPJCL JOB 1,CLASS=6,MSGCLASS=0,NOTIFY=&SYSUID (1) //* (2) //STEP010 EXEC PGM=SORT (3) //SORTIN DD DSN=JCL.SAMPLE.INPUT,DISP=SHR (4) //SORTOUT DD DSN=JCL.SAMPLE.OUTPUT, (5) // DISP=(NEW,CATLG,CATLG),DATACLAS=DSIZE50 //SYSOUT DD SYSOUT=* (6) //SYSUDUMP DD SYSOUT=C (6) //SYSPRINT DD SYSOUT=* (6) //SYSIN DD * (6) SORT FIELDS=COPY INCLUDE COND=(28,3,CH,EQ,C'XXX') /* (7)
Описание программы
Нумерованные операторы JCL были объяснены ниже:
(1) Оператор JOB — Определяет информацию, необходимую для SPOOLing задания, такую как идентификатор задания, приоритет выполнения, идентификатор пользователя, который должен быть уведомлен после завершения задания.
(2) // * оператор — это оператор комментария.
(3) Оператор EXEC — указывает PROC / программу для выполнения. В приведенном выше примере выполняется программа SORT (т.е. сортировка входных данных в определенном порядке)
(4) Оператор ввода DD. Указывает тип ввода, передаваемого в программу, указанную в (3). В приведенном выше примере файл Physical Sequential (PS) передается в качестве входных данных в режиме совместного использования (DISP = SHR).
(5) Оператор DD вывода — указывает тип вывода, который будет произведен программой при выполнении. В приведенном выше примере создается файл PS. Если оператор выходит за пределы 70-й позиции в строке, то он продолжается на следующей строке, которая должна начинаться с «//», за которым следует один или несколько пробелов.
(6) Могут быть другие типы операторов DD для указания дополнительной информации для программы (в приведенном выше примере: условие SORT указано в операторе SYSIN DD) и для указания места назначения для журнала ошибок / выполнения (Пример: SYSUDUMP / SYSPRINT). Операторы DD могут содержаться в наборе данных (файл мэйнфрейма) или в данных потока (информация, жестко закодированная в JCL), как указано в примере выше.
(7) / * отмечает конец данных в потоке.
Все операторы JCL, кроме потоковых данных, начинаются с //. Должен быть как минимум один пробел до и после ключевых слов JOB, EXEC и DD, а в остальной части оператора не должно быть пробелов.
Типы параметров работы
Каждый из операторов JCL сопровождается набором параметров, помогающих операционным системам завершить выполнение программы. Параметры могут быть двух типов:
Позиционные параметры
-
Появляется в заранее определенной позиции и порядке в выписке. Пример: учетная информация Параметр может появляться только после ключевого слова JOB и перед параметром имени программиста и параметрами ключевого слова. Если позиционный параметр опущен, его необходимо заменить запятой.
-
Позиционные параметры присутствуют в операторах JOB и EXEC. В приведенном выше примере PGM — это позиционный параметр, закодированный после ключевого слова EXEC .
Появляется в заранее определенной позиции и порядке в выписке. Пример: учетная информация Параметр может появляться только после ключевого слова JOB и перед параметром имени программиста и параметрами ключевого слова. Если позиционный параметр опущен, его необходимо заменить запятой.
Позиционные параметры присутствуют в операторах JOB и EXEC. В приведенном выше примере PGM — это позиционный параметр, закодированный после ключевого слова EXEC .
Параметры ключевых слов
-
Они кодируются после позиционных параметров, но могут появляться в любом порядке. Параметры ключевых слов могут быть опущены, если не требуются. Общий синтаксис — KEYWORD = значение . Пример: MSGCLASS = X, т. Е. Журнал заданий перенаправляется на выходной SPOOL после завершения задания.
-
В приведенном выше примере CLASS, MSGCLASS и NOTIFY являются ключевыми параметрами оператора JOB. В выражении EXEC также могут быть параметры ключевых слов.
Они кодируются после позиционных параметров, но могут появляться в любом порядке. Параметры ключевых слов могут быть опущены, если не требуются. Общий синтаксис — KEYWORD = значение . Пример: MSGCLASS = X, т. Е. Журнал заданий перенаправляется на выходной SPOOL после завершения задания.
В приведенном выше примере CLASS, MSGCLASS и NOTIFY являются ключевыми параметрами оператора JOB. В выражении EXEC также могут быть параметры ключевых слов.
Эти параметры были подробно описаны в последующих главах вместе с соответствующими примерами.