Translate

quinta-feira, 25 de janeiro de 2007

O que são Filas, Classes e MSGLEVEL no JCL?

 

Bellacosa Mainframe explicando em jcl o que sao filas, classes e msglevel

O que são Filas, Classes e MSGLEVEL no JCL?

Quando alguém começa a trabalhar com:

  • JOBs;

  • JES2;

  • SDSF;

  • processamento batch;

rapidamente encontra conceitos como:

  • CLASS;

  • MSGCLASS;

  • filas;

  • MSGLEVEL.

Esses parâmetros controlam:

como o JOB será tratado pelo z/OS.

Eles são fundamentais para:

  • performance;

  • organização batch;

  • prioridade;

  • análise de spool.


Primeiro: o que são filas no mainframe?

Fila significa:

JOB aguardando processamento.

O JES2 organiza JOBs em:

  • ordem;

  • prioridade;

  • categoria;

  • disponibilidade de recursos.


Analogia simples

Imagine um banco.

Existem:

  • filas prioritárias;

  • filas normais;

  • atendimento rápido;

  • atendimento demorado.

O JES2 funciona da mesma forma.


Fluxo simplificado

SUBMIT
   ↓
FILA JES2
   ↓
INITIATOR
   ↓
EXECUÇÃO
   ↓
SPOOL

O que controla essas filas?

Principalmente:

CLASS.


O que é CLASS no JCL?

CLASS define:

a categoria/prioridade do JOB.


Exemplo

//MEUJOB JOB CLASS=A

O que a CLASS influencia?

  • prioridade;

  • tipo de processamento;

  • fila batch;

  • initiators;

  • tempo de execução;

  • políticas operacionais.


Cada empresa define suas classes

Exemplo fictício:

ClasseUso
Aprodução crítica
Btestes
Crelatórios
Tdesenvolvimento
Xprocessamento pesado

Então CLASS não é padrão universal

Cada ambiente define regras próprias.


Como o JES2 usa CLASS?

Ele organiza:

  • quem executa primeiro;

  • quais initiators atendem;

  • quanto recurso usar.


O que é initiator?

Processo que executa JOBs.

Alguns initiators atendem apenas:

  • CLASS=A;

  • CLASS=B;

  • etc.


Exemplo prático

//FINANCE JOB CLASS=A

JOB prioritário.


//TESTE JOB CLASS=T

JOB menos prioritário.


O que é MSGCLASS?

MSGCLASS define:

onde e como mensagens do spool serão tratadas.


Exemplo

MSGCLASS=X

O que isso controla?

  • saída JESMSGLG;

  • JESYSMSG;

  • SYSOUT;

  • retenção spool;

  • visualização SDSF.


Analogia simples

CLASS:

fila do processamento.

MSGCLASS:

fila das mensagens.


Exemplo completo

//MEUJOB JOB CLASS=A,
// MSGCLASS=X

O que é MSGLEVEL?

MSGLEVEL controla:

quantidade de mensagens exibidas no spool.


Exemplo

MSGLEVEL=(1,1)

Estrutura

MSGLEVEL=(x,y)

Primeiro número (x)

Controla:

mensagens JCL.


Segundo número (y)

Controla:

mensagens de alocação e execução.


Valores mais comuns


MSGLEVEL=(1,1)

Mostra:

  • JCL;

  • alocação;

  • execução;

  • mensagens completas.

Muito usado para:

debugging.


MSGLEVEL=(0,0)

Reduz mensagens.

Spool menor.


MSGLEVEL=(2,1)

Mais detalhado ainda.


Exemplo profissional

//PAYROLL JOB CLASS=A,
// MSGCLASS=X,
// MSGLEVEL=(1,1)

O que aparece no spool?

Com MSGLEVEL adequado aparecem:

  • datasets;

  • allocations;

  • DDs;

  • execução;

  • mensagens JES2.


Por que MSGLEVEL é importante?

Ajuda:

  • troubleshooting;

  • análise de erro;

  • debugging;

  • suporte.


Se MSGLEVEL estiver baixo…

…mensagens importantes podem desaparecer.


Como filas aparecem no SDSF?

No painel:

ST

ou:

I

Status comuns


INPUT

JOB aguardando execução.


ACTIVE

JOB executando.


OUTPUT

JOB finalizado.


HOLD

JOB parado aguardando liberação.


O que é HOLD?

JOB fica:

retido na fila.


O que é prioridade batch?

Algumas classes executam antes de outras.


Exemplo real

Produção:

CLASS=A

Testes:

CLASS=T

Produção normalmente possui prioridade maior.


O que é TYPRUN?

Outro parâmetro relacionado.


Exemplo

TYPRUN=SCAN

Valida JCL sem executar.


Muito usado para testes


Como operadores usam classes?

Para:

  • controlar workload;

  • separar ambientes;

  • evitar overload;

  • priorizar batch crítico.


Como programadores usam MSGLEVEL?

Para:

  • analisar erros;

  • entender ABENDs;

  • verificar alocação.


Exemplo clássico completo

//MEUJOB JOB CLASS=A,
// MSGCLASS=X,
// MSGLEVEL=(1,1)

Resultado

  • JOB prioritário;

  • spool completo;

  • mensagens detalhadas.


Curiosidades incríveis

1. Grandes bancos possuem dezenas de classes JES2


2. Algumas classes executam apenas à noite


3. MSGLEVEL ajuda muito em troubleshooting COBOL


4. Controle de filas é essencial em processamento massivo


Erros comuns de iniciantes


1. Confundir CLASS com MSGCLASS

CLASS:
processamento.

MSGCLASS:
mensagens.


2. Usar MSGLEVEL baixo durante debugging

Isso esconde informações.


3. Escolher classe errada

Pode atrasar execução.


4. Ignorar filas HOLD

JOB pode nunca executar.


Dicas importantes

Durante testes use:

MSGLEVEL=(1,1)

Aprenda classes do seu ambiente


Leia JESMSGLG sempre


Verifique status no SDSF


Como isso aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • DB2;

  • SORT;

  • batch;

  • automação;

  • produção;

  • operações.


Resumo rápido

ConceitoSignificado
CLASSPrioridade/fila do JOB
MSGCLASSClasse das mensagens
MSGLEVELQuantidade de mensagens
HOLDJOB parado
INPUTAguardando
ACTIVEExecutando
OUTPUTFinalizado

Conclusão

Filas, classes e MSGLEVEL são componentes fundamentais do processamento batch no z/OS.

Eles controlam prioridade, organização, execução e detalhamento das mensagens dos JOBs, permitindo que o JES2 administre milhares de processamentos simultaneamente de forma eficiente dentro do ambiente mainframe IBM Z.

Sem comentários:

Enviar um comentário