Наборы данных — это файлы мэйнфреймов с записями, организованными в определенном формате. Наборы данных хранятся на устройстве хранения с прямым доступом (DASD) или на лентах мэйнфрейма и являются основными областями хранения данных. Если эти данные необходимо использовать / создать в пакетной программе, то физическое имя файла (т.е. набора данных) вместе с форматом файла и организацией кодируются в JCL.
Определение каждого набора данных, используемого в JCL, дается с помощью инструкции DD . Ресурсы ввода и вывода, необходимые для шага задания, должны быть описаны в операторе DD с такой информацией, как организация набора данных, требования к хранилищу и длина записи.
Синтаксис
Ниже приведен основной синтаксис оператора JCL DD:
//DD-name DD Parameters
Описание
Давайте посмотрим описание терминов, использованных в приведенном выше синтаксисе оператора DD.
DD-NAME
DD-NAME идентифицирует набор данных или ресурс ввода / вывода. Если это файл ввода / вывода, используемый программой на языке COBOL / Assembler, то файл упоминается в программе под этим именем.
DD
Это ключевое слово для определения его как оператора DD.
ПАРАМЕТРЫ
Ниже приведены различные параметры для оператора DD. Вы можете использовать один или несколько параметров в зависимости от требований, и они разделяются запятой:
параметр | Описание |
---|---|
DSN |
Параметр DSN относится к имени физического набора данных вновь созданного или существующего набора данных. Значение DSN может состоять из подимен, каждое длиной от 1 до 8 символов, разделенных точками, и общей длиной 44 символа (буквенно-цифровой). Ниже приводится синтаксис: DSN = физическое имя набора данных Временные наборы данных нуждаются в хранении только на время выполнения задания и удаляются при завершении задания. Такие наборы данных представлены как DSN = & name или просто без указания DSN. Если временный набор данных, созданный на шаге задания, будет использоваться на следующем шаге задания, то на него ссылаются как DSN = *. Stepname.ddname . Это называется обратной ссылкой. |
DISP |
Параметр DISP используется для описания состояния набора данных, расположения в конце шага задания при нормальном и ненормальном завершении. DISP не требуется в операторе DD, только когда набор данных создается и удаляется на одном шаге задания (например, временные наборы данных). Ниже приводится синтаксис: DISP = (статус, нормальное расположение, ненормальное расположение) Ниже приведены допустимые значения для статуса :
Параметр нормального расположения может принимать одно из следующих значений
Параметр ненормального расположения может принимать одно из следующих значений
Вот описание параметров CATLG, UNCATLG, DELETE, PASS и KEEP:
Если какой-либо из подпараметров DISP не указан, значения по умолчанию следующие:
|
DCB |
Параметр Data Control Block (DCB) детализирует физические характеристики набора данных. Этот параметр является обязательным для наборов данных, которые создаются на шаге задания. LRECL — длина каждой записи, хранящейся в наборе данных. RECFM — это формат записи набора данных. RECFM может содержать значения FB, V или VB. FB — это организация с фиксированным блоком, в которой одна или несколько логических записей сгруппированы в одном блоке. V — организация переменных, в которой одна логическая запись переменной длины размещена в одном физическом блоке. VB — это организация с переменным блоком, в которой одна или несколько логических записей переменной длины размещены в одном физическом блоке. BLKSIZE — это размер физического блока. Чем больше блок, тем больше записей для файла FB или VB. DSORG — это тип организации набора данных. DSORG может содержать значения PS (физическая последовательность), PO (разделенная организация) и DA (непосредственная организация). Когда необходимо реплицировать значения DCB одного набора данных в другой в пределах одного и того же шага задания или JCL, он указывается как DCB = *. Stepname.ddname, где stepname — это имя шага задания, а ddname — набор данных, из которого DCB копируется. Ниже приведен пример, где RECFM = FB, LRECL = 80 формирует DCB набора данных OUTPUT1. |
ПРОСТРАНСТВО |
Параметр SPACE указывает пространство, необходимое для набора данных в DASD (диск хранения прямого доступа). Ниже приводится синтаксис: SPACE = (spcunits, (pri, sec, dir), RLSE) Вот описание всех используемых параметров:
|
ЕДИНИЦА ИЗМЕРЕНИЯ |
Параметры UNIT и VOL перечислены в системном каталоге для каталогизированных наборов данных и, следовательно, доступны только с помощью физического имени DSN. Но для некаталогизированных наборов данных оператор DD должен включать эти параметры. Для создания новых наборов данных можно указать параметры UNIT / VOL или Z / OS назначит подходящее устройство и объем. Параметр UNIT указывает тип устройства, на котором хранится набор данных. Тип устройства может быть идентифицирован с использованием адреса аппаратного обеспечения или группы типов устройств. Ниже приводится синтаксис: UNIT = DASD | SYSDA Где DASD означает устройство хранения с прямым доступом, а SYSDA означает System Direct Access и относится к следующему доступному устройству хранения на диске. |
VOL |
Параметр VOL указывает номер тома на устройстве, указанном параметром UNIT. Ниже приводится синтаксис: VOL = SER = (v1, v2) Где v1, v2 — серийные номера томов. Вы также можете использовать следующий синтаксис: VOL = REF = *. DDNAME Где REF — обратная ссылка на серийный номер тома набора данных на любом из предыдущих этапов задания в JCL. |
SYSOUT |
Обсуждаемые до сих пор параметры оператора DD соответствуют данным, хранящимся в наборе данных. Параметр SYSOUT направляет данные на устройство вывода в соответствии с указанным классом. Ниже приводится синтаксис SYSOUT = класс Где, если class — это A, то он направляет вывод на принтер, а если class — *, то он направляет вывод в то же место назначения, что и параметр MSGCLASS в операторе JOB. |
Параметр DSN относится к имени физического набора данных вновь созданного или существующего набора данных. Значение DSN может состоять из подимен, каждое длиной от 1 до 8 символов, разделенных точками, и общей длиной 44 символа (буквенно-цифровой). Ниже приводится синтаксис:
DSN = физическое имя набора данных
Временные наборы данных нуждаются в хранении только на время выполнения задания и удаляются при завершении задания. Такие наборы данных представлены как DSN = & name или просто без указания DSN.
Если временный набор данных, созданный на шаге задания, будет использоваться на следующем шаге задания, то на него ссылаются как DSN = *. Stepname.ddname . Это называется обратной ссылкой.
Параметр DISP используется для описания состояния набора данных, расположения в конце шага задания при нормальном и ненормальном завершении. DISP не требуется в операторе DD, только когда набор данных создается и удаляется на одном шаге задания (например, временные наборы данных). Ниже приводится синтаксис:
DISP = (статус, нормальное расположение, ненормальное расположение)
Ниже приведены допустимые значения для статуса :
НОВИНКА : набор данных создается на шаге задания. ВЫХОД 1 в примере выше.
СТАРЫЙ : Набор данных уже создан и будет перезаписан на шаге задания. Шаг задания получает монопольный доступ к набору данных, и никакое другое задание не может получить доступ к этому набору данных до завершения шага задания.
SHR : Набор данных уже создан и будет прочитан на шаге задания. Набор данных может быть прочитан несколькими заданиями одновременно. Пример: INPUT1 и INPUT2.
MOD : Набор данных уже создан. Это расположение будет использоваться, когда необходимо добавить новые записи в существующий набор данных (существующие записи не будут перезаписаны).
Параметр нормального расположения может принимать одно из следующих значений
CATLG, UNCATLG, DELETE, PASS и KEEP
Параметр ненормального расположения может принимать одно из следующих значений
CATLG, UNCATLG, DELETE и KEEP
Вот описание параметров CATLG, UNCATLG, DELETE, PASS и KEEP:
CATLG : набор данных сохраняется вместе с записью в системном каталоге.
UNCATLG : набор данных сохраняется, но запись системного каталога удаляется.
СОХРАНИТЬ : Набор данных сохраняется без изменения каких-либо записей каталога. KEEP — единственное допустимое расположение для файлов VSAM. Это должно использоваться только для постоянных наборов данных.
УДАЛИТЬ : Набор данных удаляется из каталога пользователя и системы.
PASS : это действительно только для нормального расположения. Это используется, когда набор данных должен быть передан и обработан следующим шагом задания в JCL
Если какой-либо из подпараметров DISP не указан, значения по умолчанию следующие:
статус : NEW является значением по умолчанию.
нормальное расположение : если статус НОВЫЙ, по умолчанию нормальное расположение — УДАЛИТЬ, в противном случае это ХРАНИТ.
ненормальное расположение : такое же, как нормальное расположение.
Параметр Data Control Block (DCB) детализирует физические характеристики набора данных. Этот параметр является обязательным для наборов данных, которые создаются на шаге задания.
LRECL — длина каждой записи, хранящейся в наборе данных.
RECFM — это формат записи набора данных. RECFM может содержать значения FB, V или VB. FB — это организация с фиксированным блоком, в которой одна или несколько логических записей сгруппированы в одном блоке. V — организация переменных, в которой одна логическая запись переменной длины размещена в одном физическом блоке. VB — это организация с переменным блоком, в которой одна или несколько логических записей переменной длины размещены в одном физическом блоке.
BLKSIZE — это размер физического блока. Чем больше блок, тем больше записей для файла FB или VB.
DSORG — это тип организации набора данных. DSORG может содержать значения PS (физическая последовательность), PO (разделенная организация) и DA (непосредственная организация).
Когда необходимо реплицировать значения DCB одного набора данных в другой в пределах одного и того же шага задания или JCL, он указывается как DCB = *. Stepname.ddname, где stepname — это имя шага задания, а ddname — набор данных, из которого DCB копируется.
Ниже приведен пример, где RECFM = FB, LRECL = 80 формирует DCB набора данных OUTPUT1.
Параметр SPACE указывает пространство, необходимое для набора данных в DASD (диск хранения прямого доступа). Ниже приводится синтаксис:
SPACE = (spcunits, (pri, sec, dir), RLSE)
Вот описание всех используемых параметров:
spcunits : это может быть один из CYL (цилиндр), TRK (треки) или BLKSIZE (размер блока).
pri : Это основное пространство, необходимое для набора данных.
sec : это дополнительное пространство, необходимое, когда основного пространства недостаточно.
ir : Это требуемые блоки каталогов, если набор данных представляет собой PDS (Partitioned Dataset) с членами внутри него.
RLSE : используется для освобождения неиспользуемого пространства при завершении задания.
Параметры UNIT и VOL перечислены в системном каталоге для каталогизированных наборов данных и, следовательно, доступны только с помощью физического имени DSN. Но для некаталогизированных наборов данных оператор DD должен включать эти параметры. Для создания новых наборов данных можно указать параметры UNIT / VOL или Z / OS назначит подходящее устройство и объем.
Параметр UNIT указывает тип устройства, на котором хранится набор данных. Тип устройства может быть идентифицирован с использованием адреса аппаратного обеспечения или группы типов устройств. Ниже приводится синтаксис:
UNIT = DASD | SYSDA
Где DASD означает устройство хранения с прямым доступом, а SYSDA означает System Direct Access и относится к следующему доступному устройству хранения на диске.
Параметр VOL указывает номер тома на устройстве, указанном параметром UNIT. Ниже приводится синтаксис:
VOL = SER = (v1, v2)
Где v1, v2 — серийные номера томов. Вы также можете использовать следующий синтаксис:
VOL = REF = *. DDNAME
Где REF — обратная ссылка на серийный номер тома набора данных на любом из предыдущих этапов задания в JCL.
Обсуждаемые до сих пор параметры оператора DD соответствуют данным, хранящимся в наборе данных. Параметр SYSOUT направляет данные на устройство вывода в соответствии с указанным классом. Ниже приводится синтаксис
SYSOUT = класс
Где, если class — это A, то он направляет вывод на принтер, а если class — *, то он направляет вывод в то же место назначения, что и параметр MSGCLASS в операторе JOB.
пример
Ниже приведен пример, который использует операторы DD вместе с различными параметрами, описанными выше: