Translate

domingo, 21 de janeiro de 2007

Introdução ao JCL

 

Bellacosa Mainframe e a introdução ao JCL

Introdução ao JCL

Quando alguém começa a estudar mainframe IBM, rapidamente encontra uma sigla extremamente importante:

JCL

Ela é uma das bases do ambiente z/OS.

Praticamente todo processamento batch no mainframe depende dela.


O que significa JCL?

JCL significa:

Job Control Language

Em português:

Linguagem de Controle de JOBs


Definição simples

O JCL é a linguagem usada para:

  • executar programas;

  • controlar JOBs;

  • manipular datasets;

  • definir arquivos;

  • organizar processamento batch no z/OS.


Uma analogia fácil

Imagine uma cozinha industrial.

O cozinheiro seria:

o programa COBOL.

O JCL seria:

a folha de instruções da cozinha.

Ela informa:

  • o que executar;

  • quais ingredientes usar;

  • onde buscar arquivos;

  • onde gravar resultados;

  • ordem das etapas.


O JCL é uma linguagem de programação?

Não exatamente.

Ele é:

uma linguagem de controle.

O JCL não faz cálculos como COBOL.

Ele:

  • organiza execução;

  • controla recursos;

  • conversa com o sistema operacional.


O que o JCL controla?


Programas

COBOL, SORT, DB2, utilitários.


Datasets

Arquivos de entrada e saída.


Recursos

Disco, spool, memória.


Execução batch

Processamento automático.


Estrutura básica de um JCL

Um JCL normalmente possui:

  • JOB

  • EXEC

  • DD


Exemplo simples

//MEUJOB JOB CLASS=A,MSGCLASS=X
//STEP1  EXEC PGM=IEFBR14
//ARQ1   DD DSN=USUARIO.TESTE,
//       DISP=SHR

Entendendo linha por linha


JOB

Define o JOB.


EXEC

Executa programa.


DD

Define datasets e arquivos.


O que significa "//"?

Cada instrução JCL começa com:

//

Isso identifica comandos para o z/OS.


O que é JOB?

Primeira instrução do JCL.

Exemplo:

//PAYROLL JOB CLASS=A

Ela define:

  • nome;

  • classe;

  • parâmetros batch.


O que é EXEC?

Executa programas.

Exemplo:

//STEP1 EXEC PGM=COBOLPG

PGM significa:

Program


O que é DD?

DD significa:

Data Definition

Define arquivos usados pelo programa.


Exemplo

//INPUT DD DSN=CLIENTES.ARQ,
//      DISP=SHR

O que é DSN?

Dataset Name

Nome do dataset.


O que é DISP?

Define status do dataset.


DISP=SHR

Compartilhado.


DISP=OLD

Uso exclusivo.


DISP=NEW

Novo dataset.


O que é STEP?

Etapa do JOB.

Um JOB pode possuir vários STEPs.


Exemplo

//STEP1 EXEC PGM=SORT
//STEP2 EXEC PGM=COBOLPG
//STEP3 EXEC PGM=IDCAMS

Fluxo simplificado

JCL
 ↓
JES2
 ↓
FILA
 ↓
EXECUÇÃO
 ↓
SPOOL
 ↓
SDSF

O que é JES2?

Subsistema que controla:

  • JOBs;

  • spool;

  • filas batch.


O que é spool?

Área temporária onde ficam:

  • logs;

  • SYSOUT;

  • relatórios.


Como executar JCL?

No ISPF:

SUBMIT

O que acontece depois?

O JES2:

  • valida;

  • agenda;

  • executa;

  • gera spool.


Onde ver resultado?

Normalmente no:

SDSF.


Arquivos importantes do spool


JESJCL

Mostra JCL interpretado.


JESMSGLG

Mensagens JES2.


JESYSMSG

Mensagens do sistema.


SYSOUT

Saída do programa.


O que é SYSOUT?

Saída gerada pelo JOB.

Exemplo:

//SYSOUT DD SYSOUT=*

O que é CLASS?

Classe do JOB.

Controla:

  • prioridade;

  • tratamento;

  • execução.


O que é MSGCLASS?

Classe das mensagens do spool.


O que é COND?

Controla execução condicional.


Exemplo

COND=(0,NE)

O que é PROC?

Procedure.

JCL reutilizável.

Muito usado em produção.


O que é utility?

Programas utilitários do z/OS:

  • IEBGENER;

  • SORT;

  • IDCAMS;

  • IEHLIST.


Exemplo famoso: IEFBR14

Programa “dummy” muito usado para:

  • criar;

  • deletar;

  • testar datasets.


Exemplo clássico

//STEP1 EXEC PGM=IEFBR14

O JCL ainda é usado hoje?

Muito.

Principalmente em:

  • bancos;

  • seguradoras;

  • governos;

  • processamento financeiro.


Curiosidades incríveis

1. Muitos JCLs possuem décadas de existência


2. Grandes bancos executam milhões de JOBs JCL diariamente


3. O conceito de batch continua extremamente importante


4. O JCL influenciou vários schedulers modernos


Erros comuns de iniciantes


1. Esquecer "//"

Erro clássico.


2. Dataset inexistente

Muito comum.


3. DISP errado

Pode causar falha ou lock.


4. Ignorar SYSOUT

Ali ficam mensagens importantes.


O que é ABEND?

Erro anormal de execução.

Muito comum em:

  • JCL;

  • datasets;

  • COBOL.


Como JCL aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • DB2;

  • SORT;

  • backups;

  • integração;

  • automação;

  • batch.


Mensagens famosas


$HASP373

JOB iniciado.


$HASP395

JOB finalizado.


Exemplo

$HASP373 PAYROLL STARTED
$HASP395 PAYROLL ENDED

Por que aprender JCL?

Porque ele é:

a espinha dorsal do processamento batch no z/OS.

Quem domina JCL entende:

  • JOBs;

  • spool;

  • JES2;

  • datasets;

  • operações mainframe.


Resumo rápido

ConceitoSignificado
JCLLinguagem de controle
JOBProcessamento batch
EXECExecuta programa
DDDefine datasets
JES2Gerencia JOBs
SDSFMonitora spool
SYSOUTSaída do JOB

Conclusão

O JCL é uma das tecnologias mais importantes do ambiente mainframe IBM Z.

Ele controla a execução de JOBs batch, organiza programas e datasets, e permite automatizar o processamento corporativo crítico dentro do z/OS.


sábado, 20 de janeiro de 2007

O que é JOB?

 

Bellacosa Mainframe o que é job

O que é JOB?

Quando alguém começa a estudar mainframe, uma das primeiras palavras que aparecem é:

JOB

Ele é um dos conceitos mais importantes do ambiente z/OS.

Praticamente todo processamento batch no mainframe acontece através de JOBs.


Definição simples

JOB é:

um conjunto de instruções que o z/OS executa em modo batch.

Essas instruções dizem ao sistema:

  • qual programa executar;

  • quais arquivos usar;

  • quais recursos alocar;

  • o que fazer durante o processamento.


Uma analogia fácil

Imagine um cozinheiro em uma cozinha industrial.

O JOB seria:

a receita completa.

Ela informa:

  • ingredientes;

  • ordem das etapas;

  • tempo;

  • resultado esperado.

O z/OS segue essa “receita” automaticamente.


O que significa batch?

Batch significa:

processamento em lote.

Ou seja:
tarefas executadas automaticamente, sem interação constante do usuário.


Exemplos de JOBs

  • folha salarial;

  • fechamento bancário;

  • backup;

  • geração de relatórios;

  • processamento de cartões;

  • integração de sistemas.


O JOB é um programa?

Não exatamente.

O JOB é:

um container de execução.

Dentro dele podem existir:

  • programas COBOL;

  • SORT;

  • utilitários;

  • DB2;

  • scripts;

  • procedures.


Como um JOB é escrito?

Usando:

JCL


O que é JCL?

JCL significa:

Job Control Language

É a linguagem usada para criar JOBs no z/OS.


Exemplo simples de JOB

//MEUJOB JOB CLASS=A,MSGCLASS=X
//STEP1  EXEC PGM=IEFBR14

Entendendo linha por linha


//MEUJOB JOB

Define:

  • nome do JOB;

  • informações de controle.


CLASS=A

Classe do JOB.

Define prioridade e tratamento.


MSGCLASS=X

Classe das mensagens e spool.


STEP1

Nome do passo.


EXEC PGM=IEFBR14

Executa um programa.


O que é STEP?

JOB é dividido em:

etapas.

Cada etapa é chamada:

STEP.


Um JOB pode ter vários STEPs

Exemplo:

//STEP1 EXEC PGM=SORT
//STEP2 EXEC PGM=COBOLPGM
//STEP3 EXEC PGM=IDCAMS

Fluxo de um JOB

USUÁRIO
   ↓
SUBMIT
   ↓
JES2
   ↓
FILA
   ↓
EXECUÇÃO
   ↓
SPOOL
   ↓
RESULTADO

Como executar um JOB?

No ISPF:
digitar:

SUBMIT

O que acontece depois?

O JES2:

  • recebe;

  • valida;

  • coloca em fila;

  • executa;

  • gera spool.


O que é spool?

Área temporária onde ficam:

  • logs;

  • SYSOUT;

  • relatórios;

  • mensagens.


Onde visualizar resultado?

Normalmente no:

SDSF.


O que aparece no SDSF?

  • JOBID;

  • status;

  • spool;

  • SYSOUT;

  • RC;

  • mensagens.


O que é JOBID?

Identificador único do JOB.

Exemplo:

JOB12345

O que é RC?

Return Code

Código de retorno.


Exemplo

CC 0000

Indica:

sucesso.


Outros exemplos

CC 0004

Warning.

CC 0012

Erro.


O que é ABEND?

Erro anormal de execução.

Muito comum em:

  • COBOL;

  • JCL;

  • datasets;

  • DB2.


O que é initiator?

Processo do z/OS que executa JOBs.


O JES2 executa JOB?

Não diretamente.

Ele:

  • controla;

  • agenda;

  • gerencia filas.

Quem executa é:

initiator.


O que um JOB pode fazer?

Praticamente tudo:

  • executar COBOL;

  • ordenar arquivos;

  • copiar datasets;

  • acessar DB2;

  • gerar relatórios;

  • backups;

  • integração.


JOB online existe?

Normalmente JOB é:

batch.

Online geralmente usa:

  • CICS;

  • IMS;

  • aplicações interativas.


O que é JOB batch noturno?

Grandes empresas executam milhares de JOBs durante a madrugada.

Exemplo:

  • fechamento bancário;

  • faturamento;

  • PIX;

  • cartões;

  • folha salarial.


Curiosidades incríveis

1. Bancos executam milhões de JOBs diariamente


2. Muitos JOBs existem há décadas


3. O processamento batch continua extremamente importante

Mesmo na era cloud.


4. O conceito de JOB influenciou schedulers modernos


Erros comuns de iniciantes


1. Confundir JOB com programa

JOB executa programas.


2. Ignorar spool

Ali ficam mensagens fundamentais.


3. Não verificar RC

Pode esconder erros importantes.


4. Esquecer datasets no JCL

Erro clássico de iniciantes.


O que é scheduler?

Ferramenta que agenda JOBs automaticamente.

Exemplos:

  • Control-M;

  • CA7;

  • OPC/TWS.


Como JOB aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • DB2;

  • SORT;

  • backups;

  • relatórios;

  • integração;

  • automação.


Mensagens famosas de JOB


$HASP373

JOB iniciado.


$HASP395

JOB finalizado.


Exemplo

$HASP373 PAYROLL STARTED
$HASP395 PAYROLL ENDED

Por que aprender JOB?

Porque ele é:

a base do processamento batch no z/OS.

Quem entende JOB entende:

  • JCL;

  • JES2;

  • spool;

  • batch;

  • operações mainframe.


Resumo rápido

ConceitoSignificado
JOBProcessamento batch
JCLLinguagem de controle
STEPEtapa do JOB
JES2Gerencia JOBs
SDSFMonitora JOBs
RCReturn Code
SpoolÁrea de saída

Conclusão

JOB é o mecanismo central de processamento batch no ambiente mainframe IBM Z.

Ele permite executar programas, manipular datasets e automatizar tarefas corporativas críticas através do JCL, sendo peça fundamental do funcionamento do z/OS moderno.

sexta-feira, 19 de janeiro de 2007

A Origem das Mensagens $HASP no Mainframe

 

Bellacosa Mainframe e as origem das mensagens Hasp

A Origem das Mensagens $HASP no Mainframe

Quem trabalha com:

  • JES2;

  • SDSF;

  • operações z/OS;

  • processamento batch;

rapidamente encontra mensagens como:

$HASP373 JOB12345 STARTED

ou:

$HASP395 JOB12345 ENDED

Essas mensagens são extremamente famosas no mundo mainframe.

Mas pouca gente conhece sua verdadeira origem histórica.


O que significa $HASP?

HASP significa:

Houston Automatic Spooling Priority


Origem histórica

O HASP nasceu nos anos 1960.

Naquela época, os mainframes IBM começaram a enfrentar um grande problema:

  • muitas impressoras;

  • leitores de cartão;

  • filas batch;

  • dispositivos lentos;

  • grande volume de JOBs.

Era necessário criar um sistema que organizasse:

  • spool;

  • prioridades;

  • entrada e saída batch.


Então surgiu o HASP

O sistema foi desenvolvido originalmente pela:

Universidade de Houston

Por isso:

Houston Automatic Spooling Priority.


O objetivo inicial

Melhorar:

  • gerenciamento de filas;

  • uso de impressoras;

  • throughput batch;

  • desempenho operacional.


O que o HASP fazia?

Ele controlava:

  • spool;

  • impressão;

  • leitores de cartão;

  • execução batch;

  • prioridades.


A IBM gostou tanto da ideia…

…que incorporou o HASP ao sistema operacional.

Com o tempo ele evoluiu para:

JES2.


Relação entre HASP e JES2

Historicamente:

HASP
   ↓
HASP II
   ↓
JES2

Então JES2 veio do HASP?

Sim.

O JES2 é descendente direto do antigo HASP.

Por isso até hoje as mensagens continuam usando:

$HASP


O que significa o símbolo "$"?

No JES2:

"$"

normalmente indica:

  • comandos;

  • mensagens do subsistema.


Exemplo clássico

$HASP100

Mensagem do JES2/HASP.


Mensagens famosas do HASP


$HASP373

JOB iniciado.

Exemplo:

$HASP373 MEUJOB STARTED

$HASP395

JOB finalizado.

Exemplo:

$HASP395 MEUJOB ENDED

$HASP250

JOB aguardando execução.


$HASP099

Mensagens gerais do JES2.


Por que as mensagens continuaram?

Compatibilidade histórica.

O mainframe IBM possui uma característica lendária:

preservar compatibilidade por décadas.

Então:

  • programas antigos;

  • automações;

  • operadores;

  • documentações;

continuaram usando:

$HASP.


Isso virou tradição no mainframe

Hoje:

  • operadores reconhecem mensagens HASP instantaneamente;

  • automações monitoram $HASP;

  • sistemas batch dependem delas.


O que as mensagens HASP informam?

Elas mostram:

  • início de JOB;

  • fim de JOB;

  • status batch;

  • spool;

  • erros;

  • filas;

  • impressoras;

  • initiators.


Onde aparecem?

Principalmente em:

  • SDSF;

  • JESMSGLG;

  • consoles z/OS;

  • logs operacionais.


Exemplo real no SDSF

$HASP373 PAYROLL STARTED
$HASP395 PAYROLL ENDED - RC=0000

O que é RC?

Return Code.

Indica:

  • sucesso;

  • warning;

  • erro.


As mensagens HASP ainda são usadas?

Muito.

Praticamente todos os ambientes JES2 modernos continuam exibindo:

$HASP.


O HASP existia antes do z/OS?

Sim.

Muito antes.

Ele surgiu ainda na era:

  • OS/360;

  • cartões perfurados;

  • impressoras line printer.


O que era spool naquela época?

Os JOBs eram enviados por:

  • cartões;

  • leitores físicos;

  • impressoras gigantes.

O HASP ajudava a organizar tudo.


Curiosidade histórica incrível

Antes do HASP…

muitos sistemas processavam tarefas quase manualmente.

O HASP revolucionou:

automação batch.


O que é HASP II?

Evolução do HASP original.

Mais avançado e mais eficiente.

Foi a base direta do:

JES2.


JES2 ainda usa conceitos do HASP?

Sim.

Muitos conceitos continuam:

  • spool;

  • filas;

  • classes;

  • prioridades;

  • mensagens.


Curiosidades incríveis

1. HASP nasceu em universidade

E virou padrão mundial.


2. O prefixo $HASP sobrevive há décadas

Mesmo após várias gerações do z/OS.


3. Operadores experientes decoram códigos HASP


4. Muitas automações monitoram mensagens HASP em tempo real


O que iniciantes costumam confundir?


1. Pensar que HASP é produto separado

Hoje ele está incorporado ao JES2.


2. Achar que mensagens $HASP são erros

Muitas são apenas status normais.


3. Confundir JES2 com HASP

JES2 é evolução do HASP.


4. Ignorar mensagens JESMSGLG

Ali ficam muitas mensagens HASP importantes.


Como isso aparece no dia a dia?

Em praticamente toda operação batch:

  • submit;

  • spool;

  • execução;

  • término;

  • cancelamento.


Exemplo clássico de fluxo

SUBMIT
   ↓
$HASP100
   ↓
$HASP373
   ↓
EXECUÇÃO
   ↓
$HASP395

Por que aprender isso?

Porque entender HASP ajuda a compreender:

  • origem do JES2;

  • spool;

  • batch;

  • história do z/OS;

  • evolução operacional do mainframe.


Resumo rápido

ConceitoSignificado
HASPHouston Automatic Spooling Priority
OrigemUniversidade de Houston
Evoluiu paraJES2
$HASP373JOB started
$HASP395JOB ended
SpoolGerenciamento batch
JES2Descendente do HASP

Conclusão

As mensagens $HASP são herança direta de um dos sistemas mais importantes da história do mainframe.

Criado originalmente na Universidade de Houston, o HASP revolucionou o gerenciamento batch e evoluiu para o JES2 moderno, mantendo até hoje suas mensagens clássicas dentro do ambiente z/OS IBM Z.


quinta-feira, 18 de janeiro de 2007

O que é Spool?

 

Bellacosa Mainframe o que é spool

O que é Spool?

Quando alguém começa a estudar mainframe, rapidamente encontra palavras como:

  • JES2;

  • SDSF;

  • SYSOUT;

  • batch;

  • spool.

E normalmente surge a pergunta:

O que exatamente é spool?

A resposta é simples:

spool é uma área temporária usada para armazenar saídas e entradas de JOBs.

Mas por trás disso existe um dos mecanismos mais importantes do z/OS.


O que significa Spool?

Spool significa:

Simultaneous Peripheral Operations Online


Definição simples

O spool funciona como:

uma área intermediária de armazenamento temporário.

Ele guarda:

  • relatórios;

  • SYSOUT;

  • logs;

  • mensagens;

  • saídas batch;

  • arquivos de impressão.


Uma analogia fácil

Imagine uma impressora de escritório.

Várias pessoas enviam documentos ao mesmo tempo.

A impressora não imprime tudo imediatamente.

Então existe:

uma fila temporária.

O spool funciona exatamente assim.


O que o spool faz?

Ele:

  • recebe saídas dos JOBs;

  • organiza filas;

  • armazena temporariamente;

  • libera saída quando necessário.


Onde o spool é usado?

Principalmente em:

  • JES2;

  • JES3;

  • SDSF;

  • processamento batch.


Fluxo simples do spool

JOB
 ↓
EXECUÇÃO
 ↓
SYSOUT
 ↓
SPOOL
 ↓
SDSF
 ↓
USUÁRIO

O que fica armazenado no spool?


SYSOUT

Saída do JOB.


Logs

Mensagens do sistema.


Relatórios

Resultados batch.


Mensagens JES2

Status e execução.


Dumps

Informações de erro e ABEND.


O que é SYSOUT?

SYSOUT significa:

saída do sistema.

Exemplo:

//SYSOUT DD SYSOUT=*

O que acontece quando um JOB termina?

O resultado normalmente vai para:

spool.

Depois o usuário visualiza via:

SDSF.


O spool é um dataset?

Internamente o spool usa estruturas especiais do sistema.

Ele não funciona como um dataset comum.


Quem controla o spool?

Normalmente:

JES2

ou:

JES3.


O SDSF acessa o spool

Ele permite:

  • visualizar;

  • pesquisar;

  • administrar saídas.


Como visualizar spool?

No SDSF:

  • ST;

  • O;

  • H;

  • LOG.


Exemplo no SDSF

NP JOBNAME JOBID OWNER STATUS

Selecionando o JOB aparecem:

  • JESMSGLG;

  • JESJCL;

  • JESYSMSG;

  • SYSOUT.


Arquivos clássicos do spool


JESJCL

JCL interpretado.


JESMSGLG

Mensagens JES2.


JESYSMSG

Mensagens do sistema.


SYSOUT

Relatórios da aplicação.


CEEDUMP

Dump em caso de erro.


O que é HOLD?

Saída pode ficar:

retida no spool.

Aguardando:

  • análise;

  • impressão;

  • liberação.


O que é purge?

Remover saída do spool.


O spool ocupa disco?

Sim.

O spool utiliza armazenamento DASD.


Por que o spool é importante?

Porque praticamente todo processamento batch depende dele.

Sem spool:

  • JOBs falham;

  • relatórios somem;

  • impressão para;

  • operações batch quebram.


O que é spool full?

Quando o espaço do spool acaba.

Isso pode causar:

  • paralisação batch;

  • falha de JOBs;

  • problemas críticos.


Operadores monitoram spool constantemente

Especialmente em:

  • bancos;

  • processamento noturno;

  • grandes batchs.


Como o spool ajuda performance?

Ele desacopla:

  • execução;

  • impressão;

  • leitura;

  • saída.

Tudo pode acontecer em momentos diferentes.


Analogia simples

Sem spool:

  • JOB teria de esperar impressora.

Com spool:

  • JOB termina rapidamente;

  • impressão acontece depois.


O spool ainda é usado hoje?

Muito.

Mesmo com:

  • PDFs;

  • relatórios digitais;

  • cloud;

  • automação.

O conceito continua essencial.


O que é spool dataset?

Área interna usada pelo JES2 para armazenar spool.


O que é spool offload?

Transferência do spool para:

  • backup;

  • arquivamento;

  • retenção.


O que é output class?

Classe de saída.

Exemplo:

//SYSOUT=A

Define:

  • prioridade;

  • destino;

  • tratamento da saída.


O que é writer?

Processo responsável por:

  • imprimir;

  • transferir;

  • processar saídas spool.


Curiosidades incríveis

1. O spool existe desde os primeiros mainframes


2. O conceito influenciou sistemas modernos de fila


3. Grandes bancos geram milhões de páginas de spool diariamente


4. Muitos problemas operacionais começam por spool cheio


Erros comuns de iniciantes


1. Confundir spool com dataset comum

Spool possui gerenciamento especial.


2. Apagar spool importante

Pode remover logs críticos.


3. Ignorar SYSOUT

Ali ficam mensagens fundamentais.


4. Não monitorar espaço spool

Isso pode derrubar batchs.


Como o spool aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • JCL;

  • batch;

  • relatórios;

  • DB2;

  • SORT;

  • automação.


Exemplo real

Programa COBOL:

DISPLAY 'PROCESSAMENTO OK'

Mensagem aparece no:

spool.


Como acessar rapidamente?

No SDSF:

ST

Selecionar JOB:

?

Por que aprender spool?

Porque ele é:

uma das bases do processamento batch no z/OS.

Quem entende spool entende:

  • JES2;

  • SDSF;

  • SYSOUT;

  • operações;

  • troubleshooting.


Resumo rápido

ConceitoSignificado
SpoolÁrea temporária batch
SYSOUTSaída do JOB
JES2Gerencia spool
SDSFVisualiza spool
HOLDRetém saída
PURGERemove spool
Output ClassClasse de saída

Conclusão

O spool é um dos mecanismos mais importantes do ambiente mainframe IBM Z.

Ele permite armazenar, organizar e controlar entradas e saídas de JOBs batch com eficiência, garantindo que o processamento no z/OS aconteça de forma rápida, organizada e confiável.

quarta-feira, 17 de janeiro de 2007

Introdução ao SDSF

 

Bellacosa Mainframe introduz o SDSF

Introdução ao SDSF

Quando alguém começa a trabalhar no ambiente z/OS, rapidamente encontra uma ferramenta extremamente importante chamada:

SDSF

Ela é uma das interfaces mais usadas no dia a dia do mainframe.

Praticamente todo operador, programador COBOL, analista de produção ou administrador z/OS utiliza SDSF constantemente.


O que significa SDSF?

SDSF significa:

Spool Display and Search Facility

Em português:

Facilidades de Visualização e Pesquisa do Spool


Definição simples

O SDSF é uma ferramenta do z/OS usada para:

  • monitorar JOBs;

  • visualizar spool;

  • acompanhar execução batch;

  • consultar SYSOUT;

  • administrar tarefas do sistema.


Uma analogia fácil

Imagine um aeroporto.

O JES2 seria:

a torre de controle.

O SDSF seria:

o painel onde os operadores acompanham todos os voos em tempo real.


O que o SDSF monitora?

Ele mostra:

  • JOBs ativos;

  • JOBs finalizados;

  • spool;

  • logs;

  • tarefas do sistema;

  • started tasks;

  • mensagens do JES2.


O que é spool?

Spool é a área onde ficam:

  • relatórios;

  • SYSOUT;

  • mensagens;

  • logs batch.

O SDSF é a principal interface para visualizar isso.


Como acessar o SDSF?

Normalmente pelo:

ISPF

Ou digitando:

SDSF

na linha de comando TSO.


O que aparece ao abrir?

O SDSF possui vários painéis.

Os mais famosos são:

  • ST

  • DA

  • I

  • O

  • H

  • LOG


Painel ST

Status

Mostra:

  • JOBs;

  • started tasks;

  • tarefas ativas.


Exemplo

COMMAND INPUT ===>
NP JOBNAME  JobID    Owner    Status

Painel DA

Display Active

Mostra:

  • tarefas em execução;

  • uso ativo do sistema.


Painel I

Input Queue

Mostra JOBs aguardando execução.


Painel O

Output Queue

Mostra saídas SYSOUT.


Painel H

Held Output

JOBs ou outputs em HOLD.


Painel LOG

Mostra logs do sistema.

Muito usado por operadores.


O que é um JOB?

JOB é um processamento batch.

Exemplos:

  • fechamento bancário;

  • folha salarial;

  • backups;

  • relatórios.


Como visualizar um JOB?

No painel ST:

  1. localizar JOB;

  2. colocar:

?

ou:

S
  1. pressionar ENTER.


O que aparece?

  • JESMSGLG;

  • JESJCL;

  • JESYSMSG;

  • SYSOUT;

  • relatórios;

  • logs COBOL.


Arquivos famosos dentro do spool


JESJCL

Mostra JCL interpretado.


JESMSGLG

Log do JES2.


JESYSMSG

Mensagens do sistema.


SYSOUT

Saída da aplicação.


Como cancelar JOB?

Comandos no SDSF:

C

Como colocar HOLD?

H

Como liberar JOB?

A

Como apagar spool?

P

ou:

PURGE

O SDSF é apenas visualização?

Não.

Dependendo da autorização RACF, ele permite:

  • controlar JOBs;

  • cancelar tarefas;

  • liberar spool;

  • administrar sistema.


O SDSF usa JES2?

Sim.

O SDSF é uma interface que conversa com:

  • JES2;

  • JES3;

  • z/OS.


O SDSF substitui o JES2?

Não.


JES2

Gerencia JOBs.


SDSF

Monitora e controla via interface.


Como o SDSF aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • batch;

  • produção;

  • operações;

  • automação;

  • suporte.


Exemplo prático

Fluxo simples:

SUBMIT JOB
     ↓
JES2 recebe
     ↓
JOB executa
     ↓
SDSF monitora
     ↓
Usuário visualiza SYSOUT

O que é SYSOUT?

Saída gerada pelo JOB:

  • relatórios;

  • mensagens;

  • resultados.


O que é STC?

Started Task.

Tarefas permanentes do sistema:

  • CICS;

  • DB2;

  • VTAM;

  • JES2.


O SDSF mostra uso do sistema?

Sim.

Dependendo do ambiente:

  • CPU;

  • memória;

  • iniciadores;

  • spool;

  • workload.


O que é OWNER?

Dono do JOB.


O que é JOBID?

Identificador único do JOB.

Exemplo:

JOB12345

Curiosidades incríveis

1. Operadores passam horas no SDSF

É uma das telas mais usadas do z/OS.


2. O SDSF virou padrão operacional do mainframe


3. Grandes bancos monitoram milhares de JOBs simultaneamente


4. Muitos incidentes críticos são analisados via SDSF


Erros comuns de iniciantes


1. Confundir SDSF com JES2

SDSF = interface
JES2 = subsistema batch


2. Apagar spool sem cuidado

Isso pode remover logs importantes.


3. Não entender classes e status

Muito importante para operações.


4. Pensar que SDSF serve apenas para visualizar JOB

Ele também administra tarefas.


Dicas importantes

Aprenda primeiro:

  • ST;

  • DA;

  • O;

  • LOG.


Aprenda comandos básicos:

  • S;

  • ?;

  • C;

  • H;

  • P.


Leia JESMSGLG sempre

Ajuda muito no troubleshooting.


Como o SDSF ajuda programadores COBOL?

Permite:

  • ver ABENDs;

  • analisar SYSOUT;

  • validar execução batch;

  • consultar RC.


O que é RC?

Return Code

Código de retorno do JOB.

Exemplo:

CC 0000

Indica sucesso.


Por que aprender SDSF?

Porque ele é:

uma das ferramentas mais importantes do z/OS.

Quem domina SDSF entende:

  • batch;

  • spool;

  • JOBs;

  • troubleshooting;

  • operações mainframe.


Resumo rápido

ConceitoSignificado
SDSFMonitor de spool/JOBs
STStatus
DAActive tasks
OOutput
HHeld output
SYSOUTSaída do JOB
JOBIDIdentificação do JOB
RCReturn Code

Conclusão

O SDSF é uma das ferramentas centrais do ambiente mainframe IBM Z.

Ele permite monitorar, visualizar e administrar JOBs, spool e tarefas do sistema em tempo real, sendo essencial para operações, desenvolvimento COBOL e administração do z/OS.


terça-feira, 16 de janeiro de 2007

O que é JES2?

 

Bellacosa Mainframe e o que é jes2

O que é JES2?

Quando alguém começa a estudar mainframe, rapidamente encontra nomes como:

  • JOB;

  • spool;

  • batch;

  • SDSF;

  • JES2.

E logo surge a pergunta:

Quem controla os JOBs no z/OS?

A resposta normalmente é:

JES2

Ele é um dos componentes mais importantes do ambiente mainframe.


O que significa JES2?

JES2 significa:

Job Entry Subsystem 2

Em português:

Subsistema de Entrada de Jobs


Definição simples

O JES2 é o componente do z/OS responsável por:

  • receber JOBs;

  • controlar execução batch;

  • gerenciar spool;

  • controlar impressões;

  • organizar filas de processamento.


Uma analogia fácil

Imagine um grande aeroporto.

Existem:

  • aviões;

  • filas;

  • pistas;

  • autorização de decolagem;

  • controle de tráfego.

O JES2 funciona como:

a torre de controle dos JOBs do mainframe.

Ele decide:

  • quem entra;

  • quem espera;

  • quem executa;

  • quem terminou.


O que é um JOB?

JOB é um processamento batch.

Exemplo:

  • folha salarial;

  • fechamento bancário;

  • relatórios;

  • backup;

  • processamento financeiro.


O que o JES2 faz?


1. Recebe JOBs

Quando o usuário executa:

SUBMIT

o JOB vai para o JES2.


2. Coloca em fila

O JES2 organiza:

  • prioridade;

  • classe;

  • recursos;

  • ordem de execução.


3. Controla spool

Armazena:

  • SYSOUT;

  • logs;

  • relatórios;

  • mensagens.


4. Inicia execução

Quando recursos ficam disponíveis:
o JES2 libera o JOB.


5. Finaliza processamento

Depois:

  • guarda saída;

  • libera recursos;

  • mantém logs.


O que é spool?

Spool significa:

Simultaneous Peripheral Operations Online

É uma área temporária onde ficam:

  • saídas;

  • relatórios;

  • SYSOUT;

  • mensagens batch.


Analogia simples

Imagine:

uma fila de impressão gigante.

O JES2 organiza tudo antes da saída final.


Fluxo simplificado do JES2

USUÁRIO
   ↓
SUBMIT
   ↓
JES2
   ↓
FILA
   ↓
EXECUÇÃO
   ↓
SPOOL
   ↓
OUTPUT

O JES2 executa o JOB?

Não diretamente.

Quem executa é:

o initiator.

O JES2:

  • controla;

  • agenda;

  • organiza.


O que é initiator?

Processo que executa JOBs batch.

O JES2 entrega JOBs para ele.


O que é classe no JES2?

Os JOBs podem possuir:

  • classes;

  • prioridades;

  • políticas.

Exemplo:

//JOBNAME JOB CLASS=A

Isso ajuda o sistema a organizar workload

Por exemplo:

  • jobs rápidos;

  • jobs pesados;

  • produção;

  • testes.


O que é SYSOUT?

Saída gerada pelo JOB.

Exemplo:

  • relatórios;

  • mensagens;

  • logs COBOL.


Onde visualizar JOBs?

Principalmente via:

SDSF


Painéis famosos do SDSF


ST

Status dos JOBs.


DA

Jobs ativos.


O

Output.


H

Held output.


Como um JOB entra no JES2?

Exemplo simples:

//MEUJOB JOB ...
//STEP1 EXEC PGM=IEFBR14

Usuário executa:

SUBMIT

O JES2 recebe o JOB.


O que é HOLD?

JOB fica parado aguardando liberação.


O que é CANCEL?

Cancela JOB.


O que é purge?

Remove JOB do spool.


O que é output class?

Classe da saída SYSOUT.

Exemplo:

//SYSOUT=A

O JES2 controla impressoras?

Historicamente:
sim.

Hoje também controla:

  • saída eletrônica;

  • spool digital;

  • relatórios.


JES2 vs JES3

Existem dois grandes subsistemas históricos:


JES2

Mais popular.

Mais simples e distribuído.


JES3

Controle mais centralizado.

Hoje JES2 domina a maioria dos ambientes.


O JES2 ainda é usado?

Muito.

Principalmente em:

  • bancos;

  • seguradoras;

  • governos;

  • processamento financeiro.


Curiosidades incríveis

1. O JES2 existe há décadas

E continua essencial.


2. Bilhões de JOBs passam pelo JES2

Todos os anos.


3. Grande parte do sistema financeiro depende dele

Principalmente batch noturno.


4. O spool é uma das áreas mais críticas do z/OS

Sem spool o batch praticamente para.


O que iniciantes costumam confundir?


1. Pensar que JES2 executa programas diretamente

Quem executa é o initiator.


2. Confundir JES2 com SDSF

JES2 = subsistema
SDSF = interface de monitoramento.


3. Ignorar classes

Elas afetam:

  • prioridade;

  • execução;

  • workload.


4. Confundir spool com dataset comum

Spool possui gerenciamento especial.


Como o JES2 aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • batch;

  • SORT;

  • backups;

  • DB2;

  • relatórios;

  • automação.


Mensagens famosas do JES2


$HASP

Prefixo clássico do JES2.

Exemplo:

$HASP373 JOB STARTED

$HASP395

JOB finalizado.


Essas mensagens são lendárias no mundo mainframe


Por que aprender JES2?

Porque ele é:

o coração do processamento batch do z/OS.

Quem entende JES2 entende:

  • batch;

  • spool;

  • execução de JOBs;

  • operação mainframe.


Resumo rápido

ConceitoSignificado
JES2Gerenciador de JOBs
JOBProcessamento batch
SpoolÁrea de saída temporária
SYSOUTSaída do JOB
InitiatorExecuta JOB
SDSFInterface de monitoramento
CLASSPrioridade/categoria

Conclusão

O JES2 é um dos componentes mais importantes do z/OS.

Ele funciona como a central de controle do processamento batch, organizando JOBs, spool, filas e execução dentro do ambiente mainframe IBM Z.

Mesmo após décadas de existência, continua sendo peça fundamental da computação corporativa moderna.

segunda-feira, 15 de janeiro de 2007

O que é “Acima da Linha”, “Acima da Barra” e Endereçamento de Memória 24, 31 e 64 bits no Mainframe?

 

Bellacosa Mainframe e a memoria em mainframe

O que é “Acima da Linha”, “Acima da Barra” e Endereçamento de Memória 24, 31 e 64 bits no Mainframe?

Esse é um dos temas mais importantes — e mais misteriosos — do mundo z/OS.

Quando alguém começa a estudar:

  • JES2;

  • CICS;

  • DB2;

  • storage;

  • performance;

  • programação assembler;

rapidamente encontra frases como:

  • “rodando acima da linha”;

  • “storage abaixo da linha”;

  • “memória acima da barra”.

No começo parece extremamente confuso.

Mas tudo gira em torno de:

como o mainframe organiza memória.


Primeiro: o que é memória no mainframe?

Memória é o espaço usado para:

  • programas;

  • variáveis;

  • buffers;

  • controle do sistema;

  • áreas de trabalho.

O z/OS gerencia isso de forma extremamente organizada.


O problema histórico

Os primeiros mainframes possuíam pouca memória.

Então a IBM criou limites de endereçamento.

Com o tempo:

  • mais memória surgiu;

  • novos limites foram criados;

  • o z/OS evoluiu mantendo compatibilidade histórica.

Resultado:
existem vários “níveis” de memória.


O que significa “endereçamento”?

Endereçamento é:

a capacidade de localizar posições de memória.

Quanto mais bits:

  • maior espaço de memória acessável.


Analogia simples

Imagine memória como:

uma cidade cheia de casas.

O endereço informa:

  • qual casa acessar.

Quanto mais dígitos no endereço:

  • mais casas podem existir.


Endereçamento de 24 bits

Foi um dos primeiros modelos do mainframe.


Quanto consegue endereçar?

2^{24}=16.777.216

Aproximadamente:

16 MB


Isso criou a famosa:

Linha dos 16 MB


O que é “abaixo da linha”?

Toda memória:

abaixo de 16 MB.


O que é “acima da linha”?

Toda memória:

acima de 16 MB.


Visualmente

0 MB
│
├── Abaixo da linha
│
16 MB  ← A LINHA
│
├── Acima da linha
│

Por que isso é importante?

Muitos programas antigos foram escritos para:

memória de 24 bits.

Eles só conseguem trabalhar:

  • abaixo da linha.


Problema clássico

A região abaixo da linha virou:

extremamente disputada.

Porque:

  • sistema;

  • CICS;

  • buffers;

  • programas antigos;

todos queriam espaço ali.


Então surgiu o endereçamento 31 bits

A IBM expandiu o espaço de memória.


Quanto consegue endereçar?

2^{31}=2.147.483.648

Aproximadamente:

2 GB


Mas por que não 32 bits?

Porque 1 bit era usado para controle interno.

Então o z/OS adotou:

31 bits efetivos.


Resultado

Agora existia:

  • memória abaixo da linha;

  • memória acima da linha.

Muito mais espaço disponível.


Visualmente

0 MB
│
├── Abaixo da linha
│
16 MB ← Linha
│
├── Acima da linha
│
2 GB

Então nasceu a “barra”

Quando o z/OS evoluiu novamente para 64 bits, surgiu:

a barra dos 2 GB.


Acima da barra

Tudo acima de:

2 GB.


Visualmente

0 MB
│
├── Abaixo da linha
│
16 MB ← Linha
│
├── Acima da linha
│
2 GB ← Barra
│
├── Acima da barra
│

Endereçamento 64 bits

Com 64 bits, o espaço cresce absurdamente.


Quantidade teórica

2^{64}=18.446.744.073.709.551.616

Quantidade gigantesca de memória.


Resultado prático

O z/OS moderno consegue trabalhar com:

  • enormes caches;

  • gigantescos bancos de dados;

  • workloads massivos;

  • analytics;

  • Java;

  • Linux on Z.


Então resumindo

ConceitoLimite
24 bits16 MB
31 bits2 GB
64 bitsmemória gigantesca

O que é “abaixo da linha”?

Memória:

abaixo de 16 MB.

Muito usada por:

  • programas antigos;

  • áreas críticas do sistema.


O que é “acima da linha”?

Memória:

entre 16 MB e 2 GB.

Usada por:

  • aplicações modernas 31 bits;

  • CICS;

  • DB2;

  • subsistemas.


O que é “acima da barra”?

Memória:

acima de 2 GB.

Usada por:

  • Java;

  • grandes caches;

  • DB2 moderno;

  • aplicações 64 bits.


O que significa storage constraint?

Problema de falta de memória.

Muito comum:

abaixo da linha.


Por que abaixo da linha é crítico?

Porque:

  • espaço pequeno;

  • muitos componentes disputam memória.

16 MB hoje parece minúsculo.


Exemplo clássico

CICS antigos sofriam muito com:

storage below the line.


Como isso aparece no dia a dia?

Mensagens como:

  • SOS;

  • storage shortage;

  • below the line exhausted.


O que é AMODE?

Addressing Mode

Define:
como o programa trabalha com memória.


Exemplos


AMODE 24

Programa trabalha em:
24 bits.


AMODE 31

Programa usa:
31 bits.


AMODE 64

Programa moderno usa:
64 bits.


O que é RMODE?

Residency Mode

Define:
onde o programa deve residir.


Exemplo

RMODE 24

Programa precisa ficar:
abaixo da linha.


Isso ainda existe?

Muito.

Principalmente em:

  • sistemas legados;

  • assembler;

  • módulos antigos.


Curiosidades incríveis

1. Muitos sistemas críticos ainda possuem código 24 bits

Décadas depois.


2. O z/OS mantém compatibilidade histórica absurda

Programas antigos ainda funcionam.


3. “Abaixo da linha” virou expressão clássica no mainframe


4. O endereçamento 64 bits revolucionou o z/OS moderno

Especialmente DB2 e Java.


Erros comuns de iniciantes


1. Pensar que “linha” é física

Ela é apenas:

um limite lógico de memória.


2. Confundir linha e barra

Linha:
16 MB.

Barra:
2 GB.


3. Achar que 24 bits morreu

Ainda existe muito software legado.


4. Ignorar AMODE/RMODE

Isso pode causar erros graves em assembler e linkedição.


Como isso aparece no JCL e programas?

Em:

  • binder;

  • assembler;

  • parâmetros LE;

  • CICS;

  • DB2;

  • dumps;

  • performance tuning.


Por que aprender isso?

Porque isso explica:

  • arquitetura do z/OS;

  • compatibilidade histórica;

  • gestão de memória;

  • performance;

  • problemas clássicos do mainframe.


Resumo rápido

TermoSignificado
Abaixo da linha< 16 MB
Acima da linha16 MB até 2 GB
Acima da barra> 2 GB
24 bitsaté 16 MB
31 bitsaté 2 GB
64 bitsenorme espaço
AMODEmodo de endereçamento
RMODEonde o programa reside

Conclusão

Os conceitos de:

  • abaixo da linha;

  • acima da linha;

  • acima da barra;

  • endereçamento 24, 31 e 64 bits

fazem parte da evolução histórica da memória no z/OS.

Eles mostram como o mainframe IBM conseguiu evoluir durante décadas mantendo compatibilidade com aplicações antigas enquanto expandia capacidade para workloads modernos gigantescos.