Translate

Mostrar mensagens com a etiqueta VERIFY. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta VERIFY. Mostrar todas as mensagens

segunda-feira, 22 de junho de 2026

☕💥 Quando um Dataset VSAM Corrompe no z/OS: Guia de Sobrevivência para Sysprogs, Desenvolvedores COBOL e Administradores CICS

 

Bellacosa Mainframe uma pequena ajudinha recuperando dataset vsam

☕💥 Quando um Dataset VSAM Corrompe no z/OS: Guia de Sobrevivência para Sysprogs, Desenvolvedores COBOL e Administradores CICS

"Há dois tipos de profissionais de Mainframe: os que já recuperaram um dataset corrompido e os que ainda vão recuperar."


Introdução

Poucas mensagens conseguem acelerar tanto os batimentos cardíacos de um profissional de Mainframe quanto estas:

IDC3302I ACTION ERROR
IDC3351I VSAM OPEN RETURN CODE 168
IEC161I
IEC070I
DFHFC0157

Ou pior ainda:

"O arquivo de clientes não abre em produção."

Silêncio.

O scheduler para.

O CICS começa a emitir mensagens.

Os jobs entram em abend.

O telefone toca.

Alguém pergunta:

"Tem backup?"

E nesse momento percebemos que existe uma grande diferença entre saber programar COBOL, conhecer VSAM e realmente entender o processo de recuperação de corrupção em datasets no z/OS.

Hoje vamos tomar um café e conversar sobre um assunto pouco ensinado em treinamentos, mas extremamente valorizado em bancos, seguradoras, companhias aéreas e órgãos governamentais:

Como recuperar um dataset VSAM corrompido no z/OS.


O que significa um Dataset Corrompido?

Nem toda falha é uma corrupção.

Às vezes é apenas um catálogo inconsistente.

Em outros casos temos problemas muito mais graves.

Exemplos:

  • EOF inconsistente

  • HURBA inválido

  • HARBA incorreto

  • Alternate Index quebrado

  • Cadeia lógica danificada

  • Control Interval inválida

  • Problemas na VTOC

  • SMSVSAM inconsistente

  • CI Split interrompido

  • Erros físicos em disco


Primeira Regra: Pare Tudo

O maior erro que vejo iniciantes cometerem é tentar "olhar rapidamente".

Não.

Pare imediatamente.

Batch

Segure scheduler.

CA7

Control-M

TWS


CICS

Fechar arquivo.

CEMT SET FILE(CUSTFILE) CLOSED

ou

CEMT SET FILE(CUSTFILE) DISABLED

IMS

/DBR CUSTOMER

Started Tasks

Encerrar consumidores.

MQ

Connectors

Replication

ETL

CDC


A regra é simples.

Dataset suspeito.

Sem acesso.

Sem exceções.


Segunda Etapa: LISTCAT

Antes de sair executando VERIFY.

Olhe o paciente.

Comando

//STEP1 EXEC PGB=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *

 LISTCAT ENT(PROD.CUST.KSDS)
 ALL

/*

O que analisar?

Cluster

Data Component

Index Component

Volume

HI-USED-RBA

Catalog

SMS Classes


Exemplo

HURBA = 000001987654
HARBA = 000001999999

Valores estranhos podem indicar inconsistências.


VERIFY

Provavelmente a ferramenta mais subestimada do IDCAMS.


Função

Sincronizar.

Catalog

Volume

EOF

RBA

Informações físicas


Exemplo

VERIFY DATASET(PROD.CUST.KSDS)

Com recuperação:

VERIFY DATASET(PROD.CUST.KSDS)
RECOVER

O VERIFY resolve

EOF incorreto

Catalog inconsistente

Discrepâncias simples

Alguns problemas em KSDS


Mas atenção.

VERIFY não é mágica.

Ele não reconstrói uma estrutura destruída.


EXAMINE

Agora começa a parte realmente interessante.

EXAMINE é quase um scanner médico do VSAM.


Data Component

EXAMINE -
NAME(PROD.CUST.KSDS)
DATATEST

Índice

EXAMINE -
NAME(PROD.CUST.KSDS)
INDEXTEST

Completo

EXAMINE -
NAME(PROD.CUST.KSDS)
DATA

O que ele encontra?

Control Interval inválida

Ponteiros quebrados

Índices inconsistentes

RBAs errados

Registros perdidos


A Grande Pergunta

Após EXAMINE surge a decisão.

Corrupção pequena?

ou

Corrupção severa?

Essa decisão define tudo.


Cenário 1 — Corrupção Leve

Exemplos.

Catalog inconsistente.

EOF errado.

Pequenos danos.


Solução.

VERIFY

REPRO

Rebuild


REPRO

Criar novo cluster.

DEFINE CLUSTER(...)

Copiar.

REPRO -
INFILE(IN1)
OUTFILE(OUT1)

Muitas vezes isso resolve.

Surpreendentemente.


Cenário 2 — Corrupção Grave

Aqui muda completamente.

Nunca seja herói.

Backup sempre vence.


Restore

Melhor prática.

Sempre.


DFSMSdss

RESTORE DATASET(...)

HSM

HRECOVER

FDR

RESTORE TYPE=DS

E se não existir backup?

Infelizmente acontece.

Mais vezes do que deveria.


Estratégia

Salvar o que for possível.

Criar novo dataset.

Tentar REPRO.

Descartar registros inválidos.

Reconstruir índices.


Alternate Index

Muitos esquecem do AIX.

Ele também pode corromper.


Rebuild

BLDINDEX

Ou.

Excluir.

Criar novamente.

Popular.


Recuperação de Catálogo

Uma área extremamente especializada.

Pouca gente domina.

Muito valorizada.


DIAGNOSE

DIAGNOSE

EXPORT

EXPORT -
CATALOG(MYCAT)
TEMPORARY

IMPORT

IMPORT CONNECT

Ambientes CICS

A situação muda bastante.

Especialmente em RLS.


SMSVSAM

Cache compartilhado.

Lock global.

Coupling Facility.

Múltiplas regiões.


Problemas comuns.

CF inconsistente.

Lock perdido.

Buffer inválido.


Procedimento

Fechar arquivos.

Verificar SMSVSAM.

Executar VERIFY.

EXAMINE.

Restore.

Abrir novamente.


Ambientes Bancários

O fluxo normalmente é.


Incidente aberto.

Congelamento.

Snapshot.

LISTCAT.

VERIFY.

EXAMINE.

Análise.

Restore.

Testes.

Validação.

Produção.


Testes Pós-Recovery

Nunca devolver imediatamente.

Teste.

Leia registros.

Atualize.

Delete.

Browse.

Sequencial.

Random.


Batch

Executar programas COBOL.

Validar.

Retorno.

SMF.

CPU.

EXCP.


CICS

Abrir arquivo.

Executar transações.

CRUD.

Commit.

Syncpoint.


IMS

DBOPEN.

GN.

GU.

REPL.

DLET.


Ferramentas Úteis

IDCAMS

DFSMSdss

DFSMShsm

FDR

LISTCAT

VERIFY

EXAMINE

BLDINDEX

DIAGNOSE


O que Aprendemos?

O Mainframe continua sendo uma das plataformas mais resilientes do planeta.

Mas nenhuma tecnologia é imune.

Discos falham.

Pessoas erram.

Jobs são cancelados.

Aplicações apresentam bugs.

Volumes ficam inconsistentes.

Catálogos podem sofrer danos.

A diferença entre um desastre e uma recuperação tranquila quase sempre está em três fatores.

Backup.

Procedimentos.

Conhecimento.

Um desenvolvedor COBOL que entende apenas READ, WRITE e REWRITE é valioso.

Um desenvolvedor que compreende LISTCAT, VERIFY, EXAMINE, REPRO, recuperação de catálogo e estratégias de restore torna-se um profissional muito mais próximo do universo de Sysprog, Storage e Administração z/OS.

E essa é justamente uma das características que mais diferencia especialistas Mainframe experientes.

Porque no fim do dia, quando o telefone toca e alguém diz:

"O arquivo de produção corrompeu..."

A pergunta deixa de ser:

"Quem programou isso?"

E passa a ser:

"Quem sabe trazer a base de volta?"

E, acredite, nas grandes corporações, essas pessoas são lembradas por muitos anos.


Bellacosa Mainframe

"Transformando mensagens IDCAMS em oportunidades de aprendizado, um café por vez."


segunda-feira, 15 de fevereiro de 2021

☕💥 A Jornada do Sysprog Padawan – SAF : Anatomia Interna do Porteiro Invisível do Reino IBM Z - Parte II

 

Bellacosa Mainframe apresenta o SAF parte II

☕💥 A Jornada do Sysprog Padawan – Parte 2

SAF – Anatomia Interna do Porteiro Invisível do Reino IBM Z

RACROUTE, VERIFY, FASTAUTH, Return Codes, ACEE e os mecanismos secretos que fazem bilhões de decisões por dia

"O SAF parece simples. Até o dia em que você precisa explicar para um auditor por que um MQOPEN retornou RC=8 às três horas da manhã."

Bellacosa Mainframe


Introdução

Na Parte 1 descobrimos que o SAF é o porteiro invisível do Reino IBM Z.

Ele não possui usuários.

Ele não possui senhas.

Ele não possui grupos.

Ele não possui perfis.

Mas ele é consultado bilhões de vezes por dia.

A pergunta agora é:

Como o SAF realmente funciona?

Vamos abrir a caixa preta.


O que existe dentro do SAF?

A resposta curta.

Pouco.

A resposta Sysprog.

Muito.


O SAF é composto basicamente por:

Interface de chamadas

Roteador

Serviços

Retornos

Controle de contexto

Integração com ACEE

Comunicação com ESM


O coração do SAF

O principal serviço.

RACROUTE


Praticamente.

O sabre de luz.

Do Security Sysprog.


O que é RACROUTE?

Serviço.

Macrotina.

Interface.

Entre.

Aplicações.

E segurança.


Sintaxe simplificada

RACROUTE REQUEST=AUTH

Ou

RACROUTE REQUEST=VERIFY

Ou

RACROUTE REQUEST=FASTAUTH

Principais REQUESTS

VERIFY

Autenticação


AUTH

Autorização


FASTAUTH

Autorização rápida


EXTRACT

Informações usuário


DEFINE

Criar contexto


DELETE

Remover contexto


STAT

Status


ENVIR

Ambiente


VERIFY

Nosso favorito.


Objetivo.

Criar ACEE.


Exemplo.

TSO Logon.


Fluxo.

USER

↓

TSO

↓

SAF

↓

VERIFY

↓

RACF

↓

ACEE

Resultado.

Usuário autenticado.


AUTH

Verifica.

Pode.

Ou.

Não.


Exemplo.

PROD.DB2.MASTER

Classe.

DATASET


Resultado.

READ


UPDATE


ALTER


CONTROL


NONE


FASTAUTH

Aqui mora.

A mágica.


FASTAUTH.

É.

Um AUTH.

Com turbo.


Menos CPU.


Mais cache.


Menos overhead.


Bilhões.

De chamadas.

Por dia.


Muito utilizado.


CICS


MQ


DB2


Subsystems


O SAF Router

Pouco conhecido.

Muito importante.


Responsável.

Por encaminhar.

Requisições.


Fluxo.

Application

↓

SAF Router

↓

ESM

↓

Response

Sem router.

Nada funciona.


O melhor amigo do SAF

ACEE


SAF ama.

ACEEs.


Por quê?


CPU.


I/O.


Locks.


Performance.


Escalabilidade.


Exemplo

Sem ACEE.

AUTH

↓

RACF

↓

VSAM

↓

CPU

Com ACEE.

AUTH

↓

ACEE

↓

ALLOW

Muito mais rápido.


Return Codes

Sysprog gosta.


RC

RSN


RC comuns

RC=0

Sucesso.


RC=4

Aviso.


RC=8

Negado.


RC=12

Erro.


RC=16

Falha severa.


Exemplo

RC=8

RSN=24

Pode significar.

Perfil.

Ausente.


Grupo.

Incorreto.


Classe.

Inativa.


Reason Codes

Mais detalhados.


Explicam.

O motivo.


São.

Os verdadeiros.

Detetives.

Do SAF.


Como interpretar?

SMF.


IPCS.


zSecure.


IBM manuals.


Security Server.


Classes

SAF trabalha.

Com classes.


Exemplos.

DATASET


FACILITY


OPERCMDS


TCICSTRN


DSNR


JESJOBS


SURROGAT


UNIXPRIV


MQADMIN


Fluxo DB2

SELECT *

FROM CLIENTES

DB2.

SAF.

AUTH.

ACEE.

ALLOW.


Fluxo MQ

MQOPEN

SAF

FASTAUTH

ALLOW


Fluxo USS

SSH

VERIFY

ACEE

Shell


Fluxo CICS

PAY1

AUTH

TCICSTRN

ALLOW


O custo em CPU

Pequeno.


Principalmente.

FASTAUTH.


Muito eficiente.


Memória

Praticamente.

Irrelevante.

Para IBM Z.


O segredo da IBM

Não reinventar.

Segurança.

Em cada produto.


Criar.

Uma API.

Universal.


SAF.


Easter Egg Bellacosa

Pergunte.

Para um Sysprog.

Experiente.


Quem faz mais trabalho?

RACF?

Ou SAF?


Resposta típica.


RACF.

Decide.


SAF.

Trabalha.

Muito mais.


Porque atende.

Todas.

As portas.

Do reino.


Curiosidade

Provavelmente.

O SAF.

É um dos.

Componentes.

Mais executados.

Do zOS.


Sem aparecer.

Na maioria.

Dos monitores.


Sem glamour.


Sem interface.


Sem marketing.


Apenas.

Funcionando.


Dicas para Sysprog Junior

Estude.

RACROUTE.


Aprenda.

FASTAUTH.


Entenda.

ACEE.


Leia.

SMF80.


Pratique.

IPCS.


Use.

zSecure.


Conheça.

Reason Codes.


Como impressionar um arquiteto

Diga.

O SAF não toma decisões de segurança.

Ele apenas.

Orquestra.

A comunicação.

Entre.

Aplicações.

E ESM.


Provavelmente.

A conversa.

Mudará.

De nível.


Analogia Bellacosa ☕

Imagine.

O castelo.


CICS.

DB2.

MQ.

IMS.

USS.

Chegam.

Na portaria.


SAF atende.


Pergunta.

Ao cartório.


Recebe.

Resposta.


Olha.

O crachá.

ACEE.


Libera.

Ou bloqueia.


SMF.

Anota.

Tudo.


Frase Bellacosa Mainframe

"O RACF decide quem entra. O ACEE lembra quem você é. O SMF escreve a história. Mas é o SAF que passa o dia inteiro abrindo e fechando portas dentro do Reino IBM Z."


☕💥 Continua na Parte 3

SAF – Como Funciona na Vida Real

TSO, CICS, IMS, MQ, DB2, USS, JES2, Batch, Started Tasks, exemplos passo a passo, diagramas completos, consumo de CPU, troubleshooting e auditoria.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...