Sei sulla pagina 1di 29

JCL – Formação Mainframe

SUMÁRIO
CAPÍTULO 1 – JOB CONTROL LANGUAGE.......................................................................................................2
1.1 DEFINIÇÃO ..................................................................................................................................................... 2
1.2 DESENHO DE UM JOB ..................................................................................................................................... 2
1.3 ESTRUTURA DE UM JOB ................................................................................................................................. 3
1.4 REGRAS PARA CONFECÇÃO DE UM JOB ......................................................................................................... 4
1.5PARÂMETROS ESPECIAIS ................................................................................................................................. 4
1.5.1 JOB – PARÂMETROS MAIS COMUNS ...................................................................................................... 4
1.5.2 EXEC ....................................................................................................................................................... 9
1.5.3 DD (DATA DEFINITION) ........................................................................................................................ 11
1.5 JOBLIB .......................................................................................................................................................... 19
1.6 STEPLIB ......................................................................................................................................................... 19
1.7 DDNAME X DSN(DSNAME) ........................................................................................................................... 20
1.7.1 DDNAME .............................................................................................................................................. 20
1.7.2 DSN (DSNAME) ..................................................................................................................................... 20
1.10 JCL ERROR X ABEND X FLUSH....................................................................................................................... 21
1.10.1 JCL ERROR .......................................................................................................................................... 21
1.10.2 ABEND ................................................................................................................................................ 21
1.10.3 FLUSH ................................................................................................................................................. 21
2.5 ARQUIVOS TEMPORÁRIOS ........................................................................................................................... 21
*****************************************************************........................................... 22
CAPÍTULO 3 – ABENDS SISTEMA OPERACIONAL .......................................................................................... 22

www.escoladeprogramadores.com.br 1
JCL – Formação Mainframe

CAPÍTULO 1 – JOB CONTROL LANGUAGE

1.1 DEFINIÇÃO
É a linguagem utilizada pelos mainframes para execução dos JOBs (Tarefas). Os JOBs solicitam
recursos (programas, arquivos, etc) ao Sistema Operacional para execução de programas.

Os JOBs são responsáveis por atualização de contas correntes, geração de contratos, emissão de
boletos e duplicatas, baixa de pagamentos e muitas outras tarefas em bancos, seguradoras e
financeiras.

JOB / JOBNAME
É a composição de uma série de programas (Cobol ou Utilitários) que devem ser processados numa
determinada sequência. Um job representa um conjunto de STEPs.

STEP / STEPNAME
É a execução de um programa Cobol ou um programa Utilitário.

1.2 DESENHO DE UM JOB

JOBXX01D

STEP001 SORT

STEP002 COBXX01

STEP003 IDCAMS

STEP004 COBXX02

www.escoladeprogramadores.com.br 2
JCL – Formação Mainframe

O JOB JOBXX01D é formado por 4 STEPs. São eles : STEP001, STEP002, STEP003 e STEP004.
O STEP001 executa o programa Utilitário SORT.
O STEP002 executa o programa CobolCOBXX01.
O STEP003 executa o programa Utilitário IDCAMS.
O STEP004 executa o programa Cobol COBXX02.

1.3 ESTRUTURA DE UM JOB

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)
//********************************************************************
//* STEP001 - UTILITARIO SORT - ORDENA ARQUIVO POR DATA DE PAGAMENTO *
//********************************************************************
//STEP001 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//SORTOUT DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//SYSIN DD *
SORT FIELDS=(01,08,CH,A)
//********************************************************************
//* STEP002 - PROGRAMA COBXX01 - GERACAO RELATORIO PAGAMENTOS *
//********************************************************************
//STEP002 EXEC PGM=COBXX01
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//RELATO DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//********************************************************************
//* STEP003 - UTILITARIO IDCAMS - DELECAO ARQUIVO ARQSERA *
//********************************************************************
//STEP003 EXEC PGM=IDCAMS
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE GR.ARQUIVO.ARQSERA
//********************************************************************
//* STEP004 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP004 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)

www.escoladeprogramadores.com.br 3
JCL – Formação Mainframe

//SYSOUT DD SYSOUT=*
Visualizando o JOB anterior parece complexo o entendimento da linguagem JCL. Contudo, nos
próximos tópicos estaremos abordando todas as instruções utilizadas durante a confecção de um
JOB.

1.4 REGRAS PARA CONFECÇÃO DE UM JOB

 Todo JOB deve possuir pelo menos 1 STEP


 Todo JOB deve iniciar com a instrução // (barra barra) a partir da coluna 01
 Todo JOB deve possuir a palavra reservada JOB. A palavra reservada JOB solicita ao
Sistema Operacional a execução de JOBs
 O nome do JOB deve possuir 8 carácteres. Deve ser informado na primeira linha do JCL
 Comentário é representado pela instrução //* (barra barra asterisco) a partir da coluna 01 até a
coluna 03
 JOBNAME, STEPNAME e DDNAME devem ser codificados da coluna 03 até a coluna 10
 JOB, EXEC e DD devem iniciar antes da coluna 16
 Continuação de linhas deve ser feito entre as colunas 4 e 16

1.5PARÂMETROS ESPECIAIS
O JCL precisa de alguns parâmetros especiais para efetivar a execução dos JOBs.São eles :

 JOB
 EXEC
 DD (Data Definition)

1.5.1 JOB – PARÂMETROS MAIS COMUNS


É a primeira linha do JCL. Efetiva a identificação do JOB para o Sistema Operacional. Todo JOB inicia
com a instrução // (barra barra) a partir da coluna 01.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)

JOBNAME
É o nome do JOB (JOBNAME).Em caso de falha no JOB a primeira a coisa a ser verificada é o
JOBNAME.Formado por 8 carácteres.

www.escoladeprogramadores.com.br 4
JCL – Formação Mainframe

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)

JOB
Todo JOB deve possuir a palavra reservada JOB. A palavra reservada JOB solicita ao Sistema
Operacional a execução de JOBs.

Exemplo :

//JOBXX01DJOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)

ACCOUNT INFORMATION
São as informações para geração de estatísticas. Essas informações são chamadas de ACCOUNT
INFORMATION. Normalmente, informa-se o nome da companhia, do departamento, do programador,
analista, etc.

Exemplo :

//JOBXX01DJOB'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)

CLASS
Define a classe de entrada dos JOBs. Existem 36 classes disponíveis. As classes disponíveis vão de
A-Z (26 classes) e de 0 a 9 (10 classes).

Exemplo :

//JOBXX01DJOB'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)

www.escoladeprogramadores.com.br 5
JCL – Formação Mainframe

MSGCLASS
Define a classe de saída dos JOBs. Existem 36 classes disponíveis. As classes disponíveis vão de
A-Z (26 classes) e de 0 a 9 (10 classes).

Exemplo :

//JOBXX01DJOB'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)

NOTIFY
Define o usuário que receberá as notificações dos JOBs executados. Se informado
NOTIFY=&SYSUID as notificações irão para o usuário que estiver logado no TSO.

Exemplo :

//JOBXX01DJOB'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)

//JOBXX01DJOB'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=&SYSUID,TIME=(0,20)

TIME
É o CPU TIME (Tempo de Processamento de Máquina). É o tempo necessário para que o JOB
termine a sua execução.

Exemplo :

//JOBXX01DJOB'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)

Onde :
0 = (Quantidade em Minutos)
20 = (Quantidade em Segundos)

www.escoladeprogramadores.com.br 6
JCL – Formação Mainframe

Exemplo :

//JOBXX01DJOB'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(,20)

Onde :
20 = (Quantidade em Segundos)

Exemplo :

//JOBXX01DJOB'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=5

Onde :
5 = (Quantidade em Minutos)

DICA 1 - IMPORTANTE !

O maior valor permitido para execução de um JOB é 1440 minutos.

DICA 2 - IMPORTANTE !

CPU TIME não é a quantidade de segundos corridos. O cálculo do CPU TIME depende de fatores
como : quantidade de base de dados a serem acessados, quantidade de instruções, quantidade de
jobs executando concorrentemente, entre outros fatores.

DICA 3 - IMPORTANTE !

O sistema operacional retorna o abend S322 quando existe estouro de CPU TIME. A causa mais
normal do abend S322 são programas em looping ou programas que fazem acessos a muitas bases
de dados.

www.escoladeprogramadores.com.br 7
JCL – Formação Mainframe

DICA 1 - IMPORTANTE !

Se informado REGION=0M ou REGION=0K, utiliza-se a maior memória disponível para execução do


JOB.

www.escoladeprogramadores.com.br 8
JCL – Formação Mainframe

1.5.2 EXEC
Informa qual o programa, utilitário ou procedure será executado pelo STEP do JOB.

STEPNAME
É o nome do STEP (STEPNAME). Em caso de falha no JOB, a segunda a coisa a ser verificada é o
STEPNAME. Formado por até 8 carácteres.

Exemplo ( STEPNAME ) :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - UTILITARIO SORT - ORDENA ARQUIVO POR DATA DE PAGAMENTO *
//********************************************************************
//STEP001EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//SORTOUT DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//SYSIN DD *
SORT FIELDS=(01,08,CH,A)

Execução de Utilitário :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - UTILITARIO SORT - ORDENA ARQUIVO POR DATA DE PAGAMENTO *
//********************************************************************
//STEP001 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//SORTOUT DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//SYSIN DD *
SORT FIELDS=(01,08,CH,A)

Execução de Programa :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX01 - GERACAO RELATORIO PAGAMENTOS *
//********************************************************************
//STEP001EXEC PGM=COBXX01
www.escoladeprogramadores.com.br 9
JCL – Formação Mainframe

//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//RELATO DD SYSOUT=*
//SYSOUT DD SYSOUT=*

Execução de Procedure :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* EXECPROC – EXECUCAO DE PROCEDURE *
//********************************************************************
// JCLLIB ORDER=GR.GERAL.JOBLIB
//EXECPROC EXEC JOBPROCS

JCLLIB

É a biblioteca que possui as PROCEDURES que serão executadas.

ORDER

Referencia o nome da biblioteca.

www.escoladeprogramadores.com.br 10
JCL – Formação Mainframe

Procedure que será executada :

//JOBPROCS PROC
//*****************************************************************
//* STEP001 - EXECUTA PROGRAMA COBXX01 *
//*****************************************************************
//STEP001 EXEC PGM=COBXX01
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//*****************************************************************
//* STEP002 – EXECUTA PROGRAMA COBXX02 *
//*****************************************************************
//STEP002 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*

1.5.3 DD (DATA DEFINITION)


Define qual dispositivo será solicitado ao Sistema Operacional.

Pode ser :

 DSN ( DataSet Name )


 * (Asterisco) ( Dados de Entrada )
 DUMMY ( Simulação de Dados de Entrada )
 SYSOUT ( Saída para Impressão )
 DISP ( Disposição do Arquivo)
 SPACE ( Espaço para Alocação )
 UNIT ( Unidade )
 VOLUME ( Volume )
 DCB ( Data Control Block )

DSN (DATA SET NAME)


Referencia o arquivo físico.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX01 - GERACAO RELATORIO PAGAMENTOS *
//********************************************************************
//STEP001 EXEC PGM=COBXX01
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//RELATO DD SYSOUT=*

www.escoladeprogramadores.com.br 11
JCL – Formação Mainframe

//SYSOUT DD SYSOUT=*

* (ASTERICO)
Referencia dados de entrada para o programa que está sendo executado.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - UTILITARIO SORT - ORDENA ARQUIVO POR DATA DE PAGAMENTO *
//********************************************************************
//STEP001 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//SORTOUT DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//SYSIN DD *
SORT FIELDS=(01,08,CH,A)

DICA – IMPORTANTE !

SORT FIELDS=(01,08,CH,A)é passado como parâmetro para o programa que está sendo
executado. No nosso exemplo, o utilitário SORT.

www.escoladeprogramadores.com.br 12
JCL – Formação Mainframe

SYSOUT
Gera para o Sistema Operacional um DataSet com as saídas geradas pelo programa.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX01 - GERACAO RELATORIO PAGAMENTOS *
//********************************************************************
//STEP001 EXEC PGM=COBXX01
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//RELATO DD SYSOUT=*
//SYSOUT DD SYSOUT=*

DISP
Refere-se como o DataSet será disponibilizado para o sistema operacional.

[TERCEIRO PARÂMETRO]
TÉRMINO ANORMAL

[PRIMEIRO PARÂMETRO]
STATUS

DISP=(NEW,CATLG,DELETE)
[SEGUNDO PARÂMETRO]
TÉRMINO NORMAL

PARÂMETRO(s) DESCRIÇÃO
SHR Significa que o DataSetexiste e pode ser lido por outro recurso simultâneamente.
OLD Significa que o DataSetexiste e que o programa exige exclusividade na leitura.
NEW Criação de DataSet
MOD Modifica um DataSet sequencial. Acrescenta novos registros no final.
CATLG Cataloga o DataSet. Obviamente que esta opção deve estar sempre
acompanhada de NEW no primeiro sub-parâmetro. Porque se o DataSet estiver
sendo lido é porque já está catalogado.
UNCATLG Descataloga o DataSet. Evite usar sempre.
DELETE Delete o DataSet. Se precisar deletar o DataSet use sempre esta opção.
KEEP Mantem o DataSet do jeito que estava antes.
PASS Passa o DataSet para o próximo STEP do JOB.

www.escoladeprogramadores.com.br 13
JCL – Formação Mainframe

VALORES PERMITIDOS POR PARÂMETRO

PRIMEIRO PARÂMETRO SEGUNDO PARÂMETRO TERCEIRO PARÂMETRO


(STATUS) (TÉRMINO NORMAL) (TÉRMINO ANORMAL)
NEW CATLG CATLG
OLD UNCATLG UNCATLG
MOD DELETE DELETE
SHR KEEP KEEP
- PASS -

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP004 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP004 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)
//SYSOUT DD SYSOUT=*

Exemplo Inválido :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP001 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,KEEP,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)
//SYSOUT DD SYSOUT=*

DISP=(NEW,KEEP,DELETE)
Como manter um DataSet, sendo que o DataSet nem foi criado ainda.

DEFAULT
Se você colocar apenas DISP=SHR o sistema assume (SHR,KEEP,KEEP).

www.escoladeprogramadores.com.br 14
JCL – Formação Mainframe

www.escoladeprogramadores.com.br 15
JCL – Formação Mainframe

SPACE
Espaço físico a ser utilizado.

TRK = alocação em trilhas


CYL = alocação em cilindros ( 1 cilindro tem 15 trilhas )

Onde :
5 = Alocação Primária
1 = Alocação Secundária

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP001 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)
//SYSOUT DD SYSOUT=*

RLSE = libera o espaço não utilizado na alocação do DataSet.

ALOCAÇÃO SECUNDÁRIA
Pode ser extendida até 15 extends.

Logo, nessa alocação de DataSet teríamos no máximo 20 trilhas. Sendo 5 trilhas para alocação
primária e no máximo 15 para alocação secundária.

UNIT
Informa o tipo de dispositivo.

3390 = efetiva o armazenamento em DISCO (dispositivo)


TAPE = efetiva o armazenamento em FITA (dispositivo)
SYSALLDA = informa o dispositivo mais apropriado para alocação do DataSet
SYSDA = utilizado para armazenamento temporário

www.escoladeprogramadores.com.br 16
JCL – Formação Mainframe

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP001 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)
//SYSOUT DD SYSOUT=*

VOLUME
Informa qual volume dentro do DISCO deve ser referenciado.

SER– especifica o volume a ser referenciado


REF - faz referência a um volume localizado em um step anterior.
PRIVATE - permite o acesso a um volume por apenas um usuário.
RETAIN - não permite que o volume seja desmontado antes do termino do job.
SEQ - especificação da seqüência em que os volumes serão montados.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP001 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,VOL=SER=PR39X7,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)
//SYSOUT DD SYSOUT=*

PR39X7
É o volume que está sendo referenciado

www.escoladeprogramadores.com.br 17
JCL – Formação Mainframe

DCB ( DATA CONTROL BLOCK )


Define o formato do arquivo, tamanho dos registros e o tamanho do bloco para um novo DataSet.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP001 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)
//SYSOUT DD SYSOUT=*

RECFM
Define o formato do arquivo

F = fixo sem blocagem


V = variável sem blocagem
U = indefinido
FB = fixo blocado
VB = variável blocado
FBA = fixo blocado com carácter de impressão
VBA = variável blocado com carácter de impressão

LRECL
Informa o tamanho do registro do arquivo. No nosso exemplo o tamanho do arquivo é 800 bytes.

BLKSIZE
Define a blocagem do arquivo. Isto é, quantos registros formam um bloco para acessar ao arquivo.
Deve ser sempre um múltiplo de LRECL ou 0(Zero). Se informado 0(Zero) a blocagem ideal é
calculada automaticamente.

www.escoladeprogramadores.com.br 18
JCL – Formação Mainframe

1.5 JOBLIB
É a biblioteca na qual todos os STEPs do JOB referenciarão para execução dos programas Cobol.
(Somente objetos, programas que foram compilados e linkeditados).

A JOBLIB deve ser informada antes da execução do primeiro STEP do JOB.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//JOBLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR

1.6 STEPLIB
É a biblioteca na qual um determinado STEP referencia para a execução do programa COBOL.

A STEPLIB deve ser informada no STEP que o programa será executado.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP002 - PROGRAMA COBXX01 - GERACAO RELATORIO PAGAMENTOS *
//********************************************************************
//STEP002 EXEC PGM=COBXX01
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//RELATO DD SYSOUT=*
//SYSOUT DD SYSOUT=*

A STEPLIB sobrepõe a JOBLIB. Caso informado no JOB, as duas opções a STEPLIB prevalece
sobre a JOBLIB. Isto é, a STEPLIB sobrepõe (override) a JOBLIB.

IMPORTANTE
Caso no JOB não seja referenciado nem a JOBLIB e nem STEPLIB, nenhum programa Cobol
será executado.

www.escoladeprogramadores.com.br 19
JCL – Formação Mainframe

1.7 DDNAME x DSN(DSNAME)


1.7.1 DDNAME
Data Definiton Name.Faz a identificação dos arquivos e relatórios no JOB. Devem possuir no máximo
8 carácteres. Referencia a claúsula ASSIGN TO em programas COBOL. Podem representar : entrada
ou saída de dados.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP001 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)
//SYSOUT DD SYSOUT=*

DDNAMEs
ARQPGTO e ARQSERA são os DDNAMES desse STEP. Sendo ARQPGTO (Entrada) e
ARQSERA (Saída).

1.7.2 DSN (DSNAME)


DataSet Name. É o nome físico do arquivo. Utiliza a claúsula DSN. É onde os dados são
armazenados fisicamente.

Exemplo :

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//********************************************************************
//* STEP001 - PROGRAMA COBXX02 - GERACAO ARQUIVO ARQSERA *
//********************************************************************
//STEP001 EXEC PGM=COBXX02
//STEPLIB DD DSN=GR.GERAL.LOADLIB,DISP=SHR
//ARQPGTO DD DSN=GR.TSYYXX.ARQPGTO,DISP=SHR
//ARQSERA DD DSN=GR.TSYYXX.ARQSERA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=0)

www.escoladeprogramadores.com.br 20
JCL – Formação Mainframe

//SYSOUT DD SYSOUT=*

DSNAMEs
GR.TSYYXX.ARQPGTO e GR.TSYYXX.ARQSERA são os DSNAMES desse STEP. Sendo
ARQPGTO (Entrada) E ARQSERA (Saída).

1.10 JCL ERROR x ABEND x FLUSH

1.10.1 JCL ERROR


Existem erros de sintaxe no JOB ou algum recurso no JOB está indisponível para o Sistema
Operacional.

O JOB não é executado. Os STEPs não são executados.

1.10.2 ABEND
Representa falha na execução do STEP. O Sistema Operacional ou o programa retornam um código
de retorno ou código de ABEND no STEP.

O JOB é executado. O STEP é executado, porém existem uma falha na execução do STEP.

1.10.3 FLUSH
Significa que determinado STEP não foi executado. Normalmente ocorre o FLUSH no JOB quando
existe dependência entre os STEPs do JOB.

O JOB é executado. Porém o STEP não é executado.

2.5 ARQUIVOS TEMPORÁRIOS

São DataSets que ficam disponíveis até que o JOB finalize. Podem ser criados, alterados ou
referenciados durante a execução do JOB. Utiliza-se dois && (ês comerciais), com tamanho de 1 a 8
carácteres para referenciar o DataSet.

Exemplo :
www.escoladeprogramadores.com.br 21
JCL – Formação Mainframe

//JOBXX01D JOB 'JOB-PRD',CLASS=C,MSGCLASS=X,NOTIFY=TSYYXX,TIME=(0,20)


//*****************************************************************
//STEP001 EXEC PGM=IEFBR14
//*****************************************************************
//DSET001 DD DSN=GR.TSBI99.TEMPFILE,DISP=(,CATLG),DSORG=PS,
// UNIT=3390,LRECL=80,BLKSIZE=800,RECFM=FB,SPACE=(TRK,1)
//*****************************************************************
//STEP002 EXEC PGM=IEBGENER
//*****************************************************************
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD *
JUNIOR DIR 18000 20070901
JOAO DIR 13300 20000101
TOMAS DIR 15000 19560909
ABILIO EXP 33400 19560808
//SYSUT2 DD DSN=&&TEMPFILE,
// DISP=(NEW,PASS),
// UNIT=3390,
// SPACE=(TRK,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=080,BLKSIZE=800)
//*****************************************************************
//STEP003 EXEC PGM=IDCAMS
//*****************************************************************
//SYSPRINT DD SYSOUT=*
//ARQENT DD DSN=&&TEMPFILE,DISP=OLD
//ARQSAI DD DSN=GR.TSBI99.TEMPFILE,DISP=(OLD,DELETE)
//SYSIN DD *
REPRO INFILE(ARQENT) OUTFILE(ARQSAI)

CAPÍTULO 3 – ABENDS SISTEMA OPERACIONAL

S000 - ABEND DE SISTEMA.


S001 - DCB INCOMPATIVEL COM A ESPECIFICADA NO PROGRAMA.
- TENTAR LER OU GRAVAR UM ARQUIVO DEPOIS DE TE-LO FECHADO.
- ARQUIVO DE LEITURA MAL GRAVADO.
- FALTA CARTAO JCL E/OU SYSOUT.
- 'DCB', 'DCK', 'EROPT-ABE' (BLOCO ERRADO).
www.escoladeprogramadores.com.br 22
JCL – Formação Mainframe

- UNIDADE SAIU DE READY.


- LEITURA APOS FIM DE ARQUIVO.
- 04 - ERRO NA 'DCB'. VERIFICAR 'DCB' COM 'LABEL'
- 05 - 'GET' OR 'READ' TENTADO PARA ARQUIVO JA FECHADO.
S002 - O PROGRAMA DE CONTROLE PROCESSANDO UM ARQUIVO SEQUENCIAL E
CRIANDO UM ARQUIVO DE ACESSO DIRETO.
- ABERTURA DE UM ARQUIVO VSAM PELO MODULO QISAM.
- REGISTRO MAIOR QUE O LRECL ESPECIFICADO.
- ESTOURO DE ROW.
S003 - INSTRUCOES DE 'I/O' NAO FORAM EXECUTADAS NA SEQUENCIA CORRETA.
S004 - METODO DE ACESSO CONFLITANTE.
- VOLUME DE IMAGELIB NAO MONTADO.
- FORMATO ESPECIFICADO NA DCB E' INVALIDO.
S005 - GRAVACAO DE UM ARQUIVO DE ENTRADA.
- LEITURA EM UM ARQUIVO DE SAIDA.
- ABRIR OU FECHAR NOVAMENTE O MESMO ARQUIVO.
S012 - LEITURA DE UM ARQUIVO VAZIO.
S013 - NAO EXISTE NADA GRAVADO NO VOLUME ESPECIFICADO.
- TAMANHO DO BLOCO E' MUITO GRANDE.
- NAO EXISTE A 'RDRJOB'
- DCB DESCRITA NO PGM DIFERE DO ARQUIVO DE LEITURA/GRAVACAO.
- MEMBRO DE UM DATASET NAO PODE SER ALOCADO OU NAO ENCONTRADO.
- RECFM=FB, MAS O BLKSIZE NAO E' MULTIPLO DO LRECL.
- REGISTROS FIXOS NAO BLOCADOS (RECFM=U), COM BLKSIZE=O.
- PARA REGISTROS VARIAVEIS NAO SPANNED, BLKSIZE NAO E' 4 VEZES OU
MAIS QUE O LRECL.
- NAO ESPECIFICOU DB. (EX: DB=2).
- BLKSIZE DO PROGRAMA = O, E NAO FOI INFORMADO NO JCL (MESMO PARA
ARQUIVOS COM DUMMY).
S020 - VERIFIQUE SE O PROGRAMA NAO ALTERA A 'DCB' OU SE O PROGRAMA CRIA
ARQUIVO APOS INSTRUCAO 'OPEN'.
S025 - ENDERECO INVALIDO NA DCB. FORA DOS LIMITES DA MEMORIA VIRTUAL
ASSINALDA PELA TASK.
S026 - ERRO DE OPERACAO DURANTE 'IPL' DO SISTEMA.
S028 - ERRO DE HARDWARE. ERRO DE I/O DETERMINADO PELO SUPERVISOR DE
PAGINACAO ENQUANTO CARREGAVA A PAGINA NA MEMORIA.
S030 - 'DCB' NAO INDICA A MANEIRA CORRETA DE OPERAR.
S031 - CARTAO 'DD' COM ASTERISCO SEM NECESSIDADE.
- LEITURA/GRAVACAO DE ARQUIVO 'DA' SEM A CLAUSULA INVALID KEY.
- TAMANHO DO BLOCO NAO PODE SER CARREGADO.
- RECORD KEY FORA DE SEQUNCIA OU DUPLICADO.
- TAMANHO DO REGISTRO MAIOR QUE O ESPECIFICADO NA DCB.
S032 - INFORMACOES INVALIDAS NA 'DCB' PARA ISAM.
S033 - ERRO NO NIVEL MAIS ALTO DEIM DE UM ARQUIVO 'IS'. (A DCB CONTEM,
RESPECTIVAMENTE, OS ENDERECOS DO PRIMEIRO E DO ULTIMO REGISTROS
NA PRINCIPAL AREA DE OVERFLOW INDEPENDENTE).

S034 - PARA REGISTRO DE TAMANHO VARIAVEL O PGM DE CONTROLE ENCONTROU


UM ENDERECO ERRADO.
- AREA NA MEMORIA VIRTUAL E' MUITO PEQUENA.
- ENDERECO FORA DA DCB, FORA DOS LIMITES DA MEMORIA VIRTUAL.
S035 - MEMORIA VIRTUAL PEQUENA DEMAIS PARA CONTER UM TRILHA DE MEMORIA
PRINCIPAL.
www.escoladeprogramadores.com.br 23
JCL – Formação Mainframe

S03B - O ERRO OCORREU NO OPEN PARA UM DATASET 'IS'. NENHUM REGISTRO FOI
PROCESSADO PORQUE:
. O ARQUIVO NAO FOI CRIADO OU NAO FOI FECHADO APOS A CRIACAO.
. A DCBRKP ESTA ERRADA OU O TAMANHO DA CHAVE = ZERO.
. O BLKSIZE E' MENOR QUE O LRECL OU NAO E' MULTIPLO DO MESMO.
. O LRECL E' IGUAL A ZERO OU E' DIFIRENTE DO LABEL DE CRIACAO.
. UM ARQUIVO DE SAIDA FOI GRAVADO COM DISP SHR E NAO OLD/NEW.
. O RECFM ESPECIFICADO NAO E' O MESMO DA CRIACAO.
. KEYLEN NAO DEVE SER ESPECIFICADO PARA DATASET'S EXISTENTES.
S03D - BLOCAGEM DE ARQUIVO ERRADA.
- CARTAO DCB SEM PARAMETROS.
- DSORG=IS E RKP=O.
. O ARQUIVO NAO FOI CRIADO OU NAO FOI FECHADO APOS A CRIACAO.
S0A8 - OCORREU ERRO DURANTE A EXECUCAO DE UM PROGRAMA DE APLICACAO VTAM
S0A9 - UM COMANDO 'HALF NET' OU 'CANCEL' OCORREU NUM MODULO 'VTAM'.
- VER CODIGOS DO REGISTRADOR 15 NO MANUAL.
S0BC - ERRO DE HARDWARE DURANTE A EXECUCAO DE UMA SUBROTINA DA 'READER'
OU DA 'WRITER'.
S0B0 - PROVAVEL ERRO DE HARDWARE NA 'JOB QUEUE' DO DATASET.
S0B6 - ERRO LOGICO NO SISTEMA QUANDO FOI ACESSADO 'JOB LIST' RESIDENTE
S0C0 - UM PROGRAMA OMITIDO FOI ENCONTRADO DURANTE A EXECUCAO.
S0C1 - NOME DOS ARQUIVOS (DD) ESTAO ERRADOS. (FILE STATUS 90).
- FALTAM OU ESTAO ERRADOS OS CARTOES DD.
- DCB (QUANDO PASSADO 2.BLP).
- ROTINA DE PROCESSAMENTO SEM LOGICA.
- ABRIR OU FECHAR MAIS DE UMA VEZ UM ARQUIVO.
- LEU OU GRAVOU ARQUIVO FECHADO - ERRO NO OPEN.
- TENTAR GRAVAR UM ARQUIVO INPUT.
- ARQUIVO DIFERE TAMANHO COM LRECL DO SEQSAI.
S0C2 - 'SYS.... DD MISING', INCLUIR A SYS... QUE ESTA FALTANDO.
- STOP RUN DENTRO DO SORT.
S0C3 - O OBJETO DE UM EXECUTE E' OUTRO EXECUTE.
- FALTA FECHAR ARQUIVO OU TESTE APOS FECHAR ARQUIVO.
- TESTE EM CAMPOS DA FD APOS DAR CLOSE NO ARQUIVO.
S0C4 - ERRO DE PROGRAMA. PROVAVELMENTE 'LOOPING' EM ALGUMA INDEXACAO.
- FALTA CARTAO DD.
- VERIFICAR SE NAO FALTA PARAMETRO EM ALGUM 'CALL'.
- DISPLAY NO PROGRAMA SEM CARTAO SYSOUT.
- ACCEPT NO PROGRAMA SEM CARTAO SYSIN.
- ERRO DE ENDERECAMENTO (ESTOURO NA TABELA).
- MANUSEIO DE CAMPOS COM O ARQUIVO FECHADO.
- MOVER PARA AREA DE SORT ANTES DE DAR O COMANDO SORT.
- USO DA LINKAGE SEM DAR ENTRY OU USING NA PROCEDURE.
- MOVER CAMPOS PARA SORT INTERNO APOS O FIM DO OUTPUT.

S0C5 - ENDERECAMENTO INVALIDO.


- ABRIR OU FECHAR DUAS VEZES O MESMO ARQUIVO.
- INVERTER OS COMANDOS ENTRE OS ARQUIVOS DE I/O.
- ESTOURO DE TABELA.
- FALTA DE SECTION EM PROGRAMA COM SORT INTERNO.
- CLOSE ANTES DE DAR OPEN.
www.escoladeprogramadores.com.br 24
JCL – Formação Mainframe

- MOVIMENTACAO PARA FD ANTES DO PRIMEIRO READ.


- REWRITE COM KEY ERRADA.
S0C6 - ERRO NO ENDERECAMENTO OU NA ALOCACAO DE ROTINAS EXTERNAS
(ACCT, DATA, ABEND, ETC...).
- CARTOES 'JCL' PODEM ESTAR FORA DE ORDEM.
- DD 'MISSING'.
- FALTA ESPACO NA MEMORIA.
- SORT INTERNO SEM SELECT.
- RETURN ARQUIVO VAZIO - SORT INTERNO.
- DIVISAO POR ZERO.
S0C7 - MANUSEIO DE CAMPO NUMERICO COM CONTEUDO NAO NUMERICO.
- NAO ESPECIFICAR O VALOR DE SORT-CORE-SIZE.
S0C8 - PONTO FIXO DE 'OVERFLOW' OMITIDO.
S0C9 - O QUOCIENTE EXCEDEU O TAMANHO DO REGISTRADOR.
'ENTRY-POINT-ADDRESS' EXCEDEU O TAMANHO DO REGISTRADOR.
- DIVISAO POR ZERO.
S0C8 - 'SIZE ERROR' SEM PROCEDIMENTO ALTERNATIVO. PROVAVEL DIVISAO POR
ZERO.
S0CE - EXPRESSAO OMITIDA. O RESULTADO FOI UMA FRACAO ZERADA.
S0CF - PONTO FLUTUANTE DE DIVISAO OMITIDO.
S0DD - ERRO OCORREU COMO RESULTADO DA TRADUCAO DE UM SEGMENTO INVALIDO.
S0D1 - ERRO OCORREU COMO RESULTADO INVALIDO DE UM 'PAGE DEFAULT INTER-
RUPTION'.
S0D3 - ERRO OCORREU COMO RESULTADO DE UMA INSTRUCAO DE MAQUINA DO SIS-
TEMA.
S0E1 - PROBLEMA DE ENDERECAMENTO. SUBMETER NOVAMENTE.
S0FC - ERRO DE MAQUINA. REPROCESSAR.
S0F1 - PARAMETRO 'DCB', 'IOB', 'DEB' DO PROGRAMA INCORRETOS.
S0F2 - PARAMETROS INCORRETOS PASSADOS PARA O 'TYPE ISVC ROUTINE'.
S0F3 - ERRO DE HARDWARE DETERMINADO PELA CHECAGEM DO SISTEMA.
S0F4 - PARAMETRO INVALIDO NA AREA DE WORK.
S0F5 - PARAMETRO INVALIDO NA AREA DE WORK.
S03B - ERRO OCORREU NO 'OPEN' DE UM DATASET 'IS' NAO PROCESSOU REGS.
S03D - CARTAO 'DCB' SEM PARAMETROS 'DSORG=IS' E RKP=O.
S031 - TENTATIVA DE CRIAR ARQUIVO 'IS' COM REGISTROS FORA DE ORDEM.
S101 - O PROGRAMA USA MAIS OCORRENCIAS QUE O ESPECIFICADO NA 'DCB'.
S102 - ENDERECAMENTO NA 'DCB' INVALIDO.
S103 - ENDERECO DO 'REQUEST BLOCK' NA 'DCB' INVALIDO.
- 'DCB' ESPECIFICADA JA ESTAVA LIGADA.
S106 - AUMENTAR 'REGION'.
- PROBLEMA COM A CATALOGACAO DO PROGRAMA.
- REGISTRO INVALIDO NO PGM DE CARGA OU ERRO I/O.
S113 - ERRO DE 'I/O' NA ABERTURA DO ARQUIVO.
S117 - ERRO DE 'I/O' DURANTE FECHAMENTO DE UM ARQUIVO EM FITA POR VO-
LUME OU DEVICE DEFEITUOSO.
S122 - JOB EM LOOP OU NAO HA ESPACO DISPONIVEL EM DISCO
CANCELADO COM 'DUMP' PELO OPERADOR.
S130 - ERRO NA MACRO 'DEQ' ESPECIFICA UM RECURSO NAO ESPECIFICADO NA
MACRO 'ENQ'.
S137 - ERRO NO FIM DE VOLUME EM FITA.
- 04-08-0C-10-14-18 ERRO DE POSICIONAMENTO, LEITURA OU GRAVA-
CAO EM FIM DE VOLUME REPROCESSAR COM BACKUP
- 1C - 'TRAILER LABEL' INVALIDO.
- 20 - 'HEADER LABEL' INVALIDO.
S13F - 'RESTART NOT SUCESSUFUL'. REPROCESSAR.
www.escoladeprogramadores.com.br 25
JCL – Formação Mainframe

S180 - 'GDG' DO ARQUIVO DE LEITURA/GRAVACAO NAO FOI CRIADO.


S1F9 - DURANTE A EXECUCAO DE UM COMANDO MODIFY PAA PARAR OU RESTARTAR
UMA LINE, A IMPRESSORA OU UM PGM EXTERNO ABENDOU.
S200 - ERRO DE MAQUINA. REPROCESSAR.
S201 - ENDERECAMENTO DA 'DCB' INVALIDO.
S207 - ROTINA DE 'EXIT'NAO SINCRONIZADA.
S213 - ERRO DURANTE INSTRUCAO DE 'OPEN' DE ARQUIVO EM DISCO.
- 04 - O ARQUIVO NAO FOI ENCONTRADO, VERIFICAR DE 'DSN' E 'VOL'
ESTAO CORRETOS. INEXISTENCIA DO ARQUIVO OU ACESSO A DISCO ERRADO
- DSCB NOT FOUND. I/O R/W DSCB.
- LEITURA DE UM ARQUIVO CATALOGADO EM QUE HA O NOME DO ARQUIVO NA
VTOC, MAS OS DADOS FORAM DELETADOS.
- DSNAME OU VOLUME INCORRETOS.
S214 - ERRO OCORREU DURANTE A EXECUCAO DE UMA INSTRUCAO DE 'CLOSE' PA-
RA UM ARQUIVO EM FITA. REPROCESSAR.
- ERRO DE I/O NA LEITURA DO LABEL DO USUARIO NUMA FITA.
S217 - ERRO DE FECHAMENTO DE UM ARQUIVO 'BSAM'.
S222 - CANCELADO PELO OPERADOR SEM 'DUMP'.
S22D - ENDERECAMENTO FORA DOS LIMITES DA MEMORIA VIRTUAL.
S23D - ERRO NA MACRO 'DEQ'. TAMANHO ERRADO.
S237 - ERRO NO FIM DO VOLUME.
- 04 - ERRO NA CONTAGEM DOS BLOCOS. SE OCORREU NO COMECO DE UM
ARQUIVO COM VARIOS VOLUMES OU SE TIVER 'CHECKPOINT', TENTAR
REPROCESSAR SENAO FAZER FD.
S2F3 - JOB CANCELADO POR QUEDA DO SISTEMA.
S22D - ENCERRAMENTO FORA DOS LIMITES DA MEMORIA VIRTUAL.
S301 - INSTRUCAO DE 'WAIT' NA 'DCB' JA ESTAVA LIGADA.
S306 - MODULO ACESSADO NAO ENCONTRADO.
S30A - AUMENTAR A 'REGION'.
- FALTA CLAUSULA OBJECT-COMPUTER.
S313 - UM VOLUME OU 'DEVICE' DEFEITUOSO CAUSOU ERRO.
S314 - ERRO DE FECHAMENTO DE UM ARQUIVO.
S317 - ERRO DE FECHAMENTO DE UM ARQUIVO 'BSAM' CAUSADO POR UM VOLUME
OU DEVICE DEFEITUOSO.
S322 - AUMENTAR O 'TIME' DO CARTAO JOB.
S32D - LINKEDITE O PGM PROBLEMA NOVAMENTE E REEXECUTE O JOB STEP
ABEND NO SORT - CARTAO DE CONTROLE ERRADO.
S330 - ERRO NA MACRO 'DEQ'. ESPECIFICOU UMA OPCAO RESET-MUST-COMPLETE
OU GENERICO OU DIRETO DE 'DEQ'. SENDO ESSAS OPCOES VALIDAS
APENAS EM ESTADO SUPERVISOR.
S337 - O ERRO OCORREU QUANDO UM FIM DE ARQUIVO FOI ALCANCADO.
04 - O FIM DE ARQUIVO FOI ALCANCADO E NAO EXISTE ROTINA DE
'EOF'. OCORRE QUANDO EXISTE UM ARQUIVO MULTIVOLUME E NAO
FORAM FORCADOS TODOS OS VOLUMES.
S3FE - UMA 'TASK' TERMINANDO, EDITA UM 'I/O' A SER EXECUTADO POR
OUTRA 'TASK'.
S400 - FALTA CARTAO 'SYSOUT' PARA O PROGRAMA.
S402 - COLOCADO ENDERECOS DA TABELA DE EVENTOS DA 'DCB' ANTES DA OCOR-
RENCIA DE UM EVENTO ASSOCIADO A 'DCB'.
S406 - O PROGRAMA PRODUZIDO PELO 'LINK-EDITOR' CONTEM 'OL' NO CARTAO
EXEC.
S413 - ERRO DE OPEN PARA ARQUIVO DE FITA OU DISCO.
- 08-0C-10-14-20 - ERRO DE POSICIONAMENTO OU GRAVACAO.
REPROCESSAR.
S414 - DISPOSITIVO DIFERENTE ESPECIFICADO NO PARAMETRO 'UNIT', OU
www.escoladeprogramadores.com.br 26
JCL – Formação Mainframe

DEVICE.
S422 - FALTOU QUEUE. EXCESSO DE CARTOES DD NO JOB.
- ESPACO EXIGIDO PELO JOB NA QUEUE E' MUITO GRANDE PARA INICIAR.
S42A - PROGRAMA DE CONTROLE ACHOU UM PARAMETRO 'LIST' CRIADO NA ROTINA
'EXIT' NA INSTRUCAO MACRO 'DEQ' ANTERIORMENTE PEDIDA NA MESMA
TASK, MAS AINDA NAO RECEBEU O CONTROLE DA ROTINA.
S42D - ENDERECO DA 'DCB' NAO ESTA NA MEMORIA.
S482 - ABEND DO SISTEMA. SUBMETA NOVAMENTE.
S4FE - IDEM AO 'S3FE', SO QUE A 'TASK' NAO E' DE TELEPROCESSAMENTO.
S506 - REDUZA O TAMANHO DE ENTRADA DO PROGRAMA OU DO SEGMENTO DE
'OVERLAY'.
S513 - ERRO NA ABERTURA DE UM DATASET EM FITA. REPROCESSAR.
S514 - ERRO DE FECHAMENTO DE UM ARQUIVO CAUSADO POR VOLUME OU DEVICE
DEFEITUOSO.
S522 - 'TIME' DE MAQUINA. (PROVAVEL LOOP).
- OUTLIM DEFAULT ATINGIDO.
- ESPERA DE RESPOSTA P/ MONTAGEM DO ARQUIVO NAO ATINGIDA.
S604 - O ENDERECO PEDIDO ESTA FORA DA MEMORIA VIRTUAL PEDIDA NA 'TASK'
S605 - ENDERECO DE ALOCACAO FORA DOS LIMITES DA MEMORIA VIRTUAL.
S606 - REDUZA O TAMANHO DE ENTRADA DO PROGRAMA OU DO SEGMENTO DE 'OVER
LAY'. ACRESCENTE O TAMANHO DA REGIAO NO CARTAO EXEC.
S60A - ESPECIFICACAO INVALIDA DE UMA AREA A SER LIBERADA.
S613 - ERRO OCORREU DURANTE A EXECUCAO DE INSTRUCAO DE 'OPEN' PARA
ARQUIVO EM FITA.
- 04-08-10-14 - ERRO DE POSICIONAMENTO DE LEITURA/GRAVACAO.
REPROCESSAR.
S614 - ERRO DE FECHAMENTO DE ARQUIVO CAUSADO POR VOLUME OU DEVICE
DEFEITUOSO.
S637 - ERRO OCORREU DURANTE O FIM DE VOLUME EM UMA CONCATENACAO
DE ARQUIVOS.
- 0C - CONCATENACAO DE ARQUIVOS COM DIFERENCA DE ATRIBUTOS NAO
ESPECIFICADOS NA 'DCB' FOI DETECTADO
- SORT COM DD CONCATENADOS. OS ARQUIVOS DEVEM ESTAR EM UM MESMO
TIPO DE UNIDADE.
- DEMAIS CODIGOS REPROCESSAR.
S706 - ERRO DE PROGRAMA ENCONTRADO PELO 'LINKAGE-EDITOR' NO MODULO
DE CARGA.
S713 - DATA DE EXPIRACAO DE UM ARQUIVO NAO ENCONTRADA.
S714 - ERRO OCORREU DURANTE A EXECUCAO DE UM 'CLOSE' PARA ARQUIVO EM
FITA.
- ERRO DURANTE GRAVACAO DE 'TRAILER-LABEL' OU 'TAPE-MARK'.
REPROCESSAR.
S717 - IDEM AO 'S417'.
S722 - 'OUTLIM' ESPECIFICADO NA 'SYSOUT' ATINGIDO.
S737 - PROBLEMAS COM 'SPACE'. AUMENTAR / OU / OVERRIDE EM EXCESSO.
S804 - FALTA O PARAMETRO REGION NOS CARTOES JOB OU EXEC, OU A
QUANTIDADE ESPECIFICADA E' PEQUENA.
- QUANDO BLOCO E' IGUAL A 0 E BLKSIZE DA DCB MUITO GRANDE.
S806 - MODULO OU PROGRAMA INDICADO NO CARTAO EXEC NAO ENCONTRADO.
S80A - IDEM AO 'S804'.
S813 - ERRO DE 'OPEN' PARA ARQUIVO EM FITA. CHECAR 'DSN' DO JCL COM
LABEL. COLOCAR 'DSN' E GERACAO CORRETOS.
- LABEL DA FITA NAO COMBINA COM A DESCRITA NO PGM.
- LABEL DA FITA DESTRUIDO.
S814 - FALTA PARAMETRO 'REGION' NOS CARTOES JOB OU EXEC, OU ENTAO
www.escoladeprogramadores.com.br 27
JCL – Formação Mainframe

A QUANTIDADE ESPECIFICADA E' PEQUENA.


S822 - ESPACO PEDIDO EM 'V=R' NAO DISPONIVEL.
S837 - AUMENTAR O 'VOLCOUNT' EX.: VOL=(,,,6).
S878 - IDEM AO 'S804'.
S905 - O ENDERECO DA MEMORIA NAO E UMA 'DOUBLEWORD' OU NAO E'
MULTIPLO DE 8.
S906 - ALTERE O PROGRAMA PARA ACEITAR O 'LINKAGE-EDITOR' SERIAL/
REUSAVEL.
S90A - ERRO DE PROGRAMA. ERRO NA INSTRUCAO 'FROM' OU DAR 'CLOSE' EM
ARQUIVO FECHADO.
S913 - ERRO NA 'PASSWORD' DE ABERTURA DO ARQUIVO.
SA0A - A CHECAGEM DO SISTEMA DETECTOU UM ERRO DE HARDWARE.
SA04 - MANAGEMENT QUEUE DA MEMORIA ALTERADO INCORRETAMENTE.
SA05 - PROGRAMA DE CONTROLE ACESSOU UMA AREA EM BRANCO DA MEMORIA
VIRTUAL.
- ABRIR OU FECHAR DUAS VEZES O MESMO ARQUIVO.
SA06 - ALTERE O PROGRAMA PARA ESPERAR ATE' QUE LOADER SEJA SERIALMENTE
REUSAVEL.
SA13 - UM 'OPEN' FOI TENTADO PARA ABRIR UM ARQUIVO EM FITA, MAS ESTE
NAO FOI ENCONTRADO NA MESMA. VERIFICAR SE O VOLUME SEQUENCIAL
ESTA CORRETO. CHECAR O PARAMETRO 'LABEL', SE ESTIVER SALTANDO
ARQUIVOS. ERRO NA 'DCB' DA FITA.
SA14 - ERRO DE 'I/O' CAUSADO POR UM VOLUME OU DISPOSITIVO DEFEITUOSO.
SB0A - CHAVE DE INTERRUPCAO FOI TECLADA PELO OPERADOR.
SB04 - ESPACO REQUISITADO ESPECIFICADO INCORRETAMENTE.
SB06 - ERRO DE MAQUINA, SUBMETA NOVAMENTE SUA TASK.
SB13 - ERRO NA ABERTURA DE UM ARQUIVO DE IMPRESSAO.
SB14 - NOME DUPLICADO EM UM ARQUIVO PARTICIONADO.
SB37 - ERRO OCORREU DURANTE FIM DE VOLUME. ESPACO RESERVADO NAO FOI
SUFICIENTE. AUMENTAR AREA OU RETIRAR O 'CLOSE UNIT'.
- BIBLIOTECA SEM ESPACO.
- SE O ARQUIVO FOR EM DISCO JA OCORRERAM 16 EXTENDS, MAS O
ARQUIVO PRECISOU DE MAIS ESPACO.
- NAO HA MAIS ESPACO DISPONIVEL PARA ALOCAR NO VOLUME PEDIDO.
- MAIS ESPACO FOI PEDIDO MAS O VTOC ESTA CHEIO.
- INSUFICIENCIA DE ESPACO PARA COMPILAR/LINKEDITAR O PGM.
SC03 - FALTOU CLOSE EM UM ARQUIVO NO PROGRAMA EXECUTADO SOB LOADER.
SC06 - ERRO DE MAQUINA, SUBMETA O JOB NOVAMENTE.
SC13 - ERRO NA ABERTURA DE UM ARQUIVO CONCATENADO PARTICIONADO.
- ERRO NA ABERTURA DE GRAPHIC DEVICE.
SC2D - LINKEDITE O PROGRAMA NOVAMENTE E REEXECUTE O JOB.
SD13 - ERRO NA 'DCB' DA IMPRESSORA.
SD14 - FECHAR UM ARQUIVO NAO ABERTO.
SD2D - LINKEDITE O PROGRAMA NOVAMENTE E REEXECUTE O JOB.
SD23 - 'BUFFERS' NAO ACESSAVEIS.
SD37 - ESTOURO DE DISCO. AUMENTAR 'SPACE', COLOCAR OU AUMENTAR AREA
SECUNDARIA. PODE SER ESTOURO NA BIBLIOTECA.
SE13 - ERRO DE 'DCB' NO CARTAO DD.
SE2D - LINKEDITE O PROGRAMA NOVAMENTE E REEXECUTE O JOB.
SE23 - AREA DA MEMORIA VIRTUAL PARA REPOSICAO INVALIDA.
SE37 - FALTA ESPACO NO 'VOLCOUNT'.
- FALTA ESPACO NA BIBLIOTECA PARA CATALOGAR O PGM.
SF37 - FALTA ESPACO NO 'VOLCOUNT'.
SFF9 - O ENDERECO DO ABEND APONTA PARA O 'ONEP', APESAR DE O PROBLEMA
SER NO 'ADABAS'. SUBMETER NOVAMENTE.
www.escoladeprogramadores.com.br 28
JCL – Formação Mainframe

SIFA - ABEND DE SISTEMA.


0004 - FALTA DE CARTAO CONTROLE (FB).
0016 - EXCEDEU A CAPACIDADE DO SORT - AUMENTAR SORTWORKS.
0018 - ERRO NO CONTROL FIELD PARAMETRO - ACERTAR SE FOR POSSIVEL.
0024 - ERRO NO PROGRAMA GENERICO - SUSPENDER.
0039 - AUMENTAR REGION.
0042 - ERRO NO CARTAO DO SORT - TIRAR O CARTAO SYSOUT.
0043 - AUMENTAR REGION.
0046 - EXCEDEU A CAPACIDADE DO SORT - AUMENTAR SORTWORKS.
0056 - SORT OU SORTOUT NAO DEFINIDO.
0061 - DCB OU I/O ERROR DEVICE.
0063 - ERRO NO CARTAO SORT - COLOCAR /* SORTIN.
- SE EXISTIR SORTWORKS, COLOCAR O CARTAO SYSOUT E SORTLIB.
0068 - DCB FORA DE SEQUENCIA, REGISTROS FORA DE SEQUENCIA (NO MERGE).
- TIRAR LABEL DOS ARQUIVOS E COLOCAR OS DE MAIOR DCB ANTES.
0078 - AUMENTAR A REGION.
0220 - ACCT EM LOCAL INADEQUADO QUANDO NO OPEN INICIAL.
- DCB INCOMPATIVEL.
0230 - ACCT - HOUVE CONDICAO DE ERRO PERMANENTE EM UM DOS ARQUIVOS.
- BLKSIZE NAO E' MULTIPLO DO LRECL OU DIFERE DO PROGRAMA.
1001 - FALTA DD GO.DDCHECK.
2000 - PROBLEMA COM FW-I/O ERROR LEITURA OU PARM XX INVALIDO.
2048 - ABEND DO LIBRARIAN - QUANDO NAO DEPENDER DE INF. EXTRA ACERTAR.
3500 - ABEND FORCADO PELO PROGRAMA - SEM DUMP.
3501 - ABEND FORCADO PELO PROGRAMA - COM DUMP.
914I - ERRO NO MEMBRO ALOCADO.

www.escoladeprogramadores.com.br 29

Potrebbero piacerti anche