✨ Bem-vindo ao meu espaço! ✨ Este blog é o diário de um otaku apaixonado por animes, tecnologia de mainframe e viagens. Cada entrada é uma mistura única: relatos de viagem com fotos, filmes, links, artigos e desenhos, sempre buscando enriquecer a experiência de quem lê. Sou quase um turista profissional: adoro dormir em uma cama diferente, acordar em um lugar novo e registrar tudo com minha câmera sempre à mão. Entre uma viagem e outra, compartilho também reflexões sobre cultura otaku/animes
quinta-feira, 5 de junho de 2025
Visite Bellacosa Mainframe
BELLACOSA MAINFRAME
sexta-feira, 12 de abril de 2024
Uma visão geral sobre o trabalhador de Mainframe
quinta-feira, 11 de abril de 2024
Conheças algumas vantagens de desenvolver em COBOL Mainframe
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)
-
Sintoma aparece longe da causa
-
Métrica parece normal
-
SLA corre
-
Dump gerado
-
Análise cruzada (JES + CICS + DB2 + MQ)
-
Decisão com risco calculado
-
Execução mínima, impacto máximo
-
Ambiente estabiliza
-
Post-mortem técnico
-
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.
segunda-feira, 13 de outubro de 2014
Iniciação ao REXX – Quando o Mainframe Te Apresenta um Novo Amigo
Iniciação ao REXX – Quando o Mainframe Te Apresenta um Novo Amigo
“REXX não é moda. REXX é sobrevivência.”
Quem trabalha com z/OS, z/VM ou IBM Z cedo ou tarde chega a essa constatação:
não importa quantos produtos enterprise você tenha, sempre haverá aquele momento em que o problema é pequeno demais para COBOL, complexo demais para JCL e burocrático demais para justificar uma nova ferramenta.
É exatamente nesse espaço — invisível para muitos — que mora o REXX.
Subestimado, silencioso, quase sempre ignorado… até o dia em que você descobre que ele resolve 80% das dores do dia a dia com meia dúzia de linhas.
Este post é um convite:
👉 conhecer o REXX não como linguagem, mas como companheiro de trincheira no mainframe.
📜 Um pouco de história (porque nada no mainframe surge do nada)
O REXX (Restructured Extended Executor) nasceu em 1979, dentro da IBM, criado por Mike Cowlishaw.
A motivação era simples e genial:
Criar uma linguagem fácil de ler, difícil de quebrar e totalmente integrada ao sistema.
Enquanto o mundo brigava com sintaxe pesada, pontuação excessiva e códigos ilegíveis, o REXX nasceu com uma ideia revolucionária para a época:
-
tudo é string
-
tipagem dinâmica
-
sintaxe próxima do inglês
-
tolerância a erro humano
📌 Curiosidade:
REXX é mais antigo que Perl, Python e Ruby — e já fazia muita coisa que elas só popularizaram décadas depois.
🧠 REXX não vive sozinho: ambientes de processamento e comando
Aqui está o primeiro choque para quem vem de linguagens “tradicionais”:
👉 REXX não existe fora de um ambiente.
Antes de escrever código, você precisa entender onde ele roda e com quem ele conversa.
Ambientes de Processamento
-
TSO/E
-
ISPF
-
Batch TSO
-
Batch não-TSO
-
z/VM (CMS / CP)
O mesmo EXEC pode se comportar de forma totalmente diferente dependendo do ambiente.
📌 Easter egg de sobrevivência:
Se você não sabe em que ambiente está, o erro não é do REXX — é seu.
Ambientes de Comandos
REXX não executa comandos diretamente.
Ele endereça comandos a um ambiente específico.
address tso "listcat level('USER01')" address ispexec "display panel(MYPANEL)"
Isso explica por que REXX é tão poderoso:
ele fala a língua do sistema.
🧱 Fundamentos do REXX – Simples, mas não simplório
Filosofia da linguagem
-
Tudo é string
-
Conversão automática quando necessário
-
Pouca pontuação
-
Código legível
-
Menos regras, mais resultado
say 'Hello, Mainframe!'
Sem ponto e vírgula.
Sem BEGIN obrigatório.
Sem cerimônia.
📌 Curiosidade perigosa:
Variáveis não inicializadas não geram erro.
Elas retornam o próprio nome.
Ótimo para debug… péssimo se você não souber 😄
Entrada, saída e lógica
-
SAY→ saída -
PULL→ entrada (stack) -
IF / THEN / ELSE -
DO / END -
EXIT
Aqui o REXX começa a mostrar sua vocação: automatizar decisões, não apenas executar código.
🖥️ REXX e o Ambiente TSO – Onde a mágica começa
Com REXX você:
-
aloca datasets
-
consulta catálogos
-
automatiza comandos
-
elimina JCL desnecessário
address tso "allocate fi(arq1) da('user.test.ps') shr" address tso "listalc"
📌 Comentário Bellacosa:
REXX + TSO = menos JCL, menos erro, menos dor de cabeça.
📦 CLISTs x EXECs – O passado e o presente
CLIST fez história.
Mas o REXX fez melhor.
-
EXECs são mais poderosos
-
Mais legíveis
-
Mais fáceis de manter
-
Melhor integração
Entender a sequência de busca (SYSEXEC, SYSPROC…) é obrigatório.
📌 Easter egg clássico:
“EXEC não encontrado” quase sempre é DD errado, não código errado.
🔁 Programação REXX – Onde o iniciante vira sysprog
Aqui o REXX mostra que não é brinquedo:
-
Funções e subrotinas
-
Escopo de variáveis
-
DO composto
-
ITERATE e LEAVE
-
SELECT (case statement elegante)
-
SIGNAL e SIGNAL VALUE
-
INTERPRET (meta-programação!)
cmd = "say 'REXX é poderoso'" interpret cmd
📌 Comentário raiz:
INTERPRET é um sabre de luz.
Poderoso… mas não entregue para qualquer padawan.
🌳 Variáveis, Strings e o poder do PARSE
Stems – arrays antes dos arrays
nome.1 = 'Ana' nome.2 = 'João' nome.0 = 2
PARSE – o superpoder escondido
parse var linha campo1 ',' campo2
📌 Curiosidade:
PARSE elimina dezenas de IFs, SUBSTRs e gambiarras.
📂 EXECIO – O mini DFSORT do dia a dia
"EXECIO * DISKR ARQ1 (STEM LIN.)"
Com EXECIO você:
-
lê arquivos
-
grava datasets
-
processa linhas
-
automatiza relatórios
Tudo sem sair do REXX.
🧪 Depuração – Porque errar faz parte
REXX não te abandona quando algo dá errado:
-
TRACE -
RC -
SIGL -
SOURCELINE -
CONDITION
📌 Curiosidade histórica:
Debug nativo em REXX era luxo quando muitas linguagens nem sonhavam com isso.
⚙️ Batch, endereços e ambientes avançados
REXX roda:
-
em batch TSO
-
fora do TSO
-
em múltiplos ambientes de comando
say address()
📌 Comentário Bellacosa:
Antes de perguntar “por que falhou”, pergunte “onde estou rodando”.
🚀 Compilador REXX – Performance e proteção
Sim, REXX pode ser compilado:
-
melhora performance
-
protege código
-
usado em ambientes críticos
Mesmo compilado, ele não perde sua alma dinâmica.
☕ Conclusão – Por que REXX vira amigo
REXX não tenta competir com COBOL.
Não substitui Assembler.
Não briga com produtos enterprise.
Ele faz algo muito mais valioso:
👉 resolve problemas reais com o que já existe no sistema.
Quem domina REXX:
-
automatiza mais
-
depende menos
-
entende melhor o ambiente
-
sobrevive melhor no data center
No mainframe, o melhor amigo
não é o software mais caro…
é o que resolve às 3 da manhã.
Bem-vindo ao REXX.
Ele sempre esteve aí. ☕🖥️
domingo, 20 de outubro de 2013
🔎 Guia Prático de Comandos TSO para Padawans
🔎 Guia Prático de Comandos TSO para Padawans
Salve jovem padawan em nosso segundo artigo de 2026, vamos mergulhar um pouco em comandos de linha no TSO, onde poderemos explorar melhor o sistema Z, criar dataset, consultar, limpar, alocar e testar.
Ganhando velocidade em nosso desenvolvimento e dominando melhor o ambiente Z, seja bem-vindo e conto com seu comentarios e criticas para melhorarmos e irmos mais longe.
Para não apanhar do terminal logo no login
🧠 Antes de tudo: o que é TSO de verdade?
TSO (Time Sharing Option) não é:
❌ só uma tela preta
❌ um “modo antigo”
❌ um castigo divino
TSO é:
A interface raiz do z/OS para trabalhar diretamente com o sistema.
Se o mainframe fosse um avião:
- TSO é o painel cru de instrumentos
- ISPF é o cockpit amigável
Todo mainframeiro de respeito precisa saber sobreviver no TSO puro.
⌨️ Sintaxe básica do TSO (lei universal)
COMANDO OPERANDO PARÂMETROSRegras não escritas:
- Espaço separa argumentos
- Parênteses organizam opções
- Aspas protegem nomes longos
- Abreviações são comuns (e perigosas 😈)
📂 Comandos essenciais para datasets
📌 LISTDS – listar datasets
LISTDS 'USERID.*'🔎 Dica El Jefe:
- Use LEVEL para evitar varrer o catálogo inteiro
LISTDS LEVEL(USERID)⚠️ Perigo:
- LISTDS * pode virar pecado mortal em produção
📌 DELETE – apagar datasets
DELETE 'USERID.TESTE.ARQUIVO'☠️ Atenção:
- Não existe lixeira
- Apagou, rezou
📌 RENAME – renomear
RENAME 'USERID.OLD' 'USERID.NEW'📖 Visualização de conteúdo
📌 LISTCAT – catálogo é lei
LISTCAT ENTRIES('USERID.ARQ') ALLUse quando:
- Dataset “existe mas não existe”
- Erro estranho de allocation
- Discussão com storage admin 😎
📌 PRINT – ver conteúdo
PRINT DS('USERID.ARQ')⚠️ Não abuse com arquivos grandes. Seu spool agradece.
⚙️ Execução e controle de ambiente
📌 ALLOC – alocar datasets
ALLOC FI(ARQ1) DA('USERID.TESTE') SHR🧠 Tradução humana:
- FI = nome lógico
- DA = dataset físico
- SHR = leitura compartilhada
📌 FREE – liberar alocação
FREE FI(ARQ1)Nunca confie que o sistema vai limpar sozinho.
📤 Trabalhando com JOBs
📌 SUBMIT – enviar JCL
SUBMIT 'USERID.JCL.TESTE'🔥 Dica El Jefe:
- Use SUBMIT * dentro do editor para ganhar tempo
📌 STATUS – ver jobs ativos
STATUSSimples. Antigo. Funcional.
👤 Usuário e sessão
📌 PROFILE – perfil do usuário
PROFILEMostra:
- Prefixo
- Tamanho de região
- Opções ativas
📌 LOGOFF – sair com dignidade
LOGOFFNunca feche o navegador achando que “tá tudo bem”.
🧨 Erros clássicos de padawan
❌ Digitar dataset sem aspas
❌ Apagar sem conferir
❌ LISTDS muito genérico
❌ Esquecer FREE
❌ Confundir TSO com ISPF
🥚 Easter-eggs de veterano
- Muitos comandos aceitam abreviação
- HELP funciona (sim, sério)
HELP LISTDS- TSO responde melhor quando você é educado (quase)
🎓 Palavra final do El Jefe
Quem domina TSO, domina o chão de fábrica do mainframe.
ISPF é conforto. TSO é poder.
Aprender TSO não te torna antigo. Te torna consciente do que o sistema realmente faz.
.png)