Учебники

JCL — DD Заявление

Наборы данных — это файлы мэйнфреймов с записями, организованными в определенном формате. Наборы данных хранятся на устройстве хранения с прямым доступом (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 = (статус, нормальное расположение, ненормальное расположение)

Ниже приведены допустимые значения для статуса :

  • НОВИНКА : набор данных создается на шаге задания. ВЫХОД 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 является значением по умолчанию.

  • нормальное расположение : если статус НОВЫЙ, по умолчанию нормальное расположение — УДАЛИТЬ, в противном случае это ХРАНИТ.

  • ненормальное расположение : такое же, как нормальное расположение.

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)

Вот описание всех используемых параметров:

  • 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

Параметр 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 вместе с различными параметрами, описанными выше: