Translate

domingo, 6 de novembro de 2016

☕ Os Holocrons dos Utilitários JCL: As Ferramentas Secretas que Transformam um Padawan COBOL em um Mestre do Batch

 

Bellacosa Mainframe e os utilitarios de jcl que aumentam a produtividade 

☕ Os Holocrons dos Utilitários JCL: As Ferramentas Secretas que Transformam um Padawan COBOL em um Mestre do Batch

"Todo programador COBOL aprende IF, PERFORM e READ. Poucos descobrem que grande parte do trabalho pesado do mundo IBM Z é realizado por pequenos utilitários invisíveis que trabalham silenciosamente há décadas."

Existe um momento na jornada de todo Padawan COBOL em que ele percebe uma verdade desconfortável.

Ele passou três horas escrevendo um programa COBOL para copiar arquivos.

Depois mais duas horas desenvolvendo outro para ordenar registros.

Em seguida criou um terceiro para contar ocorrências.

Um quarto para apagar datasets.

Um quinto para gerar relatórios simples.

E então aparece um velho Sysprog tomando café, olha para a tela e pergunta:

— Por que você escreveu tudo isso?

— Porque precisava fazer essas tarefas...

O veterano sorri.

— Meu jovem Padawan... o z/OS faz isso desde antes de você nascer.

E então ele abre o Holocron dos Utilitários.


O que são utilitários no mundo JCL?

Utilitários são programas fornecidos pela IBM ou por produtos instalados que executam tarefas administrativas, operacionais e de manipulação de dados.

São verdadeiros canivetes suíços do IBM Z.

Eles permitem:

  • Copiar datasets

  • Ordenar milhões de registros

  • Filtrar informações

  • Mesclar arquivos

  • Criar datasets

  • Excluir datasets

  • Imprimir conteúdos

  • Fazer backup

  • Gerar estatísticas

  • Converter formatos

  • Executar manutenção

Sem escrever uma única linha de COBOL.

O desenvolvedor produtivo não programa tudo.

Ele sabe quando reutilizar ferramentas.


1. IEBGENER — O utilitário que todo Padawan deveria conhecer primeiro

É provavelmente o utilitário mais usado do ambiente z/OS.

Função principal:

Copiar datasets.

Exemplo

//STEP01 EXEC PGM=IEBGENER

//SYSUT1 DD DSN=ARQ.ORIGEM,
//       DISP=SHR

//SYSUT2 DD DSN=ARQ.DESTINO,
//       DISP=OLD

//SYSPRINT DD SYSOUT=*

//SYSIN DD DUMMY

Pode parecer simples.

Mas resolve dezenas de situações.

Copiar arquivos VSAM exportados.

Duplicar layouts.

Criar arquivos de teste.

Mover resultados batch.


Quando evita escrever COBOL?

Imagine desenvolver um programa com:

OPEN INPUT

OPEN OUTPUT

READ

WRITE

EOF

CLOSE

Tudo isso apenas para copiar um arquivo.

IEBGENER faz em segundos.


2. SORT (DFSORT/SYNCSORT)

Este talvez seja o utilitário mais poderoso do ecossistema IBM.

É praticamente uma linguagem própria.

Pode:

Ordenar

Mesclar

Somar

Agrupar

Transformar

Filtrar

Criar relatórios

Converter formatos

Gerar arquivos

Manipular datas

Remover duplicidades


Exemplo simples

SORT FIELDS=(1,10,CH,A)

Ordena pelo campo posição 1 tamanho 10.


Remover duplicados

SORT FIELDS=(1,10,CH,A)

SUM FIELDS=NONE

Resultado:

Arquivo limpo.


Filtrar registros

INCLUDE COND=(1,1,CH,EQ,C'A')

Mantém apenas registros iniciados por A.


OUTFIL

Uma das funcionalidades mais incríveis.

Separar arquivos.

Criar múltiplas saídas.

Gerar cabeçalhos.

Gerar trailers.

Formatar colunas.


Exemplo:

OUTFIL FNAMES=CLIENTE

INCLUDE=(1,1,CH,EQ,C'C')

OUTFIL FNAMES=FORNEC

Um arquivo vira dois.

Sem COBOL.


3. IDCAMS

O mestre Jedi dos datasets.

Principalmente VSAM.


DELETE

DELETE CLIENTES.KSDS

DEFINE CLUSTER

Criar VSAM.

DEFINE CLUSTER -

(NAME(CLIENTES)) -

INDEXED

LISTCAT

Consultar catálogo.

LISTCAT ENT(CLIENTES)

Retorna:

Volume

Datas

Extents

Organização


REPRO

Copiar VSAM.

REPRO -

INFILE(INPUT)

OUTFILE(OUTPUT)

Muito usado em testes.


4. IEHLIST

Pouco conhecido pelos iniciantes.

Extremamente útil.

Lista informações físicas.

Volumes.

Tracks.

Datasets.


Exemplo:

LISTVTOC

Excelente para administradores.


5. IEFBR14

O programa mais famoso do z/OS.

Possui praticamente uma única instrução.

BR 14

Retornar.


Mas é extremamente útil.


Criar datasets

//EXEC PGM=IEFBR14


//ARQ DD DSN=TESTE.ARQ,

//DISP=(NEW,CATLG),

//SPACE=(CYL,(1,1))

Apagar datasets

DISP=(OLD,DELETE)

Padawan normalmente fica surpreso.

"Um programa vazio consegue criar arquivos?"

Sim.

Porque quem cria é o sistema.

IEFBR14 apenas dispara a alocação.


6. IEBCOPY

Especialista em bibliotecas.

PDS

PDSE

Loadlibs

JCLLIB

PROCLIB

COPYLIB


Copiar membros

COPY OUTDD=OUT


INDD=IN

Selecionar membros

SELECT MEMBER=(PROG1)

Ideal para:

Promotion

Deploy

Backup

Migração


7. IEBUPDTE

O ancestral do Git.

Poucos conhecem.

Mas era revolucionário.

Permitia atualizar bibliotecas por comandos.


Exemplo

./ ADD NAME=PROG1

Inserir membros.

Alterar.

Excluir.


Décadas antes do GitHub.


8. ICETOOL

O irmão mais sofisticado do DFSORT.

Executa tarefas complexas.


COUNT

DISPLAY

UNIQUE

OCCUR

SPLICE

STATS


Contar registros

COUNT FROM(INPUT)

Encontrar duplicados

OCCUR

Estatísticas

STATS

Ideal para auditorias.


9. ADRDSSU

Backup corporativo.

Conhecido como DFDSS.


Pode:

Copiar volumes

Backup

Restore

Compressão

Dump

Movimentação


Exemplo

DUMP DATASET(INCLUDE(TESTE))

Muito usado em produção.


10. IKJEFT01

Uma verdadeira ponte entre TSO e Batch.

Executa comandos TSO.

DB2.

REXX.

CLIST.


Executar DB2

EXEC PGM=IKJEFT01

Rodar:

SPUFI

DSN

BIND

REBIND

RUNSTATS

REORG


Executar REXX

Automação total.


11. DSNUTILB

Utilitário poderoso do DB2.

Executa:

LOAD

UNLOAD

COPY

RUNSTATS

REORG

CHECK DATA

MODIFY


Exemplo

LOAD DATA

Carga massiva.

Milhões de registros.

Muito mais rápido que COBOL.


12. File Manager, SORT Products e Ferramentas Modernas

Em muitos ambientes corporativos existem produtos adicionais.

IBM File Manager

Syncsort

CA-Easytrieve

DB2 Utilities

Abend-AID

Xpediter


Ganhos impressionantes:

Visualização rápida

Edição de arquivos

Comparação datasets

Conversão

Debug

Geração de testes


A Mentalidade do Desenvolvedor COBOL Produtivo

Um erro comum dos iniciantes é acreditar que produtividade significa escrever mais programas.

No IBM Z ocorre exatamente o oposto.

Um desenvolvedor experiente faz constantemente a seguinte pergunta:

"Existe um utilitário que já resolva este problema?"

Muitas vezes a resposta é sim.

Em vez de construir um COBOL de 800 linhas para separar registros, o especialista utiliza DFSORT.

Ao invés de criar um programa apenas para copiar arquivos, usa IEBGENER.

No lugar de escrever uma rotina de manutenção VSAM, emprega IDCAMS.

Em vez de desenvolver scripts externos para estatísticas, utiliza ICETOOL.

O resultado é significativo:

  • Menos código para manter;

  • Menos testes;

  • Menor risco de erros em produção;

  • Redução de consumo de CPU;

  • Processamentos batch mais rápidos;

  • Maior padronização operacional;

  • Entregas mais ágeis.

No universo IBM Z, conhecimento técnico não se mede apenas pela capacidade de programar COBOL sofisticado. Mede-se também pela habilidade de reconhecer quando não é necessário programar.

O verdadeiro Mestre Jedi do Batch entende que o sistema operacional já oferece um arsenal construído ao longo de mais de cinquenta anos de evolução. Cada utilitário é um pequeno holocron de sabedoria acumulada, refinado por milhares de empresas que processam diariamente bilhões de transações financeiras, seguros, telecomunicações e sistemas governamentais.

E talvez esta seja uma das maiores lições para um Padawan COBOL: a produtividade não está em produzir mais linhas de código. Está em conhecer profundamente as ferramentas disponíveis, reutilizar capacidades existentes e permitir que o IBM Z faça aquilo para o qual ele foi projetado desde o início: executar trabalho pesado com elegância, estabilidade e uma eficiência que continua impressionando gerações sucessivas de desenvolvedores. Afinal, no mundo do mainframe, muitas vezes o melhor programa COBOL é justamente aquele que você nunca precisou escrever.

Sem comentários:

Enviar um comentário