1. O que são utilitários IBM

Utilitários IBM são programas de sistema entregues junto com o z/OS que realizam operações comuns sobre datasets, membros de PDS, fitas e o catálogo. Eles existem porque essas tarefas são tão frequentes que seria impraticável cada instalação escrever seus próprios programas para isso.

Existem dois grupos principais:

  • Utilitários de dados (IEB*) — operam sobre o conteúdo dos datasets: copiar, mover, reformatar, imprimir registros.
  • Utilitários de sistema (IEH*) — operam sobre a estrutura: VTOC, catálogos, inicialização de volumes.
  • Access Method Services (IDCAMS) — gerencia datasets VSAM e o catálogo.
  • DFSORT / SYNCSORT — ordena, filtra e transforma registros.

🦕 Analogia — Utilitários como ferramentas de linha de comando

No Linux você usa cp, sort, grep e rm para operar sobre arquivos sem escrever um programa. No mainframe você usa IEBGENER, DFSORT, IDCAMS e IEFBR14 para a mesma finalidade — só que invocados via JCL, não via terminal.

2. Como invocar um utilitário no JCL

Todo utilitário é invocado num EXEC step com PGM=nome-do-programa. Os utilitários padrão do z/OS ficam na SYS1.LINKLIB (ou concatenação equivalente), então não é necessário STEPLIB.

//* Estrutura básica para invocar qualquer utilitário //PASSO1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* /* mensagens do utilitário */ //SYSIN DD DUMMY /* parâmetros (ou DUMMY) */ //SYSUT1 DD DSN=ENTRADA.DS,DISP=SHR /* entrada */ //SYSUT2 DD DSN=SAIDA.DS, // DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(5,2)), // DCB=(RECFM=FB,LRECL=80) /* saída */

O padrão é sempre o mesmo: EXEC PGM=, depois os DDs que o utilitário espera. Cada utilitário tem seu conjunto de DDs obrigatórios e opcionais — você aprenderá os de cada um nos artigos seguintes.

3. DDs padrão — SYSPRINT, SYSIN, SYSUT1, SYSUT2

A maioria dos utilitários IEB* compartilha o mesmo conjunto de DDs. Entender o papel de cada um elimina 80% da confusão inicial:

DD NamePapelValor típico
SYSPRINT Saída de mensagens e relatório do utilitário SYSOUT=*
SYSIN Instruções de controle para o utilitário Dados inline ou DUMMY
SYSUT1 Dataset de entrada (input) DSN=...,DISP=SHR
SYSUT2 Dataset de saída (output) DSN=...,DISP=(NEW,CATLG)
SYSOUT Saída para spool (impressão) SYSOUT=*

💡 SYSIN DD DUMMY

Quando um utilitário aceita instruções de controle mas você quer o comportamento padrão, use SYSIN DD DUMMY. O IEBGENER, por exemplo, faz uma cópia simples sem nenhuma instrução — basta apontar SYSUT1 e SYSUT2. Se omitir o SYSIN completamente, o job pode abender com S013.

4. Tabela dos principais utilitários

UtilitárioO que fazQuando usar
IEBGENER Copia dataset sequencial, reformata registros Copiar PS→PS, criar dataset a partir de dados inline
IEBCOPY Copia/mescla membros de PDS, comprime PDS Backup de PDS, mover membros, compressão
DFSORT Ordena, filtra e transforma registros Ordenar arquivo, remover duplicatas, juntar arquivos
IDCAMS Gerencia VSAM, catálogo, DEFINE/DELETE/REPRO/LISTCAT Criar VSAM, copiar VSAM, listar catálogo
IEFBR14 Não faz nada — usado pelas DDs do step Alocar ou deletar datasets via DISP
IEBPTPCH Imprime ou perfura registros formatados Listar conteúdo de dataset em SYSOUT
IEHLIST Lista VTOC de volumes, membros de PDS Diagnóstico de volume, inventário de datasets
IKJEFT01 Executa comandos TSO em batch LISTCAT, SUBMIT, EXEC de CLISTs/REXX em job

5. Return codes e diagnóstico

Os utilitários IBM seguem a convenção padrão de return codes:

RCSignificado
0Sucesso total, sem mensagens de aviso
4Aviso — completou, mas algo merece atenção (ver SYSPRINT)
8Erro — processamento parcial ou falha em alguma função
12Erro grave — utilitário não conseguiu completar a tarefa
16Erro fatal — geralmente instrução de controle inválida

Quando um utilitário falha, a primeira coisa a fazer é ler o SYSPRINT no SDSF. Ele contém as mensagens de erro com o prefixo do utilitário (ex.: IEB para IEB*, IDC para IDCAMS, ICE para DFSORT). O número da mensagem é o ponto de partida para pesquisar na documentação IBM.

✅ Dica de diagnóstico rápido

No SDSF, abra o SYSPRINT do step que falhou e use FIND 'IEB' (ou IDC, ICE) para localizar a primeira mensagem de erro. Mensagens com sufixo E são erros, com W são avisos. A mensagem geralmente diz exatamente qual DD ou instrução causou o problema.