Translate

domingo, 21 de janeiro de 2007

Introdução ao JCL

 

Bellacosa Mainframe e a introdução ao JCL

Introdução ao JCL

Quando alguém começa a estudar mainframe IBM, rapidamente encontra uma sigla extremamente importante:

JCL

Ela é uma das bases do ambiente z/OS.

Praticamente todo processamento batch no mainframe depende dela.


O que significa JCL?

JCL significa:

Job Control Language

Em português:

Linguagem de Controle de JOBs


Definição simples

O JCL é a linguagem usada para:

  • executar programas;

  • controlar JOBs;

  • manipular datasets;

  • definir arquivos;

  • organizar processamento batch no z/OS.


Uma analogia fácil

Imagine uma cozinha industrial.

O cozinheiro seria:

o programa COBOL.

O JCL seria:

a folha de instruções da cozinha.

Ela informa:

  • o que executar;

  • quais ingredientes usar;

  • onde buscar arquivos;

  • onde gravar resultados;

  • ordem das etapas.


O JCL é uma linguagem de programação?

Não exatamente.

Ele é:

uma linguagem de controle.

O JCL não faz cálculos como COBOL.

Ele:

  • organiza execução;

  • controla recursos;

  • conversa com o sistema operacional.


O que o JCL controla?


Programas

COBOL, SORT, DB2, utilitários.


Datasets

Arquivos de entrada e saída.


Recursos

Disco, spool, memória.


Execução batch

Processamento automático.


Estrutura básica de um JCL

Um JCL normalmente possui:

  • JOB

  • EXEC

  • DD


Exemplo simples

//MEUJOB JOB CLASS=A,MSGCLASS=X
//STEP1  EXEC PGM=IEFBR14
//ARQ1   DD DSN=USUARIO.TESTE,
//       DISP=SHR

Entendendo linha por linha


JOB

Define o JOB.


EXEC

Executa programa.


DD

Define datasets e arquivos.


O que significa "//"?

Cada instrução JCL começa com:

//

Isso identifica comandos para o z/OS.


O que é JOB?

Primeira instrução do JCL.

Exemplo:

//PAYROLL JOB CLASS=A

Ela define:

  • nome;

  • classe;

  • parâmetros batch.


O que é EXEC?

Executa programas.

Exemplo:

//STEP1 EXEC PGM=COBOLPG

PGM significa:

Program


O que é DD?

DD significa:

Data Definition

Define arquivos usados pelo programa.


Exemplo

//INPUT DD DSN=CLIENTES.ARQ,
//      DISP=SHR

O que é DSN?

Dataset Name

Nome do dataset.


O que é DISP?

Define status do dataset.


DISP=SHR

Compartilhado.


DISP=OLD

Uso exclusivo.


DISP=NEW

Novo dataset.


O que é STEP?

Etapa do JOB.

Um JOB pode possuir vários STEPs.


Exemplo

//STEP1 EXEC PGM=SORT
//STEP2 EXEC PGM=COBOLPG
//STEP3 EXEC PGM=IDCAMS

Fluxo simplificado

JCL
 ↓
JES2
 ↓
FILA
 ↓
EXECUÇÃO
 ↓
SPOOL
 ↓
SDSF

O que é JES2?

Subsistema que controla:

  • JOBs;

  • spool;

  • filas batch.


O que é spool?

Área temporária onde ficam:

  • logs;

  • SYSOUT;

  • relatórios.


Como executar JCL?

No ISPF:

SUBMIT

O que acontece depois?

O JES2:

  • valida;

  • agenda;

  • executa;

  • gera spool.


Onde ver resultado?

Normalmente no:

SDSF.


Arquivos importantes do spool


JESJCL

Mostra JCL interpretado.


JESMSGLG

Mensagens JES2.


JESYSMSG

Mensagens do sistema.


SYSOUT

Saída do programa.


O que é SYSOUT?

Saída gerada pelo JOB.

Exemplo:

//SYSOUT DD SYSOUT=*

O que é CLASS?

Classe do JOB.

Controla:

  • prioridade;

  • tratamento;

  • execução.


O que é MSGCLASS?

Classe das mensagens do spool.


O que é COND?

Controla execução condicional.


Exemplo

COND=(0,NE)

O que é PROC?

Procedure.

JCL reutilizável.

Muito usado em produção.


O que é utility?

Programas utilitários do z/OS:

  • IEBGENER;

  • SORT;

  • IDCAMS;

  • IEHLIST.


Exemplo famoso: IEFBR14

Programa “dummy” muito usado para:

  • criar;

  • deletar;

  • testar datasets.


Exemplo clássico

//STEP1 EXEC PGM=IEFBR14

O JCL ainda é usado hoje?

Muito.

Principalmente em:

  • bancos;

  • seguradoras;

  • governos;

  • processamento financeiro.


Curiosidades incríveis

1. Muitos JCLs possuem décadas de existência


2. Grandes bancos executam milhões de JOBs JCL diariamente


3. O conceito de batch continua extremamente importante


4. O JCL influenciou vários schedulers modernos


Erros comuns de iniciantes


1. Esquecer "//"

Erro clássico.


2. Dataset inexistente

Muito comum.


3. DISP errado

Pode causar falha ou lock.


4. Ignorar SYSOUT

Ali ficam mensagens importantes.


O que é ABEND?

Erro anormal de execução.

Muito comum em:

  • JCL;

  • datasets;

  • COBOL.


Como JCL aparece no dia a dia?

Praticamente em tudo:

  • COBOL;

  • DB2;

  • SORT;

  • backups;

  • integração;

  • automação;

  • batch.


Mensagens famosas


$HASP373

JOB iniciado.


$HASP395

JOB finalizado.


Exemplo

$HASP373 PAYROLL STARTED
$HASP395 PAYROLL ENDED

Por que aprender JCL?

Porque ele é:

a espinha dorsal do processamento batch no z/OS.

Quem domina JCL entende:

  • JOBs;

  • spool;

  • JES2;

  • datasets;

  • operações mainframe.


Resumo rápido

ConceitoSignificado
JCLLinguagem de controle
JOBProcessamento batch
EXECExecuta programa
DDDefine datasets
JES2Gerencia JOBs
SDSFMonitora spool
SYSOUTSaída do JOB

Conclusão

O JCL é uma das tecnologias mais importantes do ambiente mainframe IBM Z.

Ele controla a execução de JOBs batch, organiza programas e datasets, e permite automatizar o processamento corporativo crítico dentro do z/OS.


Sem comentários:

Enviar um comentário