Translate

Mostrar mensagens com a etiqueta Console MVS. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Console MVS. Mostrar todas as mensagens

segunda-feira, 10 de novembro de 2025

🚀☕ O REXX VIROU OPERADOR DE MAINFRAME! — Quando Scripts Ganham Superpoderes no z/OS ☕🚀

 

Bellacosa Mainframe apresenta o REXX em modo batch JCL script versus compilado

🚀☕ O REXX VIROU OPERADOR DE MAINFRAME! — Quando Scripts Ganham Superpoderes no z/OS ☕🚀

“O dia em que você descobre que REXX consegue conversar diretamente com o console do MVS… é o dia em que você percebe que o Mainframe nunca foi apenas um computador.”

— Bellacosa Mainframe Chronicles


😮 O GRANDE MAL-ENTENDIDO SOBRE REXX

Muita gente acha que REXX é apenas:

  • linguagem de automação simples,
  • script de login TSO,
  • “CLIST melhorado”,
  • ferramentinha de produtividade.

Mas isso é como dizer que:

  • um z15 é “um computador grande”.

REXX no z/OS é MUITO mais profundo.

Quando você entra em:

  • compilação,
  • batch,
  • console MVS,
  • automação operacional,

o REXX deixa de ser “script” e começa a virar:

🔥 interface viva do sistema operacional.


🧠 O MOMENTO EM QUE O REXX MUDA DE NÍVEL

Existe um ponto na jornada Mainframe em que ocorre uma transformação mental.

É quando você percebe que um EXEC consegue:

✅ emitir comandos de operador
✅ capturar mensagens do sistema
✅ automatizar JES2
✅ monitorar jobs
✅ analisar IPL
✅ operar subsistemas
✅ rodar em batch
✅ virar código compilado
✅ esconder source
✅ ganhar performance absurda

Nesse momento o REXX deixa de ser:

"SAY 'HELLO WORLD'"

e vira:

"D IPLINFO"
"D A,L"
"F CICS,EMERG"

😳


☕ O REXX NÃO FOI CRIADO “ONTEM”

Criado por Mike Cowlishaw na IBM nos anos 70, o REXX nasceu com uma filosofia quase revolucionária:

“A linguagem deve ser legível para humanos.”

Enquanto outras linguagens:

  • complicavam,
  • abreviavam,
  • obscureciam,

o REXX dizia:

IF SALDO < 0 THEN
SAY 'VOCÊ ESTÁ DEVENDO'

Isso parecia simples…

Até alguém descobrir que ele podia controlar o MVS inteiro.

💀


🏛️ O REXX NO CORAÇÃO DO z/OS

Pouca gente percebe o quanto o REXX está infiltrado no ecossistema IBM:

ÁreaUso
ISPFdiálogos
SDSFautomação
RACFadministração
JES2operações
DB2utilities
CICSscripts
NetViewautomação
TSOcomandos
z/OS UNIXintegração

REXX é quase um “sistema nervoso” invisível do Mainframe.


⚡ QUANDO O INTERPRETADOR VIRA LIMITAÇÃO

O interpretador REXX é fantástico:

  • flexível,
  • amigável,
  • poderoso.

Mas existe um problema.

Ele lê:

linha por linha

Toda vez.

Imagine um loop gigantesco:

DO I = 1 TO 5000000
X = I * I
END

O interpretador precisa:

  • analisar sintaxe,
  • resolver símbolos,
  • interpretar operações,
  • gerenciar tipos,

em tempo real.

Resultado:
🐢


🚀 O DIA EM QUE O REXX GANHA TURBO

A IBM resolveu isso criando o:

IBM REXX Compiler

Agora o fluxo vira:

SOURCE REXX

COMPILER

CEXEC / OBJECT

EXECUÇÃO MUITO MAIS RÁPIDA

O ganho pode ser brutal.

Em alguns testes:

  • 6x
  • 8x
  • 10x mais rápido.

😳


💥 O DETALHE QUE MUITA GENTE NÃO SABE

O compilador não melhora apenas performance.

Ele muda completamente a confiabilidade do programa.


🧨 O INTERPRETADOR TEM UMA PEGADINHA

Veja:

IF 1 = 2 THEN
SAY 'ERRO

O interpretador:

  • nunca entra no IF,
  • nunca detecta erro.

Agora o compilador…

💀

Ele analisa tudo.

Resultado:

  • syntax validation global,
  • detecção estrutural,
  • análise completa.

Isso transforma REXX em linguagem enterprise séria.


🕵️ O XREF — A FEATURE SUBESTIMADA

Quem já herdou um REXX com:

  • 20 mil linhas,
  • 900 variáveis,
  • 300 CALLs,
  • labels aleatórios,

sabe o inferno que isso é.

Então entra o:

XREF

Cross Reference Listing.

Ele lista:

  • variáveis,
  • funções,
  • labels,
  • comandos host,
  • referências.

Exemplo:

USERID BUILT-IN 6(f)
SYSVAR SYSTM RTN 7(f)

Isso é ouro puro para:

  • manutenção,
  • auditoria,
  • engenharia reversa,
  • modernização.

👀 EASTER EGG #1 — O REXX “SECRETO”

Pouca gente conhece:

PARSE VERSION V
SAY V

Resultado:

REXX370

ou:

REXXC370

🔥

Você consegue descobrir:

  • se o código está compilado,
  • qual engine está rodando,
  • versão do interpretador.

Quase um “SHOW VERSION” interno do REXX.


🧠 O QUE É CEXEC?

O compilador pode gerar:

TipoDescrição
CEXECREXX compilado
OBJECTobject module

O CEXEC continua:

  • sendo REXX,
  • mas compilado.

Já OBJECT pode:

  • virar LOAD MODULE,
  • ser link-editado,
  • chamado como programa.

😈 O “LADO OCULTO” DO CONDENSE

Existe uma opção misteriosa:

CONDENSE

Ela:

  • compacta,
  • “embaralha”,
  • reduz tamanho.

O resultado parece:

ÆØ§µ▒╬╫╩

😵

Muitos juniors acham que:

  • dataset corrompeu,
  • encoding morreu,
  • EBCDIC explodiu.

Não.

É só REXX compilado condensado.


⚙️ REXX EM BATCH — A PORTA PARA AUTOMAÇÃO REAL

Agora começa a magia operacional.

O REXX pode rodar:

  • foreground,
  • TSO,
  • batch,
  • scheduler,
  • automation.

E aí entra uma entidade lendária do z/OS:

IKJEFT01


👑 IKJEFT01 — O “REI INVISÍVEL” DO TSO BATCH

Quem trabalha com Mainframe inevitavelmente encontra:

//STEP1 EXEC PGM=IKJEFT01

Esse programa:

  • cria ambiente TSO/E,
  • habilita comandos TSO,
  • executa CLIST,
  • executa REXX.

É quase um:

"TSO portátil dentro do batch"

💻 EXEMPLO REAL

//BELLA JOB CLASS=A,MSGCLASS=X
//STEP1 EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=VAGNER.REXX.EXEC,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
%BELLA01
/*

🔥 O REXX EXECUTADO

/* REXX */

SAY 'BELLACOSA MAINFRAME ONLINE'

ADDRESS TSO
"LISTCAT LEVEL(SYS1)"

SAY 'FIM'

😮 MAS EXISTE UMA VERSÃO MAIS “ROOT”

E aí chegamos no:

IRXJCL


☠️ IRXJCL — O “MODO HARDCORE”

Com:

//STEP1 EXEC PGM=IRXJCL

o REXX roda:

  • diretamente no MVS,
  • sem TSO/E.

🔥

Agora começam as restrições.


💀 O ERRO CLÁSSICO

Isso NÃO funciona:

ADDRESS TSO "ALLOC ..."

Porque:
❌ não existe TSO.


🧠 O QUE MUDA?

AmbienteRecursos
IKJEFT01TSO completo
IRXJCLMVS puro

👑 AGORA CHEGAMOS AO “CHEAT CODE” DO z/OS

ADDRESS CONSOLE

Quando alguém aprende isso…
não existe volta.


🤯 O REXX CONSEGUE VIRAR OPERADOR MVS

Sim.

Você pode emitir:

D IPLINFO
D A,L
D U,VOL=TSO001

diretamente do EXEC.

😳


⚠️ ISSO É PODER OPERACIONAL REAL

Agora o REXX pode:

  • monitorar sistema,
  • detectar falhas,
  • responder eventos,
  • automatizar operações,
  • capturar mensagens WTO,
  • agir sozinho.

Isso é praticamente a base conceitual:

  • do NetView,
  • OPS/MVS,
  • System Automation.

🧩 EASTER EGG #2 — O TOKEN FANTASMA

Existe um conceito fascinante:

CART

Command And Response Token.

Exemplo:

"CART IPL001"
"DISPLAY IPLINFO"

O CART funciona como:

  • identificador,
  • etiqueta,
  • correlation-id do comando.

Muito parecido com:

  • tracing distribuído moderno,
  • request-id de APIs,
  • observabilidade cloud.

😳

O Mainframe já fazia isso décadas atrás.


💬 CAPTURANDO A RESPOSTA DO MVS

Agora entra:

GETMSG()

RC = GETMSG('MSG.','SOL','IPL001',,30)

E pronto.

As mensagens do console vão parar:

  • dentro de variáveis REXX.

🤯


🚀 EXEMPLO COMPLETO — “OPERADOR AUTOMÁTICO”

/* REXX */

ADDRESS TSO
"CONSPROF SOLDISPLAY(NO) SOLNUM(400)"
"CONSOLE ACTIVATE"

ADDRESS CONSOLE

"CART IPL001"
"DISPLAY IPLINFO"

RC = GETMSG('MSG.','SOL','IPL001',,30)

DO I = 1 TO MSG.0
SAY MSG.I
END

ADDRESS TSO
"CONSOLE DEACTIVATE"

😳 O QUE ESSE CÓDIGO FEZ?

Ele:
✅ ativou console MCS
✅ virou operador do z/OS
✅ executou comando MVS
✅ capturou respostas
✅ armazenou tudo em STEM variables

Tudo usando REXX.


☕ E AÍ VOCÊ PERCEBE…

O Mainframe nunca foi “ultrapassado”.

Ele sempre foi:

  • automatizável,
  • observável,
  • integrável,
  • scriptável.

Muito antes de:

  • DevOps,
  • IaC,
  • observability,
  • automation frameworks,
  • cloud scripting.

🧠 O REXX ERA “DEVOPS” ANTES DO DEVOPS EXISTIR

Pense:

HojeMainframe fazia
Python automationREXX
IaCPROCs/JCL
MonitoringWTO/GETMSG
Event DrivenConsole automation
ObservabilityCART
CI/CDEndevor/Changeman
ScriptingTSO/E

😳


👑 CONCLUSÃO — O DIA EM QUE O REXX DEIXA DE SER “LINGUAGEM”

Quando você domina:

  • Compiler,
  • IKJEFT01,
  • IRXJCL,
  • ADDRESS CONSOLE,
  • GETMSG,
  • CART,

o REXX deixa de ser:

"uma linguagem"

e vira:

🔥 Interface operacional viva do z/OS 🔥

E talvez esse seja o segredo mais subestimado do Mainframe moderno.


☕ Bellacosa Mainframe Final Thought

“Quem aprende REXX de verdade percebe uma coisa assustadora:

o Mainframe não é apenas um sistema…

ele conversa com você.” 🚀☕