Translate

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

segunda-feira, 19 de janeiro de 2026

💥 LAB: Db2 na prática — do TSO ao Batch

 

Bellacosa Mainframe Laboratio DB2

💥 LAB: Db2 na prática — do TSO ao Batch

Trabalharemos com o IBM Db2 13 for z/OS usando duas abordagens:

👉 Online (TSO/ISPF + SPUFI)
👉 Batch (JCL + DSNTEP2)


🧪 PARTE 1 — SPUFI (modo interativo)

🔹 O que é SPUFI?

👉 SPUFI = SQL Processor Using File Input

Ferramenta dentro do DB2I (ISPF) para rodar SQL rapidamente.


🚀 Passo a passo

1. Entrar no DB2I

No ISPF:

===> DB2I

2. Selecionar SPUFI

Option ===> 1

3. Criar dataset de entrada

Exemplo:

VAGNER.SQL.INPUT

4. Escrever o SQL

CREATE TABLE VAGNER.CLIENTES (
ID INTEGER,
NOME VARCHAR(50),
CIDADE VARCHAR(50)
);

INSERT INTO VAGNER.CLIENTES VALUES (1, 'ANA', 'SAO PAULO');
INSERT INTO VAGNER.CLIENTES VALUES (2, 'JOAO', 'CAMPINAS');

SELECT * FROM VAGNER.CLIENTES;

5. Executar (PF8)

👉 Resultado vai para o dataset de saída


💡 O que você aprendeu aqui

✔ Criar tabela
✔ Inserir dados
✔ Consultar
✔ Usar ambiente interativo


⚙️ PARTE 2 — DSNTEP2 (modo batch raiz)

Agora vem o modo produção de verdade 😎


🔹 O que é DSNTEP2?

👉 Programa utilitário que executa SQL via JCL

💡 Tradução Bellacosa:

SPUFI é treino… DSNTEP2 é jogo oficial ⚔️


📜 JCL COMPLETO

//DB2JOB JOB (ACCT),'DB2 LAB',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
//*
//STEP01 EXEC PGM=IKJEFT01
//STEPLIB DD DISP=SHR,DSN=DSN!!0.SDSNLOAD
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DB2P)
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP71) -
LIB('DSN!!0.SDSNLOAD')
END
/*
//SYSIN DD *
SELECT * FROM VAGNER.CLIENTES;
/*

🔍 Explicando (nível especialista)

🔹 IKJEFT01

👉 Interface TSO em batch


🔹 DSN SYSTEM(DB2P)

👉 Conecta no subsistema Db2


🔹 DSNTEP2

👉 Executa comandos SQL


🔹 PLAN(DSNTEP71)

👉 Plano necessário para execução


🔹 SYSIN

👉 Onde está o SQL


🧠 Resultado esperado

Você verá:

ID NOME CIDADE
----------------------
1 ANA SAO PAULO
2 JOAO CAMPINAS

💣 PEGADINHAS DE PRODUÇÃO

⚠️ 1. Falha de autorização

👉 Verifique permissões no RACF


⚠️ 2. PLAN não encontrado

👉 DSNTEP71 pode variar no ambiente


⚠️ 3. SQLCODE negativo

Exemplo:

  • -104 → erro de sintaxe
  • -204 → objeto não existe
  • -911 → deadlock

🔥 EVOLUÇÃO DO LAB

Quer subir o nível? Tenta isso:

💡 Desafio 1

Criar índice:

CREATE INDEX IDX1 ON VAGNER.CLIENTES (ID);

💡 Desafio 2

Update:

UPDATE VAGNER.CLIENTES
SET CIDADE = 'RIO DE JANEIRO'
WHERE ID = 1;

💡 Desafio 3

Delete:

DELETE FROM VAGNER.CLIENTES WHERE ID = 2;

🚀 VISÃO DE MAINFRAME RAIZ

👉 SPUFI → exploração / debug
👉 DSNTEP2 → automação / batch / produção

Se você domina isso, você já está acima de 80% dos devs Db2 💥


quinta-feira, 9 de outubro de 2025

🔥☕ DB2 COMMANDS AVANÇADOS NO IBM Z — TRADUÇÃO, EXPLICAÇÃO E LABORATÓRIO PASSO A PASSO PARA SYSPOGS E DBAs 💾🚨

 

Bellacosa Mainframe mergulhas em comandos avançados do Db2

🔥☕ DB2 COMMANDS AVANÇADOS NO IBM Z — TRADUÇÃO, EXPLICAÇÃO E LABORATÓRIO PASSO A PASSO PARA SYSPOGS E DBAs 💾🚨

Os comandos DB2 são usados para controlar praticamente todo o ambiente operacional do Db2 for z/OS. Eles podem ser executados via:

  • console z/OS,

  • TSO,

  • SDSF,

  • DB2I,

  • CICS,

  • IMS,

  • batch JCL,

  • programas autorizados.

Mas a grande verdade é:

esses comandos são muito mais do que “comandos”.

Eles são:

  • sensores,

  • diagnósticos,

  • controles cirúrgicos,

  • mecanismos de sobrevivência do subsystem.


🔥 -DISPLAY THREAD

“Mostre quem está vivo dentro do DB2”

Tradução

Exibe informações sobre threads ativas do Db2.


💾 O QUE É UMA THREAD?

Thread é:

  • uma conexão ativa,

  • uma unidade de execução,

  • uma conversa em andamento com o DB2.

Pode vir de:

  • CICS,

  • batch,

  • DDF,

  • Java,

  • IMS,

  • TSO.


🧪 PASSO A PASSO

Passo 1 — Entrar no painel DB2

Digite:

DSN SYSTEM(DB9G)

Passo 2 — Executar comando

-DIS THREAD(*)

Passo 3 — Analisar saída

Você verá:

  • THREADID

  • STATUS

  • PLAN

  • AUTHID

  • CPU

  • WAIT


🚨 O QUE OBSERVAR?

WAIT

Pode indicar:

  • lock,

  • I/O lento,

  • deadlock.


CPU muito alta

Pode indicar:

  • SQL ruim,

  • scan massivo,

  • aplicação travada.


💥 EXEMPLO REAL

Sistema PIX lento.

Você executa:

-DIS THREAD(*)

e encontra:

  • thread Java com milhões de gets,

  • CPU disparando,

  • WAIT=LCK.

Resultado:

lock contention distribuído.


🔥 -DISPLAY DATABASE

“A radiografia do storage lógico”

Tradução

Exibe informações de status das databases Db2.


🧪 PASSO A PASSO

Passo 1

-DIS DB(DBPROD)

Passo 2 — Expandir spaces

-DIS DB(DBPROD) SPACENAM(*)

💾 O QUE APARECE?

  • tablespaces,

  • indexspaces,

  • status,

  • pendências,

  • utilities,

  • recovery states.


🚨 STATUS IMPORTANTES

StatusSignificado
RWRead Write
RORead Only
STOPParado
UTUtility ativa
RECPRecovery Pending
CHKPCheck Pending

💥 EXEMPLO REAL

Após LOAD falho:

STATUS=RECP

O objeto:

  • não aceita acesso,

  • exige recovery.


🔥 -DISPLAY BUFFERPOOL

“O raio-x da memória do DB2”

Tradução

Exibe o status atual dos buffer pools ativos ou inativos.


💾 O QUE É BUFFERPOOL?

Cache inteligente do DB2.

Armazena:

  • páginas,

  • índices,

  • dados frequentemente acessados.


🧪 PASSO A PASSO

Mostrar todos

-DIS BPOOL(*)

Mostrar detalhe

-DIS BPOOL(BP0) DETAIL

🚨 O QUE ANALISAR?

HIT RATIO

Baixo:

  • excesso de disco,

  • I/O alto,

  • CPU alta.


VPSIZE

Muito pequeno:

  • gargalo memória.


PGFIX(NO)

Pode gerar:

  • paging,

  • overhead CPU.


💥 EXEMPLO REAL

Batch lento.

DBA executa:

-DIS BPOOL(*)

e descobre:

  • hit ratio despencando,

  • BP saturado.


🔥 -DISPLAY DDF

“O pulmão das conexões distribuídas”

Tradução

Exibe informações sobre o status e configuração do DDF.


💾 O QUE É DDF?

Distributed Data Facility.

Responsável pelas conexões:

  • JDBC,

  • APIs,

  • Linux,

  • cloud,

  • microservices.


🧪 PASSO A PASSO

Passo 1

-DIS DDF

Passo 2 — Verificar

  • STATUS

  • CONDBAT

  • threads distribuídas

  • localização remota


🚨 ALERTAS

CONDBAT saturado

Excesso conexões.


DDF STOPPED

APIs param imediatamente.


💥 EXEMPLO REAL

Aplicação Java:

  • abre milhares de conexões.

Resultado:

DDF THREAD LIMIT REACHED

🔥 -DISPLAY LOCKS

“O detetive do crime em produção”

Tradução

Exibe locks e claims mantidos por threads ativas.


🧪 PASSO A PASSO

Passo 1

-DIS LOCKS

Passo 2 — Procurar

  • lock owner,

  • waiting threads,

  • lock type.


🚨 CENÁRIO CLÁSSICO

Batch:

UPDATE MASSIVO

sem commit.

Resultado:

  • online trava,

  • CICS para.


💥 O DBA ENCONTRA

WAIT=LCK

🔥 -DISPLAY LOG

“O DNA transacional do DB2”

Tradução

Exibe informações sobre active logs e checkpoints.


🧪 PASSO A PASSO

Passo 1

-DIS LOG

Passo 2 — Analisar

  • active logs,

  • archive logs,

  • offload,

  • checkpoints.


🚨 RISCOS

Log cheio

Pode:

  • parar commits,

  • travar subsystem,

  • gerar degradação severa.


💥 EXEMPLO REAL

Sistema:

  • commits lentos,

  • rollback gigante.

DBA verifica:

-DIS LOG

e encontra:

  • pressão de active logs.


🔥 -DISPLAY UTILITY

“O centro cirúrgico do DB2”

Tradução

Exibe status das utilities Db2.


🧪 PASSO A PASSO

Passo 1

-DIS UTIL(*)

Passo 2 — Procurar

  • REORG,

  • COPY,

  • LOAD,

  • RUNSTATS,

  • RECOVER.


🚨 O QUE PODE DAR ERRADO?

REORG presa

Pode indicar:

  • lock,

  • I/O lento,

  • SORT insuficiente.


🔥 -CANCEL THREAD

“O botão vermelho do DBA”

Tradução

Cancela processamento de threads locais ou distribuídas.


🧪 PASSO A PASSO

Passo 1 — Identificar thread

-DIS THREAD(*)

Passo 2 — Cancelar

-CANCEL THREAD(token)

🚨 CUIDADO

Cancelar thread:

  • pode gerar rollback gigantesco,

  • pressão de log,

  • lock storm.


🔥 -START DATABASE

“Trazer o objeto de volta à vida”

Tradução

Torna a database disponível para uso.


🧪 PASSO A PASSO

Passo 1

-START DB(DBPROD)

Passo 2 — Confirmar

-DIS DB(DBPROD)

🔥 -STOP DATABASE

“Parar o coração do objeto”

Tradução

Torna objetos indisponíveis para aplicações.


🧪 PASSO A PASSO

Passo 1

-STOP DB(DBPROD)

Passo 2 — Validar

STATUS=STOP

🚨 IMPACTO REAL

Se parar database crítica:

  • PIX para,

  • ATM trava,

  • APIs falham.


🔥 -ARCHIVE LOG

“Forçar rotação do log”

Tradução

Fecha active log atual e abre próximo disponível.


🧪 EXEMPLO

-ARCHIVE LOG

💾 USO REAL

Muito usado:

  • antes backup,

  • antes maintenance,

  • troubleshooting log.


🔥 -START TRACE

“Modo CSI do DB2”

Tradução

Inicia traces Db2.


🧪 EXEMPLO

-START TRACE(PERFM)

🚨 RISCO

Trace excessivo:

  • aumenta CPU,

  • gera overhead.


🔥 -MODIFY DDF

“Alterar DDF online”

Tradução

Modifica status/configuração do DDF.


🧪 EXEMPLO

-MODIFY DDF PKGREL(COMMIT)

💾 USO

Ajuste:

  • threads distribuídas,

  • comportamento JDBC,

  • tuning online.


🔥 O QUE UM SYSPOG VETERANO FAZ?

Sequência clássica:

-DIS THREAD(*)
-DIS DB(*)
-DIS LOCKS
-DIS BPOOL(*)
-DIS DDF
-DIS LOG
-DIS UTIL(*)

💣 O QUE ELE CONSEGUE VER?

  • gargalos,

  • locks,

  • CPU,

  • memória,

  • recovery,

  • corrupção,

  • pressão DDF,

  • degradação,

  • risco subsystem.


☕ O GRANDE SEGREDO DO IBM Z

No Mainframe:

  • tudo deixa rastros,

  • tudo gera sinais,

  • tudo pode ser analisado.

O verdadeiro especialista não é quem sabe apenas SQL.

É quem consegue olhar um:

-DISPLAY THREAD

e entender:

a saúde inteira do negócio em produção 💾🔥

segunda-feira, 20 de junho de 2022

📸 Luz, Química e Memória — O Retratista e o Filho

 




📸 Luz, Química e Memória — O Retratista e o Filho

Meu amor pela fotografia começou muito antes de eu segurar uma câmera.
Nasci em meio a lentes, flashes, negativos e o cheiro doce e metálico dos químicos de revelação.
Meu pai era fotógrafo profissional — ou, como se dizia na época, um retratis­ta.
Aquele que não apenas tirava fotos, mas capturava a alma das pessoas no instante em que o tempo piscava.



Cresci entre máquinas Yashica, Pentax, Zenit, Minolta, rolos de filme Kodak e Fujifilm, flashes com baterias que pareciam instrumentos de ficção científica, e bobinas de 35mm, 40mm e monoclinhos.
Meu playground era o laboratório — um espaço entre o real e o mágico.




Acompanhava meu pai aos eventos de todos os tipos:
casamentos, batizados, aniversários, velórios, festas de rua, times de futebol e retratos de família.
Cada clique era uma cápsula de tempo, cada flash uma explosão de memória condensada.

Enquanto outras crianças brincavam com carrinhos, eu brincava com monóculos, olhando os negativos contra a luz.
Lembro dos rolos de filme pendurados para secar no varal, das fotos em preto e branco emergindo lentamente na bandeja de revelação, como se o papel respirasse o milagre da imagem.
Era pura alquimia — a magia de transformar prata e luz em lembrança.



Nos livros do meu pai encontrei o outro lado da arte:
a fotografia técnica, a fotografia artística, o passo a passo para construir um laboratório doméstico, os segredos de exposição, enquadramento, foco e narrativa visual.
E ele me ensinava tudo isso com paciência e brilho no olhar, como um sensei das sombras e da luz.

Mas a profissão, naquela época, era de extremos.
Fotógrafos viviam entre vacas gordas e vacas magras, oscilando conforme os calendários de festas e as fases da economia.
Era um ofício de glamour e aperto, luxo e cansaço, arte e sobrevivência.
Um retratista não trabalhava com pixels — trabalhava com expectativas humanas.

Hoje, décadas depois, o digital substituiu o químico,
o sensor ocupou o lugar do filme,
e o laboratório virou um software.
Mas no meu coração ainda vibra aquele som do obturador mecânico, seco e sincero, como um pulso da alma.



Carrego comigo o legado: o prazer de documentar o mundo.
Já tive dezenas de câmeras — e um acervo com mais de 50 mil fotos.
Cada uma delas é um fragmento do que vivi, do que vi e das pessoas que cruzaram meu caminho.

A fotografia me ensinou algo que vale para tudo:
não basta olhar — é preciso ver.
Ver o instante, a emoção, o erro, o reflexo.
Ver o invisível antes que o tempo apague.

E, talvez por isso, sigo clicando.
Não para congelar o passado — mas para manter o presente vivo.
Porque, no fundo, cada foto é uma linha de código da alma:
um registro persistente no mainframe da memória humana.

domingo, 16 de fevereiro de 2014

💣🔥 GUIA PRÁTICO — DO TERMINAL À PRODUÇÃO: O OPERADOR QUE DOMINA ISPF, TSO, JCL E JES2 NÃO PEDE AJUDA… ELE RESOLVE 🔥💣

Bellacosa Mainframe em um laboratorio pratico TSO ISPF JCL e JES2 

💣🔥 GUIA PRÁTICO — DO TERMINAL À PRODUÇÃO: O OPERADOR QUE DOMINA ISPF, TSO, JCL E JES2 NÃO PEDE AJUDA… ELE RESOLVE 🔥💣

Se você quer sair do “sei mexer” e entrar no nível “sei operar sob pressão”, este é o seu campo de treinamento.

Aqui não tem teoria solta.

👉 Aqui é lab, erro real, diagnóstico e correção — estilo produção.


🧭 VISÃO DO TREINAMENTO

Você vai simular o ciclo completo:

  1. Navegação e produtividade no ISPF
  2. Manipulação de datasets via TSO
  3. Construção e execução de JCL
  4. Debugging real no JES2

Tudo rodando no ecossistema do z/OS com spool via JES2.


🔬 LAB 1 — ISPF NA VELOCIDADE DE PRODUÇÃO

🎯 Objetivo

Eliminar lentidão operacional.

🧪 Exercício

  1. Acesse:
=3.4
  1. Liste datasets com filtro:
SEU.USERID.*
  1. Use comandos de linha:
  • V → visualizar
  • E → editar
  • B → browse

⚡ Desafio Bellacosa

Sem usar mouse mental:

  • encontre um dataset específico em < 10 segundos
  • navegue entre 3 membros sem perder contexto

💡 Insight

Você não está navegando.

👉 Você está executando operações cognitivas.


🔬 LAB 2 — TSO: CONTROLE DE DADOS

🎯 Objetivo

Dominar datasets sem depender de tela.

🧪 Exercício

🔹 Criar dataset

ALLOC DSN('SEU.USERID.TESTE') NEW SPACE(1,1) TRACKS DIR(5) RECFM(F,B) LRECL(80)

🔹 Listar propriedades

LISTDS 'SEU.USERID.TESTE' ALL

🔹 Deletar

DELETE 'SEU.USERID.TESTE'

⚠️ Erro proposital

Tente alocar sem parâmetros corretos.

👉 Veja o erro
👉 Use HELP ALLOC
👉 Corrija


💡 Insight

TSO não é comando.

👉 É infraestrutura sob demanda


🔬 LAB 3 — JCL: O JOB QUE ORQUESTRA TUDO

🎯 Objetivo

Executar um job funcional.

🧪 Exercício

Crie um membro:

//BELLALAB JOB (ACCT),'TESTE',CLASS=A,MSGCLASS=X
//STEP1 EXEC PGM=IEFBR14
//DD1 DD DSN=SEU.USERID.ARQ.TESTE,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1)),
// DCB=(RECFM=FB,LRECL=80)

▶️ Submeter

SUBMIT

🔍 Verificar saída no JES2

  • SDSF → ST
  • veja status
  • abra output

💡 Insight

IEFBR14 não faz nada…

👉 mas prova que seu JCL faz tudo certo


🔬 LAB 4 — DEBUGGING REAL (O LAB MAIS IMPORTANTE)

🎯 Objetivo

Aprender a errar… e corrigir rápido.


🧪 Cenário com erro

//STEP1 EXEC PGM=IEFBR14
//DD1 DD DSN=SEU.USERID.ARQ.TESTE,
// DISP=(NEW,CATLG),
// SPACE=(TRK,(1,1))

👉 Falta parâmetro no DISP.


🔥 Tarefa

  1. Submeta o job
  2. Vá no JES2
  3. Abra:
    • JESMSGLG
    • JESJCL
    • JESYSMSG

🧠 Diagnóstico esperado

  • mensagem de erro de alocação
  • falha no catálogo
  • possível RC ≠ 0

🛠️ Correção

Corrigir para:

DISP=(NEW,CATLG,DELETE)

💡 Insight crítico

Quem lê log… domina o sistema
Quem ignora log… vira incidente


🔬 LAB 5 — ANÁLISE PROFISSIONAL DE JOB

🎯 Objetivo

Interpretar execução como operador sênior.


🧪 Checklist

Após execução:

  • RC = 0?
  • dataset foi criado?
  • houve warning?
  • alocação correta?

🧠 Leitura obrigatória

No spool:

  • JESMSGLG → sistema
  • JESJCL → o que foi interpretado
  • JESYSMSG → execução real

💣 Desafio Bellacosa

Pegue um job com erro e responda:

  • Onde falhou?
  • Por quê?
  • Qual impacto?
  • Como evitar?

🧬 LAB EXTRA — SIMULANDO VIDA REAL

🎯 Cenário

Você recebe:

“Job falhou em produção. Corrigir urgente.”


🔥 Procedimento

  1. Identificar job no JES2
  2. Analisar RC
  3. Ler logs
  4. Identificar dataset envolvido
  5. Corrigir JCL ou dado
  6. Reprocessar

💡 Isso é ouro:

👉 velocidade + precisão = operador de elite


🚀 EVOLUÇÃO (PRÓXIMO NÍVEL)

Depois disso, você deve avançar para:

  • Integração com CICS
  • Acesso a DB2
  • Automação com REXX
  • Monitoramento com SDSF avançado

⚠️ ERROS QUE VOCÊ NÃO PODE MAIS COMETER

  • rodar job sem ler output
  • ignorar RC
  • editar dataset em produção sem critério
  • confiar que “deu certo”

💣 FRASE FINAL

“No mainframe, erro não é exceção…
erro é ferramenta de aprendizado — desde que você saiba ler o sistema.”