✅ CHECKLISTS DE PRODUÇÃO – REXX MAINFRAME (z/OS)
1️⃣ Checklist Geral – Antes de colocar qualquer REXX em produção
☐ Objetivo do exec claramente definido
☐ Exec documentado no cabeçalho (nome, autor, data, função)
☐ Tratamento de erro implementado (SIGNAL ON ERROR, RC verificado)
☐ Uso de PROCEDURE para isolar variáveis
☐ Variáveis globais padronizadas (gVar, kConst)
☐ Nenhuma dependência “hardcoded” (HLQ, volumes, consoles)
☐ Exec testado com dados inválidos e cenários de erro
☐ Não deixa datasets alocados ao final
☐ Código revisado por outro analista (peer review)
2️⃣ Checklist – REXX Interpretado (TSO)
☐ Exec localizado em PDS autorizado (SYSEXEC ou SYSPROC)
☐ Não depende de perfil pessoal do usuário
☐ Usa ADDRESS TSO explicitamente quando necessário
☐ Usa EXIT RC adequado (0, 4, 8, 12…)
☐ Não usa TRACE ?R ou debug ativo em produção
☐ Não usa SAY excessivo (poluição de spool)
☐ EXECIO fecha corretamente arquivos (FINIS)
☐ Testado em sessão TSO limpa (sem allocations prévias)
3️⃣ Checklist – REXX Compilado (CEXEC / OBJECT)
☐ Código compilado com XREF para revisão
☐ Opções de compilação corretas:
-
☐
SLINEse usa TRACE ou SOURCELINE() -
☐
ALTse precisa Alternate Library -
☐
CONDENSEavaliado (trade-off load x execução)
☐%COPYRIGHTincluído (requisito IBM / auditoria)
☐ Código não depende de comportamento interpretado
☐ Dataset CEXEC alocado corretamente no SYSEXEC
☐ Teste comparativo interpretado vs compilado validado
☐ Performance validada (CPU e tempo)
4️⃣ Checklist – Execução REXX em Batch (IKJEFT01)
☐ Programa correto (IKJEFT01, IKJEFT1A ou IKJEFT1B)
☐ SYSEXEC concatenado corretamente
☐ SYSTSIN definido corretamente
☐ SYSTSPRT definido para saída do REXX
☐ SYSPRINT definido para mensagens do sistema
☐ Não depende de interação (PULL sem input)
☐ RC do jobstep validado no JCL
☐ Exec não depende de terminal (ISPF, DISPLAY)
5️⃣ Checklist – REXX em Batch via IRXJCL
☐ Exec não usa comandos TSO (ALLOCATE, PROFILE, etc.)
☐ Todos os DDs necessários definidos no JCL
☐ Não usa SYSCALL / POSIX
☐ Uso de EXECIO validado com datasets físicos
☐ Testado isoladamente sem ambiente TSO
☐ RC tratado corretamente (IRXJCL retorna RC do exec)
6️⃣ Checklist – REXX com comandos MVS (CONSOLE)
☐ Usuário possui autoridade RACF:
-
☐ CLASS(CONSOLE)
-
☐ CLASS(OPERCMDS)
☐CONSPROFconfigurado corretamente
☐CONSOLE ACTIVATEeDEACTIVATEsempre pareados
☐ Uso deCARTúnico por comando
☐ Uso deGETMSG()com timeout adequado
☐ Exec não bloqueia console (wait infinito)
☐ Exec retorna aoADDRESS TSOao final
☐ Tratamento de mensagens inesperadas implementado
7️⃣ Checklist – System REXX (SYSREXX)
🔹 Planejamento
☐ SYSREXX realmente necessário (não usar se TSO resolve)
☐ Exec não inicia com letras A–I
☐ Exec armazenado em REXXLIB (não alterar SYS1.SAXREXEC)
☐ Nome do exec documentado e único
🔹 Ambiente
☐ AXR subsystem ativo
☐ Parmlib AXR00 configurado
☐ CPF definido corretamente
☐ AXRUSER definido e validado
☐ Teste em ambiente não produtivo realizado
🔹 Execução
☐ Modo correto definido:
-
☐ TSO=NO (preferencial)
-
☐ TSO=YES (se precisa ALLOCATE)
☐ Exec não assume userid fixo
☐ Exec limpa recursos explicitamente
☐ Não depende de terminal ou ISPF
☐ Exec tolera execução concorrente
8️⃣ Checklist – Uso das Funções SYSREXX
AXRCMD
☐ Timeout definido
☐ Stem inicializado
☐ stem.0 validado
☐ Mensagens tratadas (não apenas exibidas)
AXRWTO / AXRMLWTO
☐ Uso consciente (não floodar console)
☐ ConnectId controlado
☐ LineType correto (L, D, DE)
AXRWAIT
☐ Tempo mínimo necessário
☐ Não usado como loop de espera infinita
9️⃣ Checklist – Segurança e Auditoria
☐ Exec documenta comandos críticos executados
☐ Nenhum comando destrutivo sem confirmação
☐ Exec compatível com RACF auditing
☐ Exec não eleva privilégio indevidamente
☐ Exec respeita ambiente SYSPLEX
☐ Logs rastreáveis (WTO, SYSLOG, dataset)
🔟 Checklist – Pós-produção
☐ Exec monitorado em produção
☐ CPU e tempo medidos
☐ Exec incluído em inventário técnico
☐ Plano de rollback definido
☐ Procedimento operacional documentado
☐ Responsável técnico identificado
📌 Comentário final (experiência de produção)
REXX em produção não falha por sintaxe — falha por falta de checklist.
Sem comentários:
Enviar um comentário