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

segunda-feira, 22 de dezembro de 2025

🧙‍♂️ REXX em Modo Jedi Avançado

 


🧙‍♂️ REXX em Modo Jedi Avançado

Quando o script deixa de ser código e vira governo do sistema

“Todo mundo escreve REXX.
Poucos entendem o que realmente estão controlando.”



☕ Introdução – REXX não é uma linguagem, é uma posição de poder

No mundo distribuído, scripts automatizam tarefas.
No mainframe, REXX governa fluxos.

REXX não nasceu para competir com COBOL, PL/I ou Python.
Ele nasceu para orquestrar, colar, conectar e, quando mal usado, derrubar produção em silêncio.

Entrar no modo Jedi do REXX significa entender que:

Você não escreve REXX para resolver problemas.
Você escreve REXX para controlar o sistema que resolve problemas.


🧠 Capítulo 1 – ADDRESS: o sabre de luz do REXX

Se você só usa ADDRESS TSO, você ainda é um Padawan.

O verdadeiro poder começa quando você entende que ADDRESS é um roteador de autoridade:

  • ADDRESS TSO → usuário

  • ADDRESS ISPEXEC → interface

  • ADDRESS SDSF → JES

  • ADDRESS CONSOLE → operador

  • ADDRESS OPERCMDS → sistema

  • ADDRESS LINK / LINKMVS / LINKPGM → MVS puro

🧩 Insight Jedi

ADDRESS define quem executa.
REXX apenas decide quando.

No modo Jedi, o REXX não executa — ele coordena entidades que têm poder real.


📦 Capítulo 2 – Data Stack: o lado invisível da Força

Todo REXX poderoso depende do Data Stack.
Quem não domina a stack, não domina REXX.

O Data Stack é:

  • STDIN/STDOUT do mainframe

  • Pipe de comunicação invisível

  • Fonte de 80% dos bugs silenciosos

Jedi sabe:

  • Quando usar PUSH (LIFO)

  • Quando usar QUEUE (FIFO)

  • Quando isolar com NEWSTACK

  • Quando limpar antes de sair

Stack suja = decisão errada baseada em lixo.


🛡️ Capítulo 3 – SYSREXX: quando o script vira operador invisível

SYSREXX não é um nome bonito.
É uma categoria mental.

SYSREXX é:

  • REXX que roda sem você

  • REXX que toma decisões

  • REXX que opera produção

Ele normalmente envolve:

  • Batch

  • SDSF

  • GETMSG

  • CART

  • OPERCMDS

  • CONSOLE

Verdade desconfortável

SYSREXX mal governado é mais perigoso que operador humano.

Operador erra uma vez.
SYSREXX erra toda vez, automaticamente.


🔐 Capítulo 4 – OPERCMDS: o Dark Side do REXX

OPERCMDS é o ponto onde engenharia vira ética.

Quem usa OPERCMDS sem checklist:

  • Não está automatizando

  • Está delegando autoridade sem supervisão

Regras Jedi absolutas

  • OPERCMDS sem log é proibido

  • OPERCMDS sem GETMSG é irresponsável

  • OPERCMDS em loop é incidente garantido

  • OPERCMDS sem RACF é suicídio institucional

Não é sobre conseguir executar o comando.
É sobre merecer executar o comando.


🔗 Capítulo 5 – LINK / LINKMVS / LINKPGM: REXX como maestro

Aqui o REXX para de ser script e vira maestro de orquestra.

  • COBOL executa regra

  • ASM executa velocidade

  • Utilities executam trabalho pesado

  • REXX coordena tudo

No modo Jedi:

  • REXX não faz I/O pesado

  • REXX não replica lógica de negócio

  • REXX chama quem sabe fazer melhor

REXX não substitui COBOL.
REXX governa COBOL.


🧪 Capítulo 6 – Checklists: a diferença entre mestre e herói morto

Padawans confiam no código.
Jedis confiam em processo.

Checklist não é burocracia.
Checklist é memória externa para evitar arrogância técnica.

Checklist Jedi inclui:

  • Segurança RACF

  • Data Stack limpa

  • RC validado

  • Mensagem interpretada

  • Log auditável

  • Rollback possível

REXX sem checklist é talento desperdiçado.


⚖️ Capítulo 7 – REXX vs Shell vs Python: maturidade arquitetural

O Jedi não briga por linguagem.

Ele sabe que:

  • REXX governa o core

  • Shell conecta ao Unix

  • Python conecta ao futuro

A arquitetura madura combina, não substitui.

Trocar REXX por Python no core do z/OS não é modernização.
É amnésia técnica.


🧠 Capítulo 8 – A mentalidade Jedi REXX

Um Jedi REXX:

  • Pensa em risco antes de pensar em sintaxe

  • Prefere previsibilidade a elegância

  • Documenta o óbvio

  • Desconfia de RC=0

  • Nunca confia em automação sem auditoria

Frase final (para colar na parede do data center):

REXX não é uma linguagem de programação.
É uma linguagem de responsabilidade.


☕ Epílogo – Um Café no Bellacosa Mainframe

O REXX Jedi não aparece no LinkedIn dizendo que “automatizou tudo”.
Ele aparece quando nada quebrou.

E no mainframe, isso é o maior elogio possível.


sexta-feira, 19 de dezembro de 2025

🧠 Comparativo Mainframe REXX vs Shell Script vs Python

 


🧠 Comparativo Mainframe

REXX vs Shell Script vs Python




1️⃣ REXX (TSO/E – ISPF – Batch)

✅ Vantagens

Nativo do mainframe (vem no z/OS)
✔ Integração direta com:

  • TSO/E

  • ISPF

  • SDSF

  • JES

  • SYSREXX

  • OPERCMDS / CONSOLE
    ✔ Chamada direta de programas COBOL/ASM (LINKPGM)
    ✔ Manipulação natural de datasets (PS, PDS, PDSE)
    ✔ Baixíssimo overhead
    ✔ Ideal para automação de produção

❌ Desvantagens

✖ Pouco conhecido fora do mundo mainframe
✖ Sintaxe estranha para quem vem de linguagens modernas
✖ Bibliotecas externas quase inexistentes
✖ Não é ideal para APIs REST modernas sem middleware

🎯 Quando usar

✔ Automação batch
✔ Operação e monitoração
✔ SYSREXX
✔ Orquestração COBOL / utilities
✔ Scripts críticos de produção


2️⃣ Shell Script (z/OS UNIX – OMVS)

✅ Vantagens

✔ Familiar para quem vem de Linux/Unix
✔ Bom para:

  • FTP/SFTP

  • Arquivos ASCII

  • Integrações externas
    ✔ Excelente para pipelines simples
    ✔ Ótimo para chamadas de comandos USS

❌ Desvantagens

Não é nativo do MVS
✖ Acesso ruim a:

  • JES

  • SDSF

  • TSO

  • RACF
    ✖ Manipulação de datasets MVS é limitada
    ✖ Debug difícil em produção
    ✖ Performance inferior para grandes volumes MVS

🎯 Quando usar

✔ Integração com mundo distribuído
✔ Transferência de arquivos
✔ Scripts híbridos mainframe ↔ Linux
✔ Orquestração simples em USS


3️⃣ Python (z/OS – USS / Open Source)

✅ Vantagens

✔ Linguagem moderna, popular
✔ Ecossistema enorme de bibliotecas
✔ Ideal para:

  • APIs REST

  • JSON / XML

  • Analytics

  • Automação DevOps
    ✔ Fácil integração com Git, CI/CD
    ✔ Curva de aprendizado curta

❌ Desvantagens

Não é nativo MVS
✖ Precisa de:

  • Ambiente USS

  • Port de Python

  • Gerenciamento de versões
    ✖ Performance inferior em I/O MVS pesado
    ✖ Acesso indireto a:

  • JES

  • SDSF

  • RACF
    ✖ Overhead maior que REXX

🎯 Quando usar

✔ Modernização
✔ APIs e microserviços
✔ Integração cloud
✔ DevOps corporativo
✔ Análise de dados


4️⃣ Comparativo direto (tabela decisiva)

CritérioREXXShellPython
Nativo z/OS⭐⭐⭐⭐⭐⭐⭐⭐⭐
Batch MVS⭐⭐⭐⭐⭐⭐⭐⭐⭐
JES / SDSF⭐⭐⭐⭐⭐
Chamar COBOL⭐⭐⭐⭐⭐⭐⭐
APIs REST⭐⭐⭐⭐⭐⭐⭐
Performance⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
DevOps⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Curva aprendizado⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

5️⃣ Regra de Ouro (mundo real)

REXX governa o core do mainframe
Shell conecta o mainframe ao Unix
Python conecta o mainframe ao mundo moderno

💡 Arquitetura vencedora não escolhe um — combina os três.


6️⃣ Exemplo prático real

  • REXX

    • Controla jobs batch

    • Chama COBOL

    • Lê JES / SDSF

  • Shell

    • Move arquivos

    • Converte EBCDIC ↔ ASCII

  • Python

    • Expõe API REST

    • Integra com GitHub / Jenkins

    • Analisa logs


7️⃣ Resumo executivo (para arquiteto)

Use se…Ferramenta
Controle total do z/OSREXX
Integração UnixShell
Cloud / APIs / DevOpsPython

🧩 Frase final estilo Bellacosa Mainframe

REXX é o cérebro do mainframe.
Shell é o braço que alcança o Unix.
Python é a ponte para o futuro.

quarta-feira, 3 de novembro de 2010

☕🔥 REXX Hardcore no z/OS — automação, controle e poder operacional

 

Bellacosa Mainframe apresenta o REXX

☕🔥 REXX Hardcore no z/OS — automação, controle e poder operacional  

Se você já salvou produção com um exec improvisado, já rasgou SDSF via ADDRESS, ou já ouviu

“isso dá pra automatizar em REXX, né?”
então puxa a cadeira.
Aqui é REXX técnico, sem verniz didático e com cheiro de madrugada.


🕰️ Histórico & Origem — por que o REXX virou arma de produção

O REXX (Restructured Extended Executor) nasce na IBM nos anos 80 com uma missão clara:

  • Substituir JCL “verboso”

  • Padronizar scripts

  • Criar uma linguagem legível, extensível e integrada ao sistema

Ele não foi feito para ser “bonito”.
Foi feito para controlar ambiente.

Verdade histórica:

REXX não é linguagem de apoio — é linguagem de governo operacional.


🧠 Conceito de Ambiente de Processamento

REXX não executa no vácuo.
Ele sempre roda dentro de um ambiente:

  • TSO/E

  • Batch

  • SDSF

  • ISPF

  • CICS (indiretamente)

  • Programas externos

Cada ambiente define:

  • Comandos válidos

  • RC interpretado

  • Recursos disponíveis

  • Permissões RACF

🔥 Easter egg:
O mesmo EXEC pode funcionar em TSO e falhar em Batch sem mudar uma linha.


🧩 Fundamentos da Linguagem — simples na superfície, profunda no núcleo

Sintaxe & Elementos

  • Tipagem dinâmica

  • Strings como cidadão de primeira classe

  • Sem declaração obrigatória

  • Case-insensitive (armadilha clássica)

📌 Exemplo:

parse upper arg parm1 parm2 if parm1 = '' then exit 8

Comentário ácido:
REXX perdoa erro demais — e isso cobra seu preço em produção.


🏗️ Estrutura de um Programa REXX

Todo EXEC sério tem:

  1. Identificação

  2. Validação de ambiente

  3. Tratamento de RC

  4. Controle de erro

  5. Cleanup

📌 Exemplo base:

/* REXX */ signal on error signal on failure signal on syntax address tso "ALLOC FI(IN) DA('DATASET') SHR" ... exit 0

🔥 Veterano sabe:
EXEC sem SIGNAL ON é convite ao caos.


🧮 Estrutura de Dados — tabelas na memória

REXX não tem array clássico.
Tem stem variables.

tab.1 = 'A' tab.2 = 'B' tab.0 = 2

Curiosidade:
Stem mal controlado vira memory leak conceitual.


📂 Acesso a Arquivos & Geração de Relatórios

  • ALLOC / FREE

  • EXECIO DISKR / DISKW

  • Geração de relatórios spoolados

  • Integração com SORT

📌 Exemplo:

"EXECIO * DISKR IN (STEM L.)" do i=1 to L.0 say L.i end

🔥 Easter egg:
EXECIO ignora erro… até você checar o RC.


🔃 Classificação & Manipulação de Dados

  • SORT via IDCAMS

  • SORT via ICETOOL

  • Manipulação em memória (lento)

  • Pipeline híbrido REXX + SORT

Regra de produção:

Se precisa ordenar muito, não é REXX — é SORT.


🗂️ Acesso a Diretório de PDS

REXX + ISPF services:

  • LMDINIT

  • LMMLIST

  • LMCLOSE

📌 Exemplo:

address ispexec "LMINIT DATAID(DID) DATASET('MY.PDS')" "LMMLIST DATAID(DID) OPTION(LIST)"

🔥 Veterano:
ISPF services dão poder… e risco.


🧑‍💻 Interatividade com Usuário (TSO)

  • Pseudo-conversational

  • Command-level

  • SAY / PULL

  • Mensagens controladas

Fofoquice:
Interface feia, mas resolve crise em minutos.


🧪 Modos de Execução REXX

🟢 REXX Linha de Comando (Online)

  • Interativo

  • Debug rápido

  • Dependente de perfil

🟡 REXX Batch Script (Interpretado)

  • Executa via IKJEFT01

  • Dependente de ambiente

  • Mais flexível

🔴 REXX Batch Compilado

  • Performance superior

  • RC previsível

  • Menos tolerante a erro

  • Exige processo de build

🔥 Script vs Compilado:

Interpretado é agilidade.
Compilado é confiabilidade.


🔐 REXX + RACF

REXX não ignora segurança:

  • Herda permissões do usuário

  • Pode consultar via RACROUTE (indireto)

  • Controla acesso via classes

Verdade dura:
EXEC com SPECIAL é bomba com pavio curto.


🗄️ REXX + DB2

  • DSNREXX

  • SQL dinâmico

  • RC + SQLCODE + SQLSTATE

  • Automação de consultas e relatórios

📌 Exemplo:

ADDRESS DSNREXX "EXECSQL SELECT COUNT(*) INTO :CNT FROM SYSIBM.SYSTABLES"

🔥 Easter egg:
SQLCODE ignorado vira incidente invisível.


🔀 ADDRESS — o coração da integração

ADDRESS muda o destino dos comandos:

  • TSO

  • ISPEXEC

  • SDSF

  • CONSOLE

  • DSNREXX

☕🔥 Regra sagrada:

Quem domina ADDRESS domina o sistema.


🔢 Return Code (RC) — o idioma da produção

  • RC ≠ erro sempre

  • RC precisa ser interpretado

  • Padronização é vital

if rc > 4 then exit rc

🔥 Veterano:
RC não tratado é mentira operacional.


📘 Programa do Curso — visão hardcore

Estrutura Geral / Labs

  • Ambiente restritivo

  • Casos reais

  • Incidentes simulados

Instruções REXX

  • IF, DO, SELECT

  • SIGNAL, EXIT

  • PARSE

Funções Internas / Sub-rotinas

  • Modularização

  • Reuso

  • Controle de escopo

Comandos REXX

  • SAY, PULL, TRACE

  • QUEUE / PULL

  • EXECIO

Funções TSO / CONSOLE

  • WTO

  • MODIFY

  • DUMP

  • SDSF

INTERPRET (🔥 perigoso)

  • Execução dinâmica

  • Flexibilidade extrema

  • Risco máximo

Comentário ácido:

INTERPRET é poder absoluto — use sóbrio.


🥚 Easter Eggs & Fofoquices REXX

  • Todo ambiente tem um EXEC “salvador”

  • Sempre existe um REXX sem comentários rodando há anos

  • O melhor REXX é o que não precisa ser explicado

  • Debug começa com TRACE ?R


☕🔥 Conclusão — Manifesto El Jefe REXX

REXX não é:

  • Script simples

  • Linguagem de iniciante

  • Alternativa ao COBOL

REXX é:

  • Cola do z/OS

  • Automação estratégica

  • Ferramenta de sobrevivência em produção

☕🔥 Quem domina REXX,
não programa apenas —
orquestra o mainframe.