1. IEFBR14 — o utilitário que não faz nada
O IEFBR14 é um programa de uma instrução: ele simplesmente retorna RC=0. Todo o trabalho útil do step é feito pelas DDs declaradas — o z/OS processa os DDs no JCL (alocando ou deletando datasets via DISP) independentemente do que o programa faz.
🦕 Analogia — IEFBR14 como um arquivo vazio com efeito colateral
Pense assim: quando o JCL declara uma DD com DISP=(NEW,CATLG), o z/OS aloca o dataset antes de o programa rodar. Quando o programa termina, o z/OS aplica a ação de disposição. Se o programa é o IEFBR14 (que não faz nada), o único efeito do step é o processamento dessas DDs — alocar ou deletar datasets.
Alocar um dataset com IEFBR14
Deletar um dataset com IEFBR14
Múltiplos datasets num step só
💡 IEFBR14 vs IDCAMS para deleção
Para datasets sequenciais e PDS, o IEFBR14 é mais simples para alocar e deletar. Para datasets VSAM, prefira o IDCAMS com DELETE ... CLUSTER — o IEFBR14 não lida bem com os componentes VSAM e pode deixar o catálogo inconsistente.
2. IEBPTPCH — imprimindo datasets
O IEBPTPCH (Print/Punch) imprime o conteúdo de datasets sequenciais ou membros de PDS no SYSOUT. É útil para gerar relatórios simples ou inspecionar dados sem escrever um programa COBOL.
Com a instrução RECORD FIELD=(80,1,,1) no SYSIN você pode selecionar e reformatar colunas antes de imprimir — similar ao que o IEBGENER faz com OUTREC. A diferença é que a saída vai para o spool (SYSOUT) em vez de um dataset.
💡 Alternativa moderna: IDCAMS PRINT
Para inspecionar rapidamente o conteúdo de qualquer dataset (incluindo VSAM), o PRINT do IDCAMS é mais versátil — suporta CHARACTER, HEX e DUMP, e funciona com VSAM. Reserve o IEBPTPCH para quando precisar formatar a saída com campos específicos.
3. IEHLIST — listando volumes e VTOC
O IEHLIST lista o VTOC (Volume Table of Contents) de um volume de disco — mostra todos os datasets alocados naquele volume, com seus atributos físicos. É uma ferramenta de diagnóstico e auditoria de capacidade.
💡 LISTCAT é mais comum que IEHLIST
Na maioria dos ambientes modernos, o IDCAMS LISTCAT é preferido ao IEHLIST — ele consulta o catálogo em vez do VTOC diretamente e fornece informações mais completas. Use IEHLIST apenas quando precisar de informações de baixo nível sobre o volume físico, ou para datasets não catalogados.
4. IEHINITT — inicializando fitas
O IEHINITT inicializa volumes de fita magnética, gravando o VOL1 label com o serial do volume. É usado em ambientes que ainda trabalham com fitas físicas ou virtuais (VTL — Virtual Tape Library).
5. Guia rápido — qual utilitário usar
| Tarefa | Utilitário |
|---|---|
| Copiar dataset sequencial (PS → PS) | IEBGENER |
| Criar dataset a partir de dados inline | IEBGENER com SYSUT1 DD * |
| Copiar membros de PDS | IEBCOPY |
| Comprimir PDS fragmentado | IEBCOPY (COPY INDD=X,OUTDD=X) |
| Ordenar registros | DFSORT (PGM=SORT) |
| Filtrar registros sem ordenar | DFSORT com FIELDS=COPY |
| Agregar/deduplicar por chave | DFSORT com SUM |
| Juntar dois arquivos por chave | DFSORT com JOINKEYS |
| Criar dataset VSAM | IDCAMS DEFINE CLUSTER |
| Deletar dataset VSAM | IDCAMS DELETE ... CLUSTER |
| Consultar catálogo | IDCAMS LISTCAT |
| Copiar VSAM ou carregar dados | IDCAMS REPRO |
| Inspecionar conteúdo (char/hex) | IDCAMS PRINT |
| Alocar dataset vazio sem copiar | IEFBR14 |
| Deletar dataset sequencial/PDS | IEFBR14 com DISP=(OLD,DELETE) |
| Imprimir dataset formatado | IEBPTPCH |
| Inspecionar VTOC de volume | IEHLIST |
| Executar comandos TSO em batch | IKJEFT01 |
6. Return codes e diagnóstico geral
Todos os utilitários IEB* e o IDCAMS seguem a mesma convenção de return codes. Quando um step falha, o caminho de diagnóstico é sempre o mesmo:
- Abra o SDSF e localize o step com RC ≠ 0.
- Acesse o DD SYSPRINT do step (pressione
Sno job e depoisSno SYSPRINT). - Use
FIND 'IEB',FIND 'IDC',FIND 'ICE'ouFIND 'IEF'para localizar mensagens de erro. - Mensagens com sufixo E são erros, W são avisos, I são informativas.
- Pesquise o código da mensagem na documentação IBM (ex.:
IEB102E,IDC3009I).
✅ SYSPRINT sempre em SYSOUT=*
Nunca omita o DD SYSPRINT dos seus steps de utilitário. Sem ele, as mensagens de erro não ficam disponíveis no SDSF e o diagnóstico de falhas se torna muito mais difícil. Mesmo que o job normalmente funcione bem, mantenha sempre o SYSPRINT para quando algo der errado.
🦕 Os utilitários como caixa de ferramentas
Pense nos utilitários IBM como uma caixa de ferramentas especializadas: cada uma faz uma coisa muito bem. Um desenvolvedor mainframe experiente não escreve COBOL para copiar um arquivo — ele pega o IEBGENER. Não escreve loop de ordenação — ele configura o SORT. O segredo é saber qual ferramenta pegar para cada tarefa, e agora você tem esse mapa.