Você está na página 1de 39

INTRODUO

O objetivo desse curso bsico de JCL (Job Control Language) equilibrar o conhecimento dessa ferramenta dentre os colaboradores que atuam na rea de controle mainframe da empresa OI, desempenho de nossas atividades. O JCL que veremos so os comandos que empregamos em nosso ambiente de trabalho. Faremos exposio de exemplos dos processos que controlamos em nossas atividades dirias, assim como debateremos pontos de ateno. A metodologia empregada ser de aulas expositivas que propicie uma interao entre todos os envolvidos nesse processo de aprendizagem. Est previsto uma carga de dez horas divididas em duas horas por dia durante uma semana. Para facilitar a presena de todos, foi determinado que esses encontros fossem realizados nos horrios das 12h00min s 14h00min ou das 18h00min s 20h00min, portanto, fica a critrio de cada um escolher o melhor horrio, aquele que principalmente no choque com o seu horrio de trabalho. Aproveitando esse momento privilegiado de troca do conhecimento, abordaremos tambm os assuntos: Abertura automtica de incidentes por cancelamento de processo e os ambientes de Nono Digito e Homologao, como funciona o envio de arquivos para o diretrio corporativo, os CONTROLs D e O e o Pelicano. nas atividades de processamento de dados. Com isso procurar disseminar informaes a que venha agregar valores para o

2. JCL - SUA FINALIDADE


O JCL (Job Control Language) surgiu na dcada de 1960 foi introduzido nos sistemas /360. Continua em utilizao nas plataformas mainframe IBM para os processamentos eletrnicos de dados (informaes).

JCL uma linguagem que possibilita que um programa se comunique com o computador de grande porte mainframe da IBM.

Quando um programa submetido para execuo no sistema, ele passa a ser chamado de JOB, e deve ser construdo com a utilizao da linguagem de JCL. no JOB que esto s informaes necessrias para que os dados sejam processados. Uma unidade de servio (job) submetido ao sistema. Consiste de um ou mais steps. Um JOB formado por trs comandos (cartes) principais:

Comando JOB - Informa, entre outras coisas, o nome do job. Comando EXEC - Informa, entre outras coisas, o nome do programa que ser executado, e o primeiro carto de uma procedure. Comando DD - Informa, entre outras coisas, o nome dos data sets (arquivos) que sero lidos ou gravados o qual descreve um arquivo a ser utilizado no programa (step)

Em um job podemos ter vrios cartes EXEC, vrios cartes DD, porm apenas um carto JOB. Outros comandos do JCL: Delimitador ( /*) indica o fim do arquivo; marca o fim dos dados. Comentrios (//*) so codificados entre as colunas 4 a 80, com objetivo de documentar o JCL. 2

Nulo (//) Usado para indicar o final de cartes de um JCL. Comando PROC inicia um procedimento (procedure) catalogado ou do fluxo de entrada, e indica valores defaults para os parmetros simblicos.

Comando PEND indica o final de um procedimento de fluxo de entrada.

Na prtica, geralmente so usados apenas os comandos JOB, EXEC, DD e Comentrio. Os detalhes e a codificao do JCL podem at ser complicados, porm os conceitos gerais so simples. Alm disso, utilizamos apenas um pequeno subconjunto de parmetros, cerca de 10%, para 90% dos servios que queremos utilizar. (BARBAR, 2011, p. 59) O JCL fornece as informaes: Identificao do incio de uma descrio de servio; Ordem em que os programas devem ser executados; Nome do programa a executar em cada etapa; Informaes sobre cada programa; Quantidade de memria necessria; Parmetros de execuo; Informao sobre os arquivos que cada programa necessita.

3. O Carto JOB
Geralmente as empresas que precisam utilizar a linguagem do JCL, customizam a sua codificao, ou seja, o carto pode mudar em cada instalao. Vejamos um JCL codificado para o carto JOB. 3

=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-000001 //BTPOP000 JOB (243,2,15),CONTROLM,REGION=0M,TIME=3, 000002 // 000003 // 000004 // 000005 // MSGCLASS=0,CLASS=5,PRTY=13,NOTIFY=TR76124, MSGLEVEL=(1,1),TYPRUN=HOLD,COND=((3,LT),(12,GT)), ADDRSPC=VIRT,BYTES=(500,CANCEL),CARDS=(500,DUMP), PAGES=(400,WARNING),LINES=(300,CANCEL),

000006 // PASSWORD=ABCDE,USER=MYNAME,RESTART=PROCNAME.STEPNAME 000007 //

Em nossa instalao o nosso carto JOB ficaria assim, somente a linha 6:


=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-000001 //* %%GLOBAL GERAL 000002 //* 000003 //* %%INCLIB %%PRO#GERAL %%INCMEM FTP001X0 000004 //* 000005 //* %%GLOBAL %%UF%%.GLB%%JP 000006 //%%UF.%%JS.%%JP.%%JN JOB (),CONTROLM,REGION=0M,TIME=%%JT 000007 //*

Vamos fazer uma simulao, e obteremos o nosso carto JOB:


//DFFTP001 JOB (),CONTROLM,REGION=0M,TIME=1, // // MSGCLASS=0, MSGLEVEL=(1,1)

3.1 Regras para o carto JOB

Estudaremos o nosso carto JOB. No JCL existe uma regra geral onde os comandos do JCL devem comear com os caracteres // nas colunas 1 e 2, exceto para o comando delimitador. 4

O nome do JOB (jobname) deve sempre conter de 1 a 8 caracteres alfanumricos e nacionais (@, $ #) sendo que o primeiro caractere deve ser alfabtico ou nacional e identifica o JOB para que outros comandos de JCL ou o sistema operacional. Quando um JOB submetido, o sistema operacional atribui automaticamente um nmero (job number) ao mesmo o que permite que vrios outros JOBs com o mesmo nome sejam submetidos e assim permiti que processe um de cada vez.

Vejamos alguns nomes de JOB o jobname, marque C para certo e E para errado: //GBD406 ( ) //6ABC ( ) //A8563 ( ) //B76#4 ( ) //BTPOPA346 ( ) // DFFTP001 ( ) //BTARP#$@ ( ) Muitas instalaes indicam o nome do JOB a ser usado, e a nossa aqui no foge a regra, assim sendo, o nosso nome de JOB definido com oito caracteres alfanumrico ou nacional sendo o primeiro um caractere alfa. Caso a regra no seja empregada o JOB nem inicia. Ento j temos o nosso carto jobname //UFSIT000 que dever aps da oitava posio ser precedido de um espao em branco para que venha o comando JOB. J temos //UFSIT000 JOB e aps outro espao vem o Accounting so os parnteses () que em muitas instalaes podem conter informaes dentro deles num total de 143 caracteres que servem para entre outras coisas computar gastos com processamento. Depois do account vem o nome do programador. O nome deve conter no mximo de 20 caracteres, caso tenha caracteres especiais dever estar entre apstrofos. O nosso aqui para produo o CONTROLM, default.

Precisamos definir um TIME e uma REGION para o nosso carto JOB. Vamos l. O parmetro TIME especifica o limite de tempo de processador que o JOB pode utilizar. Quando o tempo mximo atingido, o JOB termina, ou seja, cancelado com o abend S322. A empresa 4Bears trabalha para adequar esse tempo de processamento. 5

Alguns valores de TIME que podem ser utilizados:


TIME=1439 TIME=NOLIMIT Indica que no h limite de tempo. TIME= (1,30) indica um minuto e trinta segundos.

O parmetro REGION especifica a quantidade de memria em (Kilobytes ou Megabytes) que ser alocada para o JOB utilizar no seu processamento. Geralmente utiliza-se REGION=0M para definir que no h limite de memria para o JOB. Esse limite definido internamente pelo sistema operacional. O nosso carto JOB tambm utiliza mais dois parmetros os MSGCLASS e o MSGLEVEL. O parmetro MSGCLASS especifica a classe de sada das mensagens do escalonador de JOBs. As classes de sada podem ser representadas por um nico caractere alfanumrico e essa definio customizada pelo suporte tcnico da instalao. O nosso MSGCLASS est definido com nmero zero. Essas mensagens podem ser observadas nas execues dos JOBs onde encontramos // nas colunas 1 e 2 so os comandos do JCL, j nas colunas 1 a 3 encontramos *** como sendo dos comentrios. Os comandos das procedures aparecem como XX nas colunas 1 e 2 j os overrides mostram +/ nas colunas 1 e 2. (BROWN, 1990, p.50). E nas sadas dos cartes SYSOUTs, quando codificados no JCL dos cartes DD. O parmetro MSGLEVEL tambm est definido com as opes (1,1). Isso representa que deve ser mostrado no JOB executado as informaes (jcl,alocaes) onde: Jcl 0 - Imprime apenas o comando JOB. 1 - Imprime todo o JCL mais a procedure. 2 - Imprime somente os comandos de JCL Alocao 6

0 - Somente as mensagens do JCL. 1 - Todas as mensagens de JCL e do sistema operacional.

Vamos entender como o nosso carto JOB montado, observem que ele parametrizado. Em nossa instalao o carto JOB ficaria assim.
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-000001 //* %%GLOBAL GERAL 000002 //* 000003 //* %%INCLIB %%PRO#GERAL %%INCMEM FTP001X0 000004 //* 000005 //* %%GLOBAL %%UF%%.GLB%%JP 000006 // %%UF.%%JS.%%JP.%%JN JOB ( ),CONTROLM,REGION=0M,TIME=%%JT 000007 //*

Vamos observar:

Observem as informaes abaixo e monte o JOB com seu jobname. Todos devem processar com o TIME=5:

//_____________________________________________________________________ //_____________________________________________________________________

//_____________________________________________________________________
//__________________________________________________________________________

//_____________________________________________________________________
//___________________________________________________________________________

Os comandos de COND e RESTART no so frequentemente utilizados no carto JOB devido ao uso do CONTROLM e de outros recursos, salvo em casos especiais. Veremos o emprego do COND no carto EXEC e com a utilizao dos DDs especiais IF/THEN/ELSE/ENDIF

4. O Carto EXEC
Cada passo (Step) do JOB comea com um comando EXEC que ou nomeia um programa a ser executado (compilado, aplicativo, utilitrio, etc) ou chama um procedimento catalogado as procedures. Um procedimento catalogado pode conter vrios passos do JOB. Cada um comea com um comando EXEC que especifica o programa ser executado. Pode haver at 255 comandos EXEC em cada JOB, cada um deles com seus respectivos cartes DD que definem os arquivos a serem usados nos passos (Steps). Vejamos as chamadas de Programas da procedure UFFTP001:

10

Aqui temos o EXEC da procedure UFFTP001:

O nome do step os stepnames tem sempre que comear na coluna 3, e deve ter de 1 a 8 caracteres, onde o primeiro caractere deve ser alfabtico ou nacional, no podendo ser um numrico. O nome do step no pode conter caracteres especiais nem brancos, opcional, mas se for omitido este step no poder ser referenciado dentro do JOB. Para que o step seja referenciado dentro do JOB, o nome do step deve ser nico. O carto EXEC pode ter comandos iguais aos do carto JOB como os de TIME e REGION. Eles exercem sua ao somente no step onde so referenciados. Outros comandos podem ser utilizados. O PARM que tem a finalidade de passar informaes para o programa que executado no step pode passar at 100 caracteres e esses podem ser separados por vrgulas ou no e devem vir entre parnteses ou apstrofos quando forem caracteres especiais. A sua continuao deve ocorrer aps da coluna 71 na linha debaixo a partir da coluna 16.

11

4.1 O comando COND no carto EXEC


Todos os programas ao terminarem, emitem um cdigo de retorno para o sistema operacional que vai de 0 a 4095. O parmetro COND permite que a execuo de um STEP dependa do cdigo de retorno do passo anterior (STEP). Em caso de erro de JCL o parmetro COND no respeitado. A interrupo ocorre de qualquer forma. Quando o parmetro COND omitido os passos so executados normalmente.

Formato do COND: COND=(cdigo,operador) Neste formato sero testados todos os cdigos de retorno dos steps anteriores COND=(cdigo,operador,stepname) O Cdigo especifica o nmero que o sistema ir comparar ao cdigo de retorno de cada step. COND=(cdigo, operador,stepname,procstepname) Para mais de uma procedure em apenas um JOB. O Operador especifica o tipo de comparao que ser feita ao cdigo de retorno de cada step. Ver tabela abaixo:

Operado r GT GE EQ NE LT LE

Significado Maior que (Greater than) Maior ou igual que (Greater than or equal to) Igual a (Equal to) Diferente (Not equal to) Menor que (Less than) Menor ou igual que (Less than or equal to) Operadores do Parmetro COND

Agora vamos observar o esquema apresentado abaixo:

12

Um exemplo:

Vejamos agora outros formatos de parmetros para o comando COND que so os: EVEN e ONLY. 13

O parmetro EVEN especifica que o step onde foi codificado seja executado mesmo que um step anterior tenha cancelado com erro. COND=EVEN Executa sempre. J o ONLY especifica que o step onde foi codificado execute se algum step anterior cancelar (abendar), ou seja, COND=ONLY Executa somente se um step anterior abendar. Vamos treinar: Faa as amarraes de condies conforme o solicitado. 1 - Todos os steps devem processar somente com cond=0000 //BTPOP234 JOB (),CONTROLM,TIME=1,REGION=0M,COND=(00,NE) //* //STEP0001 EXEC PGM=PROG1,____________ //* //STEP0002 EXEC PGM=PROG2,____________ //* //STEP0003 EXEC PGM=PROG3,____________ 2 - Step 2 roda somente se step 1 der 4 e o step 3 roda somente se o step 1 der 0. //BTPOP234 JOB (),CONTROLM,TIME=1,REGION=0M //* //STEP0001 EXEC PGM=PROG1,____________ //* //STEP0002 EXEC PGM=PROG2,COND=(04,NE,STEP0001) //* //STEP0003 EXEC PGM=PROG3,COND=(00,NE,STEP0001) //STEP1 //STEP2 //STEP3 -STEP1 -STEP2 -STEP3 EXEC PGM=TELGENER EXEC PGM=IEFBR14,COND=(04,NE,STEP1) EXEC PGM=IEFBR14,COND=(00,NE,STEP1) 04 00 FLUSH

3 - Step 2 roda somente se step 1 der 4 ou 8 e o step 3 so roda se abendar um step. //BTPOP234 JOB (),CONTROLM,TIME=1,REGION=0M 14

//* //STEP0001 EXEC PGM=PROG1,____________ //* //STEP0002 EXEC PGM=PROG2,____________ //* //STEP0003 EXEC PGM=PROG3,COND=(EVEN) 4 O step 1 no deve rodar e o step 3 somente roda se der cond maior ou igual 104 no step 2. //BTPOP234 JOB (),CONTROLM,TIME=1,REGION=0M //* //STEP0001 EXEC PGM=PROG1,COND=(01,NE) //* //STEP0002 EXEC PGM=PROG2,___103 104 105 //* //STEP0003 EXEC PGM=PROG3,COND=((103,GE,STEP0002),(105,LE,STEP002)) 5 - Step 2 roda somente se step 1 for menor ou igual a 4 e o step 3 roda somente se o step 2 for maior que 8. //BTPOP234 JOB (),CONTROLM,TIME=1,REGION=0M //* //STEP0001 EXEC PGM=PROG1,__0 1 2 3 4 5_________5 < 0 F //* //STEP0002 EXEC PGM=PROG2,COND=(05,LE,STEP0001) 7 8 9 10 //* //STEP0003 EXEC PGM=PROG3,COND=(07,GE,STEP0002) 6 - Step 3 roda somente se step 1 der 4. //BTPOP234 JOB (),CONTROLM,TIME=1,REGION=0M //* //STEP0001 EXEC PGM=PROG1,____________ //* //STEP0002 EXEC PGM=PROG2,____________ //* //STEP0003 EXEC PGM=PROG3,COND=(04,NE,STEP0001) 7 - Step 1 roda somente se step 1 der 8. Impossvel //BTPOP234 JOB (),CONTROLM,TIME=1,REGION=0M //* //STEP0001 EXEC PGM=PROG1,____________

5. O Carto DD
15

O carto DD (Definio de Dados) deve ser includo aps o carto EXEC com as especificaes dos arquivos que so utilizados quando na execuo de um JOB. Nele so fornecidas as unidades de entrada ou sada, um volume especifico a ser utilizado, as caractersticas dos arquivos e a sua disposio dentre outras informaes que devem ser definidas no comando DD do JCL. Os seus ddnames seguem as mesmas regras com relao ao stepname, ou seja, eles devem ter de um a oito caracteres alfanumricos ou nacionais, sendo o primeiro caractere um alfa. Seu formato:

//ddname DD parmetros-opcionais
Existem parmetros opcionais iguais aos: * (asterisco) serve para indicar os dados vm logo aps o comando DD. DATA indica que os dados com // nas colunas 1 e 2 viro logo aps o comando DD. DUMMY serve para indicar que o arquivo nulo. DYNAM serve para indicar uma alocao dinmica. Os parmetros de palavra-chave podem ser codificados em qualquer ordem, depois do parmetro posicional.

Vejamos alguns comandos DD:

16

COMANDO ACCODE AFF AMP BURST CHARS CHKPT COMPACT COPIES DCB DDNAME DEST DISP DLM DSID DSN FCB FLASH FREE HOLD LABEL MODIFY MSVGP OUTLIM OUTPUT PROTECT QNAME SEP SPACE SPLIT SUBALLOC SUBSYS SYSOUT TERM UCS UNIT VOL

DESCRI0 DOS PARAMETROS DE PALAVRA-CHAVE Solicita um cdigo de acesso para fitas ANSI Solicita separao de canal Fornece informao para arquivos VSAM Permite o uso de formulrios no contnuos em impressora Especifica um conjunto de caracteres para a impressora Solicita pontos de controle e fim de volume Compacta os arquivos enviados a uma estao de trabalho Solicita cpias de um arquivo de sada Especifica os parmetros de bloco de controle de dados Adia a definio de um arquivo Direciona a sada para um determinado destino Especifica a disposio do arquivo Especifica um delimitador alternativo Fornece a identificao de um arquivo em um disquete modelo 3540 Denomina o arquivo Especifica formulrio de imagem de controle para uma impressora Especifica a superposio de formulrio na impressora Libera o dispositivo de E/S quando o arquivo fechado Retm o arquivo de sada em uma fila Fornece informao de rtulos e proteo de arquivos Modifica as linhas de impresso na impressora Solicita um perifrico MSS (Mass Storage System) Limita as linhas de sada impressa Especifica o processamento de sada especial Solicita proteo de arquivos (senhas) D acesso a mensagens recebidas Solicita separao de canal Solicita o espao em acesso direto a ser alocado Aloca espao em um volume de acesso direto a ser sub-alocado Subaloca espao em um volume de acesso direto Especifica o subsistema a processar o arquivo Direciona um arquivo por meio do fluxo de sada do sistema Envia ou recebe um arquivo de um terminal timesharing Envia um conjunto de caracteres para impresso Especifica o dispositivo de E/S Especifica o volume e oferece informaes sobre ele

Embora existam vrios parmetros no comando DD, apenas seis so os mais usados regularmente em nossa instalao assim como nas demais tambm. So eles: (DCB, DISP, DSN, SPACE, UNIT e VOL) (BROWN, 1990, p. 82)

5.1 DSNAME (DSN) o nome do arquivo


17

O parmetro DSN denomina o nome do arquivo (datasets), e esses arquivos podem ser temporrios ou no temporrios. O arquivo temporrio quando nomeado so codificados dois ampersands (&&) antes do nome. Esses arquivos so criados e removidos durante o processamento do JOB. J os arquivos no temporrios podem ser salvos e reusados depois que o job termina. Esses arquivos devem ter no mximo 44 caracteres (incluindo pontos) separados por grupos de at 8 caracteres que formam os high-level qualifier (HLQ) iniciando sempre com um algarismo alfa. (SOARES, 2010, p.91)

Observe o arquivo temp.

5.2 DISP - disposio do arquivo.

18

O parmetro DISP deve informar ao Sistema o status do arquivo antes do incio do step e tambm informar o que fazer com o arquivo ao trmino do step. (BARBARA, 2011, p. 82) Vejamos o formato:

A situao do arquivo no inicio do step pode estar: NEW - o arquivo ainda no existe e ser criado; OLD - o arquivo j existe e no compartilhado com outro JOB. Se for especificado na sada e tiver um arquivo j catalogado, o mesmo ser sobreposto. Caso no tenha o processo ser cancelado por falta de arquivo. SHR - o arquivo j existe e pode ser compartilhados quando estiverem gravados em disco, ou seja, no compartilham com cartuchos ou fitas. (arquivos iniciados com V. R. G. F.) MOD para arquivo sequencial j existente, onde pode continuar gravar informao no final do arquivo. As situaes de trmino normal e anormal podem estar: PASS passa o arquivo para os steps seguintes do JOB. KEEP mantm o arquivo; DELETE apaga o arquivo; CATLG cataloga o arquivo; UNCATLG descataloga o arquivo.

19

5.3 DCB (DATA CONTROL BLOCK)


O parmetro DCB usado durante a execuo de um JOB e serve para especificar as caractersticas do arquivo que ser catalogado. (BARBARA, 2011, p.89)

Sua sintaxe: DCB=(sub-parmetros[,sub-parmetro]..) Vejamos os sub-parmetros:

RECFM Record Format especfica o formato e as caractersticas dos registros em um novo arquivo. o F Fixo o FB Fixo Blocado o V Varivel o VB Varivel Blocado o U indefinido

LRECL Logical Record Length especifica o tamanho dos registros. De 1 a 32760.

o Igual ao tamanho do registro para registros de tamanho fixo; o o Igual ao tamanho do maior registro mais os 4 bytes de descrio dos registros; Omitido para registros de tamanho indefinido.

20

BLKSIZE Block Size especifica o tamanho, em bytes, de um bloco de registro. O tamanho mximo de 32760.

o deve ser um mltiplo do LRECL para registros de tamanho fixo; o deve ser igual ou superior que o LRECL para registros de tamanho fixo; o deve ser igual ou maior que o LRECL para registros de tamanho varivel; o deve ser o mesmo tamanho que o maior bloco para registros de tamanho indefinido.

DSORG Data Set Organization especifica a organizao do arquivo. o PS - Seqencial o PO - Particionado o VS - Vsam o IS - Sequencial Indexado o DA - Acesso direto o U - Indefinido

Pode-se usar o recurso de referenciar uma DCB anterior do JCL com a utilizao do parmetro de referncia REFERBACK. Exemplo: //SEQE01 DD DSN=BT. POD01.ARQUIVO.DE.TESTE,DISP=SHR //* //SEQS01 DD DSN=BT.POD01.ARQUIVO.SAIDA,DISP=(,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,1),DCB=*.SEQE01

21

5.4 SPACE
O parmetro SPACE utilizado para alocar espao para todos os novos arquivos em um dispositivo de acesso direto. Espaos em volume de disco podem ser alocados em unidades de blocos, cilindros, trilhas ou bytes. (BARBARA, 2011, p.88) Sintaxe:

SPACE=(CYL,(pri,sec,dir),RLSE,CONTIG,ROUND) TRK, blocos,

TRK alocao em trilhas CYL alocao de cilindros blocos especifica o tamanho dos blocos, em bytes de 0 a 65535. pri especifica a quantidade primria de trilhas, cilindros ou blocos que sero alocados. sec especifica a alocao secundria de at 15 extents quando excede a alocao primria. dir indica a quantidade de blocos de diretrio para um arquivo particionado. RLSE requisita que o espao alocado para um arquivo de sada no, mas utilizado deva ser liberado quando o arquivo fechado. CONTIG requisita que o espao alocado para o arquivo deve ser contguo. Serve apenas para alocao primria. ROUND Quando o primeiro parmetro especifica o tamanho de bloco, o ROUND requisita que o espao alocado para o arquivo deve ser arredondado para um nmero inteiro de cilindro. 22

5.5 UNIT
O parmetro UNIT fornece ao sistema a informao necessria para associar um dispositivo a um arquivo. (BARBARA, 2011, p.83) Pode-se utilizar um dispositivo: especifico ou um tipo ou grupo de dispositivo ou ainda o mesmo dispositivo que vem de outro dataset. Vejamos: //SYSUT2 DD UNIT=74CB //CMWKF01 DD UNIT=3390 endereo do dispositivo modelo do dispositivo

//SEQS04 DD UNIT=SYSDA grupo do dispositivo

5.6 VOL ou VOLUME


O parmetro VOL usado para indicar o volume ou volumes no qual o arquivo reside ou dever residir. Com o uso desse parmetro pode-se requisitar: (BARBARA, 2011, p.85) um volume especfico; VOL=SER=624328 VOL=(,,,2,624329) a reteno do volume; um volume especfico pelo nmero serial; o mesmo volume usado por outro arquivo; , VOL=REF=*.STEP1.SEQE02 o nmero de volumes requeridos.

Sintaxe: VOLUME=(PRIVATE,RETAIN,vol-seq-number,volcount) PRIVATE requer um volume especfico RETAIN mantm o volume montado na unidade ao trmino da leitura Vol-seq-number identifica o volume, em um j existente dataset muitivolume, onde o processamento do dataset deve iniciar.

23

Volcount especifica o nmero de volume a ser utilizado, mximo de 255 o default 5 . Com a codificao do parmetro VOL=(,,,255) evita-se o abend 838. SER VOLSER. Identificador (ID) do volume ou volumes. REF Identifica ao sistema aonde obter o VOLSER de outro dataset ou de um comando DD anterior.

6 DDs Especiais
6.1 STEPLIB
Serve para informar a localizao do programa definido no carto EXEC deste step. O carto STEPLIB pode ser codificado em qualquer posio, entre os comandos DD, do step onde se aplica. Se o sistema no encontrar o programa na STEPLIB, ento procura na SYS1. LINKLIB e nas bibliotecas da LINKLST. Vejamos o carto STEPLIB

6.2 JOBLIB
24

Informa a localizao de todos os programas definidos nos cartes EXEC de todos os steps do JOB. O carto JOBLIB deve ser codificado imediatamente aps o carto JOB. Esse carto JOBLIB opcional. Se no mesmo JOB so utilizados os cartes JOBLIB e STEPLIB, no step onde utilizado o STEPLIB o sistema ignora o JOBLIB, ou seja, o programa vai ser procurado na STEPLIB e em seguida nas bibliotecas do sistema. Vejamos o carto JOBLIB

6.3 SYSIN
Quando se faz necessrio passar alguma informao para o programa por meio de alguma opo, ou vai se informar algum dado digitado para o programa, isto feito com a utilizao do carto DD *. Pode-se usar tambm o SYSIN com a opo de DUMMY quando no se quer passar nenhuma informao. Vejamos o SYSIN DD DUMMY e o uso do asterisco.

25

6.4 SYSOUT
A sada do JOB, ou o SYSOUT, o arquivo que contm o resultado do processamento. As classes de sada podem ser caracteres alfanumricos. Um asterisco indica ao sistema que use como classe de sada a mesma classe do MSGCLASS do carto JOB.

26

6.5 IF/THEN/ELSE/ENDIF

Comando IF (surgiu a partir do Sistema /390) permite a construo de expresses relacionais para teste de condio em um JOB. Oferece alternativa de fcil compreenso para o uso do COND.

Vejamos as sintaxes: //ddname IF condio THEN step ou steps a executar se a condio for verdadeira //ddname ELSE step ou steps a executar se a condio for falsa //ddname ENDIF Expresses relacionais NOT NOT GT > LT < EQ = NE = GE >= LE <=

[step.]RC [step.]ABEND [step.]RUN

[AND] ou & valor [OR] ou | expresso 2 ... expresso n

Exemplo:

27

Outros exemplos: IF com ELSE

28

Vejamos o resultado

6.6 As sadas SYS com erro.

SYSUDUMP - Utilizado para gravar um dump caso ocorra um ABEND. Produz um dump das reas alocadas ao Programa do usurio. SYSABEND Produz um dump igual ao SYSUDUMP com acrscimo de algumas reas do Sistema: o LSQA Local system queue rea (inclui subpool 229, 230 e 249) o IOS Blocos de controle Input/Output System (blocos de controle de Task com problema)

29

6.7 Comandos de JES2


/*ROUTE XEQ - Especifica o destino da execuo do JOB.

/*XEQ Especifica o local de execuo do JOB. /*MESSAGE Envia mensagem para console do operador. /*NOTIFY TR76124 Especifica um destino para receber a mensagem.

7. UTILITRIOS

Utilitrios so programas que fazem parte do sistema operacional. Desempenham funes de uso comum e auxiliam no gerenciamento de arquivos. Os programas utilitrios fornecidos pela IBM oferecem uma srie de funes teis, como cpia e listagem de arquivos e manuteno das bibliotecas de arquivos particionados, portanto, conhec-los passa ser essencial para os profissionais da rea de informtica do mainframe.

OBJETIVO Alterar a organizao de um dataset Converter um dataset para sequencial Copiar um arquivo particionado Copiar um arquivo sequencial

UTILITRIO IEBGENER, IEBUPDTE, IEBPTPCH IEBGENER, IEBUPTDTE IEBCOPY, IEHMOVE IEBGENER, IEHMOVE, IEBUPDTE, IEBPTPCH

30

Criar um dataset seqencial de sada Editar e copiar um arquivo sequencial Deletar, catalogar um dataset Substituir membros selecionados de um PDSE

IEBDG, IEBGENER, IEBPTPCH IEBGENER, IEBPUPDTE, IEBPTPCH IEFBR14 IEBCOPY, IEBUPDTE

Esses utilitrios, chamados de Utilitrios do Sistema, so vlidos apenas para os arquivos No-VSAM. Para os arquivos VSAM (Virtual Storage Acces Method) utilizamos o utilitrio IDCAMS Vamos observar alguns desses utilitrios, os mais utilizados em nossa instalao e que se encontram implantados nos diversos processos de todos os sistemas do cliente. (SAG, SFA, SAC, SCR, SCO...etc).

7.1 IEBGENER
O IEBGENER o utilitrio mais utilizado por ter a funo de copiar um arquivo sequencial de um dispositivo para outro, ou fazer outra cpia do arquivo com uma reteno maior, copiar para outro ambiente, em atividades corriqueiras, assim como podemos encontrar muitos desses programas em diversas procedures.

Vejamos o fluxo do utilitrio IEBGENER

31

Vejamos o JCL do utilitrio IEBGENER

Um exemplo de uma execuo:

32

Resultado da execuo com os cartes alterados na sua posio.

Mesmo com alterao na ordem o JOB processou OK

33

7.2 IEFBR14
um programa til, porm no um utilitrio para muitos autores (BARBARA, 2011, p. 121). No executa nada, ele uma instruo BR14, no exige nenhum DD com nome especial. Serve para, utilizar apenas o JCL dos comandos DD definidos em sua execuo, que se faa alocao e desalocao de arquivos no incio de um JOB ou para apagar arquivos no final.

Vejamos o fluxo do programa til IEFBR14

Vejamos o JCL do programa.

34

Um exemplo de execuo

35

7.3 TELGENER

um programa til e muito utilizado nas empresas de comunicao do antigo Sistema Telebrs. Tem a finalidade de copiar arquivos e encontra-se implantado em vrios procedimentos dos diversos sistemas que processam no mainframe.

Vejamos o fluxo do programa til TELGENER

Uma execuo

36

Resultado da Execuo

37

38

8. REFERNCIAS BIBLIOGRFICAS

BROWN, Gery DeWard. JCL SISTEMA/370. Rio de Janeiro: Campos, 1990. BARBARA, Saulo; ABREU, Jorge; BORBA, Ana Lucia. JCL e Utilitrios do Sistema Operacional z/OS. Rio de Janeiro: Moderna, 2011. SOARES, Jorge; BARBARA, Saulo; WILDMAR, Jorge; PINESCHI, Elcio. Introduo Arquitetura de Mainframe e ao Sistema Operacional Z/OS. Rio de Janeiro: Moderna, 2010.

39

Você também pode gostar