Nesta postagem vamos criar o nosso primeiro sistema em Natural, este sistema o fitotecário submete os jobs de backup para os operadores liberarem a noite e na madrugada para rodar, vou colocar os 4 principais programas para rodar esse sistema (o programa de menu principal, o programa submete os jobs de backup, um subprograma que vai ser um exemplo de jcl de backup, e um programa que submete os backup em separado, opção 00).
Telas
O menu principal:
Por exemplo - Escolhemos a opção 10 - Jobs de Backup de Segunda-Feira - vai cair nesta opção para digitar S (sim) ou N (não)
Depois de digitar S (sim) vai submeter os jobs de backup do turno da noite e da madrugada;
Programa - TLMSMENU
O programa de menu inicial, vou chamar ele de TLMSMENU, com ele que vamos escolher que dia vai ser submetido os jobs de backups;
Programa - TLMSCL01
O programa de menu inicial, com ele que vamos escolher que dia vamos submeter os jobs de backups, observe na linha 320 que ele faz um CALLNAT, que é o comando para chamar um subprograma, que são os programas dos jcl dos backups;
Subprograma - AAFAHDIA
Este é o subprograma que vai submeter o job de backup de um determinado banco de dados - este é um exemplo para os demais;
Programa - TLMSCL11
Este é o programa que vai submeter um job de backup determinado, por exemplo o DBA Adabas solicitou um backup de um determinado banco agora, só só entrar nesta opção e submeter o job de backup;
Espero que tenham curtido essa dica.
Telas
O menu principal:
------------------------------------------------------------------------------
AA01055 CONTROLE DE BACKUP DA FITOTECA TLMSMENU
13:39:21 ------------------------------------------------------------ 11/05/09
SUBMETER JOBS DE BACKUP PRODUCAO
+-------------------------------------------------+
| 00 - JOBS DE BACKUP SEPARADOS |
| 10 - JOBS DE BACKUP DA SEGUNDA-FEIRA |
| 20 - JOBS DE BACKUP DA TERCA-FEIRA |
| 30 - JOBS DE BACKUP DA QUARTA-FEIRA |
| 40 - JOBS DE BACKUP DA QUINTA-FEIRA |
| 50 - JOBS DE BACKUP DA SEXTA-FEIRA |
| 60 - JOBS DE BACKUP SEMANAL/SEGURANCA |
| 70 - JOBS DE BACKUP MENSAL/SEGURANCA |
| 80 - JOBS DE BACKUP ANUAL/SEGURANCA |
+-------------------------------------------------+
DIGITE A OPCAO DESEJADA __
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
SAIR SAIR
Por exemplo - Escolhemos a opção 10 - Jobs de Backup de Segunda-Feira - vai cair nesta opção para digitar S (sim) ou N (não)
------------------------------------------------------------------------------
AA01055 SERVICOS INTERNOS TLMSCL01
13:43:43 ------------------------------------------------------------ 11/05/09
BACKUP DE SEGUNDA-FEIRA PRODUCAO
SUBMETER OS BACKUPS: _ (SIM - NAO)
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
FIN MENU
Depois de digitar S (sim) vai submeter os jobs de backup do turno da noite e da madrugada;
JOB NUMBER Q J O SYST DEST PRI ST LINES FORM FCB FLASH
AAFAHDIA J.05146 I B - 9 H 0
AAFASDIA J.05147 I B - 9 H 0
AABSRES1 J.05148 I B - 9 H 0
AABSBACK J.05149 I B - 9 H 0
AABSBKPB J.05150 I B - 9 H 0
AAFABDIA J.05151 I B - 9 H 0
AACCSUBT J.05152 I B - 9 H 0
... 31 PERCENT SPOOL UTILIZATION.
------------------------------------ JOBS 7 TOTAL RECORDS 0
OP=Q CL=ALL IN=I JB= DS=1 SI=SM LR=1 LL=133 PP=0 DC= RL=999999 AD=J
DE= SC= PT= SQ=P# RR=0 OC= SD=2000 11.05.2009, 13:54:07
Programa - TLMSMENU
O programa de menu inicial, vou chamar ele de TLMSMENU, com ele que vamos escolher que dia vai ser submetido os jobs de backups;
> > + Program TLMSMENU Lib PRODUCAO
Top ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 *** ---------------------------------------------------------------- ***
0020 * MENU DA FITOTECA PARA SUBMETER OS JOBS DE BACKUP *
0030 * -------------------------------------------------------------------- *
0040 * AUTOR PELO CLAUDEMAR *
0050 * CRIADO EM 10/2004 *
0060 *** ---------------------------------------------------------------- ***
0070 DEFINE DATA LOCAL
0080 1 #ARQ1 (A2)
0090 END-DEFINE
0100 *** ---------------------------------------------------------------- ***
0110 FORMAT KD=ON
0120 SET CONTROL 'U'
0130 SET KEY PF3 NAMED 'SAIR'
0140 SET KEY PF12 NAMED 'SAIR'
0150 REPEAT
0160 IF *PF-KEY EQ 'PF3' OR = 'PF12'
0170 TERMINATE
0180 *** ---------------------------------------------------------------- ***
0190 INPUT (IP=OFF SG=OFF AD=MIL'_')
0200 02T '-' (78)
0210 / 02T *USER
0220 25T 'CONTROLE DE BACKUP DA FITOTECA'(I)
0230 72T *PROGRAM
0240 / 02T *TIME(AL=8)
0250 11T '-' (60)
0260 72T *DATE
0270 / 28T 'SUBMETER JOBS DE BACKUP'(I) 72T *LIBRARY-ID /
0280 /14T'+-------------------------------------------------+'
0290 /14T'|' ' 00'(GR)'- JOBS DE BACKUP SEPARADOS |'
0300 /14T'|' ' 10'(GR)'- JOBS DE BACKUP DA SEGUNDA-FEIRA |'
0310 /14T'|' ' 20'(GR)'- JOBS DE BACKUP DA TERCA-FEIRA |'
0320 /14T'|' ' 30'(GR)'- JOBS DE BACKUP DA QUARTA-FEIRA |'
0330 /14T'|' ' 40'(GR)'- JOBS DE BACKUP DA QUINTA-FEIRA |'
0340 /14T'|' ' 50'(GR)'- JOBS DE BACKUP DA SEXTA-FEIRA |'
0350 /14T'|' ' 60'(GR)'- JOBS DE BACKUP SEMANAL/SEGURANCA |'
0360 /14T'|' ' 70'(GR)'- JOBS DE BACKUP MENSAL/SEGURANCA |'
0370 /14T'|' ' 80'(GR)'- JOBS DE BACKUP ANUAL/SEGURANCA |'
0380 /14T'+-------------------------------------------------+'
0390 //27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')
0400 //30T'TECLE PF3 PARA SAIR'(I)
0410 *** ---------------------------------------------------------------- ***
0420 * PROGRAMAS QUE CHAMAM OS BACKUPS *
0430 *** ---------------------------------------------------------------- ***
0440 * TLMSMENU - MENU PARA RODAR OS JOBS *
0450 * TLMSCL01 - JOB DO BACKUP SEGUNDA-FEIRA *
0460 * TLMSCL02 - JOB DO BACKUP TERCA-FEIRA *
0470 * TLMSCL03 - JOB DO BACKUP QUARTA-FEIRA *
0480 * TLMSCL04 - JOB DO BACKUP QUINTA-FEIRA *
0490 * TLMSCL05 - JOB DO BACKUP SEXTA-FEIRA *
0500 * TLMSCL06 - JOB DO BACKUP SEMANAL + SEGURANCA *
0510 * TLMSCL07 - JOB DO BACKUP MENSAL + SEGURANCA *
0520 * TLMSCL08 - JOB DO BACKUP ANUAL + SEGURANCA *
0530 * TLMSCL10 - JOB DE BACKUP SEPARADOS *
0540 * TLMSCL99 - RETORNA AO MENU INICIAL *
0550 *** ---------------------------------------------------------------- ***
0560 IF #ARQ1 EQ '10'
0570 FETCH 'TLMSCL01'
0580 IF #ARQ1 EQ '20'
0590 FETCH 'TLMSCL02'
0600 IF #ARQ1 EQ '30'
0610 FETCH 'TLMSCL03'
0620 IF #ARQ1 EQ '40'
0630 FETCH 'TLMSCL04'
0640 IF #ARQ1 EQ '50'
0650 FETCH 'TLMSCL05'
0660 IF #ARQ1 EQ '60'
0670 FETCH 'TLMSCL06'
0680 IF #ARQ1 EQ '70'
0690 FETCH 'TLMSCL07'
0700 IF #ARQ1 EQ '80'
0710 FETCH 'TLMSCL08'
0720 IF #ARQ1 EQ '01'
0730 FETCH 'TLMSCL88'
0740 IF #ARQ1 EQ '00'
0750 FETCH 'TLMSCL11'
0760 END
Programa - TLMSCL01
O programa de menu inicial, com ele que vamos escolher que dia vamos submeter os jobs de backups, observe na linha 320 que ele faz um CALLNAT, que é o comando para chamar um subprograma, que são os programas dos jcl dos backups;
> > + Program TLMSCL01 Lib PRODUCAO
Top ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 *** ---------------------------------------------------------------- ***
0020 *** BACKUP DE SEGUNDA FEIRA DA FITOTECA ***
0030 *** ---------------------------------------------------------------- ***
0040 DEFINE DATA LOCAL
0050 1 #ARQ1(A1)
0060 END-DEFINE
0070 *** ---------------------------------------------------------------- ***
0080 *** PF'S ***
0090 *** ---------------------------------------------------------------- ***
0100 FORMAT KD=ON
0110 SET CONTROL 'U'
0120 SET KEY PF3 NAMED 'MENU'
0130 SET KEY PF1='FIN'
0140 *** ---------------------------------------------------------------- ***
0150 *** MENU ***
0160 *** ---------------------------------------------------------------- ***
0170 INPUT (IP=OFF SG=OFF AD=MIL'_')
0180 02T '-' (78)
0190 / 02T *USER
0200 31T 'SERVICOS INTERNOS'(I)
0210 72T *PROGRAM
0220 / 02T *TIME(AL=8)
0230 11T '-' (60)
0240 72T *DATE
0250 / 28T 'BACKUP DE SEGUNDA-FEIRA' (I) 72T *LIBRARY-ID
0260 ///////22T 'SUBMETER OS BACKUPS:' #ARQ1 '(SIM - NAO)'
0270 *** ---------------------------------------------------------------- ***
0280 IF #ARQ1 NE 'S'
0290 FETCH 'TLMSMENU'
0300 *** ---------------------------------------------------------------- ***
0310 IF #ARQ1 EQ 'S' OR = 's'
0320 CALLNAT 'AAFAHDIA'
0330 CALLNAT 'AAFASDIA'
0340 CALLNAT 'AABSRES1'
0350 CALLNAT 'AABSBACK'
0360 CALLNAT 'AABSBKPB'
0370 CALLNAT 'AAFABDIA'
0380 CALLNAT 'AACCSUBT'
0390 FETCH 'TLMSMENU'
0400 *** ---------------------------------------------------------------- ***
0410 IF #ARQ1 = ' ' FETCH 'TLMSMENU'
0420 END
Subprograma - AAFAHDIA
Este é o subprograma que vai submeter o job de backup de um determinado banco de dados - este é um exemplo para os demais;
> > + Subprogram AAFAHDIA Lib FITOTECA
Top ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 * ----------------------------------------------------------------- *
0020 * BACKUP DO BANCO DA FOLHA DE PAGAMENTO *
0030 * ----------------------------------------------------------------- *
0040 DEFINE DATA
0050 LOCAL
0060 1 #WCALLER (A4) INIT <'NAT'>
0070 1 #WJOBNUM (A8)
0080 1 REDEFINE #WJOBNUM
0090 2 FILLER (A3)
0100 2 #WNUMJOB (N5)
0110 1 #WC (A80/23)
0120 1 #WTAB (A4)
0130 1 REDEFINE #WTAB
0140 2 #WTIPO (A1)
0150 2 #WCODIGO (N3)
0160 1 #WRC (N1)
0170 1 #WQTE (B2)
0180 1 #WC1 (A80)
0190 * ----------------------------------------------------------------- *
0200 * DEFININDO OS PARAMETROS DO JCL *
0210 * ----------------------------------------------------------------- *
0220 END-DEFINE
0230 MOVE
0240 '//AAFAHDIA JOB (AAFS,DIBD),SUPORTE,CLASS=B,MSGCLASS=A,TYPRUN=HOLD'
0250 TO #WC(1)
0260 MOVE '//*UQ ALLOW' TO #WC(2)
0270 MOVE '//* --------------------------------------------------' TO #WC(3)
0280 MOVE '//* BACKUP DO BANCO DA FOLHA DE PAGAMENTO - DIARIO ' TO #WC(4)
0290 MOVE '//* --------------------------------------------------' TO #WC(5)
0300 MOVE '//FITOTECA EXEC AAFAS210,REF=''DIA'',TIPO=''1''' TO #WC(6)
0310 * ----------------------------------------------------------------- *
0320 * RODANDO O BACKUP *
0330 * ----------------------------------------------------------------- *
0340 COMPUTE #WQTE = 80 * 6
0350 CALL 'RJE' #WRC #WC(01) #WQTE
0360 CALL 'GETJOB' #WJOBNUM #WCALLER
0370 * ----------------------------------------------------------------- *
0380 END
Programa - TLMSCL11
Este é o programa que vai submeter um job de backup determinado, por exemplo o DBA Adabas solicitou um backup de um determinado banco agora, só só entrar nesta opção e submeter o job de backup;
> > + Program TLMSCL11 Lib FITOTECA
Top ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 *** ---------------------------------------------------------------- ***
0020 * FUNCAO: RODAR JOBS SEPARADOS DA FITOTECA; *
0030 * AUTOR: CLAUDEMAR MARTINS *
0040 *** ---------------------------------------------------------------- ***
0050 DEFINE DATA LOCAL
0060 1 #ARQ1(A8)
0070 1 #DIAD(A1) INIT <' '>
0080 END-DEFINE
0090 *** ---------------------------------------------------------------- ***
0100 FORMAT KD=ON
0110 SET CONTROL 'U'
0120 SET KEY PF3 NAMED 'MENU'
0130 SET KEY PF1='FIN'
0140 REPEAT
0150 *** ---------------------------------------------------------------- ***
0160 *** INICIO DO MENU - DIGITA O NOME DO BACKUP ***
0170 *** ---------------------------------------------------------------- ***
0180 RESET #DIAD
0190 INPUT (IP=OFF SG=OFF AD=MIL'_')
0200 02T '-' (78)
0210 / 02T *USER
0220 30T 'JOBS DE BACKUP DA FITOTECA'(I)
0230 72T *PROGRAM
0240 / 02T *TIME(AL=8)
0250 11T '-' (60)
0260 72T *DATE
0270 * /
0280 / 26T'SUBMETER JOBS DE BACKUPS SEPARADOS'(I) 72T *LIBRARY-ID /
0290 * /4T '-' (73)
0300 //
0310 ///30T'NOME DO BACKUP'(I) #ARQ1 (AD=MIL'_')
0320 * ////// 30T'TECLE ENTER PARA SAIR' (I)
0330 *** ---------------------------------------------------------------- ***
0340 *** EM BRANCO VAMOS VOLTAR PARA O MENU INICIAL ***
0350 *** ---------------------------------------------------------------- ***
0360 IF #ARQ1 = ' '
0370 FETCH 'TLMSMENU'
0380 *** ---------------------------------------------------------------- ***
0390 *** TESTE DO CLAUDEMAR - DUAS LINHAS ABAIXO ***
0400 *** ---------------------------------------------------------------- ***
0410 IF #ARQ1 EQ 'TESTE'
0420 CALLNAT 'TESTE'
0430 *** ---------------------------------------------------------------- ***
0440 IF #ARQ1 EQ 'AACCTLMS'
0450 CALLNAT 'AACCTLMS'
0460 *** ---------------------------------------------------------------- ***
0470 *** BACKUP DO BANCO 240 ***
0480 *** ---------------------------------------------------------------- ***
0490 IF #ARQ1 EQ 'AAFABDIA'
0500 CALLNAT 'AAFABDIA'
0510 IF #ARQ1 EQ 'AAFABSEM'
0520 CALLNAT 'AAFABSEM'
0530 IF #ARQ1 EQ 'AAFABSEG'
0540 CALLNAT 'AAFABSEG'
0550 IF #ARQ1 EQ 'AAFABMES'
0560 CALLNAT 'AAFABMES'
0570 IF #ARQ1 EQ 'AAFABANO'
0580 CALLNAT 'AAFABANO'
0590 *** ---------------------------------------------------------------- ***
0600 *** BACKUP DOS BANCOS SIAFEM ***
0660 *** ---------------------------------------------------------------- ***
0670 *** BACKUP AAFASLEG ***
0680 *** ---------------------------------------------------------------- ***
0690 IF #ARQ1 EQ 'AAFASLEG'
0700 INPUT NO ERASE 12/20
0710 'BACKUP SEMANAL (S), MENSAL (M) OU ANUAL (A)' (I) #DIAD
0720 IF #DIAD EQ 'S'
0730 CALLNAT 'AAFASLES'
0740 IF #DIAD EQ 'M'
0750 CALLNAT 'AAFASLEM'
0760 IF #DIAD EQ 'A'
0770 CALLNAT 'AAFASLEA'
0780 RESET #DIAD
1920 *** ---------------------------------------------------------------- ***
1930 *** RODANDO O JOB VAI APARECER UMA MENSAGEM QUE FOI SUBMETIDO ***
1940 *** ---------------------------------------------------------------- ***
1950 INPUT (IP=OFF SG=OFF AD=MIL'_')
1960 02T '-' (78)
1970 / 02T *USER
1980 30T 'JOBS DE BACKUP DA FITOTECA'(I)
1990 72T *PROGRAM
2000 / 02T *TIME(AL=8)
2010 11T '-' (60)
2020 72T *DATE
2030 / 26T'SUBMETER JOBS DE BACKUPS SEPARADOS'(I) 72T *LIBRARY-ID /
2040 ///// 31T 'BACKUP SUBMETIDO'(NE)
2050 *** ---------------------------------------------------------------- ***
2060 *** VOLTANDO AO MENU INICIAL ***
2070 *** ---------------------------------------------------------------- ***
2080 FETCH 'TLMSMENU'
2090 END

0 comentários:
Enviar um comentário