Académique Documents
Professionnel Documents
Culture Documents
14/07/2016
Data:
JCL
1
2
Introduo............................................................................................................2
Especificao dos Elementos...............................................................................2
2.1
Carto JOB..................................................................................................2
2.2
Carto JOBLIB, JOBCAT, STEPLIB, STEPCAT, JCLLIB e SYSPROC...3
2.3
Carto EXEC...............................................................................................4
2.4
Carto DD....................................................................................................5
3
Utilitrio SORT....................................................................................................8
3.1
Comandos....................................................................................................8
3.2
JCL...............................................................................................................8
4
Utilitrio IDCAMS............................................................................................10
5
PARM DO JCL..................................................................................................12
6
Entrada de dados(Input-Stream) no JCL- SYSIN...........................................12
7
A utilizao da intruo IF/THEN/ELSE/ENDIF no jcl:.................................14
7.1
COMPARAO:......................................................................................14
7.2
LOGICOS:.................................................................................................14
7.3
Operadores:................................................................................................15
8
Efectuar Submit de um JOB a partir de outro...................................................16
9
Pool de Discos Versus Disco(VOL=SER=XXXX,UNIT=3380/3390).............16
10
Definio de um membro dentro do JCL(INCLUDE)..................................18
11
Ordem dos comandos no JCL........................................................................18
12
JCL para executar o search de strings..........................................................19
13
Calculo do BlocoSize.....................................................................................20
13.1 Clculo do blocksize de um ficheiro :.......................................................20
13.2 Clculo do n de pistas e cilindros desse ficheiros :..................................20
14
Copiar um ficheiro para outro(IEBGENER \ ICEGENER).........................21
14.1 Jcl...............................................................................................................21
14.2 Instrues de Controlo...............................................................................21
14.2.1 GENERATE.......................................................................................21
14.2.2 EXITS................................................................................................21
14.2.3 LABELS............................................................................................21
14.2.4 MEMBER..........................................................................................21
14.3 EXEMPLOS..............................................................................................22
15
Update Strings em Bibliotecas Utilizando o File-Aid Compware..............24
16
SET Utilizao no JCL...............................................................................24
16.1 MEMBRO: MMMAA...............................................................................24
16.2 JCL que UTILIZA o MMMAA.................................................................24
Especificao de JCL
Pag. 1 / 26
Pgina: 1
Manual Prtico
Data:
14/07/2016
1
Introduo
atravs dos JOBs que se executam os programas e utilitrios BATCH. Eles
podem ser executados manualmente (atravs do comando SUB) ou
automaticamente (atravs de um sistema de disparo de JOBs).
Os JOBs so compostos por STEPs, ou seja, etapas que so necessarias para que
uma rotina se complete.
Um JOB composto pelos seguintes tipos de carto:
2
NOTIFY=userid
Indica ao sistema que avise o utilizador (userid) quando
o JOB terminar.
Se userid = &SYSUID, avisado o utilizador TSO que submeteu o JOB.
CLASS=classe
MSGLEVEL=(m,n)
Estabelece o nvel de detalhe das informaes sobre o
JOB que o sistema listar.
Se
m=0
=> S lista carto JOB,
m=1
=> Lista JCL e procedimentos
m=2
=> Lista apenas JCL de entrada
Se
n=0
=> No saem mensagens de alocao
Especificao de JCL
Pag. 2 / 26
Pgina: 2
Manual Prtico
14/07/2016
Data:
n=1
REGION=memsize
Estabelece a dimenso mxima (512K, 2M, 4M, 8M,
etc) da memria virtual que o JOB poder utilizar.
TYPRUN=HOLD/SCAN Pede um tratamento especial ao JES.
HOLD => Espera uma indicao do operador (comando RELEASE) para
fazer executar o JOB:
SCAN => Pede uma anlise sintxica do JCL, sem execuo do JOB.
2.2
Exemplo JCLLIB.
//TSOIDX JOB ........
//LIBS
JCLLIB ORDER=(---.---.---,---.---.---,.....)
//*
//STEP01 EXEC PROC=START,... //* Executa proc definida na(s)
//............
//* biblioteca(s) da JCLLIB
OU
//............
//LIBS
JCLLIB ORDER=(---.---.---,---.---.---,.....)
//*
//STEP01 EXEC START,... //* Executa proc definida na(s)
//............
//* biblioteca(s) da JCLLIB
Exemplo JOBCAT.
Especificao de JCL
Pag. 3 / 26
Pgina: 3
Manual Prtico
14/07/2016
//JOBCAT
//
Data:
DD DSN=---.---.---,DISP=SHR
DD DSN=---.---.---,DISP=SHR
//............
//*
//STEP02 EXEC PGM=PGM2,...
//STEPCAT DD DSN=---.---.---,DISP=SHR
//............
//*
Exemplo SYSPROC.
Onde:
stepname
- o nome com o qual o STEP reconhecido, podendo ter at 8
bytes.
tipo
- Identifica o que ser executado:
PROC - Procedimento catalogado
PGM - Programa ou utilitrio
nome - Identifica o procedimento/programa/utilitrio a ser executado.
Parmetros:
MEM=member
Especificao de JCL
Pag. 4 / 26
Pgina: 4
Manual Prtico
14/07/2016
Data:
2.4 Carto DD
O carto DD usado a seguir ao carto EXEC para descrever um ficheiro que vai
ser usado, e para fazer a ligao entre os ficheiros lgicos (referenciados nos
programas) e os ficheiros fsico.
Formato:
//DDname DD DSN=ficheiro,DISP=(sit_inicial,fim_normal,fim_anormal),
// DCB=(RECFM=tipo_reg,LRECL=num_bytes_reg,BLKSIZE=num_bytes_bloco),
// SPACES=(unidade,(tam_inicial,tam_adicional),RLSE),
//
UNIT=perifrico,VOL=SER=id_perifrico
ou
//DDname DD DUMMY
ou
//DDname DD *
ou
//DDname DD SYSOUT=(classe,xxxxx,xxxxx),OUTPUT=classe
Pag. 5 / 26
Pgina: 5
Manual Prtico
14/07/2016
Data:
DSN=ficheiro
Especifica o nome fsico do ficheiro. Este nome pode ter vrias
formas.
ficheiro=> NomeDataSet - at 5 qualificadores de 8 posies cada, separados por
.(ponto).
ficheiro=> NomeFichParticionado(NomeMembro) - at 5 qualificadores de 8
posies cada, separados por .(ponto), seguido, entre parenteses do nome do
membro.
ficheiro=> &&NomeFichTemp - O sinal && significa que o ficheiro s existe
durante a execuo do JOB.
DISP=(sit_inicial,fim_normal,fim_anormal)
Especifica as aes a executar sobre o ficheiro em trs momentos: Quando
o JOB se inicia, quando o STEP termina normalmente, e quando o STEP termina
anormal.
Sit_inicial:
KEEP p/ outros
fim_anormal
DELETE
- Elimina o ficheiro
KEEP - Mantm o ficheiro
CATLG - Cataloga o ficheiro
UNCATLG - Descataloga o ficheiro
Caso omitido assume= Caso fim_normal PASS,
fim_anormal=fim_normal,
caso contrrio proceder como na omisso de fim_normal.
DCB=(RECFM=tipo_reg,LRECL=num_bytes_reg,BLKSIZE=num_bytes_bloco)
Especificao de JCL
Pag. 6 / 26
Pgina: 6
Manual Prtico
14/07/2016
Define a caracterstica fsica do ficheiro.
tipo_reg
FB
- Registo de tamanho fixo
VB
- Registo de tamanho varivel
UB
- Registo de tamanho indefinido
num_bytes_bloco = n * num_bytes_reg
Data:
SPACES=(unidade,(tam_inicial,tam_adicional),RLSE)
Estabelece o tamanho mximo (tam_inicial + 15 * tam_adicional) de
espao em disco a ser alocado para o ficheiro.
unidade
CYL
- Medio em cilindros
TRK
- Medio em trilhas
num_bytes_bloco => tam_inicial e tam_adicional medidos em blocos.
tam_inicial o nmero de unidades a alocar inicialmente
para o ficheiro
tam_adicional
o nmero de unidades a alocar
secundriamente para o ficheiro
RLSE
UNIT=perifrico
Especifica o tipo de perifrico onde ser gravado o ficheiro.
Perifrico
O seu contedo varia de acordo com a instalao do
sistema operacional. E devem ser identificados junto a uma pessoa da empresa.
Alguns exemplos:
3390
- Identifica uma unidade de disco srie 3390
SYSDA - O sistema disponibiliza um disco de trabalho
temporrio.
PRDSEQ- O sistema disponibiliza um disco da produo
permanente.
PRDTEMP- O sistema disponibiliza um disco da
produo temporrio.
TAPE - O sistema disponibiliza uma unidade de banda
magntica
RCART - O sistema disponibiliza uma unidade de
cartridige.
VOL=SER=id_perifrico
Identifica fsicamente o perifrico. O seu contedo varia de acordo com a
instalao do sistema operacional. E devem ser identificados junto a uma pessoa da
empresa. Alguns exemplos:
MVS207
MVS437
Especificao de JCL
Pag. 7 / 26
Pgina: 7
Manual Prtico
14/07/2016
3
Utilitrio SORT
3.1
Data:
Comandos
INCLUDE
COND=(57,8,CH,EQ,C'20000624',OR,57,8,CH,EQ,C'20000625')
INCLUDE COND=(9,3,CH,EQ,C'291',AND,116,2,CH,EQ,C'TK')
INCLUDE
COND=(1,5,BI,EQ,X'039100376F',AND,31,5,BI,EQ,X'019990726
F',
AND,40,5,BI,EQ,X'019990727F')
INCLUDE
COND=(3,6,CH,GE,C'981201',AND,3,6,CH,LE,C'981231')
SORT FIELDS=(1,27,A,32,8,A),FORMAT=BI,EQUALS
SORT FIELDS=(8,8,CH,A)
RECORD TYPE=F
END
MERGE FIELDS=COPY
SORT FIELDS=(12,8,A),FORMAT=BI,EQUALS
INCLUDE COND=(12,8,CH,NE,C'19991230')
SUM
FIELDS=(31,8),FORMAT=PD
SORT FIELDS=(1,3,A),FORMAT=BI,EQUALS
INCLUDE COND=(1,1,CH,EQ,C'0')
SUM
FIELDS=(23,8,31,8),FORMAT=PD
3.2 JCL
//SORT1
EXEC PGM=SORT,REGION=720K,RD=NC,COND=(0,LT)
//SORTIN
DD DSN=TSTM.TEMP.NC.BNC80P,DISP=OLD
//SORTOUT
DD
DSN=NBAN.TSTC.NC.BNC80P.LEIRIA.P7V,UNIT=SYSDA,
//
DISP=(,CATLG,DELETE),
Especificao de JCL
Pag. 8 / 26
Pgina: 8
Manual Prtico
Data:
14/07/2016
//
SPACE=(CYL,(300,100),RLSE),
//
DCB=*.SORTIN
//SYSIN
DD *
SORT FIELDS=(4,7,A,74,5,A),FORMAT=BI,EQUALS
INCLUDE COND=(4,5,BI,EQ,X'036215004F')
/*
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,00005)
//SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,00005)
//SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,00005)
//SORTWK04 DD UNIT=SYSDA,SPACE=(CYL,00005)
//SYSOUT
DD SYSOUT=A,FREE=CLOSE
//*------------------------------------------------------------------//SORT01
EXEC PGM=SORT,REGION=720K,COND=(0,LT)
//SORTIN
DD DSN=POSI.TEMP.NC.FIC05NC2,DISP=OLD
//SORTOUT DD DSN=NBAN.TSTC.NC.TESTE.SORTSUM.P7V,
//
DISP=(,CATLG,DELETE),
//
SPACE=(CYL,(100,100),RLSE),
//
UNIT=SYSDA,
//
DCB=*.SORTIN
//SYSIN
DD *
SORT FIELDS=(1,3,A),FORMAT=BI,EQUALS
SUM
FIELDS=(23,8,31,8),FORMAT=PD
/*
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SORTWK04 DD UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SYSOUT
DD SYSOUT=*
/*
EXEMPLO:
BROWSE
NBAN.TSTC.NC.TESTE.SORTSUM.P7V
Line 00000001 Col
Command ===>
Scroll
----+----1----+----2----+----3----+----4----+----5---+----6----+----7
Especificao de JCL
Pag. 9 / 26
Pgina: 9
Manual Prtico
Data:
14/07/2016
0NC20010306
890............g...NCI2001030600001
FDCFFFFFFFF44444444FFF0000000000009800DCCFFFFFFFFFFFFF44
4444444444444
05320010306000000008900000000C0002070C539200103060000100
0000000000000
-------------------------------------------------------------------2NC2001030620010307890...e.q....b...NCI2001030600001
FDCFFFFFFFFFFFFFFFFFFF0018298000183180DCCFFFFFFFFFFFFF44
4444444444444
25320010306200103078900095680C0092610C539200103060000100
0000000000000
-------------------------------------------------------4
Utilitrio IDCAMS
O utilitrio IDCAMS muito util para trabalhar com ficheiros, analise os exemplos
seguintes.
JCL
//TSOIDX JOB ........
//IDCAMS
EXEC PGM=IDCAMS,REGION=512K
//SYSPRINT DD SYSOUT=*
//SYSOUT
DD SYSOUT=*
//SYSIN
DD *
==> {Nas Procs //SYSIN DD DDNAME=SYSIN
<Parametros para Idcams>
//DELETE.SYSIN DD *}
/*
Exemplo 1
//SYSIN
DD *
DELETE <-----.-----.-----> PRG CL
/*
/* DELETE DE FICHEIRO */
Exemplo 2
//.............
//INPUT1
DD DSN=-----.-----.-----,DISP=SHR
//.............
//SYSIN
DD *
VERIFY FILE(INPUT1)
/*
Exemplo 3
//.............
//SYSIN
DD *
REPRO INDATASET(-----.-----.-----)
OUTDATASET(-----.-----.-----)
REPLACE
/*
Exemplo 4
//.............
//SYSIN
DD *
ALTER -----.-----.----NEWNAME(-----.-----.-----)
/*
/* RENAME DE FICHEIRO */
Exemplo 5
Especificao de JCL
Pag. 10 / 26
Pgina: 10
Manual Prtico
14/07/2016
//.............
//SYSIN
DD *
ALTER -----.-----.----SHR(3 3)
/*
Data:
SHAREOPTIONS(region system) (Abbreviation=SHR) - specifies the crossregion and cross-system sharing options for a VSAM data set.
'region' and 'system' are both numbers in the range 1 thru 4.
'region' values and their meanings are:
1 - all users read, only 1 can read & write to data
set concurrently
2 - all users read and 1 user writes concurrently
3 - all users read and write concurrently
4 - all users read and write concurrently, user
program must use ENQ/DEQ
'system' values and their meanings are:
1 & 2 - reserved
3 - all users read and write concurrently
4 - all users read and write concurrently, user
program must use ENQ/DEQ
Exemplo 6
//.............
//SYSIN
DD *
DEFINE CLUSTER
(NAME (-----.-----.-----)
RECORDS(6000)
VOLUME(XXXXX)
CONTROLINTERVALSIZE(4096)
NUMBERED
RECORDSIZE(4089 4089)
RECOVERY
UNIQUE
SHAREOPTIONS(3 3))
DATA (NAME (-----.-----.-----)
INDEX
/*
Exemplo 9 -.
//.............
//SYSIN
DD *
Especificao de JCL
Pag. 11 / 26
Pgina: 11
Manual Prtico
14/07/2016
Data:
LISTCAT ENTRIES(CPWR.CPPD.FARDX.V2R0M2.RELATE)
IF LASTCC > 0 THEN DO
SET MAXCC = 0
DEFINE CLUSTER (NAME(CPWR.CPPD.FARDX.V2R0M2.RELATE) +
TRACKS(200 20) +
VOL(COSSY2)
+
KEYS(74 0)
+
RECSZ(403 4765) +
CISZ(4096)
+
SHR(3 3)
+
UNIQUE)
+
INDEX (NAME(CPWR.CPPD.FARDX.V2R0M2.RELATE.INDEX)) +
DATA (NAME(CPWR.CPPD.FARDX.V2R0M2.RELATE.DATA))
END
ELSE DO
SET MAXCC = 4
END
/*
//.............
//SYSIN
DD *
DEFINE GENERATIONDATAGROUP
(NAME(XXXTST.GDG.YYYY)
NOEMPTY
SCRATCH
LIMIT(20))
/*
PARM DO JCL
Definio no JCL.
//::::::::::::::::::::::::::::::::::
//STEP01 EXEC PGM=<PROGRAMA>,PARM=00003
Definio no COBOL.
LINKAGE SECTION.
01 PARMINFO.
03 PARM-LTH
PIC S9(4) COMP.
* Informao nr.bytes passados, neste exemplo fica c/
valor 5
03 PARM-DATA
PIC X(5).
* Informao passada ao programa, neste caso fica com
00003.
::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::
DATA DIVISION USING PARMINFO.
Especificao de JCL
Pag. 12 / 26
Pgina: 12
Manual Prtico
14/07/2016
6
Entrada de dados(Input-Stream) no JCL- SYSIN.
Data:
Exemplos 2
//TSOIDX JOB ........
//............
//SYSIN DD DATA
..
(DADOS)
..
/*
Exemplos 3
Neste exemplo os caracteres que indicam o final da entrada
dos dados so os que esto definidos no parametro DLM=??.
Isto permite que sejam aceites como entrada de dados a
sintaxe do proprio JCL (Exemplo 4).
//TSOIDX JOB ........
//............
//SYSIN DD *,DLM=XX
..
(DADOS)
..
XX
//*
Exemplos 4
//TSOIDX JOB Y2K JCL,CLASS=A,NOTIFY=TSOID
//CONTROL1 EXEC PGM=IEBGENER,COND=EVEN
//SYSUT1 DD *,DLM=XX
//TSOIDY JOB ANO 2000,CLASS=A,NOTIFY=TSOID
DADOS
//CONTROL1 EXEC PGM=IEBGENER,COND=(8,LT)
//SYSUT1
DD DSN=TSOID.CNTL(JCL),DISP=SHR
Especificao de JCL
<-- ENTRADA DE
Pag. 13 / 26
Pgina: 13
Manual Prtico
14/07/2016
Data:
//SYSUT2
DD
SYSOUT=(,INTRDR),DCB=(RECFM=FB,LRECL=80,BLKSIZE=23200)
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//*
<-- FINAL DA ENTRADA
DE DADOS
XX
//*
//SYSUT2 DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
/*
Exemplos 5
//STEPA
EXEC PGM=PROGRAM1
//SYSIN
DD
DATA,DLM=MY
data record 1
data record 2
...
data record n
MY
end of data
1) //TESTA IF (RC = 8 | RC = 10 | RC
2) //TESTA IF (RC > 8 )
3) //TESTA IF (RC <= 8 )
4) //TESTA IF (RC = 8 | RC > 10 )
5) //TESTA IF (RC = 8 & RC <= 10 )
//............
//STEP01
EXEC .....
//............
//TESTARC IF (STEP01.RC < 8) THEN
//STEP02
EXEC .....
//............
//SENAO
ELSE
//STEP03
EXEC .....
//............
//
ENDIF
//NEXTSTEP EXEC .....
//............
= 12 | RC = 14) THEN
THEN
THEN
THEN
THEN
Especificao de JCL
Pag. 14 / 26
Pgina: 14
Manual Prtico
14/07/2016
7.1 COMPARAO:
GT
LT
NG
NL
EQ
LE
GE
NE
7.2
ou
ou
ou
ou
ou
ou
ou
ou
Data:
>
<
>
<
=
<=
>=
=
Maior que
Menor que
No Maior que
No Menor que
Igual a
Menor ou Igual a
Maior ou Igual a
No Igual a
&
|
-E
- Ou
- Negao
LOGICOS:
AND
OR
NOT
Exemplo:
ou
ou
ou
7.3
Operadores:
RC
highest return code from any prior job step
stepname.RC
- return code from the named job step
stepname.procstepname.RC
- return code from the named proc step invoked by the named job step
ABEND=TRUE or ABEND
- any abend condition in an prior job step
stepname.ABEND or stepname.ABEND=TRUE
- any abend condition in the named job step
stepname.procstepname.ABEND or stepname.procstepname.ABEND=TRUE
- any abend condition in the named proc step called by the job step
ABEND=FALSE or |ABEND
Especificao de JCL
Pag. 15 / 26
Pgina: 15
Manual Prtico
14/07/2016
Data:
8
Efectuar Submit de um JOB a partir de outro.
Pode ser feito o copy de um job para o INTERNAL READER, de modo a que este
seja executado, a partir de outro job que se encontra a correr:
//............
//CONTROL1 EXEC PGM=IEBGENER,COND=(...) //* Verificar a
COND=()
//SYSUT1
DD DSN=---.---(JCL),DISP=SHR //* Biblioteca e
membro JCL
//SYSUT2
DD
SYSOUT=(,INTRDR),DCB=(RECFM=FB,LRECL=80,BLKSIZE=23200)
Especificao de JCL
Pag. 16 / 26
Pgina: 16
Manual Prtico
14/07/2016
Data:
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//*
//............
9
Pool de Discos Versus Disco(VOL=SER=XXXX,UNIT=3380/3390)
No JCL frequente encontrar a referncia UNIT=?????, em que ????? o nome
atribuido a uma serie de discos(POOL), no sendo necessrio saber o nome
individual de cada um deles. Ao referir no JCL o nome da POOL est a apontar
para todos os discos que fazem parte desta, deste modo ser o sistema encarregado
de procurar, allocar, apagar ou alterar os ficheiros referidos no JCL nos discos da
POOL. Deste modo no necessito de identificar se o ficheiro est no disco A, B ou
C. Ver exemplo 1.
Por outro lados se pretender que seja criado um ficheiro num disco especfico
necessrio identificar o seu nome e tipo, exemplo 2.
Exemplos 1
Catalogar o ficheiro TSOID.FICH1 na POOL chamada SYSDA.
//TSOIDX JOB ........
//COPIA
EXEC PGM=IEFBR14
//FICH1
DD DSN=TSOID.FICH1,DISP=(,CATLG,DELETE),
//
SPACE=(TRK,(10,10),RLSE),UNIT=SYSDA
/*
Exemplos 2
Catalogar o ficheiro TSOID.FICH1 no ficheiro MVS205. Neste exemplo implica
que necessrio conhecer o nome do disco e tipo de disco, se por alguma razo o
disco estiver offline o jcl j no executado e d erro, na pool o ficheiro
catalogado no disco que est mais disponvel, espao versus tempo de acesso, pelo
que sempre que possvel aconcelho a utilizao mostrada no exemplo 1.
//TSOIDX JOB ........
//COPIA
EXEC PGM=IEFBR14
//FICH1
DD DSN=TSOID.FICH1,DISP=(,CATLG,DELETE),
//
SPACE=(TRK,(10,10),RLSE),VOL=SER=MVS205,UNIT=3390
/*
Subparameter Definition
device-number = (UNIT=3390)
Especificao de JCL
Pag. 17 / 26
Pgina: 17
Manual Prtico
14/07/2016
device-type:
3330
3330-1
3350
3375
3380
3400-6
3400-9
Data:
3330 Model 1
3330 Model 11
3350 DASD
3375 DASD
3380 DASD
3420 Tape Drive (Reel Type)
3480 Tape Cartridge
group-name:
TAPE, SYSDA, or SYSALLDA
unit-count
specifies the number of devices for the data set, from 1 (the default) through 59.
You should use this subparameter for DASD files being created when VOL= is not
specified, so that multiple units will be searched if more DASD space is needed.
Use of this technique can help eliminate B37, D37, & E37 abends.
P
asks the system to allocate the same number of devices as requested by the volume
count or SER subparameters of the VOLUME parameter, whichever is higher - the
effect is that all volumes for the data set are mounted at the same time
DEFER
asks the system to assign device(s) to the data set but not to mount the volume(s)
until the data set is opened - if the data set is not opened, no mount occurs - do not
code DEFER on a SYSCKEOV DD statement
AFF=ddname
requests that the system allocate data sets residing on different, removable volumes
to the same device - the ddname given is an earlier ddname in the same job step;
unit affinity allows one tape drive to be used for multiple volumes from several
concatenated tape data sets, for example:
//DD1
DD
UNIT=(3400-6,,DEFER)
//$$MYFILE DD
UNIT=(3330-1,2)
//TEMP
//
UNIT=TAPE,VOL=SER=TAPE01
UNIT=AFF=TEMP,VOL=SER=TAPE09
10
DD
DD
Pag. 18 / 26
Pgina: 18
Manual Prtico
14/07/2016
Data:
11
/*
//*
PROC
PEND
CNTL
ENDCNTL
OUTPUT
Pag. 19 / 26
Pgina: 19
Manual Prtico
14/07/2016
1 - Imprime todo o JCL
2 - Imprime s JCL do fluxo de entrada
Data:
Segundo Digito
0 - Imprime s alocaes com ABEND
1 - Imprime todas as alocaes
Ex. MSGLEVEL=(1,0)
NOTIFY - TSO user a ser informado quando a execuo do JOB for concluda.
PASSWORD - Password reconhecida pelo RACF.
PRTY
- Especifica a prioridade do JOB na fila de entrada(0-13, onde 0
menor)
RESTART- Indica o STEP onde recomea o job.
TYPRUN- Retem o JOB na fila de entrada(para verificar a sintaxe)
HOLD - Mantm o job na fila aps verificao da sintaxe.
JCLHOLD - Mantm o job na fila antes verificar a sintaxe.
SCAN - Verifica o JCL sem o executar.
COPY - Imprime listagem do JCL apenas.
USER
- User reconhecido pelo RACF.
12
13
Calculo do BlocoSize.
Pag. 20 / 26
Pgina: 20
Manual Prtico
14/07/2016
Data:
Capacidade da Pista
(Bytes)
Nde Pistas por
Cilindro
Tot.Cilindros por
Disco
3390-1
3390-2
3390-3
56664
3380
3380-E
3380-K
47476
3375
35616
3350
19069
3340
8368
3330
13030
15
15
12
30
12
19
1113
885
959
555
696
404
2226
1770
3339
2655
13.1 Clculo do blocksize de um ficheiro :
Dependendo do Modelo do Disco, temos:
Capacidade da Pista / 2 = X
X / TAMANHO DO REGISTO = Y}INTEIRO
Y * TAMANHO DO REGISTO = BLOCKSIZE
13.2 Clculo do n de pistas e cilindros desse ficheiros :
Dependendo do Modelo do Disco, temos:
N DE REGISTOS * TAMANHO REGISTO = X
X / (Capacidade da Pista / 2) = Y } N DE MEIAS
PISTAS
Y * 2 = Z } N TOTAL DE PISTAS
Z / Nde Pistas por Cilindro = N DE CILINDROS
14
um utilitrio de copia.
14.1 Jcl
//JS10
EXEC
//SYSPRINT DD
//SYSUT1
DD
//SYSUT2
DD
//SYSIN
DD
Instrues de
/*
PGM=IEBGENER,REGION=1024K
SYSOUT=*
Mensagens
DSN=...,DISP=...
Ficheiro Sequencial de Input.
DSN=...,DISP=...
Ficheiro Sequencial de Output.
*
Instrues de Controlo
Controlo
GENERATE MAXNAME=n
{,MAXFLDS=n}
{,MAXGPS=n}
Especificao de JCL
Pag. 21 / 26
Pgina: 21
Manual Prtico
14/07/2016
Data:
{,MAXLITS=n}
{,DBCS={YES NO}}
14.2.2 EXITS
{label}
EXITS {INHDR=routinename}
{,OUTHDR=routinename}
{,INTLR=routinename}
{,OUTTLR=routinename}
{,KEY=routinename}
{,DATA=routinename}
{,IOERROR=routinename}
{,TOTAL=routinename,size}
14.2.3 LABELS
{label}
LABELS {DATA=YESNOALLONLYINPUT}
14.2.4 MEMBER
{label}
MEMBER NAME=(name{,alias}...)
14.3 EXEMPLOS
Exemplos 1
Nota:
No caso em que o ficheiro definido no SYSUT1 for varivel (RECFB=V;VB) e o
ficheiro no SYSUT2 e fixo(F;FB) identifique no carto do SYSIN o tamanho do
registo a copiar:
Especificao de JCL
Pag. 22 / 26
Pgina: 22
Manual Prtico
14/07/2016
Data:
//......
//SYSIN DD *
GENERATE MAXFLDS=1
RECORD FIELD=(140,1,,1)
/*
^
^^ ^
|
|| |
Tamanho Campo--+
|| |
Inicio do Input-----+| |
Converso -----------+ |
Inicio de Output ------+
Exemplos 2
PGM=IEBGENER
SYSOUT=*
DSN=MY.FB.CLIST.LIB,
DISP=SHR
DSN=MY.VB.CLIST.LIB,
DISP=SHR
*
MAXFLDS=2,MAXNAME=1
FIELD=(8,73,,1),FIELD=(72,1,,9)
NAME=myclist
Exemplos 3
Exemplos 4
PGM=IEBGENER
SYSOUT=*
DSN=MY.PDS.FILE(AREPORT),
DISP=SHR
Especificao de JCL
Pag. 23 / 26
Pgina: 23
Manual Prtico
14/07/2016
//SYSUT2
//
//SYSIN
Data:
DD SYSOUT=*,
DCB=RECFM=FBA
DD DUMMY
Exemplos 5
//......
//* ---------------------------------------------------------------//*
RUN UTILITY MODULE TO LOAD DATASET
//* ---------------------------------------------------------------//BOOKSHF EXEC PGM=IEBGENER
//SYSUT1
DD *
BKSHELF=XTRN
BKSMDSN=----.----.-----.------.BKSHELF
BKSTITLE=XXXX-ZZZ/YYY RELEASE 2.0 MANUALS
BKSDATETIME=07/27/98 17:11:25
BKIDATETIME=07/27/98 17:10:57
BKSINDEX=XTRN
BKSIMDSN=----.----.-----.------.BKINDEX
BKSLEXIS=EIJENGL
BKFLAG=I
/*
//SYSUT2
DD DSN=----.----.-----.------.BKSHELF,
//
DISP=(NEW,CATLG,DELETE),
//
UNIT=SYSDA,SPACE=(8000,(2,1)),
//
DCB=(RECFM=VB,LRECL=255,BLKSIZE=8000)
//SYSPRINT DD SYSOUT=*
//SYSIN
DD DUMMY
//* ----------------------------------------------------------------
Exemplos 6
Especificao de JCL
Pag. 24 / 26
Pgina: 24
Manual Prtico
Data:
14/07/2016
15 Update Strings em Bibliotecas Utilizando o File-Aid Compware.
//E813075A JOB 'UPDATE STRINGS',MSGCLASS=X,NOTIFY=&SYSUID,CLASS=A
//*********
USER=E813075
//* YOU ARE VIEWING JCL THAT FILE-AID 8.0 HAS GENERATED TO
//* SEARCH/UPDATE DATASETS GLOBALLY.
//*
//* YOU CAN CHANGE THIS JCL IF DESIRED AND USE THE SUBMIT PRIMARY
//* COMMAND TO SUBMIT THE JOB. THE CREATE OR REPLACE PRIMARY COMMAND
//* CAN BE USED TO KEEP THIS JOBSTREAM FOR FUTURE USE.
//*
//* USE THE END COMMAND TO EXIT WITHOUT SUBMITTING THE JOB.
//*
//SPTEP01 EXEC PGM=FILEAID,REGION=4M
//STEPLIB DD DSN=CPWR.FAMVS.V8R0M2.LOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//DD01
DD DSN=NDIS.PRIVLIB.CNTL,DISP=SHR Biblioteca Input
//DD01O
DD DSN=NDIS.PRIVLIB.CNTL,DISP=SHR Biblioteca Output
//SYSIN
DD *
$$DD01 COPYALL MEMBERS=PMBD101,FORM=JCL,
Membro, (*) para todos
EDIT=(1,0,C'ECADCRT',
String a Procurar
C'TIPO_CARTAO')
String a Substituir
/*
Nota:
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//IRD600C
DD DSN=DIAA.QDIVR.AIRD6022.M060.&MMMAA,LABEL=(1,SL),
//
DISP=(,CATLG,DELETE),UNIT=ROBOT,
//
SPACE=(TRK,(0000090,0000110),RLSE), ==> IRB700
//
DCB=(RECFM=FB,LRECL=00080,BLKSIZE=0)
//*IRD600A
DD SYSOUT=(,),OUTPUT=(*.DD1),SEGMENT=5000
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Especificao de JCL
Pag. 25 / 26
Pgina: 25
Manual Prtico
14/07/2016
Data:
Especificao de JCL
Pag. 26 / 26
Pgina: 26