Translate

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.


domingo, 14 de janeiro de 2007

O que é DASD?

Bellacosa Mainframe o que é dasd

 

O que é DASD?

Quando alguém começa a estudar armazenamento no mainframe, rapidamente encontra a sigla:

DASD

Ela é uma das bases do ambiente z/OS.

Praticamente tudo no mainframe depende disso:

  • datasets;

  • JCL;

  • COBOL;

  • bancos de dados;

  • spool;

  • sistemas corporativos.


O que significa DASD?

DASD significa:

Direct Access Storage Device

Em português:

Dispositivo de Armazenamento de Acesso Direto


Definição simples

O DASD é o dispositivo de disco usado pelo mainframe para armazenar dados.

Ele funciona como:

o “HD corporativo” do z/OS.

Mas em escala muito maior, mais rápida e extremamente confiável.


Uma analogia fácil

Imagine:

  • um notebook possui SSD;

  • um servidor possui storage;

  • o mainframe possui DASD.

O DASD é onde ficam armazenados:

  • datasets;

  • programas;

  • bibliotecas;

  • bancos de dados;

  • arquivos batch.


O que significa “acesso direto”?

Significa que o sistema consegue acessar:

qualquer ponto do disco diretamente.

Sem precisar ler tudo em sequência.


Analogia

Imagine um livro.


Acesso sequencial

Você precisa virar página por página até encontrar algo.


Acesso direto

Você abre exatamente na página desejada.


Isso torna o DASD muito eficiente

Especialmente para:

  • grandes bancos;

  • milhões de registros;

  • sistemas financeiros.


O DASD é um HD comum?

Não.

Ele foi criado para:

  • alta performance;

  • enorme capacidade;

  • redundância;

  • ambientes críticos.


O que fica armazenado no DASD?

Praticamente tudo do z/OS.


Exemplos

  • datasets;

  • PDS;

  • PDSE;

  • VSAM;

  • bibliotecas COBOL;

  • JCL;

  • DB2;

  • logs;

  • SYSOUT;

  • arquivos batch.


Como o z/OS organiza o DASD?

O armazenamento possui vários conceitos importantes:


Volume

Cada disco possui um nome.

Exemplo:

VOL001

Dataset

Arquivo armazenado no DASD.


Catálogo

Sistema que informa:

  • onde o dataset está;

  • em qual volume;

  • atributos.


Como era o DASD antigamente?

Nos primeiros mainframes:

  • enormes discos físicos;

  • pratos magnéticos gigantes;

  • equipamentos muito pesados.

Alguns pareciam:

máquinas de lavar industriais.


Hoje tudo evoluiu

Os DASDs modernos são:

  • extremamente rápidos;

  • compactos;

  • virtualizados;

  • integrados com storages avançados.


O DASD ainda usa disco magnético?

Em muitos casos:
sim.

Mas atualmente existem:

  • SSD corporativo;

  • cache avançado;

  • virtualização;

  • storage híbrido.


Como datasets ficam no DASD?

Exemplo:

USUARIO.JCL(MYJOB)

Esse dataset ocupa espaço físico dentro de um volume DASD.


O que é cilindro e trilha?

O DASD tradicional organiza espaço em:


Track (trilha)

Menor unidade física.


Cylinder (cilindro)

Grupo de trilhas alinhadas.


Isso ainda aparece no z/OS?

Sim.

Muitos JCLs usam:

SPACE=(CYL,(1,1))

ou:

SPACE=(TRK,(10,5))

O que isso significa?


CYL

Alocação em cilindros.


TRK

Alocação em trilhas.


O que é I/O?

Input/Output.

Toda leitura ou gravação no DASD gera operações de I/O.


Por que performance do DASD é importante?

Porque bancos e sistemas financeiros processam:

  • milhões;

  • bilhões de acessos.

Performance ruim afetaria:

  • PIX;

  • cartões;

  • transações;

  • batch.


O que é cache de DASD?

Memória rápida usada para acelerar leitura e gravação.


O que é SMS?

SMS significa:

System Managed Storage

Sistema do z/OS que automatiza:

  • alocação;

  • gerenciamento;

  • políticas de armazenamento.


Hoje muitos DASDs são gerenciados automaticamente

O usuário nem sempre escolhe o volume manualmente.


O que é um storage mainframe?

É a infraestrutura que controla:

  • DASD;

  • volumes;

  • replicação;

  • backup;

  • performance.


O que é replicação?

Cópia automática de dados para:

  • redundância;

  • disaster recovery;

  • alta disponibilidade.


Curiosidades incríveis

1. Mainframes armazenam volumes gigantescos de dados

Muitos bancos possuem petabytes.


2. DASD existe há décadas

E continua evoluindo.


3. O conceito de cilindro vem dos discos físicos antigos

Mesmo hoje ainda aparece no z/OS.


4. Performance de storage é crítica no mundo financeiro

Milissegundos fazem diferença.


Erros comuns de iniciantes


1. Pensar que DASD é apenas “HD antigo”

Na verdade é storage corporativo extremamente avançado.


2. Ignorar SPACE em JCL

Isso pode causar falhas de alocação.


3. Confundir volume com dataset

Volume = disco
Dataset = arquivo


4. Achar que tudo está apenas em nuvem

Grande parte da infraestrutura financeira ainda depende de DASD físicos.


Como visualizar informações do DASD?

Via:

  • ISPF;

  • LISTDS;

  • IDCAMS;

  • SDSF;

  • ferramentas de storage.


Exemplo de LISTDS

LISTDS 'USUARIO.JCL'

Mostra:

  • volume;

  • RECFM;

  • LRECL;

  • espaço.


Como DASD aparece no dia a dia?

Em praticamente tudo:

  • COBOL;

  • JCL;

  • VSAM;

  • DB2;

  • SORT;

  • batch;

  • backups.


Por que aprender DASD?

Porque ele é:

a base física do armazenamento no z/OS.

Quem entende DASD entende:

  • datasets;

  • performance;

  • storage;

  • arquitetura do mainframe.


Resumo rápido

ConceitoSignificado
DASDDisco do mainframe
VolumeNome do disco
DatasetArquivo
TrackTrilha
CylinderGrupo de trilhas
I/OLeitura/gravação
SMSGerenciamento automático

Conclusão

O DASD é um dos componentes mais importantes do ambiente mainframe IBM Z.

Ele fornece armazenamento corporativo de alta performance para datasets, bancos de dados e aplicações críticas do z/OS.

Mesmo após décadas de evolução tecnológica, continua sendo peça essencial da infraestrutura que sustenta bancos, governos e grandes corporações no mundo inteiro.

sábado, 13 de janeiro de 2007

O que é PDS e PDS/E?

 

Bellacosa Mainframe o que é pds e pds/e

O que é PDS e PDS/E?

Quando alguém começa a estudar datasets no z/OS, rapidamente encontra dois nomes muito importantes:

PDS

e

PDSE (PDS/E)

Eles são fundamentais no universo mainframe porque armazenam:

  • JCL;

  • programas COBOL;

  • PROC;

  • scripts;

  • parâmetros;

  • bibliotecas do sistema.

Praticamente todo profissional mainframe trabalha com eles diariamente.


Primeiro: o que é um PDS?

PDS significa:

Partitioned Data Set

É um tipo especial de dataset que funciona como:

uma biblioteca com vários arquivos internos.


Analogia simples

Imagine:

uma pasta de escritório.

Dentro dela existem:

  • vários documentos;

  • organizados separadamente.

No PDS:

  • o dataset é a pasta;

  • os arquivos internos são chamados de:

membros.


Exemplo de PDS

USUARIO.JCL

Esse dataset pode conter vários membros:

USUARIO.JCL(MYJOB)
USUARIO.JCL(TESTE)
USUARIO.JCL(BACKUP)

Aqui temos:

ParteSignificado
USUARIO.JCLPDS
MYJOBmembro
TESTEmembro

Para que o PDS é usado?

Muito usado para armazenar:

  • JCL;

  • programas COBOL;

  • PROC;

  • macros;

  • scripts;

  • parâmetros.


Por que o PDS foi criado?

Imagine armazenar milhares de pequenos arquivos separados no disco.

Isso seria:

  • lento;

  • difícil de organizar;

  • ineficiente.

Então a IBM criou o conceito:

vários membros dentro de um único dataset.


Como funciona internamente?

O PDS possui:

  • área de diretório;

  • área de dados.


Diretório

Guarda informações dos membros:

  • nome;

  • localização;

  • controle.


Área de dados

Onde os membros ficam armazenados.


Problema clássico do PDS

O PDS tradicional possui limitações antigas.

Com o tempo:

  • membros apagados;

  • alterações;

  • reutilizações;

geravam:

fragmentação.


O famoso problema:

“Directory Full”

Ou:

“No Space in Directory”

Muito comum em ambientes antigos.


Então nasceu o PDSE

PDSE significa:

Partitioned Data Set Extended

Também chamado:

PDS/E


O que mudou no PDSE?

O PDSE é:

a evolução moderna do PDS.


Principais melhorias


1. Gerenciamento automático

O sistema organiza espaço automaticamente.


2. Sem compressão manual

No PDS clássico:
às vezes era necessário:

COMPRESS

No PDSE isso praticamente desaparece.


3. Melhor performance

Mais eficiente no acesso aos membros.


4. Melhor uso de espaço

Menos fragmentação.


5. Mais estabilidade

Muito mais robusto.


6. Expansão automática

O diretório cresce automaticamente.


Então o PDSE é melhor?

Na maioria dos casos:

sim.

Hoje muitos ambientes preferem:

PDSE.


Exemplo de uso

Biblioteca COBOL:

USUARIO.COBOL

Membros:

CLIENTE
CONTAS
RELATORIO

Como acessar?

Normalmente no:

ISPF 3.4


Exemplo

DSNAME LEVEL ===> USUARIO.COBOL

Como editar um membro?

Na lista:

  • usar E;

  • escolher membro.


Exemplo

E USUARIO.COBOL(PROGRAMA)

Como identificar PDS e PDSE?

No ISPF aparecem atributos.

O importante é:

DSORG


PDS tradicional

DSORG=PO

PDSE

Também aparece como:

PO-E

ou:

LIBRARY

dependendo da ferramenta.


O que significa PO?

Partitioned Organization


O que é membro?

Membro é:

um arquivo interno do PDS.


Analogia

PDS = gaveta
Membro = documento


Vantagens do PDS


Organização

Agrupa muitos arquivos relacionados.


Facilidade operacional

Muito usado por programadores.


Melhor gerenciamento

Mais eficiente que milhares de datasets separados.


Vantagens do PDSE


Mais moderno


Mais rápido


Menos manutenção


Melhor aproveitamento de espaço


Maior estabilidade


Existe desvantagem?

O PDSE consome um pouco mais de controle interno do sistema.

Mas hoje isso raramente é problema.


Curiosidades incríveis

1. PDS existe há décadas

E ainda é extremamente usado.


2. O PDSE resolveu problemas históricos do z/OS

Principalmente fragmentação.


3. Bibliotecas COBOL normalmente usam PDS ou PDSE


4. Muitos sistemas bancários possuem milhares de bibliotecas PDS/E


Erros comuns de iniciantes


1. Confundir PDS com diretório Linux

A ideia é parecida, mas a arquitetura é diferente.


2. Pensar que membro é dataset separado

Não.
Membro existe dentro do PDS.


3. Ignorar espaço de diretório no PDS clássico

Isso pode causar erros.


4. Confundir PS com PDS

PS:

  • arquivo único.

PDS:

  • biblioteca com membros.


Como criar PDS?

No ISPF:

opção 3.2

Definindo:

  • DSORG=PO;

  • espaço;

  • diretório.


Como criar PDSE?

Mesmo processo, mas selecionando:

LIBRARY

ou:

PDSE.


Onde aparecem no dia a dia?

Praticamente em tudo:

  • COBOL;

  • JCL;

  • PROC;

  • parâmetros;

  • automação;

  • sistemas do z/OS.


Por que aprender isso?

Porque PDS e PDSE são:

uma das estruturas mais importantes do mainframe.

Quem entende isso compreende:

  • organização de bibliotecas;

  • desenvolvimento COBOL;

  • estrutura do z/OS;

  • administração de datasets.


Resumo rápido

ConceitoSignificado
PDSBiblioteca com membros
PDSEEvolução moderna do PDS
MembroArquivo interno
DSORG=PODataset particionado
PO-EPDSE
PSArquivo simples

Conclusão

PDS e PDSE são tipos fundamentais de dataset usados no z/OS para organizar bibliotecas de programas, JCLs e arquivos corporativos.

O PDS foi uma das estruturas mais importantes da história do mainframe, enquanto o PDSE trouxe melhorias modernas de performance, estabilidade e gerenciamento automático.

Entender PDS e PDSE é essencial para qualquer pessoa que deseja aprender IBM Mainframe de verdade.

sexta-feira, 12 de janeiro de 2007

O que é Blockagem em Dataset QSAM?

 


O que é Blockagem em Dataset QSAM?

Quando começamos a estudar datasets no mainframe, rapidamente aparecem termos como:

  • RECFM;

  • LRECL;

  • BLKSIZE;

  • blockagem.

No começo parece algo extremamente técnico.

Mas a ideia é mais simples do que parece.

E entender blockagem é fundamental para:

  • performance;

  • uso de disco;

  • processamento batch;

  • COBOL;

  • SORT;

  • QSAM.


Primeiro: o que é QSAM?

QSAM significa:

Queued Sequential Access Method

É um método de acesso usado no z/OS para trabalhar com arquivos sequenciais.

Ele é muito utilizado em:

  • COBOL;

  • JCL;

  • relatórios batch;

  • processamento financeiro.


O que é um registro?

Antes da blockagem, precisamos entender:

registro.

Um registro representa:

uma linha de dados.

Exemplo:

JOAO      0001500
MARIA     0003200
CARLOS    0009800

Cada linha é um registro.


O problema sem blockagem

Imagine um dataset com:

  • milhões de registros;

  • cada registro com 80 bytes.

Se o disco gravasse:

  • 1 registro por vez,

o sistema faria milhões de operações de I/O.

Isso seria:

  • lento;

  • caro;

  • ineficiente.


Então nasceu a blockagem

A ideia é simples:

agrupar vários registros em um único bloco físico.


Analogia fácil

Imagine transportar livros.

Sem blockagem:

  • 1 livro por viagem.

Com blockagem:

  • vários livros dentro de uma caixa.

Resultado:

  • menos viagens;

  • mais eficiência.


O que é um bloco?

Bloco é:

um conjunto de registros gravados juntos no disco.


Exemplo simples

Imagine:

  • registro = 80 bytes

  • bloco = 800 bytes

O sistema consegue armazenar:

10 registros dentro do mesmo bloco

Porque:

10 × 80 = 800

Onde isso aparece?

Na definição do dataset:

RECFM=FB
LRECL=80
BLKSIZE=800

Entendendo os parâmetros


RECFM=FB

Formato:

Fixed Block

Registros fixos com blockagem.


LRECL=80

Cada registro possui:
80 bytes.


BLKSIZE=800

Cada bloco possui:
800 bytes.


Resultado

O sistema grava:

10 registros por bloco.


Por que isso melhora performance?

Porque o disco trabalha melhor lendo:

  • grandes blocos;
    do que:

  • registros individuais.


Benefícios da blockagem


1. Menos I/O

Reduz acessos físicos ao disco.


2. Mais velocidade

Leitura e gravação mais rápidas.


3. Melhor uso do disco

Menos desperdício.


4. Melhor performance batch

Especialmente em:

  • SORT;

  • COBOL;

  • grandes arquivos.


O que acontece sem blockagem?

Exemplo:

RECFM=F
LRECL=80

Aqui:

  • registros fixos;

  • sem blocagem.

Cada registro é gravado separadamente.


Isso é ruim?

Nem sempre.

Mas normalmente:

  • FB é mais eficiente que F.


Blockagem em VB

Também existe em datasets variáveis.

Exemplo:

RECFM=VB

Nesse caso:

  • registros possuem tamanhos diferentes;

  • mas continuam agrupados em blocos.


O que é BLKSIZE?

BLKSIZE significa:

Block Size

Define:

o tamanho físico do bloco.


Exemplo visual

Sem blockagem:

[REG]
[REG]
[REG]
[REG]

Com blockagem:

[BLOCO: REG REG REG REG]

Quem define a blockagem?

Pode ser:

  • programador;

  • JCL;

  • sistema;

  • SMS do z/OS.


O sistema pode calcular sozinho?

Sim.

Hoje muitos ambientes usam:

BLKSIZE=0

O z/OS calcula automaticamente o melhor tamanho.


Isso é muito usado atualmente

Porque:

  • reduz erros;

  • otimiza performance;

  • simplifica configuração.


Exemplo de JCL

//ARQ DD DSN=USUARIO.TESTE,
//    DISP=(NEW,CATLG),
//    RECFM=FB,
//    LRECL=80,
//    BLKSIZE=800

O que isso cria?

Dataset:

  • registros fixos;

  • 80 bytes;

  • 10 registros por bloco.


Como COBOL lê isso?

O COBOL normalmente não “vê” a blockagem diretamente.

O QSAM e o z/OS fazem isso automaticamente.


O programador trabalha com registros

O sistema operacional cuida dos blocos.


O que é blocking factor?

Também chamado:

fator de blockagem.

Indica:
quantos registros cabem no bloco.


Exemplo

LRECL = 80
BLKSIZE = 800

Fator:

800 ÷ 80 = 10

Então:

blocking factor = 10


Erros comuns de iniciantes


1. Confundir bloco com registro

Registro = linha lógica
Bloco = agrupamento físico


2. Ignorar BLKSIZE

Isso pode afetar performance.


3. Pensar que COBOL controla tudo

Quem gerencia blockagem é:

  • QSAM;

  • z/OS.


4. Definir BLKSIZE errado

Pode gerar desperdício ou erros.


Curiosidades incríveis

1. Blockagem existe desde os primeiros mainframes

Porque I/O sempre foi crítico.


2. Grandes bancos dependem fortemente disso

Performance batch seria inviável sem blockagem.


3. O conceito influenciou vários sistemas modernos

Mesmo hoje muitos bancos de dados usam ideias parecidas.


4. Um bom BLKSIZE pode melhorar muito performance

Principalmente em arquivos gigantes.


Como visualizar atributos do dataset?

No ISPF 3.4:

  • digite I;

  • veja:

    • RECFM;

    • LRECL;

    • BLKSIZE.

Ou via comando:

LISTDS 'USUARIO.ARQ'

Resumo rápido

ConceitoSignificado
RegistroLinha lógica
BlocoGrupo de registros
BlockagemAgrupar registros
BLKSIZETamanho do bloco
LRECLTamanho do registro
FBFixo com bloco
VBVariável com bloco

Conclusão

A blockagem em datasets QSAM é uma técnica usada pelo z/OS para melhorar eficiência e performance no acesso aos dados.

Em vez de gravar registros individualmente, o sistema agrupa vários registros em blocos físicos, reduzindo operações de I/O e acelerando o processamento batch.

Entender blockagem é um passo essencial para dominar:

  • datasets;

  • COBOL;

  • JCL;

  • SORT;

  • arquitetura interna do mainframe IBM Z.


quinta-feira, 11 de janeiro de 2007

Tipos de Dataset e Formatos de Dataset no Mainframe

 

Bellacosa Mainframe e os tipos e formatos de dataset em Mainframe

Tipos de Dataset e Formatos de Dataset no Mainframe

Quando alguém começa a estudar z/OS, rapidamente percebe que datasets possuem:

  • tipos;

  • formatos;

  • organizações;

  • atributos.

No começo parece complicado.

Mas entender isso é essencial para trabalhar com:

  • COBOL;

  • JCL;

  • ISPF;

  • batch;

  • armazenamento no mainframe.


O que é um Dataset?

Dataset é o nome usado no z/OS para representar:

arquivos.

Eles armazenam:

  • programas;

  • dados;

  • JCL;

  • relatórios;

  • parâmetros;

  • logs.


Diferença entre tipo e formato

Isso confunde muitos iniciantes.


Tipo de Dataset

Define:

como o dataset é organizado.

Exemplo:

  • PS;

  • PDS;

  • VSAM.


Formato de Dataset

Define:

como os registros são armazenados internamente.

Exemplo:

  • FB;

  • VB;

  • U.


Principais Tipos de Dataset


1. Sequential Dataset (PS)

Também chamado:

Physical Sequential

É o tipo mais simples.

Os dados são armazenados em sequência.


Analogia

Imagine:

uma fita de papel contínua.

Os registros ficam um após o outro.


Uso comum

  • relatórios;

  • arquivos batch;

  • entrada e saída de processamento;

  • logs.


Exemplo

USUARIO.RELATORIO

Características

  • simples;

  • rápido;

  • muito usado em batch.


2. PDS (Partitioned Data Set)

Muito importante no mundo mainframe.

Funciona como:

uma biblioteca com vários arquivos internos.


Os arquivos internos são chamados

membros


Exemplo

USUARIO.JCL(MYJOB)

Aqui:

  • dataset = USUARIO.JCL

  • membro = MYJOB


Uso comum

  • bibliotecas JCL;

  • programas COBOL;

  • PROC;

  • scripts.


Analogia

Imagine:

uma pasta com vários documentos dentro.


3. PDSE (Partitioned Data Set Extended)

Versão moderna do PDS.

Melhorias:

  • gerenciamento automático;

  • melhor performance;

  • menos desperdício;

  • mais estabilidade.


Hoje muitos ambientes preferem PDSE

Porque ele reduz problemas antigos do PDS clássico.


4. VSAM

VSAM significa:

Virtual Storage Access Method

É um dataset avançado.


Uso comum

  • sistemas bancários;

  • aplicações corporativas;

  • grandes bases de dados.


Características

  • acesso indexado;

  • alta performance;

  • grande capacidade.


Tipos VSAM


KSDS

Indexado.

Mais comum.


ESDS

Sequencial.


RRDS

Acesso relativo.


LDS

Linear.

Muito usado pelo DB2.


5. GDG

GDG significa:

Generation Data Group

Permite manter versões automáticas de datasets.


Exemplo

RELATORIO.GDG(+1)

Uso comum

  • backups;

  • histórico batch;

  • retenção de arquivos.


6. Temporary Dataset

Dataset temporário.

Existe apenas durante execução do JOB.


Exemplo

&&TEMP

Formatos de Dataset (RECFM)

Agora entra uma parte extremamente importante.

O atributo:

RECFM

Define:

Record Format

Ou seja:
como os registros são armazenados.


Principais formatos


FB — Fixed Block

Registros fixos

Todos possuem mesmo tamanho.


Exemplo

RECFM=FB
LRECL=80

Todos registros possuem:
80 bytes.


Muito usado em

  • JCL;

  • COBOL;

  • arquivos batch.


Analogia

Imagine:

folhas exatamente do mesmo tamanho.


VB — Variable Block

Registros variáveis

Cada linha pode possuir tamanho diferente.


Exemplo

RECFM=VB

Uso comum

  • relatórios;

  • textos;

  • arquivos variáveis.


Analogia

Linhas podem ser:

  • curtas;

  • médias;

  • longas.


U — Undefined

Formato indefinido.

Muito usado para:

  • programas load;

  • binários.


Exemplo

RECFM=U

F — Fixed

Registro fixo sem blocagem.


V — Variable

Registro variável sem blocagem.


O que é blocagem?

Blocos agrupam registros para:

  • melhorar performance;

  • reduzir I/O.


Outros atributos importantes


LRECL

Logical Record Length

Define tamanho lógico do registro.


Exemplo

LRECL=80

BLKSIZE

Block Size

Tamanho físico do bloco.


SPACE

Espaço alocado.


DSORG

Organização do dataset.


Exemplo completo

DSORG=PO
RECFM=FB
LRECL=80
BLKSIZE=800

O que significa?

  • PO = PDS

  • FB = registros fixos

  • 80 bytes por linha

  • bloco de 800 bytes


Como visualizar atributos?

No ISPF:

opção 3.4

Ou comando:

LISTDS 'USUARIO.JCL'

Como criar datasets?


Via ISPF 3.2

Mais comum para iniciantes.


Via JCL

Muito usado em batch.


Via TSO ALLOC

Comando interativo.


Exemplo

ALLOC DA('USUARIO.TESTE')
NEW SPACE(1,1)
RECFM(FB)
LRECL(80)

Erros comuns de iniciantes


1. Confundir PDS com PS

PDS possui membros.
PS não.


2. Ignorar RECFM

Isso pode causar ABENDs.


3. LRECL errado

Muito comum em COBOL e SORT.


4. Pensar que tudo funciona como Windows

O z/OS possui arquitetura própria.


Curiosidades incríveis

1. Muitos bancos possuem milhões de datasets

Organizados há décadas.


2. VSAM ainda é extremamente usado

Principalmente no setor financeiro.


3. O conceito de dataset é mais antigo que Linux

E continua extremamente eficiente.


4. PDS surgiu muito antes dos diretórios modernos


Como datasets aparecem no dia a dia?

Praticamente tudo usa datasets:

  • COBOL;

  • JCL;

  • DB2;

  • SORT;

  • backups;

  • spool;

  • parâmetros.


Por que aprender isso?

Porque datasets são:

a base do armazenamento no z/OS.

Quem entende datasets entende:

  • organização;

  • batch;

  • aplicações;

  • arquitetura mainframe.


Conclusão

Os tipos e formatos de dataset são um dos pilares do ambiente mainframe.

Eles definem:

  • como os dados são organizados;

  • armazenados;

  • processados;

  • acessados pelo z/OS.

Compreender PS, PDS, VSAM, RECFM e LRECL é um passo fundamental para qualquer estudante que deseja dominar o universo IBM Mainframe.


quarta-feira, 10 de janeiro de 2007

O que é Dataset?

 

Bellacosa Mainframe o que é dataset

O que é Dataset?

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

Dataset

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

Sem entender datasets, fica muito difícil compreender:

  • JCL;

  • COBOL;

  • ISPF;

  • processamento batch;

  • armazenamento no mainframe.


Definição simples

Dataset é o nome usado no mainframe para representar:

arquivos.

Ou seja:

um dataset é uma área onde informações são armazenadas no z/OS.

Ele pode guardar:

  • programas COBOL;

  • JCL;

  • dados bancários;

  • parâmetros;

  • relatórios;

  • logs;

  • backups.


Uma analogia fácil

Imagine um grande arquivo físico dentro de uma empresa.

Existem:

  • gavetas;

  • pastas;

  • documentos organizados.

No mainframe:

  • o disco é o armário;

  • os datasets são as pastas;

  • os membros são os documentos internos.


Por que não chamam de “arquivo”?

Porque o z/OS possui uma arquitetura diferente dos sistemas modernos.

No Windows usamos:

  • arquivos;

  • pastas;

  • diretórios.

No mainframe usamos:

  • datasets;

  • PDS;

  • volumes;

  • catálogos.

É outra lógica de organização.


Onde os datasets ficam?

Eles ficam armazenados em discos do mainframe chamados:

DASD

Significa:

Direct Access Storage Device

São dispositivos de armazenamento corporativo de alta performance.


Como é o nome de um dataset?

Datasets seguem um padrão hierárquico.

Exemplo:

USUARIO.JCL.TESTE

Entendendo o nome


USUARIO

Prefixo do dono.


JCL

Categoria ou biblioteca.


TESTE

Nome específico.


Parece um diretório?

Sim.
Visualmente lembra muito caminhos modernos.


Tipos principais de dataset


1. Sequential Dataset (PS)

O mais simples.

Armazena dados em sequência.

Exemplo:

  • relatórios;

  • arquivos batch;

  • logs.


2. PDS (Partitioned Data Set)

Muito importante.

Funciona como:

uma biblioteca com vários arquivos internos.

Esses arquivos internos são chamados:

membros.


Exemplo

USUARIO.JCL(MYJOB)

Aqui:

  • dataset = USUARIO.JCL

  • membro = MYJOB


3. PDSE

Versão moderna do PDS.

Possui:

  • melhor performance;

  • gerenciamento automático;

  • mais eficiência.


4. VSAM

Dataset avançado usado para:

  • aplicações corporativas;

  • acesso indexado;

  • grandes volumes.

Muito usado por:

  • bancos;

  • sistemas financeiros.


O que pode existir dentro de um dataset?


JCL

Jobs batch.


COBOL

Programas.


Dados

Arquivos processados.


Parâmetros

Configurações do sistema.


Relatórios

Saídas batch.


Como acessar datasets?

Normalmente pelo:

ISPF

Principalmente:

opção 3.4


Exemplo prático

Na opção 3.4:

DSNAME LEVEL ===> USUARIO.JCL

O ISPF lista os datasets encontrados.


Comandos comuns de dataset


LISTDS

Mostra informações.

LISTDS 'USUARIO.JCL'

EDIT

Edita dataset.

EDIT 'USUARIO.JCL(TESTE)'

BROWSE

Visualiza sem alterar.

BROWSE 'USUARIO.JCL(TESTE)'

DELETE

Remove dataset.

DELETE 'USUARIO.TESTE'

Como criar datasets?

Pode ser:

  • via ISPF;

  • comandos TSO;

  • JCL;

  • utilitários IDCAMS.


Exemplo simples via ISPF

Opção:

3.2

Usada para criar datasets.


O que é catalogação?

O z/OS mantém um catálogo indicando:

  • onde o dataset está;

  • em qual volume;

  • suas informações.

Isso facilita localizar datasets rapidamente.


O que é volume?

É o disco onde o dataset está armazenado.

Exemplo:

VOL001

Organização dos datasets

Datasets possuem atributos importantes:


RECFM

Formato do registro.


LRECL

Tamanho lógico do registro.


BLKSIZE

Tamanho do bloco.


SPACE

Espaço alocado.


DSORG

Tipo de organização.


Isso assusta iniciantes?

Muito.

Mas depois tudo começa a fazer sentido.


Curiosidades incríveis

1. Bancos possuem milhões de datasets

Organizando décadas de informações.


2. Muitos datasets existem há décadas

Ainda em produção.


3. O conceito de dataset é mais antigo que muitos sistemas modernos

E continua extremamente eficiente.


4. O z/OS gerencia armazenamento de forma extremamente rigorosa

Muito diferente de PCs domésticos.


O que iniciantes costumam errar?

“Dataset é igual pasta”

Nem sempre.

PDS parece uma pasta, mas dataset possui lógica própria.


“Tudo funciona como Windows”

O z/OS possui arquitetura diferente.


“Posso alterar qualquer dataset”

Muitos possuem proteção RACF.


Como datasets aparecem no dia a dia?

Usuários trabalham constantemente com:

  • bibliotecas COBOL;

  • JCL;

  • SYSOUT;

  • parâmetros;

  • arquivos batch.

Tudo usando datasets.


Por que aprender datasets?

Porque praticamente tudo no mainframe depende deles.

Datasets são:

  • base do armazenamento;

  • núcleo operacional do z/OS;

  • estrutura fundamental do ambiente.


Conclusão

Dataset é o conceito central de armazenamento no mundo mainframe.

Ele representa os arquivos utilizados pelo z/OS para guardar programas, dados, JCLs e informações corporativas críticas.

Entender datasets é um dos passos mais importantes para qualquer pessoa que deseja aprender mainframe IBM Z.

terça-feira, 9 de janeiro de 2007

50 Comandos TSO Explicados para Iniciantes

 

Bellacosa Mainframe explicando 50 comandos do tso

50 Comandos TSO Explicados para Iniciantes


Os comandos TSO são instruções utilizadas no ambiente z/OS para interagir diretamente com o sistema mainframe IBM. Eles permitem executar tarefas administrativas, acessar datasets, editar arquivos, consultar informações do sistema, submeter JOBs e navegar no ambiente operacional. O TSO, que significa Time Sharing Option, funciona como uma área interativa onde milhares de usuários podem trabalhar simultaneamente no mainframe.

Os comandos TSO normalmente são digitados em locais específicos dentro do ambiente ISPF. O mais comum é utilizar a opção 6 do menu principal do ISPF, chamada COMMAND. Nela, o usuário pode digitar comandos diretamente. Outra forma é utilizar a linha de comando presente no topo das telas ISPF, geralmente identificada como:

COMMAND ===>

Alguns comandos também podem ser executados diretamente no editor ISPF ou em telas utilitárias. Por exemplo, o comando SUBMIT é usado dentro de um JCL para enviar um JOB ao JES2.

Exemplos comuns incluem:

  • LISTDS → lista datasets;

  • SDSF → acessa spool e jobs;

  • EDIT → abre datasets para edição;

  • LOGOFF → encerra sessão.

Aprender comandos TSO é essencial porque eles representam a base da navegação e administração do ambiente mainframe z/OS.




1. LOGON

Para que serve

Faz login no z/OS.

Exemplo

LOGON USUARIO

Passo a passo

  1. Abrir emulador 3270

  2. Conectar ao host

  3. Digitar LOGON

  4. Informar usuário e senha


2. LOGOFF

Para que serve

Encerra a sessão TSO.

Exemplo

LOGOFF

Passo a passo

  1. Digitar LOGOFF

  2. Pressionar ENTER

  3. Sessão encerrada


3. HELP

Para que serve

Mostra ajuda do TSO.

Exemplo

HELP

Passo a passo

  1. Digitar HELP

  2. Pressionar ENTER

  3. Ler opções disponíveis


4. TIME

Para que serve

Mostra horário do sistema.

Exemplo

TIME

Passo a passo

  1. Digitar TIME

  2. ENTER

  3. Ver horário atual


5. LISTALC

Para que serve

Lista datasets alocados.

Exemplo

LISTALC

Passo a passo

  1. Executar LISTALC

  2. Ver datasets em uso


6. LISTCAT

Para que serve

Consulta catálogo de datasets.

Exemplo

LISTCAT ENT('USUARIO.TESTE')

Passo a passo

  1. Digitar LISTCAT

  2. Informar dataset

  3. Ver detalhes catalogados


7. LISTDS

Para que serve

Lista informações de datasets.

Exemplo

LISTDS 'USUARIO.ARQ'

Passo a passo

  1. Informar nome do dataset

  2. ENTER

  3. Consultar atributos


8. LISTDSI

Para que serve

Mostra informações detalhadas.

Exemplo

LISTDSI 'USUARIO.ARQ'

Passo a passo

  1. Digitar LISTDSI

  2. Ver tamanho e organização


9. ALLOC

Para que serve

Aloca datasets.

Exemplo

ALLOC DA('USUARIO.TESTE') NEW SPACE(1,1)

Passo a passo

  1. Informar dataset

  2. Definir espaço

  3. Criar dataset


10. FREE

Para que serve

Libera datasets alocados.

Exemplo

FREE DA('USUARIO.TESTE')

Passo a passo

  1. Digitar FREE

  2. Informar dataset

  3. ENTER


11. DELETE

Para que serve

Apaga datasets.

Exemplo

DELETE 'USUARIO.TESTE'

Passo a passo

  1. Digitar DELETE

  2. Confirmar remoção


12. RENAME

Para que serve

Renomeia datasets.

Exemplo

RENAME 'USUARIO.OLD' 'USUARIO.NEW'

Passo a passo

  1. Informar nome antigo

  2. Informar novo nome

  3. ENTER


13. PROFILE

Para que serve

Mostra perfil do usuário.

Exemplo

PROFILE

Passo a passo

  1. Digitar PROFILE

  2. Consultar parâmetros


14. STATUS

Para que serve

Mostra status da sessão.

Exemplo

STATUS

Passo a passo

  1. Executar STATUS

  2. Ver informações da sessão


15. SEND

Para que serve

Envia mensagem para usuário.

Exemplo

SEND 'OLA' USER(TESTE)

Passo a passo

  1. Informar mensagem

  2. Informar usuário

  3. ENTER


16. RECEIVE

Para que serve

Recebe datasets transmitidos.

Exemplo

RECEIVE

Passo a passo

  1. Executar RECEIVE

  2. Confirmar restauração


17. TRANSMIT

Para que serve

Transmite datasets.

Exemplo

TRANSMIT TESTE.DATA

Passo a passo

  1. Informar destino

  2. Informar dataset

  3. Enviar transmissão


18. EDIT

Para que serve

Abre editor ISPF.

Exemplo

EDIT 'USUARIO.JCL(TESTE)'

Passo a passo

  1. Informar dataset

  2. Abrir editor


19. BROWSE

Para que serve

Visualiza datasets sem editar.

Exemplo

BROWSE 'USUARIO.ARQ'

Passo a passo

  1. Digitar BROWSE

  2. Ler conteúdo


20. VIEW

Para que serve

Visualização avançada.

Exemplo

VIEW 'USUARIO.ARQ'

Passo a passo

  1. Abrir dataset

  2. Navegar no conteúdo


21. SUBMIT

Para que serve

Submete JOB.

Exemplo

SUBMIT 'USUARIO.JCL(MYJOB)'

Passo a passo

  1. Criar JCL

  2. Executar SUBMIT

  3. Ver JOBID


22. SDSF

Para que serve

Abre monitor de spool.

Exemplo

SDSF

Passo a passo

  1. Executar SDSF

  2. Consultar jobs


23. ISRDDN

Para que serve

Mostra datasets alocados.

Exemplo

ISRDDN

Passo a passo

  1. Digitar ISRDDN

  2. Ver DDNAMEs


24. ISRFIND

Para que serve

Localiza strings em datasets.

Exemplo

ISRFIND COBOL

Passo a passo

  1. Informar texto

  2. Buscar ocorrência


25. ISRJCL

Para que serve

Ajuda com JCL.

Exemplo

ISRJCL

Passo a passo

  1. Abrir utilitário

  2. Consultar exemplos


26. HLIST

Para que serve

Lista histórico.

Exemplo

HLIST

27. TERMINAL

Para que serve

Mostra informações do terminal.

Exemplo

TERMINAL

28. OUTTRAP

Para que serve

Captura saída de comandos.

Exemplo

OUTTRAP

29. EXEC

Para que serve

Executa CLIST ou REXX.

Exemplo

EXEC 'USUARIO.REXX(TESTE)'

30. REXX

Para que serve

Executa scripts REXX.

Exemplo

TSO TESTE

31. CLIST

Para que serve

Executa scripts CLIST.

Exemplo

EX TESTE

32. OCOPY

Para que serve

Copia datasets para UNIX.

Exemplo

OCOPY INDD(IN) OUTDD(OUT)

33. OLIST

Para que serve

Lista arquivos UNIX.

Exemplo

OLIST

34. OMVS

Para que serve

Acessa UNIX System Services.

Exemplo

OMVS

35. NETSTAT

Para que serve

Mostra conexões TCP/IP.

Exemplo

NETSTAT

36. PING

Para que serve

Testa conectividade.

Exemplo

PING 127.0.0.1

37. LU

Para que serve

Mostra usuários logados.

Exemplo

LU

38. WHO

Para que serve

Consulta usuários ativos.

Exemplo

WHO

39. ACCOUNT

Para que serve

Consulta informações da conta.

Exemplo

ACCOUNT

40. OUTPUT

Para que serve

Consulta saída de jobs.

Exemplo

OUTPUT

41. PREFIX

Para que serve

Define prefixo de datasets.

Exemplo

PREFIX USUARIO

42. ATTRIB

Para que serve

Altera atributos.

Exemplo

ATTRIB

43. DA

Para que serve

Lista datasets.

Exemplo

DA 'USUARIO.*'

44. DSLIST

Para que serve

Lista datasets via ISPF.

Exemplo

DSLIST

45. HEX

Para que serve

Ativa modo hexadecimal.

Exemplo

HEX ON

46. FIND

Para que serve

Busca texto.

Exemplo

FIND 'COBOL'

47. CHANGE

Para que serve

Substitui texto.

Exemplo

CHANGE 'OLD' 'NEW'

48. SORT

Para que serve

Ordena dados.

Exemplo

SORT

49. LOCATE

Para que serve

Posiciona cursor rapidamente.

Exemplo

LOCATE TESTE

50. RESET

Para que serve

Limpa filtros e comandos.

Exemplo

RESET

Passo a passo

  1. Digitar RESET

  2. ENTER

  3. Tela limpa novamente