Translate

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

segunda-feira, 16 de março de 2026

🚀 O Maestro Invisível do Mainframe: Como o WLM Decide Quem Vive, Quem Espera e Quem Domina o IBM Z

Bellacosa Mainframe apresenta o maestro invisivel do Mainframe: WLM

 

🚀 O Maestro Invisível do Mainframe: Como o WLM Decide Quem Vive, Quem Espera e Quem Domina o IBM Z

“O z/OS não é apenas um sistema operacional. É um sistema de sobrevivência computacional — e o WLM é seu cérebro.”

Se você é um padawan do mainframe 🧙‍♂️, há um momento em que tudo muda.
Você deixa de ver jobs, CICS e DB2 como coisas isoladas… e passa a enxergar um ecossistema vivo, onde milhares de tarefas lutam pelos mesmos recursos.

Nesse universo, existe um árbitro supremo:

🧠 Workload Manager — WLM

Sem ele, um mainframe moderno seria apenas um supercomputador caro brigando consigo mesmo.


🏛️ Antes do WLM: o caos elegante dos anos 70 e 80

Nos primórdios do MVS, a prioridade era… manual.

Operadores e sysprogs definiam:

  • Prioridades fixas

  • Classes de execução estáticas

  • Ajustes “no feeling”

  • Reconfiguração constante

Problemas clássicos:

💥 Batch travando online
💥 CICS lento em horário de pico
💥 CPU livre e usuários reclamando
💥 Sistema imprevisível

O hardware evoluiu. O software também precisava evoluir.


⚙️ O nascimento do WLM — computação orientada ao negócio

O WLM moderno surgiu com o OS/390 nos anos 90.

A ideia foi revolucionária:

❌ Não gerenciar processos
✅ Gerenciar objetivos de negócio

Você não diz:

👉 “Este job tem prioridade 8”

Você diz:

👉 “Quero que 90% das transações respondam em até 1 segundo”

O sistema decide como chegar lá.


🎼 O WLM é um maestro, não um executor

Ele não executa código.

Ele coordena:

  • Dispatcher (CPU)

  • IOS (I/O)

  • Memory manager

  • PR/SM (hardware)

  • Subsystems (CICS, DB2, etc.)

Política → Prioridade → Recursos → Execução

🧩 Os elementos fundamentais do WLM

🏷️ Service Class — “Quem é você?”

Categoria de workload com tratamento específico.

Exemplos reais:

  • CICS_ONLINE

  • DB2_OLTP

  • BATCH_HIGH

  • TSO_USERS

  • DISCRETIONARY

Uma única classe pode representar centenas de workloads.


🎯 Goal — “O que esperamos de você?”

Tipos principais:

  • ⏱️ Response Time — tempo de resposta

  • ⚡ Velocity — progresso contínuo

  • 💤 Discretionary — use as sobras


⭐ Importance — “Quão importante você é?”

Escala de 1 a 5:

1️⃣ Missão crítica
5️⃣ Pode esperar

Sob escassez, isso decide tudo.


⏱️ Performance Periods — prioridade dinâmica

Uma obra-prima do design do WLM.

Permite tratar o mesmo trabalho de forma diferente ao longo do tempo.

Exemplo típico:

Período 1 — Importance 1 — resposta rápida
Período 2 — Importance 3 — menos crítico
Período 3 — Discretionary — só sobras

👉 Protege o sistema contra trabalhos “runaway”.


🧭 Classification Rules — o roteador automático

Determinam qual workload entra em qual Service Class.

Critérios possíveis:

  • Job name

  • User ID

  • Address space name

  • Transaction name (CICS)

  • Atributos de enclave

  • Padrões (wildcards)

💎 Curiosidade: também podem marcar workloads como Storage Critical.


⚡ Dispatchable Units — quem realmente roda

O dispatcher não agenda jobs.

Ele agenda DUs:

  • 🧾 TCB — tasks de aplicação

  • ⚡ SRB — trabalho de sistema

Múltiplas DUs podem rodar simultaneamente no mesmo address space.


🧮 Dispatching Priority — o número mágico

Escala: 0–255 (geralmente >190)

👉 Maior valor ⇒ maior chance de CPU

Mostrado no SDSF (painel DA).

É recalculado constantemente pelo WLM.


📀 I/O Priority e Memory

O WLM também influencia:

📀 I/O

  • Prioridade de acesso a discos

  • Filas de dispositivos

  • Latência de storage

Sem grupos específicos:

👉 I/O priority = Dispatching priority


💾 Storage Critical

Protege workloads contra swap.

Não dá mais memória — evita que sejam expulsos da RAM.

Crucial para:

  • CICS

  • DB2

  • Middleware

  • Serviços online


🩸 Donor vs Receiver — economia de recursos

Sob escassez:

  • 🏆 Receivers → precisam cumprir metas

  • 🩸 Donors → cedem recursos

  • 💤 Discretionary → só sobras

Regra importante:

👉 Só doa quem está usando.


🧠 Enclaves — workloads distribuídos

Representam trabalho que atravessa múltiplos address spaces.

Muito usados em:

  • DB2 DDF

  • APIs

  • Java servers

  • MQ

  • Middleware

Permitem controle ponta a ponta.


🧪 Curiosidades e Easter Eggs

💎 O WLM é considerado uma das maiores vantagens competitivas do mainframe.

💎 Muitos conceitos de QoS em cloud vieram daqui.

💎 Sistemas distribuídos ainda lutam para replicar essa sofisticação.

💎 O mainframe pode parecer “antigo”, mas seu scheduler é mais avançado que o de muitos sistemas modernos.


💥 Falhas mais comuns em produção

❌ Políticas mal projetadas

Sintomas:

  • CPU alta sem ganho real

  • Online lento

  • Batch dominando horários críticos


❌ Service Classes demais

Complexidade gera comportamento imprevisível.


❌ Classificação incorreta

Workloads críticos tratados como comuns.


❌ Ignorar Performance Periods

Trabalhos longos monopolizam recursos.


🛠️ Como controlar e acompanhar

Ferramentas principais:

🖥️ SDSF

  • DA — Address Spaces ativos

  • ENCLAVES — workloads distribuídos

  • ST — Jobs


📊 RMF

Análise profunda de performance.


⚙️ WLM ISPF / z/OSMF

Configuração de políticas.


📈 SMF records

Base para capacity planning e auditoria.


🧭 Como pensar como um especialista

Quando algo está lento, pergunte:

👉 Qual recurso está saturado?
👉 Quem está consumindo?
👉 Esse workload deveria ter essa prioridade?
👉 O WLM está cumprindo ou ignorando metas?


🏆 A verdade final

O poder do mainframe não está apenas no hardware.

Está na capacidade de usar recursos de forma:

✔️ previsível
✔️ controlada
✔️ orientada ao negócio
✔️ resiliente sob carga extrema


🧠 Frase para levar para a vida

WLM não decide quem roda primeiro.
Ele decide quais objetivos do negócio serão preservados quando os recursos acabarem.





terça-feira, 10 de fevereiro de 2026

🔥 SEU PROGRAMA NÃO ESTÁ LENTO… O GARGALO ESTÁ NO I/O 💀

 

Bellacosa Mainframe mergulha no segredo do z/os tecnicas de i/o


🔥 SEU PROGRAMA NÃO ESTÁ LENTO… O GARGALO ESTÁ NO I/O 💀

O guia proibido do IOS, canais e discos que explica por que seu z/OS voa… ou trava

Você pode tunar CPU, ajustar WLM, mexer em COBOL…

👉 mas se o I/O estiver ruim: acabou o jogo.

Porque no mainframe:

💥 performance = I/O bem resolvido

E o que você vai ver agora é o lado invisível do z/OS — onde realmente se ganha (ou perde) desempenho.


🧠 1. A VERDADE QUE POUCOS SABEM

👉 O processador NÃO faz I/O


💡 Quem faz então?

  • IOS (coordena)
  • Channel Subsystem (executa lógica)
  • SAP (trabalha pesado)
  • Devices (fazem o trabalho físico)

🔥 Tradução Bellacosa

“CPU pensa… o resto corre atrás do dado.”


⚙️ 2. IOS — O MAESTRO DO I/O

O Input/Output Supervisor (IOS) é quem:

  • recebe pedidos do programa
  • monta requisição
  • dispara operação

🔥 Ele usa:

👉 Start Subchannel (SSCH)


💡 Exemplo

READ arquivo

IOS cria ORB

envia para channel subsystem

🧩 3. CHANNEL SUBSYSTEM — A ENGRENAGEM

Ele é responsável por:

  • fila de I/O
  • seleção de caminho
  • envio de comandos
  • interrupções

🔥 Estrutura

CPU → Channel → Control Unit → Device

🧨 Curiosidade

Você pode ter múltiplos caminhos para o mesmo disco

👉 alta disponibilidade real


🔗 4. CCW — A LINGUAGEM DO HARDWARE

z/OS não fala com disco direto.

👉 usa CCW (Channel Command Word)


💡 Exemplo

  • READ
  • WRITE
  • SEEK

🔥 Tradução

“CCW = comando que o hardware entende”


🧱 5. UCB vs SUBCHANNEL — O CASAMENTO

🔹 Subchannel

  • criado no POR
  • representa hardware

🔹 UCB

  • criado no IPL
  • representa software

🔥 Resultado

👉 mapeamento 1:1


💡 Insight

sem isso… device não existe pro sistema


⚙️ 6. HCD — O ARQUITETO DO DATA CENTER

O HCD define:

  • devices
  • canais
  • paths
  • control units

🔥 Resultado

👉 cria IODF


🧨 Easter Egg

Você pode:

👉 adicionar disco SEM derrubar o sistema 😳


🧠 7. O FLUXO REAL DE UM I/O

Programa pede READ

IOS cria ORB

Start Subchannel

Channel seleciona path

Control Unit executa

Device responde

Interrupt → CPU

Programa continua

💡 Insight

tudo isso acontece em microssegundos


💀 8. ERROS — QUANDO O MUNDO CAI

🔥 MIH

  • device não respondeu a tempo

🔥 HOT I/O

  • interrupt infinito

🔥 Soluções

  • VARY OFFLINE
  • CHPID OFFLINE
  • recovery

⚡ 9. PERFORMANCE — ONDE MORA O PROBLEMA

Tempo de I/O:

IOSQ + Pend + Disconnect + Connect

💡 Gargalo clássico

👉 IOSQ alto (fila)


🧨 Tradução

“todo mundo quer o mesmo disco ao mesmo tempo”


🚀 10. PAV — A REVOLUÇÃO

Antes:

👉 1 disco = 1 operação


🔥 Depois do PAV:

👉 múltiplos acessos simultâneos


💡 Como?

  • base device
  • alias devices

🔥 Exemplo

Sem PAV:
A → usa disco
B → espera

Com PAV:
A + B → simultâneo

⚡ 11. HYPERPAV — INTELIGENTE

  • pool dinâmico
  • alocação automática

💡 Tradução

“usa recurso só quando precisa”


🧨 12. SUPERPAV — ESCALA MONSTRA

  • ultrapassa limite de 256
  • compartilha entre control units

🧠 13. PRIORIDADE E WLM

WLM define:

  • quem acessa primeiro
  • quem espera

💡 Insight

nem todo I/O é igual


🔥 Exemplo

TipoPrioridade
pagamentoalta
batchbaixa

⚡ 14. TECNOLOGIAS MODERNAS

🔹 zHPF

  • menos overhead
  • mais performance

🔹 zHyperLink

  • latência ultra baixa
  • ideal para DB2

🧨 CURIOSIDADES (NÍVEL ROOT)

🤯 1. CPU não faz I/O


🔥 2. I/O é paralelo desde sempre


💀 3. Gargalo quase sempre é disco


🧠 4. PAV salvou performance moderna


⚡ 5. HyperPAV é invisível para o dev


🎯 RESUMO FINAL

✔ IOS coordena

✔ Channel executa

✔ SAP trabalha

✔ UCB representa

✔ PAV acelera

✔ WLM prioriza


💥 FRASE FINAL

“No mainframe, não é o código que define a velocidade… é o caminho que os dados percorrem.”

 

sexta-feira, 20 de junho de 2014

☕🔥 ABEND S001 — O “ENIGMA DAS OPERAÇÕES DE I/O” NO z/OS

 

Bellacosa Mainframe e o abend s001

☕🔥 ABEND S001 — O “ENIGMA DAS OPERAÇÕES DE I/O” NO z/OS

Quando o Mainframe Diz:

“ALGUMA COISA DEU MUITO ERRADO COM ESSE DATASET.”

Se existe um ABEND que faz o Junior Padawan perceber que:

o mundo dos arquivos no z/OS é MUITO mais profundo do que parece…

é o misterioso:

🚨 S001

E normalmente ele aparece assim:

SYSTEM COMPLETION CODE=001

ou:

ABEND=S001

ou acompanhado de mensagens obscuras como:

IECxxxI
IOSxxxx

E então começa a jornada de sofrimento:

“O dataset está corrompido?”
“O JCL enlouqueceu?”
“O DCB foi amaldiçoado?”
“O disco morreu?”
“O que significa ESSA mensagem IEC criptografada?!”

☕ Respira.

Porque o S001 é um dos ABENDs mais antigos e misteriosos da linhagem IBM.

E um dos melhores para aprender:

I/O no z/OS

DCB

OPEN/CLOSE/EOV

datasets físicos

operações de leitura/escrita

mídia

estrutura de arquivos


🔥 O QUE É O S001?

O S001 é um:

🚨 INPUT/OUTPUT ERROR ABEND

Traduzindo:

O z/OS DETECTOU UMA FALHA DURANTE OPERAÇÃO DE I/O.


☕ O GRANDE SEGREDO

S001 normalmente NÃO é erro de COBOL.

É:

erro operacional/de dataset/dispositivo.


🔥 A FILOSOFIA DO S001

O mainframe tenta:

  • abrir

  • ler

  • escrever

  • posicionar

  • fechar

um dataset.

Algo dá errado no caminho.

Resultado:

💥 S001


☕ ANALOGIA BELLACOSA MAINFRAME

Imagine um bibliotecário automático tentando pegar um livro num arquivo gigantesco.

Mas:

  • a estante está errada

  • o livro sumiu

  • a etiqueta está corrompida

  • a gaveta travou

O sistema entra em colapso.

Isso é:

☠️ S001


🔥 O MUNDO ESCONDIDO DO I/O

No z/OS, arquivos não são “apenas arquivos”.

Existem:

  • control blocks

  • canais

  • volumes

  • tracks

  • cylinders

  • buffers

  • access methods

S001 nasce nesse território sombrio.


☕ O MOMENTO EXATO

Fluxo:

Programa executa READ/WRITE
 ↓
QSAM/VSAM/Access Method
 ↓
IOS (Input Output Supervisor)
 ↓
Falha operacional
 ↓
S001

🔥 O MAIOR VILÃO

🚨 DCB INCORRETO

Clássico absoluto.


☕ EXEMPLO

Dataset real:

RECFM=FB
LRECL=80

Programa/JCL espera:

VB 120

O OPEN pode até passar…

mas durante I/O:

💥 S001


🔥 O S001 E O “READ ALÉM DO LIMITE”

Outro clássico.

Programa tenta ler:

estrutura incompatível com o dataset real.

Resultado:

  • buffer inconsistente

  • erro físico/lógico

  • S001


☕ O S001 E O SORT

Lenda corporativa.

SORT cria dataset com:

RECFM diferente

Próximo programa assume outro layout.

Boom:

☠️ S001


🔥 O S001 E O VSAM

Agora entramos no reino Jedi obscuro.

VSAM pode gerar S001 por:

  • CI corruption

  • CA damage

  • index inconsistency

  • catalog mismatch


☕ O S001 E O “END OF VOLUME”

Outro clássico ancestral.

Datasets em múltiplos volumes:

  • fita

  • DASD

  • migração

Falha no EOV:

💥 S001


🔥 O S001 E O TAPE

Nos tempos antigos era MUITO comum.

Problemas físicos:

  • fita ruim

  • erro de leitura

  • posicionamento incorreto

  • bloco inválido

Resultado:

☠️ S001


☕ O S001 E O DISP

Outro cenário traiçoeiro.

//ARQ DD DISP=OLD

Mas dataset:

  • não suporta operação esperada

  • está inconsistente

  • está em estado incorreto


🔥 O S001 E O COBOL

COBOL geralmente é vítima, não culpado.

Exemplo:

READ CLIENTE

O READ dispara toda a cadeia:

  • access method

  • buffers

  • IOS

  • device manager

Se algo falha:

💥 S001


☕ O S001 E O “BLOCKSIZE ERRADO”

Outro clássico.

Bloco físico incompatível com expectativa do sistema.

Especialmente em:

  • utilitários antigos

  • transferências

  • IEBCOPY

  • FTP incorreto


🔥 O S001 FANTASMA

O mais cruel.

Programa funcionou:

por anos

Mas:

  • dataset corrompeu

  • volume mudou

  • SMS alterou classe

  • catálogo ficou inconsistente

Agora:

☠️ S001


☕ O S001 E O CATÁLOGO

Catálogo z/OS é praticamente um mapa do universo.

Se existir inconsistência:

  • VTOC

  • catálogo

  • dataset real

o I/O pode falhar.


🔥 O S001 E O “MIGRATED DATASET”

HSM/migração pode introduzir cenários estranhos:

  • recall falho

  • volume offline

  • dataset parcialmente restaurado

Resultado:

💥 S001


☕ COMO INVESTIGAR O S001 PASSO A PASSO


✅ PASSO 1 — IGNORE O COBOL INICIALMENTE

O ouro está nas mensagens do sistema.


✅ PASSO 2 — PROCURE IECxxxx

Exemplos:

IEC141I
IEC161I
IEC070I
IEC030I

Essas mensagens contam a história REAL.


✅ PASSO 3 — IDENTIFIQUE O DDNAME

Qual dataset falhou?

CLIENTE
SORTWK01
MASTER

✅ PASSO 4 — VERIFIQUE O DATASET REAL

Use:

ISPF 3.4
LISTDSI
IDCAMS LISTCAT

Confirme:

  • RECFM

  • LRECL

  • BLKSIZE

  • DSORG

  • volume


✅ PASSO 5 — REVISE O JCL

Especialmente:

DCB=
SPACE=
DISP=
UNIT=

🔥 O DUMP DO S001

Aqui mora a arqueologia mainframe.

Veteranos analisam:

  • DECB

  • DCB

  • IOSB

  • channel status

  • sense bytes


☕ O QUE SÃO SENSE BYTES?

Códigos vindos do hardware/dispositivo.

Sim.

O mainframe conversa diretamente com dispositivos físicos.


🔥 O IOS — O MUNDO INVISÍVEL

Input Output Supervisor

Camada lendária do z/OS responsável pelo I/O físico.

S001 frequentemente nasce aqui.


☕ O S001 E O “ABEND 001-04”

Subcódigos importam MUITO.

Exemplo:

001-04
001-0C
001-18

Cada um aponta um tipo diferente de falha I/O.


🔥 O MAIOR ERRO DO PADAWAN

Recompilar COBOL.

Frequentemente o problema está em:

  • dataset

  • disco

  • DCB

  • catálogo

  • SMS

  • mídia

  • VSAM


☕ O SEGREDO DOS VETERANOS

Veteranos primeiro perguntam:

“QUAL FOI A MENSAGEM IEC?”

Porque:

o S001 sozinho quase nunca conta toda a verdade.


🔥 COMO EVITAR S001


✅ Validar DCB


✅ Revisar RECFM/LRECL


✅ Padronizar layouts


✅ Monitorar VSAM


✅ Revisar SORTs


✅ Validar catálogos


✅ Evitar FTP incorreto


✅ Monitorar volumes/discos


☕ CURIOSIDADE HISTÓRICA

O S001 vem da era:

IBM OS/360

Década de:

🏛️ 1960

Naquele tempo:

  • fitas magnéticas

  • canais físicos

  • controladoras reais

  • operações mecânicas

faziam parte do cotidiano.

O S001 era quase uma entidade sobrenatural dos operadores.


🔥 EASTER EGG MAINFRAME

Veteranos brincam:

“S001 significa:

Alguma Coisa Muito Estranha Aconteceu Com Seu Arquivo.”


☕ O MAIOR ENSINAMENTO DO S001

Ele ensina algo profundo:

no z/OS, arquivos são entidades físicas e arquiteturais complexas.

Não basta:

OPEN INPUT
READ

Existe um universo inteiro entre:

o COBOL e o disco físico.


🔥 A VERDADE FINAL

O S0C7 pune dados inválidos.
O S0C4 pune memória inválida.
O S913 pune acessos proibidos.
O S837 pune falta de espaço.

Mas…

☕ O S001 É O MOMENTO EM QUE O UNIVERSO DE I/O DO z/OS DECIDE QUE ALGUMA COISA NA ESTRUTURA DO DATASET OU DO DISPOSITIVO NÃO FAZ MAIS SENTIDO.