Translate

Mostrar mensagens com a etiqueta wlm. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta wlm. 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.





sexta-feira, 13 de fevereiro de 2026

🔥 “ENCLAVE NO z/OS: O JOB INVISÍVEL QUE MANDA MAIS QUE SEU COBOL” 💀

 

Bellacosa Mainframe analise o enclave no z/os

🔥 “ENCLAVE NO z/OS: O JOB INVISÍVEL QUE MANDA MAIS QUE SEU COBOL” 💀

Se você acha que quem manda no z/OS é o seu JOB, seu STEP ou seu programa COBOL… já começou errado 😈
Existe uma entidade silenciosa, poderosa e MUITO mais inteligente: o ENCLAVE.

E depois que você entende isso… nunca mais olha para performance, WLM ou CICS da mesma forma.


🧠 O QUE É UM ENCLAVE (SEM MIMIMI)

Um enclave no z/OS é uma unidade lógica de trabalho gerenciada pelo WLM (Workload Manager).

👉 Tradução Bellacosa:

É como se fosse um “JOB fantasma” criado pelo sistema pra medir, priorizar e controlar o que realmente importa.

Ele não aparece no JES como um JOB comum.
Ele não está preso a um único address space.
Mas… ele é quem decide quanto CPU você ganha ou perde.


🏛️ ORIGEM — POR QUE ISSO EXISTE?

Lá atrás, no mundo pré-WLM, o controle era baseado em:

  • Prioridade fixa
  • Dispatching clássico
  • Regras estáticas

Problema? 😬
Ambientes modernos (CICS, DB2, WebSphere, Java, API REST) quebraram esse modelo.

👉 A IBM respondeu com o WLM Goal-Oriented:

E aí nasceu o ENCLAVE:

  • Para representar transações distribuídas
  • Para permitir gerenciamento baseado em objetivos (response time, velocity, etc.)
  • Para desacoplar trabalho de address spaces

💡 Ou seja:

O enclave nasceu quando o mainframe percebeu que o mundo virou distribuído.


⚙️ COMO FUNCIONA NA PRÁTICA

Imagine isso:

  • Um request entra via CICS
  • Faz chamada DB2
  • Vai pra MQ
  • Volta pro CICS

👉 Isso tudo NÃO é um único processo linear

O z/OS cria um ENCLAVE para representar esse fluxo como uma única entidade lógica


🔄 O enclave acompanha:

  • Tempo de CPU
  • Tempo de resposta
  • Esperas (I/O, lock, etc.)
  • Prioridade dinâmica (via WLM)

🎯 O PAPEL DO WLM (O VERDADEIRO CHEFE)

O WLM não gerencia JOBs diretamente.

Ele gerencia:

👉 ENCLAVES

Com base em:

  • Service Class
  • Importance
  • Performance goals

💡 Resultado:

Dois programas idênticos podem ter comportamentos COMPLETAMENTE diferentes dependendo do enclave.


🧨 EXEMPLO REAL (COBOL DEV VAI SENTIR)

Você roda:

  • Um batch COBOL via JCL
  • Uma transação CICS chamando o mesmo programa

Mesmo código… MAS:

ContextoQuem manda
BatchJES / Dispatching
CICSENCLAVE + WLM

👉 Resultado:

  • No CICS, o desempenho é governado pelo enclave
  • No batch, não

💀 É por isso que “funciona no batch mas é lento no online”


🕵️ TROUBLESHOOTING (OU: POR QUE SEU JOB APANHA)

Se algo está lento e você ignora enclave… você está investigando errado.

🔍 Sintomas clássicos:

  • CPU baixa, mas resposta ruim
  • Transação lenta “sem motivo”
  • WLM aparentemente ignorando você

🧠 Possíveis causas:

  • Service class errada
  • Importance baixa
  • Goal impossível (ex: response time irreal)
  • Contenção em recursos compartilhados

🛠️ ONDE INVESTIGAR

  • RMF Monitor III
  • SMF 72 (WLM)
  • SDSF (delay reason)
  • CICS statistics

💡 Dica Bellacosa:

Se não olhou SMF 72, você não investigou WLM de verdade.


🧩 EASTER EGG (POUCA GENTE SABE)

🔥 Nem todo enclave é igual:

Existem:

  • Independent enclaves
  • Dependent enclaves

👉 Dependente = herda contexto
👉 Independente = vive sua própria vida

💡 E aqui vem o pulo do gato:

Um enclave pode atravessar múltiplos sistemas via sysplex

Sim… o “fantasma” atravessa LPARs 👻


🤯 CURIOSIDADES QUE EXPLODEM A MENTE

  • Enclaves são essenciais para Java no z/OS
  • DB2 usa enclaves para workloads distribuídos (DRDA)
  • z/OS Connect depende disso pra API REST

👉 Ou seja:

Sem enclave… não existe mainframe moderno


⚠️ ERROS CLÁSSICOS (E CAROS)

❌ “Aumenta a prioridade do address space”
👉 ERRADO — quem manda é o enclave

❌ “O problema é CPU”
👉 Nem sempre — pode ser política WLM

❌ “Batch está ok, então produção também está”
👉 Contexto diferente = enclave diferente


💬 COMENTÁRIO NO ESTILO RAIZ

Enclave é aquele tipo de coisa que:

  • Ninguém te ensina direito
  • Todo mundo usa sem saber
  • E quando dá problema… vira caos

💀


🧠 RESUMO DIRETO (SEM ENROLAR)

👉 Enclave é:

  • Uma unidade lógica de trabalho
  • Controlada pelo WLM
  • Independente de address space
  • Base para performance moderna no z/OS

🔥 FRASE PRA GRUDAR NA SUA CABEÇA

“Você acha que está rodando um programa…
mas quem está sendo julgado é o seu ENCLAVE.”

sábado, 7 de fevereiro de 2026

🔥 SEU JOB NÃO RODA… ELE DISPUTA SOBREVIVÊNCIA 💀 O que o z/OS faz nos bastidores enquanto você “só executa um COBOL”

 

Bellacosa Mainframe apresenta a gestão de tarefas no z/os

🔥 SEU JOB NÃO RODA… ELE DISPUTA SOBREVIVÊNCIA 💀

O que o z/OS faz nos bastidores enquanto você “só executa um COBOL”

Você digita um JCL, dá submit e pensa:
👉 “beleza, agora é só esperar o output”

Errado.

No z/OS, seu job entra em um ecossistema competitivo, onde:

  • CPU é disputada
  • memória é compartilhada
  • prioridades são negociadas
  • o sistema decide tudo

Se você quer sair do nível “usuário de mainframe” e virar engenheiro de sistema, esse é o mapa mental que muda o jogo 👊🔥


🧠 1. O COMEÇO — SUBMIT NÃO É EXECUÇÃO

Quando você faz submit:

//JOB ...

👉 seu job NÃO executa.


🔹 O que acontece de verdade

  • JES recebe
  • vai pro spool
  • ganha um número
  • entra numa fila
  • espera um initiator

🔥 Tradução Bellacosa

“Submit é só entrar na fila do sistema.”


💡 Exemplo real

Você tem 100 jobs na fila…

👉 seu job pode esperar minutos ou horas


⚙️ 2. JOB → TASK (A TRANSFORMAÇÃO INVISÍVEL)

O z/OS não trabalha com “jobs”.

👉 Ele trabalha com:

TASKS (TCBs)


🔹 Como funciona

JOB → STEPS → TASKS (TCB)

Cada step vira uma unidade executável.


🧨 Curiosidade

Um job pode gerar várias tasks simultâneas.


⚡ 3. DISPATCHER — O “DEUS DO CPU”

Esse é o cara mais importante do sistema.


🔹 Função

Decidir:

“Quem roda AGORA?”


🔥 Como ele faz isso

  • varre a fila (WUQ)
  • pega TCB ou SRB
  • escolhe o de maior prioridade
  • carrega contexto
  • entrega CPU

💡 Insight poderoso

O dispatcher troca tarefas milhares de vezes por segundo


🧠 Tradução

CPU nunca fica “presa” a um programa


🧩 4. TCB vs SRB — A BRIGA INTERNA

🔹 TCB

  • usado por aplicações (COBOL 👀)
  • pode ser interrompido

🔹 SRB

  • usado pelo sistema
  • maior prioridade
  • execução mais rápida

🔥 Tradução Bellacosa

SRB é o “VIP do sistema”
TCB é o trabalhador comum 😄


🧠 5. ENCLAVES — O NÍVEL CORPORATIVO

Aqui o sistema evolui de técnico → negócio.


🔹 O que é?

Um conjunto de tarefas:

👉 espalhadas em vários address spaces
👉 tratadas como uma unidade


🔥 Exemplo real

App Web → WAS → CICS → DB2

👉 tudo isso vira um enclave


💡 Insight

O z/OS não gerencia código… gerencia transações de negócio


🖥️ 6. PR/SM — O MESTRE DO HARDWARE

Antes do z/OS, existe:

👉 PR/SM (hypervisor)


🔹 Ele faz:

  • divide hardware em LPARs
  • entrega CPU virtual
  • controla recursos

🔥 Relação

Hardware → PR/SM → z/OS → Task

🧨 Curiosidade

Seu z/OS pode não saber qual CPU física está usando 😳


⚡ 7. CPU MANAGEMENT — ONDE PERFORMANCE NASCE

🔹 Conceitos:

  • HyperDispatch
  • afinidade CPU/memória
  • otimização de cache

💡 Insight

Rodar perto do dado = menos latência


🔥 Tradução Bellacosa

Não é só rodar… é rodar no lugar certo


👥 8. ADDRESS SPACES — O UNIVERSO ISOLADO

Cada coisa roda em seu próprio espaço:

  • Batch
  • TSO
  • Started Task

🔥 Dentro deles:

  • TCBs
  • subtasks
  • memória isolada

💡 Exemplo

Um batch:

Initiator → cria address space → cria TCB → executa

🔗 9. DYNAMIC LINKAGE — COMO OS PROGRAMAS SE CONECTAM

🔹 Comandos principais:

  • LINK
  • LOAD
  • ATTACH
  • XCTL

🔥 O que fazem?

  • chamam programas
  • carregam módulos
  • transferem controle

💡 Ordem de busca:

  1. memória (LPA)
  2. JOBLIB/STEPLIB
  3. LINKLIST

🧨 Easter Egg

Se está na LPA… é MUITO mais rápido


🧠 10. WLM — O VERDADEIRO CHEFE

🔥 Workload Manager

Define:

  • prioridade
  • objetivos
  • distribuição de CPU

💡 Exemplo real

Tipo de workloadPrioridade
pagamento onlinealta
batch relatóriobaixa

🔥 Tradução Bellacosa

O sistema não atende quem pede… atende quem importa


🔒 11. SERIALIZATION — EVITANDO O CAOS

🔹 Problema:

2 jobs querem o mesmo recurso


🔹 Solução:

  • ENQ / DEQ
  • GRS

💡 Exemplo

Dois jobs acessando dataset:

👉 um espera


🧨 CURIOSIDADES (NÍVEL ROOT)

🤯 1. Seu job pode nunca rodar

Se prioridade for baixa


🔥 2. CPU pode trocar de task milhares de vezes

Você nem percebe


💀 3. SRB pode interromper seu programa

Sem você saber


🧠 4. Um único negócio pode rodar em vários address spaces

(enclave)


⚙️ PASSO A PASSO REAL (SIMPLIFICADO)

Submit Job

JES spool

Fila de execução

Initiator pega job

Cria Address Space

Cria TCB

Dispatcher escolhe

CPU executa

WLM ajusta prioridade

Output no spool

🎯 RESUMO FINAL

✔ Job vira task

✔ Task disputa CPU

✔ Dispatcher decide

✔ WLM prioriza

✔ PR/SM gerencia hardware

✔ Enclave agrupa negócio


💥 FRASE FINAL

“Você não executa um job no mainframe…
você entra numa competição onde o z/OS decide se você merece rodar.”