Introdução
GDG (Generation Data Group), ou Grupo de Dados por Geração em português, é um conceito usado em sistemas mainframe para gerenciar e acessar versões históricas de arquivos ou conjuntos de dados de maneira organizada. O GDG permite que você mantenha um histórico de versões de um arquivo ou conjunto de dados específico, facilitando o acesso a versões anteriores para fins de recuperação ou auditoria.
Funcionalidade
GDGs são grupos de datasets cronologicamente relacionados. Suponha que queremos acompanhar as vendas diárias da supermercado. Nos podemos criar novos arquivos todos os dias, ou pode executar o mesmo job para produzir novas versões do GDG todos os dias. Portanto, precisamos criar um dataset modelo, chamado GDG Base, e todos os novos arquivos criados pelo sistema terão as propriedades da versão Base e criarão novos arquivos.
AAF.C.* Type on Volume(s)
AAA.C.ARRECA.G0001V00 ??? VC3264
AAA.C.ARRECA.G0002V00 ??? VC3364
AAA.C.ARRECA.G0003V00 ??? VC3363
AAA.C.ARRECA.G0004V00 ??? VC3396
AAA.C.ARRECA.G0005V00 ??? VC3412
AAA.C.ARRECA.G0006V00 ??? VC3469
AAA.C.ARRECA.G0007V00 ??? VC3446
AAA.C.ARRECA.G0008V00 ??? VC3293
AAA.C.ARRECA.G0009V00 ??? VC3240
AAA.C.ARRECA.G0010V00 ??? VC3555
AAA.C.ARRECA.G0011V00 ??? VC2822
AAA.C.ARRECA.G0012V00 ??? VC3556
AAA.C.ARRECA.G0013V00 ??? VC3542
AAA.C.ARRECA.G0014V00 ??? VC3561
AAA.C.ARRECA.G0015V00 ??? VC3197
AAA.C.ARRECA.G0016V00 ??? VC3508
AAA.C.ARRECA.G0017V00 ??? VC3415
AAA.C.ARRECA.G0018V00 ??? VC3528
AAA.C.ARRECA.G0019V00 ??? VC3282
AAA.C.ARRECA.G0020V00 ??? VC3411
AAA.C.ARRECA.G0021V00 ??? VC3280
Criando GDG
Criando uma GDG nova no sistema;
//AADPNATB JOB (AACC,DIST),CLAUD,CLASS=S,MSGCLASS=A
//*UQ ALLOW
//* -------------------------------------------------------
//* CRIANDO GDG NO SISTEMA
//* -------------------------------------------------------
//ALOCLIB EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
DEF GDG(NAME(ADABAS.C.CLAUD.CSA) LIM(1) SCR)
/*
Listando GDG
Vamos listar as definições da GDG;
//AAFSNATB JOB (AACC,SCHE),CLAUDEMAR,CLASS=S,MSGCLASS=A
//*UQ ALLOW
//* -------------------------------------------------------------
//* LISTA AS ENTRADAS
//* -------------------------------------------------------------
//STP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
LISTCAT ENT(ADABAS.C.CLAUD.CSA) ALL
/*
Observe no começo - ATTRIBUTES - LIMIT------------------1
1IDCAMS SYSTEM SERVICES TIME: 13:40:2
0
LISTCAT ENT(ADABAS.C.CLAUD.CSA) ALL
0GDG BASE ------ ADABAS.C.CLAUD.CSA
IN-CAT --- AAB01.SUPORTE.CATALOG
HISTORY
DATASET-OWNER-----(NULL) CREATION--------2023.229
RELEASE----------------2 LAST ALTER------0000.000
ATTRIBUTES
LIMIT------------------1 SCRATCH NOEMPTY
ASSOCIATIONS--------(NULL)
1IDCAMS SYSTEM SERVICES TIME: 13:40:2
0 THE NUMBER OF ENTRIES PROCESSED WAS:
AIX -------------------0
ALIAS -----------------0
CLUSTER ---------------0
DATA ------------------0
GDG -------------------1
INDEX -----------------0
NONVSAM ---------------0
PAGESPACE -------------0
PATH ------------------0
SPACE -----------------0
USERCATALOG -----------0
TAPELIBRARY -----------0
TAPEVOLUME ------------0
TOTAL -----------------1
0 THE NUMBER OF PROTECTED ENTRIES SUPPRESSED WAS 0
0IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
0
0IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0
UQS0009 - END OF DATA SET.
Alterando GDG
Vamos alterar o limit de uma GDG que já existe - ela foi criado de 1 vamos alterar para 11
//AACCIDCM JOB (AACC,SCHE),CLAU,CLASS=C,MSGCLASS=A
//*UQ ALLOW
//* ----------------------------------------------------------
//* CHANGE GDG BASE LIMIT
//* ----------------------------------------------------------
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
ALTER ADABAS.C.CLAUD.CSA LIMIT(11)
/*
Alterado com sucesso;
1IDCAMS SYSTEM SERVICES TIME: 13:42:0
0
ALTER ADABAS.C.CLAUD.CSA LIMIT(11)
0IDC0531I ENTRY ADABAS.C.CLAUD.CSA ALTERED
0IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
0
0IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0
UQS0009 - END OF DATA SET.
Listando - foi alterado para 11
1IDCAMS SYSTEM SERVICES TIME: 13:43:0
0
LISTCAT ENT(ADABAS.C.CLAUD.CSA) ALL
0GDG BASE ------ ADABAS.C.CLAUD.CSA
IN-CAT --- AAB01.SUPORTE.CATALOG
HISTORY
DATASET-OWNER-----(NULL) CREATION--------2023.229
RELEASE----------------2 LAST ALTER------0000.000
ATTRIBUTES
LIMIT-----------------11 SCRATCH NOEMPTY
ASSOCIATIONS--------(NULL)
1IDCAMS SYSTEM SERVICES TIME: 13:43:0
0 THE NUMBER OF ENTRIES PROCESSED WAS:
AIX -------------------0
ALIAS -----------------0
CLUSTER ---------------0
DATA ------------------0
GDG -------------------1
INDEX -----------------0
NONVSAM ---------------0
PAGESPACE -------------0
Deletando GDG
Vamos deletar uma GDG do sistema;
//AAACDELS JOB (AACC,SCHE),'CLAUDEMAR',CLASS=S,MSGCLASS=A
//*UQ ALLOW
//* ----------------------------------------------------------
//* DELETE GDG ENTRY IN A CATALOG
//* ----------------------------------------------------------
//STP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE (AAF.C.TEMP.CSA) GDG FORCE
/*
Resultado
1IDCAMS SYSTEM SERVICES TIME: 13:53:2
0
DELETE (ADABAS.C.CLAUD.CSA) GDG FORCE
0IDC0550I ENTRY (B) ADABAS.C.CLAUD.CSA DELETED
0IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
0
0IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0
UQS0009 - END OF DATA SET.
Please take off this post as you have violated my copyright to this article. Thank you.
ResponderEliminarI removed all your content, sorry;
Eliminar