Операционные системы и программное обеспечение на платформе zSeries

     

Оператор JOB


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

Формат оператора JOB:

//имя JOB параметры Позиционные параметры: [(учетная информация)][,идентификатор программиста] Ключевые параметры: [,MSGLEVEL = (предложения,сообщения)] [,CLASS = класс задания] [,MSGCLASS = класс сообщений] [,REGION = nK | nM] [,ТIМЕ = (минуты, секунды)] [,COND=((код_завершения,условие)[,(код_завершения,условие)])

Из общего количества ключевых параметров приведены только пять наиболее употребительных.

Учетная информация (до 142 символов) содержит сведения, используемые учетными программами ОС, с помощью которых подсчитываются используемое заданием машинное время и другие ресурсы. Если учетная информация задается списком значений, то этот список должен быть заключен в апострофы или круглые скобки.

Идентификатор программиста (до 20 символов) служит для идентификации пользователя, подготовившего задание. В качестве идентификатора можно указать фамилию и имя (инициалы) автора задания, номер отдела, в котором он работает, шифр темы, название организации и т.п. Если в идентификаторе используются русские буквы или пробелы, то его следует заключать в апострофы.

Варианты записи учетной информации и идентификатора программиста могут выглядеть так:

//PR1 JOB 5,'ИВАНОВ И.Л.' //PR2 JOB (5,А1),'ПЕТРОВ В.А.' //PR3 JOB 'T801,378',BOB //PR4 JOB ,'сидоров' //PR5 JOB 840,PETROV //PR6 JOB ,'KOBZON I.D.'

Параметр MSGLEVEL (уровень полноты сообщений) определяет, какую информацию необходимо выдать в отчет о выполнении задания, и имеет следующий формат:

MSGLEVEL=(a,b)

Подпараметр a может принимать три значения: 0, 1 и 2.
Если программист указал цифру 0, то в отчет выводится только оператор JOB. Значение 2 указывает, что требуется вывод всех операторов задания и операторов JECL, а цифра 1 определяет, что нужно выводить не только все операторы задания, но и операторы вызываемых процедур после замены в них символических параметров фактическими значениями.

Подпараметр b может принимать два значения: 0 и 1. Значение 1 предписывает всегда выводить в отчет связанные с выполнением задания сообщения, инициируемые оператором, интерпретатором JCL, JES и подсистемой управления данными DFSMS. Значение 0 указывает, что в отчет будут включены только сообщения интерпретатора JCL. Если параметр MSGLEVEL опущен, то по умолчанию принимаются значения, установленные в настройках JES. Примеры:

//GOD JOB ,,MSGLEVEL=(1,1) //ST JOB I,STUPIN,MSGLEVEL=2 //ST JOB ,JOHN,MSGLEVEL=(,1)

Во втором примере подпараметр b, а в третьем - подпараметр a будут установлены по умолчанию.

Параметр CLASS (класс) относит задание к определенному классу выполнения заданий и задается символами A-Z, 0-9. Если класс не указан, то принимается значение, установленное в настройках JES в зависимости от источника задания.

Пример:

//U01A JOB 21,TOMA,CLASS=В

Параметр MSGCLASS (класс сообщений) определяет выходной класс для системных сообщений, формируемых в процессе выполнения задания. Класс задается символами A-Z, 0-9. Параметр MSGCLASS дает возможность выводить все системные сообщения и выходные наборы данных, формируемые в шагах задания, в один и тот же класс или в разные классы. Такое разделение иногда может оказаться полезным.

Пример. Предусмотреть вывод всех управляющих операторов задания и сообщений отдельно от выходных наборов данных:



//U JOB (5.1),'ПЕТР',MSGLEVEL=(1,1),CLASS=B,MSGCLASS=С //STl EXEC PGM=PRINT //OUT DD SYSOUT=A

Здесь для выполнения задания предусмотрен класс В, для вывода результатов шага задания (параметр SYSOUT оператора DD) - класс А, а для вывода системных сообщений - класс С.

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


Параметр REGION задается в виде:

REGION=nК | nМ

где n - целочисленное значение, определяющее число килобайт (K) или мегабайт (M) виртуальной памяти. Например, если указать REGION = 900К, то шагам задания будет отводиться по 900 килобайт. Максимальное значение параметра в килобайтах - 2 096 128, в мегабайтах - 2047. Значение 0К или 0М означает, что задание требует в свое распоряжение всю приватную часть виртуального адресного пространства. Если параметр REGION в операторе JOB опущен, то используется значение, указанное в операторах EXEC. Если и в этих операторах он не задан, то принимается стандартное значение, заданное в настройках JES. Отметим, что с помощью параметра ADDRSPC, указываемого дополнительно, можно потребовать выделить для задания с помощью параметра REGION область реальной памяти (ADDRSPC=REAL).

Параметр TIME (время) устанавливает максимальную продолжительность выполнения задания и имеет формат:

ТIМЕ=(мин,сек)|мин|1440|NOLIMIT

Время указывается в минутах и секундах либо только в минутах. Если секунды не указаны, можно не использовать скобки. Например, запись TIME = 30 означает, что заданию требуется выделить 30 минут процессорного времени. Число минут может быть не более 1440 (т.е. 24 часа), а секунд - не более 60. Если по истечении времени, указанного в TIME, задание не завершило работы, то система либо принудительно завершает задание, либо использует средства специальной обработки "просроченных" заданий. По умолчанию, когда параметр TIME не задан, ограничение на выполнение задания определяется настройками JES. Если в параметре TIME указать число 1440 или слово NOLIMIT, то время выполнения задания считается неограниченным.

Варианты описания времени выполнения задания:

//PRIMER1 JOB ,,TIME=10 //PRIMER2 JOB ,,TIME =(10,30) //PRIMER3 JOB ,,TIME =(,30)

Задание PRIMER1 выполняется не более 10 мин, задание PRIMER2 - не более 10 мин и 30 с, а задание PRIMER3 - 30 с.

Параметр COND (от condition - условие) задает условия, при которых следует прекратить выполнение задания, если полученный на каком-либо шаге результат не устраивает пользователя.


Для управления выполнением шагов задания используют коды завершения. Код завершения или код возврата (RC от Return Code) формируется выполняемой в шаге задания программой и может характеризовать "успешность" выполнения программы в зависимости от полученного результата. Например, для многих системных программ z/OS принято использовать следующие значения кодов завершения:

0 - при обработке программы ошибок не обнаружено (успешное выполнение);

4 - обнаружены несущественные ошибки, выдается предупреждающее сообщение, но выполнение программы было продолжено;

8 - обнаружены ошибки, которые могут привести к невозможности выполнения задания (выдается сообщение об ошибках);

12 - обнаружены серьезные ошибки, дальнейшая обработка программы невозможна (выдается сообщение о серьезной ошибке);

16 - обнаружены ошибки, которые делают невозможным выполнение программы (выполнение программы прекращается).

Используется следующий формат записи параметра COND:

COND=((код_завершения,условие)[,(код_завершения,условие)_])

Допустимое значение подпараметра код_завершения указывается в виде целого числа в диапазоне от 0 до 4095. Подпараметр условие задает условие проверки кода завершения мнемоническим отношением вида: GT - больше, чем, GE - больше или равно, EQ - равно, LT - меньше, чем, LE - меньше или равно, NE - не равно.

Если заданное отношение к коду возврата, выработанному программой, которая вызывается оператором EXEC, не соблюдается, то выполнение задания прекращается. Внешние скобки можно опустить, если задано только одно условие. Условие, задаваемое параметром COND, проверяется перед выполнением каждого шага задания следующим образом: если код возврата, полученный на одном из предыдущих шагов, соответствует условию, то выполнение задания прекращается. Например, запись COND=(0,NE) предписывает прекратить выполнение задания, если окажется, что код завершения одного из шагов не равен нулю. В записи COND=(4,LT) указано, что если 4 меньше полученного кода завершения, то шаги задания не выполняются.Условие COND=((50,GE),(70,LE)) предписывает, что если 50 больше или равно коду возврата или 70 меньше или равно коду возврата, то оставшиеся шаги задания не выполняются. Таким образом, здесь задание будет выполняться до тех пор, пока код возврата находится в диапазоне от 51 до 69.

Если параметр COND опущен, то проверка кода возврата не производится.


Содержание раздела