Translate

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

quinta-feira, 25 de dezembro de 2025

💥 SEU CICS NÃO QUEBROU — VOCÊ QUE NÃO ENTENDEU OS SINAIS

 

Bellacosa Mainframe solucionando problemas no CICS

💥 SEU CICS NÃO QUEBROU — VOCÊ QUE NÃO ENTENDEU OS SINAIS

O guia definitivo de troubleshooting CICS para dev COBOL sênior


Se você trabalha há anos com COBOL no CICS, já percebeu uma verdade incômoda:

CICS quase nunca “quebra do nada”. Ele avisa. Sempre.

O problema é que esses avisos vêm em forma de:

  • mensagens crípticas
  • sintomas indiretos
  • comportamento estranho

E aqui nasce a diferença entre:
👉 quem reage
👉 e quem diagnostica


🧠 ORIGEM: POR QUE CICS É ASSIM?

CICS nasceu nos anos 60/70 com um objetivo claro:

Alta disponibilidade + consistência transacional

Isso significa:

  • Não pode “tentar de novo e ver no que dá”
  • Não pode perder dados
  • Não pode assumir comportamento implícito

👉 Por isso:

💥 Se algo falha, ele PARA e registra — não improvisa


💣 FUNDAMENTO: SINTOMA ≠ CAUSA

Esse é o maior erro até de dev experiente.


🎯 Exemplo clássico:

Usuário:

“Sistema travou”


Possíveis causas:

  • Lock no IBM Db2
  • Loop de programa
  • Espera por recurso
  • Fila congestionada no IBM MQ

💡 Tradução:

O sintoma é genérico — o padrão é específico


🔍 O MAPA MENTAL DO TROUBLESHOOTING

Se você guardar só isso, já sobe de nível:

SintomaDiagnóstico provável
CPU altaLoop
CPU baixa + paradoWait
DFHACxxxxAbend
DFHSMxxxxStorage violation
IXGWRITELog problem
LentidãoPerformance

💥 OS 4 GRANDES CENÁRIOS (VIDA REAL)


🔁 1. LOOP — O DEVORADOR DE CPU

Sintomas:

  • CPU 100%
  • Sistema “busy”
  • Tasks não avançam

Causa comum:

PERFORM UNTIL WS-FIM = 'S'
* nunca muda WS-FIM 😈
END-PERFORM

💡 Easter egg 😏

AICA (abend de loop) é basicamente o CICS dizendo:
“chega, já deu…”



⏳ 2. WAIT — O SILÊNCIO PERIGOSO

Sintomas:

  • Sistema parado
  • CPU livre
  • Usuários esperando

Causa comum:

  • Lock no DB2
  • Arquivo VSAM ocupado

💡 Insight de produção:

WAIT não é erro — é dependência



💣 3. ABEND — O GRITO DO PROGRAMA

Clássicos:

CódigoSignificado
ASRAerro de programa
AEI0erro DB2
AEY9programa não encontrado

Exemplo real:

DFHAC2206 TRANS PAY1 ABEND ASRA

💡 Tradução:

  • Seu COBOL falhou
  • E deixou rastro


💥 4. STORAGE VIOLATION — O CAOS

DFHSM0102 Storage violation

👉 Isso significa:

Um programa sobrescreveu memória de outro


💡 Curiosidade histórica:
Isso vem da época onde controle de memória era mais “manual”
— e ainda hoje pode acontecer com ponteiros mal usados



🐢 PERFORMANCE — O INIMIGO INVISÍVEL

Performance ruim não derruba sistema…

👉 mas derruba o negócio


Sintomas:

  • Transações lentas
  • “CICS under stress”
  • Fila interna crescendo

Causas reais:

  • SQL ruim no DB2
  • MQ congestionado
  • Código ineficiente

💡 Easter egg 😏

“Está lento” quase nunca é CICS… quase sempre é SQL



🧾 LOG — A MEMÓRIA DO CICS

O CICS usa o MVS logger para armazenar:

  • System log
  • Forward recovery
  • Journals

👉 Se isso falhar:

IXGWRITE error

💥 Problema sério:

  • Sem log → sem recovery
  • Sem recovery → risco total

💡 Frase forte:

“Sem log, o CICS esquece o que aconteceu”



🔌 EXCI E COMUNICAÇÃO — OS FALSOS CULPADOS

Muitas vezes o erro NÃO está no CICS.


EXCI:

  • Batch chamando CICS
  • Integração interna

Comunicação:

  • TCP/IP
  • MRO
  • Sysplex

💡 Insight de campo:

Se parece problema de aplicação… desconfie da rede 😈



🧠 O PAPEL DO OPERADOR (E DO DEV ESPERTO)

Operador:

  • Identifica
  • Coleta
  • Escala

Dev sênior (você 😏):

  • Interpreta
  • Correlaciona
  • Resolve rápido

👉 Se o operador te entrega:

  • Transação
  • Hora
  • Mensagem

💥 Você já tem 70% do diagnóstico



🚀 PASSO A PASSO DE TROUBLESHOOTING (REAL)

🔍 1. Identifique o sintoma

  • CPU?
  • Espera?
  • Erro?

📊 2. Classifique

  • Loop
  • Wait
  • Abend
  • Performance

🧾 3. Leia a mensagem

👉 CICS SEMPRE fala o que aconteceu


🔎 4. Correlacione

  • DB2?
  • MQ?
  • VSAM?

⚙️ 5. Aja ou escale

  • Corrigir código
  • Ajustar recurso
  • Envolver sysprog


💣 CENÁRIO REAL (ESTILO BANCO)

Situação:

Sistema lento, sem erro


Dev iniciante:

“CICS está ruim”


Dev sênior:

  • Verifica tempo de resposta
  • Identifica SQL pesado
  • Ajusta query

🔥 Resultado:
Sistema normal



🧠 INSIGHT FINAL (NÍVEL EXPERT)

“CICS não falha em silêncio — ele deixa pistas.
Quem sabe ler, resolve rápido.
Quem não sabe… reinicia.”


🔥 CONCLUSÃO

Você não precisa decorar comandos.
Você precisa reconhecer padrões.


💥 Se você entendeu esse artigo, você já sabe:

✔ Diferenciar LOOP vs WAIT
✔ Ler mensagens DFH
✔ Entender abends
✔ Pensar como operador e dev


🚀 FRASE FINAL

“No mundo CICS, o problema nunca está escondido —
ele está escrito… você só precisa saber ler.”

 

terça-feira, 28 de julho de 2020

☕🔥 Suporte à Produção Mainframe — engenharia operacional em estado bruto

 

Bellacosa Mainframe apresenta Suporte a Produção

☕🔥 Suporte à Produção Mainframe — engenharia operacional em estado bruto

Se você já deu CANCEL com o coração na mão, já leu dump em hexadecimal, já decorou mensagem $HASP melhor que CPF, então este texto não é para iniciantes.
Aqui falamos de Produção de verdade. Sem romantização. Sem power-point bonito.


🧠 Suporte à Produção Mainframe ≠ Operação

É engenharia operacional sob carga real.

Produção não é:

  • Rodar job

  • Reiniciar STC

  • Abrir chamado

Produção é:

  • Análise de impacto

  • Decisão em ambiente crítico

  • Entendimento sistêmico do z/OS

  • Correlação entre eventos aparentemente desconexos

Produção é onde o design encontra a realidade — e geralmente perde.


🕰️ Raiz Histórica (para quem veio do MVS, não do YouTube)

O Suporte à Produção nasce quando:

  • O batch deixou de ser “linear”

  • O online passou a ser 24x7

  • O negócio começou a depender de janela de processamento

  • O erro deixou de ser aceitável

A evolução foi clara:

  • Operador de console

  • Analista de Produção

  • Especialista em estabilidade operacional

Hoje, Produção é a última linha de defesa entre o z/OS e o prejuízo financeiro.


🎯 Objetivo Real do Suporte à Produção (versão sem marketing)

  • Garantir throughput, não apenas execução

  • Controlar contenção, não apenas erro

  • Preservar integridade transacional

  • Manter SLA, RTO e RPO

  • Atuar antes do incidente virar crise

Veterano sabe:

Produção não corrige código — corrige efeito colateral.


🧩 Arquitetura de Conhecimento (o que separa júnior de veterano)

🖥️ z/OS — domínio do núcleo

  • JES2/JES3, initiators, classes, priorities

  • Spool contention

  • ENQ/DEQ, RESERVE, latch

  • WTOR, automation hooks

  • Dumps SVC vs SYSMDUMP

🔥 Apimentado:
Quem não entende JES não entende produção.


🧠 CICS — transação é sagrada

  • Task Control

  • Storage violation

  • Transaction isolation

  • Deadlock silencioso

  • Dumps DSNAP / CEEDUMP

El Jefe truth:

CICS não cai — ele sangra em silêncio.


📬 MQ — quando o assíncrono vira gargalo

  • Depth x High/Low Threshold

  • Channels retrying

  • Poison message

  • Commit vs rollback

  • Impacto no batch e no online

🔥 Easter egg:
Fila cheia é sintoma, não causa.


🔌 Integration Bus (Broker)

  • Flow degradation

  • Message backlog

  • XML/JSON parsing cost

  • CPU vs I/O trade-off

  • Propagação de erro invisível

Fofoquice técnica:
Quando o Broker falha, todo mundo aponta para o mainframe.


🧪 REXX — automação tática

  • Monitoramento ativo

  • Ações condicionais

  • Coleta de evidência

  • Resposta automática a eventos

  • Integração com SDSF, consoles e logs

🔥 Produção sem REXX é operação cega.


🗄️ DB2 Utilities — o campo minado

  • REORG mal planejado

  • RUNSTATS atrasado

  • Lock escalation

  • Deadlock intermitente

  • Log pressure

Frase clássica:

“Não mexe agora… deixa rodar.”


🌐 WebSphere / Acesso Remoto

  • JVM pressure

  • Thread starvation

  • Timeout mascarado

  • Latência invisível

  • Cascata de falhas

🔥 Curiosidade:
O Web cai rápido. O mainframe aguenta a culpa.


🔍 Funcionamento Real em Produção (sem filtro)

  1. Sintoma aparece longe da causa

  2. Métrica parece normal

  3. SLA corre

  4. Dump gerado

  5. Análise cruzada (JES + CICS + DB2 + MQ)

  6. Decisão com risco calculado

  7. Execução mínima, impacto máximo

  8. Ambiente estabiliza

  9. Post-mortem técnico

  10. Documentação (que ninguém lê… até precisar)


🧠 Mentalidade do Veterano

✔️ Não confia em “achismo”
✔️ Não executa comando sem rollback mental
✔️ Pensa em efeito dominó
✔️ Prefere degradar a parar
✔️ Sabe quando não agir

☕🔥 Regra de ouro:

Em Produção, o comando mais perigoso é o que “sempre funcionou”.


🥚 Easter Eggs de Produção

  • Todo ambiente tem um job que “ninguém encosta”

  • Sempre existe um dataset com DISP=SHR que não deveria

  • Todo incidente grave começa com:

    “Isso nunca aconteceu antes…”

  • O melhor analista é o que não aparece no incidente report


🧨 Conclusão — El Jefe Midnight Lunch Manifesto

Suporte à Produção Mainframe é:

  • Arquitetura viva

  • Engenharia sob estresse

  • Decisão sem margem de erro

  • Responsabilidade sem aplauso

Não é glamour.
Não é palco.
É confiança operacional.

☕🔥 Se você já sobreviveu a uma madrugada de produção,
você sabe:

Produção não ensina — ela seleciona.

 

terça-feira, 12 de fevereiro de 2019

🟦 Exemplo de Programa COBOL – Tratamento de Mensagem IBM MQ

 


🟦 Exemplo de Programa COBOL – Tratamento de Mensagem IBM MQ


🎯 O que este programa faz

  1. Conecta ao Queue Manager

  2. Abre uma fila de entrada

  3. Lê uma mensagem (MQGET)

  4. Trata o conteúdo

  5. Atualiza dados (simulado)

  6. Faz COMMIT

  7. Fecha fila e desconecta


🧱 Premissas do exemplo

  • Execução:

    • Batch ou CICS (a lógica é a mesma)

  • Fila:

    • QUEUE.IN

  • Queue Manager:

    • QMGR01

  • Mensagem:

    • Texto simples

  • Modelo:

    • MQI síncrono

    • Commit explícito


📦 COPYBOOKS NECESSÁRIOS

COPY CMQC. COPY CMQX.

📌 Esses copybooks vêm do IBM MQ for z/OS
Normalmente ficam em SCSQCOBC.


🧠 Estrutura do Programa


🔹 IDENTIFICATION DIVISION

IDENTIFICATION DIVISION. PROGRAM-ID. MQCONSUM.

🔹 DATA DIVISION

DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-QMGR-NAME PIC X(48) VALUE 'QMGR01'. 01 WS-QUEUE-NAME PIC X(48) VALUE 'QUEUE.IN'. 01 WS-HCONN PIC S9(9) COMP. 01 WS-HOBJ PIC S9(9) COMP. 01 WS-COMPCODE PIC S9(9) COMP. 01 WS-REASON PIC S9(9) COMP. 01 WS-MSG-LEN PIC S9(9) COMP. 01 WS-BUFFER. 05 WS-MSG PIC X(1024). 01 WS-MD LIKE MQMD. 01 WS-GMO LIKE MQGMO. 01 WS-OD LIKE MQOD.

🔹 PROCEDURE DIVISION


1️⃣ Conectar ao Queue Manager

CALL 'MQCONN' USING WS-QMGR-NAME WS-HCONN WS-COMPCODE WS-REASON. IF WS-COMPCODE NOT = MQCC-OK DISPLAY 'ERRO MQCONN - REASON: ' WS-REASON GO TO FIM-PROGRAMA END-IF.

📌 Easter egg:
Se falhar aqui, o problema não é a fila, é ambiente.


2️⃣ Abrir a fila

MOVE MQOD-DEFAULT TO WS-OD. MOVE WS-QUEUE-NAME TO WS-OD-OBJECTNAME. MOVE MQOO-INPUT-AS-Q-DEF TO WS-OD-OPTIONS. CALL 'MQOPEN' USING WS-HCONN WS-OD WS-HOBJ WS-COMPCODE WS-REASON. IF WS-COMPCODE NOT = MQCC-OK DISPLAY 'ERRO MQOPEN - REASON: ' WS-REASON GO TO DESCONECTA END-IF.

3️⃣ Ler a mensagem (MQGET)

MOVE MQMD-DEFAULT TO WS-MD. MOVE MQGMO-DEFAULT TO WS-GMO. MOVE MQGMO-WAIT TO WS-GMO-OPTIONS. MOVE 5000 TO WS-GMO-WAITINTERVAL. CALL 'MQGET' USING WS-HCONN WS-HOBJ WS-MD WS-GMO LENGTH OF WS-BUFFER WS-BUFFER WS-MSG-LEN WS-COMPCODE WS-REASON. IF WS-COMPCODE = MQCC-FAILED IF WS-REASON = MQRC-NO-MSG-AVAILABLE DISPLAY 'SEM MENSAGEM NA FILA' GO TO FECHA-FILA ELSE DISPLAY 'ERRO MQGET - REASON: ' WS-REASON GO TO ROLLBACK END-IF END-IF.

📌 Regra de ouro:

MQRC 2033 não é erro. É silêncio.


4️⃣ Tratar a mensagem

DISPLAY 'MENSAGEM RECEBIDA: ' WS-MSG(1:WS-MSG-LEN). *> Aqui você trataria o conteúdo: *> Parse, valida, chama DB2, CICS, etc.

5️⃣ Commit da transação

CALL 'MQCMIT' USING WS-HCONN WS-COMPCODE WS-REASON. IF WS-COMPCODE NOT = MQCC-OK DISPLAY 'ERRO MQCMIT - REASON: ' WS-REASON GO TO ROLLBACK END-IF.

📌 Easter egg clássico:

90% dos “problemas de MQ” são COMMIT esquecido.


6️⃣ Fechar fila e desconectar

FECHA-FILA. CALL 'MQCLOSE' USING WS-HCONN WS-HOBJ MQCO-NONE WS-COMPCODE WS-REASON. DESCONECTA. CALL 'MQDISC' USING WS-HCONN WS-COMPCODE WS-REASON.

7️⃣ Rollback (se algo der errado)

ROLLBACK. CALL 'MQBACK' USING WS-HCONN WS-COMPCODE WS-REASON. DISPLAY 'ROLLBACK EXECUTADO'. GO TO FECHA-FILA.

🔚 Fim do programa

FIM-PROGRAMA. STOP RUN.

🧠 O que este exemplo ensina (de verdade)

✔ Fluxo correto do MQ
✔ Tratamento de erros
✔ Uso de COMMIT / ROLLBACK
✔ Código legível para mainframer
✔ Pronto para:

  • Batch

  • CICS

  • IMS

  • DB2


📌 Dicas Bellacosa Mainframe

  • Sempre trate:

    • 2033 (no message)

    • 2009 (connection broken)

  • Nunca:

    • Esqueça COMMIT

    • Assuma que mensagem foi consumida

  • Pense em MQ como:

    DB2 sem SQL

     

quinta-feira, 22 de fevereiro de 2018

😈🔥 Lendo SMF do MQ como se fosse trace distribuído

 


😈🔥 Lendo SMF do MQ como se fosse trace distribuído


Conhecimento básico sobre aplicações distribuídas para quem já confiou mais no SMF do que em qualquer dashboard





☕ 02:48 — Quando a fila cresce e ninguém sabe “quem começou”

No mundo cloud, alguém pergunta:

“Qual serviço está causando o problema?”

No mundo mainframe, a pergunta sempre foi melhor:

“Qual transação chegou primeiro?”

Este artigo é sobre ler SMF do IBM MQ for z/OS com a mesma lógica usada para distributed tracing moderno — só que com décadas a mais de maturidade.



1️⃣ Contexto histórico: antes do trace existir, o SMF já contava a história 🧬

Distributed tracing surgiu porque:

  • sistemas ficaram espalhados

  • ninguém sabia por onde o request passava

No z/OS:

  • tudo sempre passou por um lugar auditável

  • o SMF virou a linha do tempo oficial

📌 Comentário Bellacosa:
Trace é novidade.
Linha do tempo sempre foi obrigação.


2️⃣ O que é um trace distribuído, afinal? 🧩

Trace distribuído:

  • segue um request

  • de serviço em serviço

  • até o resultado (ou falha)

SMF do MQ faz o mesmo:

  • PUT

  • fila

  • GET

  • consumo

  • impacto em recursos

🔥 Tradução direta:
Cada mensagem no MQ é um request distribuído encapsulado.


3️⃣ Mapa mental: SMF do MQ ↔ Trace moderno 🗺️

SMF MQ (z/OS)Trace distribuídoSignificado
PUT MESSAGESpan inicialEntrada do request
Queue NameService nameDestino lógico
GET MESSAGESpan consumidorProcessamento
Queue DepthLagAcúmulo de trabalho
Elapsed TimeLatênciaTempo fim a fim
CPU / I/OResource usageCusto do request
AplicaçãoService IDResponsável

😈 Easter egg:
Fila crescendo é trace parado no meio do caminho.


4️⃣ Lendo SMF como linha do tempo (não como relatório) ⏱️

Erro comum:

  • olhar SMF como estatística fria

Leitura correta:

  • montar sequência temporal

  • entender causa → efeito

📌 Comentário Bellacosa:
Trace não é gráfico bonito.
É história cronológica.


5️⃣ Passo a passo: leitura estilo “trace distribuído” 🔍

5.1 — Identifique o PUT inicial

  • Quem publicou?

  • Em que horário?

  • Com qual volume?

👉 Equivalente ao primeiro span do trace.


5.2 — Observe a evolução da fila

  • Crescimento constante?

  • Explosão pontual?

😈 Easter egg:
Fila crescendo devagar é mais perigosa que pico.


5.3 — Analise o GET

  • Está acontecendo?

  • Está atrasado?

  • Está mais lento?

📌 Tradução:
Consumidor virou gargalo.


5.4 — Correlacione com recursos (RMF mode) 📊

  • CPU alta?

  • I/O saturado?

  • Espera?

🔥 Comentário Bellacosa:
Mensagem não some. Ela espera.


5.5 — Ache o primeiro desvio

  • Antes do alerta

  • Antes da reclamação

  • Antes do incidente

👉 Esse é o root cause real.


6️⃣ Curiosidades que só mainframer percebe 😈

  • MQ nunca mente

  • Ele só acumula evidência

  • SMF sempre esteve certo

  • O erro humano vem depois

📌 Comentário ácido:
Alertas gritam. SMF sussurra — e acerta.


7️⃣ Erros clássicos ao analisar MQ ⚠️

❌ Aumentar depth máximo
❌ Ajustar buffers sem análise
❌ Culpar o MQ
❌ Ignorar correlação temporal

🔥 Regra imortal:
Fila cheia é consequência, não diagnóstico.


8️⃣ Guia de estudo prático 📚

Conceitos

  • Mensageria confiável

  • Backpressure

  • Throughput vs Latência

  • Observabilidade

  • Root cause analysis

Exercício Bellacosa

👉 Pegue um relatório SMF do MQ
👉 Monte uma timeline manual
👉 Marque onde o fluxo parou


🎯 Aplicações práticas desse entendimento

  • Integração mainframe-cloud

  • Sistemas event-driven críticos

  • Análise de gargalos

  • Prevenção de incidentes

  • Auditoria e compliance

🔥 Comentário final:
Quem entende SMF do MQ já entende tracing distribuído — só não chamava assim.


🖤 Epílogo — 03:19, filas sob controle

Enquanto o mundo descobre tracing,
o mainframe segue entregando história completa, com provas.

El Jefe Midnight Lunch assina:
“Mensagem não mente. E SMF nunca esquece.”

 

sexta-feira, 19 de janeiro de 2018

💡 Mid-Week Tech Insight | IBM MQ for z/OS & SMF Data



 💡 Mid-Week Tech Insight | IBM MQ for z/OS & SMF Data

Mensageria crítica explicada para quem já confia mais no SMF do que em dashboard bonito




☕ 02:22 — Quando a fila começa a crescer em silêncio

Todo mainframer já viveu esse momento:
o sistema “está no ar”, ninguém reclamou…
mas o depth da fila começa a subir.

No mundo distribuído isso vira pânico tardio.
No z/OS, isso vira SMF bem lido.

Este artigo é sobre IBM MQ for z/OS + SMF como fundação real de aplicações distribuídas críticas — sem hype, sem romantização.


1️⃣ Um pouco de história: quando mensageria virou espinha dorsal 🧬

Antes de “event-driven” virar buzzword:

  • MQ já desacoplava sistemas

  • Garantia entrega

  • Preservava ordem

  • Sobrevivia a falhas

📌 Comentário Bellacosa:
MQ não nasceu para “escala web”.
Nasceu para não perder mensagem.


2️⃣ Por que SMF é a alma do MQ no z/OS 🧠

No z/OS:

  • Nada sério existe sem SMF

  • Performance sem SMF é palpite

No MQ:

  • SMF mostra o que realmente aconteceu

  • Não o que alguém acha que aconteceu

🔥 Tradução direta:
SMF é o trace definitivo do MQ.


3️⃣ O que o SMF revela sobre o MQ (e ninguém vê) 🔍

Com SMF você enxerga:

  • Volume de mensagens

  • Taxa de PUT / GET

  • Uso de CPU e I/O

  • Esperas

  • Gargalos por fila ou aplicação

😈 Easter egg:
Quem analisa SMF sabe que fila cheia não é causa — é sintoma.


4️⃣ MQ no mundo distribuído: o elo invisível 🌍

Aplicações modernas:

  • Microservices

  • Eventos

  • APIs

Mas no core:

  • MQ continua segurando o mundo

📌 Comentário ácido:
Kafka fala alto.
MQ entrega calado.


5️⃣ Passo a passo mental: analisando MQ via SMF 🧭

1️⃣ Observe o crescimento da fila
2️⃣ Correlacione com horário e carga
3️⃣ Analise PUT vs GET
4️⃣ Verifique latência e espera
5️⃣ Avalie consumo de CPU
6️⃣ Identifique aplicação causadora
7️⃣ Só então ajuste parâmetros

🔥 Regra de ouro:
Nunca aumente buffer antes de entender o gargalo.


6️⃣ SMF vs Observabilidade moderna (o encontro dos mundos) 📊

MainframeMundo distribuído
SMF MQTraces de mensageria
RMFMétricas de throughput
Queue DepthLag de consumidor
PUT/GETProducer / Consumer
AbendIncident

😈 Curiosidade:
O que hoje chamam de “lag” você sempre chamou de fila crescendo.


7️⃣ Erros comuns (e caros) ⚠️

❌ Ignorar SMF e confiar só em alertas
❌ Tratar MQ como “infra”
❌ Ajustar parâmetros sem evidência
❌ Não correlacionar com carga real

📌 Comentário Bellacosa:
Mensageria sem visibilidade vira buraco negro.


8️⃣ Guia de estudo prático 📚

Conceitos

  • Mensageria confiável

  • Desacoplamento real

  • Backpressure

  • Observabilidade

  • Capacidade

Exercício

👉 Pegue dados SMF do MQ
👉 Monte uma linha do tempo
👉 Relacione com batch, online e APIs


🎯 Aplicações reais no mundo enterprise

  • Core bancário

  • Integração mainframe-cloud

  • Sistemas regulados

  • Alta disponibilidade

  • Processamento assíncrono crítico

🔥 Comentário final:
Sem MQ, o distribuído cai.
Sem SMF, ninguém sabe por quê.


🖤 Epílogo — 03:05, filas sob controle

Enquanto alguns discutem se mensageria é “moderna”,
o MQ segue processando bilhões de mensagens… com SMF contando a verdade.

El Jefe Midnight Lunch assina:
“Mensagens podem esperar. Diagnóstico não.”

 

segunda-feira, 17 de dezembro de 2012

😈🔥 Manual não oficial de sobrevivência do mainframer em times cloud

 


😈🔥 Manual não oficial de sobrevivência do mainframer em times cloud


Conhecimento básico sobre aplicações distribuídas para quem já viu produção cair em silêncio


☕ 08:59 — Daily começa, o risco também

Você entra no call.
Alguém diz:

“Hoje vamos subir direto em produção, é só um ajuste pequeno.”

Você, mainframer, já sente o cheiro de abend conceitual.

Este manual não é sobre tecnologia.
É sobre sobrevivência cultural e técnica em times cloud, sem perder sanidade — nem reputação.


1️⃣ Contexto histórico: por que você é estranho ali 🧬

O time cloud veio de:

  • Startups

  • Ambientes stateless

  • Deploy diário

  • “Se cair, a gente resolve”

Você veio de:

  • SLA

  • Batch noturno

  • Controle transacional

  • Auditoria

  • Multas

📌 Tradução Bellacosa:
Eles foram treinados para velocidade.
Você foi treinado para não errar.


2️⃣ Regra de ouro #1: nunca diga “no mainframe…” 🛑

Diga:

  • ❌ “No mainframe isso é melhor”

  • ✅ “Em ambientes críticos, isso costuma falhar por causa de…”

🔥 Comentário ácido:
Argumento técnico convence. Nostalgia não.


3️⃣ Falha parcial: o novo inimigo invisível 👻

No mainframe:

  • Caiu → caiu tudo → alguém resolve

No cloud:

  • Um serviço cai

  • Outro fica lento

  • Um terceiro responde errado

  • O sistema parece funcionar

😈 Easter egg traumático:
O erro mais caro é o que não quebra imediatamente.


4️⃣ Observabilidade: sem SMF, sem paz 📊

Se o time não sabe:

  • Qual serviço respondeu

  • Em quanto tempo

  • Com qual dependência

👉 Então não existe produção, só esperança.

📌 Frase para reuniões:
“Sem observabilidade, não é sistema — é aposta.”


5️⃣ Event-driven: MQ não perdoa 📨

Quando alguém diz:

“É só publicar o evento”

Pergunte:

  • É idempotente?

  • Tem reprocessamento?

  • E se duplicar?

  • E se perder?

🔥 Comentário Bellacosa:
Evento não é desculpa para perder controle.


6️⃣ Retry mal feito mata silenciosamente 🔁

Retry:

  • Sem backoff

  • Sem limite

  • Sem idempotência

= batch distribuído rodando para sempre

😈 Easter egg:
Retry é GO TO disfarçado.


7️⃣ Deploy contínuo ≠ deploy irresponsável 🚀

Explique:

  • Feature flag

  • Canary

  • Rollback real

  • Monitoramento pós-deploy

📌 Regra prática:
Quem não sabe voltar, não deveria ir.


8️⃣ Passo a passo de sobrevivência diária 🧭

1️⃣ Escute antes de julgar
2️⃣ Traduza buzzword para risco
3️⃣ Faça perguntas incômodas
4️⃣ Documente decisões
5️⃣ Peça métricas
6️⃣ Exija plano de rollback
7️⃣ Proteja produção como território sagrado


9️⃣ Curiosidades que só o mainframer percebe 👀

  • “Alta disponibilidade” virou feature

  • Logs são decorativos

  • Produção é confundida com staging

  • Ninguém pensa em auditoria

😈 Comentário realista:
Cloud ensinou muitos a programar.
Mainframe ensinou poucos a operar.


🔟 Guia de estudo para não virar o chato do time 📚

Conceitos

  • CAP Theorem

  • Resiliência

  • SRE

  • Observabilidade

  • Arquitetura híbrida

Ferramentas

  • APM (Instana, Dynatrace)

  • Message brokers

  • Feature flags

  • Chaos Engineering (com juízo)

📌 Dica final:
Estude o suficiente para liderar sem impor.


🎯 Aplicações práticas desse manual

  • Modernização de core

  • Integração mainframe-cloud

  • Arquitetura corporativa

  • Times de plataforma

  • Ambientes regulados


🖤 Epílogo — 23:58, produção ainda de pé

Você não está ali para atrasar o time.
Está ali para evitar que ele se autodestrua.

El Jefe Midnight Lunch assina:
“Quando o cloud falha, chamam o mainframer. Quando funciona, ninguém percebe.”