JCL - Declaração JOB

A instrução JOB é a primeira instrução de controle em uma JCL. Isso dá a identidade do trabalho ao Sistema Operacional (SO), no spool e no agendador. Os parâmetros na instrução JOB ajudam os sistemas operacionais a alocar o escalonador correto, o tempo de CPU necessário e a emitir notificações para o usuário.

Sintaxe

A seguir está a sintaxe básica de uma instrução JCL JOB:

//Job-name JOB Positional-param, Keyword-param

Descrição

Vamos ver a descrição dos termos usados ​​na sintaxe da instrução JOB acima.

Nome do trabalho

Isso fornece uma identificação para o trabalho ao enviá-lo ao sistema operacional. Pode ter comprimento de 1 a 8 com caracteres alfanuméricos e começa logo após //.

TRABALHO

Esta é a palavra-chave para identificá-la como uma instrução JOB.

Parâmetro posicional

Existem parâmetros posicionais, que podem ser de dois tipos:

Parâmetro Posicional Descrição
Account information Refere-se à pessoa ou grupo ao qual o tempo de CPU é devido. É definido de acordo com as regras da empresa proprietária dos mainframes. Se for especificado como (*), leva o id do usuário, que está atualmente conectado ao Terminal Mainframe.
Programmer name Isso identifica a pessoa ou grupo responsável pelo JCL. Este não é um parâmetro obrigatório e pode ser substituído por uma vírgula.

Keyword-param

A seguir estão os vários parâmetros de palavra-chave, que podem ser usados ​​na instrução JOB. Você pode usar um ou mais parâmetros com base nos requisitos e eles são separados por vírgula:

Parâmetro de palavra-chave Descrição
CLASS

Com base no tempo de duração e no número de recursos exigidos pelo trabalho, as empresas atribuem diferentes classes de trabalho. Eles podem ser visualizados como agendadores individuais usados ​​pelo sistema operacional para receber os trabalhos. Colocar os trabalhos no escalonador certo ajudará na fácil execução dos trabalhos. Algumas empresas têm classes diferentes para empregos em ambiente de teste e produção.

Os valores válidos para o parâmetro CLASS são de A a Z caracteres e 0 a 9 numéricos (de comprimento 1). A seguir está a sintaxe:

CLASS=0 to 9 | A to Z

PRTY

Para especificar a prioridade do trabalho dentro de uma classe de trabalho. Se este parâmetro não for especificado, o trabalho será adicionado ao final da fila na CLASSE especificada. A seguir está a sintaxe:

PRTY=N

Onde N é um número entre 0 e 15 e quanto maior o número, maior é a prioridade.

NOTIFY

O sistema envia a mensagem de sucesso ou falha (Código de condição máxima) para o usuário especificado neste parâmetro. A seguir está a sintaxe:

NOTIFY="userid | &SYSUID"

Aqui, o sistema envia a mensagem ao usuário "userid", mas se usarmos NOTIFY = & SYSUID, a mensagem é enviada ao usuário que está enviando o JCL.

MSGCLASS

Para especificar o destino de saída para o sistema e mensagens de trabalho quando o trabalho for concluído. A seguir está a sintaxe:

MSGCLASS=CLASS

Os valores válidos de CLASS podem ser de "A" a "Z" e de "0" a "9". MSGCLASS = Y pode ser definido como uma classe para enviar o log do trabalho para o JMR (Gerenciamento e recuperação de JOBLOG: um repositório dentro de mainframes para armazenar as estatísticas do trabalho).

MSGLEVEL

Especifica o tipo de mensagens a serem gravadas no destino de saída especificado no MSGCLASS. A seguir está a sintaxe:

MSGLEVEL=(ST, MSG)

ST = Tipo de declarações escritas no log de saída

  • Quando ST = 0, apenas declarações de trabalho.

  • Quando ST = 1, JCL junto com parâmetros simbólicos expandidos.

  • Quando ST = 2, insira apenas JCL.

MSG = Tipo de mensagens gravadas no log de saída.

  • Quando MSG = 0, mensagens de Alocação e Rescisão são gravadas após a conclusão anormal do trabalho.

  • Quando MSG = 1, as mensagens de Alocação e Rescisão são gravadas independentemente da natureza da conclusão do trabalho.

TYPRUN

Especifica um processamento especial para o trabalho. A seguir está a sintaxe:

TYPRUN = SCAN | HOLD

Onde SCAN e HOLD tem a seguinte descrição

  • TYPRUN = SCAN verifica os erros de sintaxe do JCL sem executá-lo.

  • TYPRUN = HOLD coloca o trabalho em HOLD na fila de trabalhos. Para liberar o trabalho, "A" pode ser digitado em relação ao trabalho no SPOOL, o que trará o trabalho para execução.

TIME

Especifica o intervalo de tempo a ser usado pelo processador para executar o trabalho. A seguir está a sintaxe:

TIME=(mm, ss) or TIME=ss

Onde mm = minutos e ss = segundos

Este parâmetro pode ser útil ao testar um programa recém-codificado. Para garantir que o programa não seja executado por muito tempo devido a erros de loop, um parâmetro de tempo pode ser codificado para que o programa termine de forma anormal quando o tempo de CPU especificado for atingido.

REGION

Especifica o espaço de endereço necessário para executar uma etapa do trabalho dentro do trabalho. A seguir está a sintaxe:

REGION=nK | nM

Aqui, a região pode ser especificada como nK ou nM, onde n é um número, K é kilobyte e M é Megabyte.

Quando REGION = 0 K ou 0 M, o maior espaço de endereço é fornecido para execução. Em aplicativos críticos, a codificação de 0 K ou 0 M é proibida para evitar o desperdício de espaço de endereço.

Exemplo

//URMISAMP JOB (*),"tutpoint",CLASS=6,PRTY=10,NOTIFY=&SYSUID, 
//   MSGCLASS=X,MSGLEVEL=(1,1),TYPRUN=SCAN, 
//   TIME=(3,0),REGION=10K

Aqui, a instrução JOB está sendo estendida além da 70ª posição em uma linha, então continuamos na próxima linha, que deve começar com "//" seguido por um ou mais espaços.

Parâmetros Diversos

Existem alguns outros parâmetros, que podem ser usados ​​com a instrução JOB, mas não são usados ​​com frequência:

ADDRSPC Tipo de armazenamento usado: Virtual ou Real
BYTES Tamanho dos dados a serem gravados no log de saída e a ação a ser executada quando o tamanho for excedido.
LINES Número máximo de linhas a serem impressas no registro de saída.
PAGES Número máximo de páginas a serem impressas para registro de saída.
USER ID do usuário usado para enviar o trabalho
PASSWORD Senha do ID do usuário especificado no parâmetro USER.
COND and RESTART Eles são usados ​​no processamento de etapa de trabalho condicional e são explicados em detalhes ao discutir o processamento condicional.