Apostila - VSAM

Embed Size (px)

Citation preview

VSAM

IntroduoO VSAM um gerenciador de arquivos que consiste de um mtodo de acesso memria virtual (VSAM) e de um Servio de Mtodo de Acesso (AMS). O VSAM usado para processar somente arquivos em discos. O AMS so servios do mtodo de acesso executados atravs do programa utilitrio IDCAMS, com mltiplas funes, que vo da criao manuteno de arquivos, do VSAM.

1

Principais Caractersticas

Aplicvel a Diferentes Tipos de ProcessamentosO VSAM foi projetado para satisfazer as necessidades mais comuns de organizaes de dados, tanto para processamento Batch, como para On-Line. O processamento batch requer eficincia em acessos seqenciais e indexados. O processamento On-Line necessita de acessos diretos. O VSAM permite todos os acessos que podem ser reunidos num mesmo DATA SET. Voc pode selecionar tipos de acessos ou a combinao de tipos que melhor se adaptam sua aplicao.

2

Controle CentralizadoInformaes sobre os arquivos esto disponveis em dois locais no sistema: no catlogo e em um arquivo denominado VVDS. No catlogo esto contidas informaes necessrias localizao do arquivo como: nome (DSN), tipo de dispositivo e identificao do volume (VOLSER). No VVDS (SYS1.VVDS.Vvolser), que reside no mesmo disco que o arquivo VSAM, ficam as informaes detalhadas sobre o mesmo, como: espao utilizado, espaos livres dentro do arquivo, quantidade de registros no arquivo, quantidade de registros lidos, atualizados, excludos, etc... Como todo arquivo VSAM catalogado, estas informaes esto sempre disponveis para controle.CATALOG

VTOC BCS A. B VSAD VVDS

Proteo de DadosO VSAM foi projetado para fornecer total proteo dos dados contra delees inadvertidas ou alteraes, o que conhecido como integridade de dados. A proteo prpria do VSAM contra usos no autorizados ou delees, e alteraes indevidas, conhecida como Data Security. Passwords, no so muito utilizados atualmente, dando-se preferncia proteo por produtos especialistas de Segurana, do tipo RACF. A razo para essa preferncia a de que a proteo dada pelo VSAM voltada ao arquivo e no ao usurio que acessa o arquivo. Exemplo: CICS arquivo BAN.CAD.CLIENTE Proteo por Password em termos de UPDATE - todos os acessos sero permitidos para a atualizao do arquivo. Proteo por Software Especialista - Os usurios que acessaro o arquivo devem estar na sua lista de acesso. Para cada usurio ou grupo ser dado o nvel de acesso necessrio: somente leitura, atualizao, etc ...

3

Cont.As opes de compartilhamento do uso de arquivos VSAM entre dois Address Spaces (Jobs batch ou monitores On-Line tipo CICS), so escolhidas por meio do parmetro Shareoptions da definio do arquivo VSAM(Cluster). Existem duas situaes onde pode ocorrer o compartilhamento: entre Jobs/CICS, executandos dentro de um mesmo sistema (CROSS REGION), ou entre dois sistemas distintos (CROSS SYSTEM). CROSS REGION 1. Especifica que o DATA SET pode ser acessado por vrios usurios com processamento de leitura "ou " somente 1 usurio com processamento de gravao. 2. Especifica que o DATA SET pode ser acessado por vrios usurios com processamento de leitura "E " e 1 usurio com processamento de gravao.

Cont.3. Especifica que o DATA SET pode ser totalmente acessado por processamento de leitura " E" gravao. Com esta opo, cada usurio responsvel pela integridade do DATA SET. 4. Especifica que o DATA SET pode ser totalmente acessado por processamento de leitura "E " gravao e os buffers usados para processamento direto so restaurados para cada Request. Para as opes 3 e 4, o programador pode usar macros assembler "ENQ" e "DEQ" para manter a integridade dos dados no acesso a um arquivo VSAM. CROSS SYSTEM 3. DATA SET totalmente acessado. Nesta opo o mtodo de acesso no assegura a integridade do DATA SET. 4. DATA SET totalmente acessado. Buffers utilizados so restaurados a cada request.

4

PerformanceUma indexao eficientemente organizada que permite rpido acesso a um determinado registro. Espaos distribudos (Free Space) no arquivo, que permitem uma rpida e fcil insero de registros (consequentemente menos reorganizaes no arquivo).

Simplicidade de UsoO VSAM mantm no Catlogo/VVDS os atributos fsicos e lgicos de todos os arquivos VSAM e tambm guarda a quantidade de espao alocado para esses arquivos. Tudo isso simplifica as especificaes de "JCL" necessrias para processar um arquivo VSAM.

5

Catlogo ICFCATLOGO MASTER

UCAT

UCAT

ARQUIVOS VSAM/NO USAM DO SISTEMA

ENTRADAS ARQUIVOS VSAM/NO VSAM P/USURIO OU APLICAO

ENTRADAS ARQUIVOS VSAM/NO VSAM P/USURIO OU APLICAO

Organizaes de ArquivosO VSAM possibilita quatro opes de organizao: De uma maneira simples, poder-se-ia dizer que seriam respectivamente equivalentes aos mtodos de acesso tradicionais: ISAM, SAM e DAM.

6

Key Sequenced Data Set - KSDSOrdenado seqencialmente por chave Acesso por ndice Chave de tamanho fixo Suporte para atualizao-deleo-adio Permite reserva de espao livre (free space)

Entry Sequenced Data Set- ESDSNo permite delees Acesso seqencial No permite reserva de espao livre Adies efetuadas sempre no fim fsico do arquivo

7

Relative Record Data Set - RRDSOs registros podem ter tamanho fixo ou varivel.Visto como uma srie de slots que podem conter registros. Permite acesso aos registros pelo nmero relativo. Formato padro VSAM com Control Interval e Control Areas.

Linear Data Set - LDSUtilizado pelo DB2 para armazenagem e recuperao dos dados. Pelo CICS para construo e recuperao de tabelas. Para construo de arquivos utilizados por DATA IN VIRTUAL.

8

Estrutura Lgica do Arquivo Vsam

Formato dos RegistrosO VSAM processa r stos de t anho fxo,varvele spanned, egi r am i i em bor o VSAM os tat com o r stos varvei A bl a r e egi r i s. ocagem dos r stos ( egi r especii fcao necessra nos outos m t i r odos de acesso) contol r ada pel VSAM porum m ecani o pr i onde os o sm pro r stos so agr egi r upados em I er os de C ontol ( I. nt val r e C) O analst deve se pr ia eocuparcom o t anho dest i er o,poi am e nt val s di o depende a boa peror ance no tat ent do seu ar vo. st f m r am o qui

9

Control Interval (CI)

RL1

RL2

RL3

FREE SPACE

RDF3

RDF2

RDF1

CIDF

A CI (Control Interval) a unidade de transferncia de informao entre o disco e a memria. Seu tamanho pode ser definido pelo sistema ou pelo usurio na criao do arquivo. Basicamente o tamanho calculado com base na utilizao principal do arquivo (Acesso seqencial ou randmico).

Tamanho do Control Interval (CISZ)Quando o CISZ no especificado na criao do arquivo, o VSAM determina o tamanho da CI baseado no tamanho do registro, parmetro Recsz, especificado. Este tamanho o valor timo para a melhor utilizao do espao em disco. Se o arquivo for mais acessado aleatoriamente, por chave, no interessante termos um CI muito grande, pois mais registros sero transferidos e bloqueados desnecessariamente, em caso de atualizaes. A seguir, regras para o clculo do CISZ: CISZ para o Data Component O CISZ para Data Component pode ser de 512 a 32.768 bytes (32k). O tamanho dever ser mltiplo de 512 quando estiver entre 512 e 8192 (8k); e mltiplo de 2048 quando estiver entre 8192 e 32768 bytes. O tamanho dever ser pelo menos 7 bytes (RDF + CIDF) maior que o tamanho mximo permitido para o registro, que 32761.

10

Cont.CISZ para ndex Component O CISZ para o Index Component pode ser de 512, 1024, 2048 e 4096 bytes, embora a melhor forma deixar o prprio VSAM calcular o valor apropriado. RLn ( registro lgico n). RDFn ( Record Defnition Field). CIDF (Control Interval Definition Field). Os campos da CI CIDF/RDF contm informaes relativas ao Control Interval, e sobre os registros lgicos. O RDF pode conter informaes tanto de registros de tamanho fixo, como de tamanho variado. A quantidade de Free Space e sua localizao no CI apontada pelo CIDF. NOTAS: Se os registros forem do mesmo tamanho, existiro somente dois RDF's, o primeiro define o tamanho dos registros e o segundo define a quantidade de registros. Podem tambm existir CIs s com Free Space.

RDF - Record Definifion FieldContm as informaes do registro, faz parte da CI. R LL Tamanho do contador = 2 bytes Indicador de controle = 1 bytePosio Do Bit 0 1 1 2-3 4 4 5-7 Valor 0 0 1 00 0 1 000 Indicao Reservado Sem informaes Adicionais e para esta RDF. Informaes adicionais para esta RDF. Reservado Indicador de registro nico Indicador de vrios registros do mesmo tamanho Reservado

11

CIDF - Control Interval Definition FieldDescreve a rea livre da Control Interval, faz parte da CI.

DD

FS

LL

FS Tamanho da rea livre = 2 bytes Deslocamento inicial da rea livre = 2 bytes

Relao CI / Tamanho do Bloco

12

Tamanho de Bloco Fsico Usado pelo VsamTamanho do bloco fsico sempre selecionado pelo VSAM. O VSAM escolhe o tamanho maior que possa dividir em partes iguais ou conter toda a CI. Tamanho tambm estabelecido com base nas caractersticas do dispositivo a ser utilizado (tipo do disco).

NOTA: Avaliar o tamanho da CI para melhor utilizao do device e performance.

Free SpaceSo reas livres em se tratando de Control Interval (CI) e/ou Control AREA (CA), que podemos especificar na definio do arquivo VSAM (KSDS). Parmetro da definio do arquivo: FSPC( %CI %CA). utilizado para facilitar e diminuir tempo de incluses no arquivo.

13

100 BYTES

100 BYTES

100 BYTES

150 BYTES

---FREE-----SPACE---

RDF 3

RDF 2

RDF 1

CIDF

01000000 00001000 00000000

00000000 00000000 00000000

01100100 00000011 10010110

R1 BYTE CIDF00000001

LL2 BYTE11000010 00000010 00110001

DD

FS

LL

FSTAMANHO FREE SPACE

DESLOCAMENTO FREE SPACE

Control AreaOs Control Intervals so agrupados em uma rea maior, chamada de Control Area (CA). Para um determinado arquivo, o nmero de Control Interval por CA sempre o mesmo, e calculado pelo VSAM com base na alocao de espao: primrio ou secundrio. Uma CA ocupa sempre um nmero inteiro de trilhas, sendo que o mximo de 1 Cilindro. A Control Area tem o seguinte formato: CONTROL AREA (CA)010 050 090 130 020 060 100 140 030 070 110 150 040 080 120 160 ---FREE-----SPACE-----FREE-----SPACE-----FREE-----SPACE-----FREE-----SPACE--RDF 3 RDF 3 RDF 3 RDF 3 RDF 2 RDF 2 RDF 2 RDF 2 RDF 1 RDF 1 RDF 1 RDF 1 CIDF CIDF CIDF CIDF

14

Key Sequenced Data Set - KSDSO que caracteriza um arquivo KSDS a entrada seqenciada pela chave dos registros lgicos, onde os mesmos so acessados pela chave ou seqencialmente, alm disso, ele composto por um componente de ndice e um componente de dados. O VSAM trata o ndice como se fosse um arquivo, e como tal composto de CIs que podem ter ou no o mesmo tamanho do CI do componente de dados. A criao dos ndices se d por CA/CI na criao do arquivo, isto , para cada CI de uma CA, existe uma entrada no CI de ndice que descreve a CA. Esta entrada contm um valor de chave e o endereo da CI (RBA) de dados no arquivo.

Cont.O componente de ndice formado por diversos nveis. 0 nvel mais baixo chamado de "Sequence Set", que aponta diretamente para os CI de uma determinada CA. Os nveis superiores so chamados de "Index Set", e apontam para os CI de ndices de nvel imediatamente inferior. Quando da definio de um arquivo KSDS, podemos optar por usar "Free Space", isto , fazer com que o VSAM deixe espaos vazios nos CI, e nas CA, os quais sero utilizados quando inseridos novos registros. Quando o registro deletado ou tem seu tamanho reduzido, o espao resultante incorporado ao "Free Spac" pelo VSAM. Num KSDS, os registros so armazenados logicamente em ordem seqencial do contedo de um campo-chave. Este campo parte do contedo do conjunto de dados. 0 campo-chave contm um valor, tal como o nmero de empregado ou nmero da fatura, o qual determina a posio de insero do registro no conjunto de dados, veja exemplo:

15

ExemploRegistro Lgico4265 Nmero da Pea ----654321-----Nmero da-------Fatura---1508 Preo Unitrio 100 Quantidade Sapato Descrio

Campo-ChaveA chave deve ser nica e estar na mesma posio de cada registro. NOTA: Registros de um KSDS possuem chaves. Um novo registro a ser adicionado ao arquivo e inserido na sua seqncia lgica por chave e quando possvel tambm na sua seqncia fsica.

ExemploCampo - ChaveConjuntos a serem Inseridos no Conjunto de dados 40 20 25 58 60 63

NOTA: Os registros a serem inseridos em um arquivo KSDS no precisam estar em ordem de chave, pois a insero sempre feita por chave, aleatoriamente. Quando o arquivo sofrer o processo de carga, arquivo vazio, a ento os registros devero estar classificados por ordem de chave, sob pena do VSAM abortar a carga.

16

Estrutura de ndicesO VSAM utiliza o Index Component para localizar o registro a ser lido ou localizar a posio para sua insero. INDEX STRUCTUREI N D E X S E Q U E N C E 27999 42000 67050 99999

10333 10009

23630 10080

25900 10333

27999 FS 14000 13550 14000 FS

42000

C O N T R O L A R E A

10001 10052

10002 10060

10003 10070

10009 Free 10080 Free

13400

13550

14000

FS

14001 15101

14011 17151

14028 23630

FS FS

10022

10250

10300

10333 Free

Free Space

Free Space

Cont.No Index, temos 2 nveis de controle: SEQUENCE SET Uma CI de Sequence Set controla uma CA. O Sequence Set est sempre em ordem lgica de chaves. INDEX SET - Nvel de controle do componente de ndices, acima do SEQUENCE SET.

17

InseroSEQUENCE SET 10009 10080 10333 Free

C O N T R O L A R E A

10001

10002

10003

10009

Free

CIDF

10052

10060

10070

10080

Free

CIDF

10222

10250

10300

10333

Free

CIDF

FREE SPACE

CIDF

Adicionando o Registro 1000610009 SEQUENCE SET 10001 C O N T R O L A R E A 10002 10003 10006 10009 Free CIDF 10080 10333 Free

10052

10060

10070

10080

Free

CIDF

10222

10250

10300

10333

Free

CIDF

FREE SPACE

CIDF

18

Adicionando o Registro 10007 Maior que Free Space do CI10007 SEQUENCE SET C O N T R O L A R E A 10001 10003 10009 10003

O VSAM FAZ O SPLIT10080 10333 CIDF

10002

Free

10052

10060

10070

10080

Free

CIDF

10222

10250

10300

10333

Free

CIDF

10006

10007

10009

Free

CIDF

Entry Sequenced Data Set - ESDSEm um ESDS, os registros so gravados fisicamente em sua seqncia de entrada no conjunto de dados. Os dados contidos em um registro ESDS no tem nenhuma relao com sua posio de gravao. Novos registros so simplesmente gravados no final do conjunto de dados. O VSAM no mantm um ndice para um ESDS. 0 acesso feito seqencialmente ou ento randomicamente (via um ndice AlternadoAIX). No acesso randmico usa-se o ndice alternado construdo a partir do arquivo ESDS. princpio o ESDS para aplicaes tipicamente seqenciais. Arquivo - Sequenciado pela entrada Os registros so armazenados na sua seqncia de entrada. Novos registros podem ser adicionados somente ao fim do arquivo.

19

Relative Record Data Set - RRDSUm arquivo RRDS, que semelhante a um ESDS, possui registros de tamanho fixo ou varivel que so armazenados em Slots. O parmetro RECORDSIZE que determina se os registros tero tamanho fixo ou varivel. Slots vazios ficam espera de registros que sero adicionados posteriormente. Os registros de dados so acessados por RRN (nmero relativo do registro que o nmero do Slot). O tamanho do "Slots" o mesmo do registro lgico. Podem ser feitas atualizaes, delees e updates. O endereo feito pelo nmero relativo do registro ou por RBA. Registros Spanned no so suportados.

ndices AlternadosPossibilita acessar um KSDS por uma chave diferente da chave primria. (Exemplo: arquivo de folha de pagamento por nome, nmero de matrcula ou cdigo de departamento ou um arquivo Vsam ESDS (seqencial) por algum campo dos registros que ser estabelecido como chave alternada). Os registros do ndice Alternado contm valores das chaves alternadas associadas com a chave primria. Esta associao feita com valor explcito da chave KSDS, com o seu RBA (4 Bytes) - ESDS.

20

Arquivo de Folha de PagamentoNDICE ALTERNADO 2 Cdigo do departamento NDICE ALTERNADO 1 Nmero do CPF

Path 1

BASE CLUSTER (nome)

Path 2

3235 3240 3247 3247 3247 :

Nilton Walter Ado Jos Paulo

S. S. S. S. S.

Ado Adalberto Jos Nilton ::

3247 4711 3247 3235

S. S. S. S.

015357558 Walter 183964119 Ado 235042372 Paulo : : :

S. S. S.

NOTA: Quando o acesso feito pelo PATH, os dados disponveis so todos os do Cluster Base.

Upgrade AutomticoPara os membros do UPGRADE SET. Se o cluster bsico for aberto diretamente ou via PATH para atualizao. Novos pointers so adicionados ao fim do conjunto de pointers do registro de ndice Alternado. (por ordem de chegada) Podem ser alteradas as chaves alternadas, exceto a chave de referncia (Primria). Atualizaes ou inseres falharo ao tentar produzir uma chave no nica para um membro de chave nica do UPGRADE SET. Um KSDS tem que ter chave nica, ndice Alternado pode ter chaves no nicas. Para uma determinada chave alternada existem vrias chaves primrias.

21

ndiceNDICE ALTERNADO 1 NDICE ALTERNADO 2

C

NDICE ALTERNADO 3

CLUSTER BSICO

NDICE ALTERNADO 4

AMSOs servios do mtodo de acesso (AMS) so executados pelo programa IDCAMS. Estes servios so utilizados pelo VSAM para criar e manter arquivos. O AMS permite a execuo de vrias funes como: Estabelecer catlogos Criar e inicializar arquivos Construir um ou mais Alternate Indexes Converter arquivos no VSAM para VSAM Fazer backup e restore Mover catlogo e arquivos de um sistema para outro Listar as entradas do catlogo Listar, copiar ou reorganizar arquivos Alterar atributos ou definies Deletar arquivos e catlogos Recuperar arquivos perdidos ou catlogos

22

KSDS Key Sequenced Data Set

Alocao de um Data Set Vsam Ksds* LAYO U T* N M ER O 8 N O M E I AD E SETO R C X.PO STAL SALR I FI D O LLER 30 2 4 4 8 24

JC L /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ********************************** /* * * * * * * * ALO C A D ATA SET VSAM KSD S * * * * * * * * * * * * /* * * * * * * ************ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /STEP01I / EXEC PG M =I C AM S D /SYSPR I T / N DD SYSO U T=X /SYSI / N DD * D EFI E C LU STER N ( AM E ( N AXP0410. TESTE. KSD S. LU STER ) C -

23

Cont.ER ASE SPEED FO R ( 120) I BED M R EPLI ATE C VO LU M E ( TG 003) W C YLI D ER S ( 1) N 2 C I 4096) SZ( FR EESPAC E ( 20) 10 KEYS ( 0) 8 R EC O R D SI ( 80) ZE 80 ) D ATA N AM E ( AXP0410. TESTE. KSD S. ATA) D ) I D EX N ( AN E ( N AXP0410. TESTE. KSD S.N D EX) I CI ( SZ 1024) ) /* / / -

Descrio dos Parmetros UtilizadosDEFINE CLUSTER Aloca cluster para DATA SET VSAM. NAME ERASE SPEED Dsn do VSAM KSDS que est sendo alocado. Regrava a rea do disco ocupada pelo componente de dados aps a execuo do comando DELETE. Se uma operao de carga abortada com este parmetro, a recarga ser a partir do incio. RECOVERY o DEFAULT e permite a recarga a partir do ponto de onde ocorreu a falha. Especifica nmero de dias para reteno do DATA SE, a partir da data de sua criao. Faz com que os Cis do nvel SEQUENCE SET (menor nvel do componente de ndice) de um KSDS seja colocado na primeira trilha da CONTROL AREA do componente de dados.

FOR IMBED

24

Cont.REPLICATE Faz com que cada CI do componente de ndice seja reproduzido em uma trilha separada, tantas vezes possvel. NOTA: Tanto o IMBED, como o REPLICATE otimizam o tempo de busca. Volume serial onde ser alocado o espao para o CLUSTER. Tamanho do Control Interval.

VOLUME

CISZ

FREESPACE (%CI %CA) A = Porcentagem de espao livre deixado em cada CONTROL INTERVAL. B = Porcentagem de control interval deixados livres em cada "CONTROL AREA.

Cont.KEYS (AB) A =Tamanho de chave. B =Deslocamento dentro do registro a partir de zero RECORDSIZE (A B) A =Tamanho mdio do registro. B =Tamanho mximo do registro. DATA NAME INDEX Indica incio dos parmetros do componente de dados. Nome para o componente de dados do Clister Indica incio dos parmetros do componente de ndice. Nome para o componente de ndice do clister.

NAME

25

Carga Fazendo uso do Repro de um Vsam Data Set Vsam KsdsNOTA: O arquivo de entrada dever estar em seqncia pela chave (caso no esteja, ser necessria a execuo de um sort externo), e sem chaves duplicadas. JCL//************************************************************** //********REPRO A PARTIR DO ARQUIVO SORTEADO ***************** //************************************************************** //STEP 02 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //EB1ARQ DD DSN=ENTRADA,DISP=(OLD,DELETE,DELETE) //AD1ARQ DD DSN=AXP0410.TESTE.KSDS.CLUSTER,DISP=OLD //SYSIN DD * REPRO INFILE(EBIARQ OUTFILE(ADIARQ) /*

Descrio dos Parmetros UtilizadosObservar a correspondncia entre os ddnames (EB1ARQ e AD1ARQ) possvel fazer alocao dinmica do DATA SET, a codificao ser: //SYSIN DD * REPRO INDATASET (ENTRADA) OUTDATASET(AXP0410.TESTE.KSDS.CLUSTER) /* Outros parmetros do repro REPLACE: Utilizado quando o DATA SET alvo (sada) contm registros, devendo ser um KSDS ou um RRDS. Se o DATA SET alvo tem registros com chaves iguais ao do DATA SET fonte, ocorrer erro de registro duplicado, no caso desse parmetro ser omitido.

26

Cont.Codificao: //SYSIN DD * REPRO INDATASET (ENTRADA) OUTDATASET(AXP0410.TESTE.KSDS.CLUSTER) REPLACE /* REUSE: Provoca a deleo lgica do DATA SET alvo (KSDS, ESDS ou RRDS), inserindo registros a partir do DATA SET fonte, como se o mesmo estivesse vazio.

Cont.//SYSIN DD * REPRO INDATASET (ENTRADA) OUTDATA (AXP0410.TESTE.KSDS.CLUSTER) REUSE /* SKIP e COUNT: -

SKIP especifica o ponto do arquivo fonte de onde sero copiados os registros COUNT determina o nmero de registros a serem carregados.

//SYSIN DD * REPRO INDATASET (ENTRADA) OUTDATA (AXP0410.TESTE.KSDS.CLUSTER) FROMKEY(00100) TOKEY(00200) /* FROMKEY e TOKEY: Estabelece o intervalo de registros a serem carregados (de FROMKEY-TOKEY).

27

Impresso de um Data Set Vsam KsdsJCL //************************************************************** //******** IMPRESSA0 DE UM ARQUIVO KSDS VSAM ***************** //************************************************************** //STEP 03 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //SYSIN DD * PRINT INDATASET(AXP0410.TESTE.KSDS.CLUSTER) CHAR /* //

Descrio dos Parmetros UtilizadosPRINT: Comando para impresso do DATA SET. CHAR: Opo para impresso no formato caracter. HEX: Formato hexadecimal. DUMP: Combinao das duas anteriores. Como no REPRO, os parmetros - FROMKEY e TOKEY - podem ser utilizados para especificar o conjunto de registros a serem impressos. NOTA: O comando PRINT pode ser utilizado para impresso de DATA SET no VSAM.

28

Deleo de um Data Set Vsam KsdsJCL //***************************************************** //*********DELECAO DE UM KSDS VSAM****************** //****************************************************** //STEP04 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE AXP0410.TESTE.KSDS.CLUSTER /*

Descrio dos Parmentros UtilizadosDELETE: PURGE: a ERASE: Comando para deleo do DATA SET. Este parmetro s dever ser codificado quando for estabelecido um perodo de reteno para o Data SET com codificao do FOR. Sem a codificao desse parmetro, o DATA SET no ser deletado. Este parmetro faz com que o espao do disco onde reside o DATA SET seja reescrito com caracteres X00, removendo assim todas as referncias aos dados do arquivo. A deleo do arquivo se torna mais demorada, portanto este parmetro deve ser utilizado com cuidado. Disponvel para utilizao futura.

CATALOG: Indica o catlogo do usurio onde se encontra o DATA SET a ser deletado. Este parmetro s deve ser utilizado sob orientao do suporte.

29

Alocao de um Alternate Index para um Ksds

Consideraes IniciaisO ndice Alternado oferece uma outra ordem de acesso ao DATA SET, alm daquela oferecida pelo campo da chave primria. Entretanto, seu uso indiscriminado, especialmente quando parte de um UPGRADE SET, pode acarretar srios problemas de performance. Dessa maneira, deve ser usado somente quando a aplicao realmente for necessria. JCL //********************************************************** //******ALOCA ALTERNATE INDEX PARA UM VSAM KSDS******** //********************************************************** //STEP05 EXEC PGM=IDCAMS /SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE AIX (NAME(AXP0410.TESTE.AIX1.CLUSTER) -

30

Cont.RELATE(AXP0410.TESTE.KSDS.CLUSTER) VOLUMES(WTG001) CISZ(2046) CYLINDERS(1 1) KEYS(23 8) NONUNIQUEKEY RECORDSIZE(23 47) FREESPACE(20 20)) DATA (NAME(AXP0410.TESTE.KSDS.AIX1.DATA)) INDEX (NANE(AXPOIO.TESTE.KSDS.AIX1.INDEX- )) /* // -

Descrio dos Parmetros UtilizadosDEFINE AIX RELATE VOLUMES Aloca um ALTERNATE INDEX. Indica o BASE CLUSTER ao qual o ALTERNATE INDEX est relacionado. Nome do volume serial onde ser alocado espao para o ALTERNATE INDEX. importante observar que este volume no deve ser aquele onde o BASE CLUSTER foi alocado. Este CONTROL INTERNAL SIZE deve ser diferente daquele definido para o BASE CLUSTER. o DEFAULT, e no seria necessrio codific-lo. Indica que o ALTERNATE INDEX CLUSTER alocado faz parte de um UPGRADE SET. Isso significa que qualquer manuteno efetuada no BASE CLUSTER, o VSAM atualizar o ALTERNATE INDEX CLUSTER automaticamente.

CISZ UPGRADE

31

Cont.RECORDSIZE O primeiro valor fornece o tamanho mdio do registro e o segundo, seu tamanho mximo. A frmula seguinte utilizada para calcular seu tamanho: onde: Tam: Reg. = 5 + tam. Chave alternada + n * tam.

O nmero '5' indica o nmero de bytes necessrios para controle interno do VSAM. N' o nmero de ocorrncias de chaves no nicas previstas. O clculo deve ser feito para o nmero mdio e mximo de ocorrncias. Seja generoso no clculo mximo, pois esse nmero limita a ocorrncia de chaves no nicas. NOTAS: 1 Para o caso de chave nica, teramos: tam. reg. = 5 + tam. ch. alt. + Tm. chave primria 2 Quando o Alternate Index se referir a um arquivo ESDS, o tamanho da chave primria ser de 4 bytes (RBA).

Carga Atravs do Comando Bldindex de um Alternate Index Cluster

32

Pr-CondiesAntes da execuo do comando, as funes seguintes devem ter sido executadas com sucesso: BASE CLUSTER deve ter sido alocado. BASE CLUSTER deve ter sido carregado com registros. O ALTERNATE INDEX CLUSTER, necessariamente, j dever estar alocado. JCL //**************************************************************** //******CARGA DO ALTERNATE INDEX A PARTIR DE UM ARQ KSDS****** //***************************************************************** //STEP06 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //BASE DD DSN=AXP0410.TESTE.KSDS.CLUSTER,DISP=OLD //AIX1 DD DSN=AXP0410.TESTE.KSDS.AIX1.CLUSTER,DISP=OLD

Cont.//IDCUT1 DD DSN=SORT.WORK.FILE.UM,DISP=OLD,AMP=AMORG, // VOL=SER=WTG003,UNIT=3380 //IDCUT2 DD DSN=SORT.WORK.FILE.DOIS,DISP=OLD,AMP=AMORG, // VOL=SER=WTG003,UNIT=3390 //SYSIN DD * BLDINDEX INFILE(BASE) OUTFILE(AIX1) INTERNALSORT CATALOG /*

33

Descrio dos Parmetros UtilizadosBLDINDEX IDCUT1 Efetua no ALTERNATE INDEX CLUSTER DDNAME DEFAULT do arquivo de trabalho para o sort externo. No caso de poucos registros no necessrio. Para se utilizar outros DDNAMES, devemos codificar os parmetros: WORKFILE(DDNAMEI,DDNAME2) Idem Indica que o referido DDNAME para um arquivo VSAM. A codificao de INTERNALSORT no necessria, pois a opo DEFAULT. O processo do BLDINDEX inicialmente faz um sort interno, verifica se atende, e em caso de insuficincia de memria virtual, automaticamente executa um sort externo, vindo da a necessidade dos DDNAMES IDCUT1 e IDCUT2 para alocao de espao em disco para o sort externo.

IDCUT2 AMORG NOTA:

Impresso de Registros de um Alternate Index ClusterJCL //******************************************************* //*****IMPRESSO DOS REGS. DE UM ALTERNATE INDEX ***** //******************************************************* //STEP07 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PRINT INDATASET (AXP0410.TESTE.KSDS.AIX1.CLUSTER) CHAR /* //

34

Definindo um Path

Consideraes IniciaisO PATH uma entrada no catlogo e estabelece uma ligao lgica entre o ALTERNATE INDEX e o BASE CLUSTER. Portanto, o PATH no um DATA SET, no ocupa espao e tambm no possui qualquer registro. Com este comando evita-se codificao adicional na DATA DIVISION, pois haveria necessidade de uma rea para BASE CLUSTER e outra para o ALTERNATE INDEX CLUSTER de um programa COBOL . JCL //********************************************************** //*****************DEFINE UM PATH ************************* //********************************************************** //STEP08 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE PATH (NAME (AXP0410.TESTE.KSDS.PATH) PATHENTRY (AXP0410.TESTE.KSDS.AIX1.CLUSTER) UPDATE) /* // NOTA: O parmetro UPDATE ( o default e no precisa ser codificado) permite que o BASE CLUSTER e seu UPGRADE SET sejam abertos automaticamente para processamento. Em caso contrrio (NOUPDATE), o BASE CLUSTER aberto, mas seu UPGRADE SET no.

35

Impresso de Registros Atravs do Path//************************************************************ //***IMPRESSAO DOS REGS. DE CL BASE ATRAVES DE UM AIX****** //************************************************************ //STEP09 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PRINT INDATASET(AXP0410.TESTE.KSDS.PATHI) CHAR /* // NOTA: Os registos do Base Cluster aparecero seqenciados pela chave alternada.

ESDS Entry Sequences Data SET

36

Esds. Alocao de um Data Set Vsam Esds.NMERO 8 NOME IDADE SETOR XPOSTAL SALRIO FILLER 30 2 4 4 8 24

JCL //*************************************************** //**********ALOCA DATA SET VSAM ESDS ************************ //*************************************************** //STEP11 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //SYSIN DD * DEFINE CLUSTER (NAME(AXP0410.TESTE.ESDS.CLUSTER) VOLUMES(WTG003) CYLINDERS(2 1) CISZ(4096) -

Cont.NONINDEXED RECORDSIZE(80 80) DATA (NAME(AXP0410.TESTE.ESDS.DATA)) /* // -

COMENTRIOS O parmetro NONINDEXED deve ser codificado, o DEFAULT INDEXED. Assim, caso no seja codificado, o VSAM assumir os valores DEFAULTS para parmetros como KEYS, FREESPACE etc. e tratar o DATA SET como KSDS. Os registros so carregados por ordem de entrada e no existem chaves.

37

Carga de um Data Set Vsam Esds com Comando ReproJCL //***************************************************************** //************REPRO PARA CARGA DO ESDS EM VSAM KSDS************ //***************************************************************** //STEP12 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //EB1ARQ DD DSN=AXP0410.DATA(ENTRADA),DISP=SHR //BASE DD DSN=AXP0410.TESTE.ESDS.CLUSTER,DISP=OLD //SYSIN DD REPRO INFILE(EB1ARQ) OUTFILE(BASE) /* //

Impresso de um Data Set Vsam EsdsJCL //**************************************************************** //**************IMPRESSAO DE UM ESDS VSAM ********************* //**************************************************************** //STEP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //SYSIN DD * PRINT INDATASET(AXP0410.TESTE.ESDS.CLUSTER) CHAR /* // COMENTRIOS Observe que os registros so impressoras segundo a ordem de gravao.

38

Esds. Deleo de um Data Set Vsam Esds.JCL //*************************************************************** //**************DELECO DE UM ESDS VSAM ********************** //**************************************************************** //STEP13 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //SYSIN DD * DELETE AXP0410.TESTE.ESDS.CLUSTER ERASE CATALOG(AXPO410) /* //

RRDS Relative Record Data Set

39

Alocao de um Data Set Vsam RrdsNUMERO 2 DESC. PEA 30 *LAYOUT* COD. FORN. NOME DO FORN. 6 30 JCL FILLER 12

//****************************************************** //**************ALOCA DATA SET VSAM RRDS********************* //****************************************************** // STEP15 EXEC PGM=IDCAMS // SYSPRINT DD SYSOUT=X // SYSIN DD * DEFINE CLUSTER NAME(AXP0410.TESTE.RRDS.CLUSTER) VOLUMES(WTG003) CYLINDERS(2 1) -

Cont.CISZ(4096) NUMBERED RECORDSIZE(80 80)) DATA (NAME(AXP0410.TESTE.RRDS.DATA)) /* // COMENTRIOS O parmetro NUMBERED deve ser codificado para identificar a criao de um arquivo RRDS. Lembre-se que o DEFAULT INDEXED (identifica um KSDS). -

40

Carga de um Data Set Vsam Rrds com Comando Repro//**************************************************************** //******************REPRO PARA CARGA DO RRDS******************* //**************************************************************** //STEP16 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //IEB1ARQ DD DSN=AXP0410.DATA(ENTRADA),DISP=SHR //BASE DD DSN=AXP0410.TESTE.RRDS.CLUSTER,DISP=OLD //SYSIN DD * REPRO INFILE(EBIARQ) OUTFILE(BASE) /* // COMENTRIOS O principal problema na carga a necessidade dos registros do arquivo de entrada estarem ordenados a partir de RRN (Relative Record Nmber) igual a 1. uma situao bem particular, tomando o comando REPRO pouco utilizado para carga de um RRDS.

Impresso de um Data Set Vsam RrdsJCL //************************************************************** //*****************IMPRESSA0 DE UM RRDS VSAM***************** //************************************************************** ///STEP17 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PRINT INDATASET(AXP0410.TESTE.RRDS.CLUSTER) CHAR /* //

41

Deleo de um Data Set Vsam RrdsJCL //**************************************************************** //*******************DELECAO DE UM RRDS VSAM****************** //**************************************************************** //STEP18 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //SYSIN DD * DELETE AXP0410.TESTE.RRDS.CLUSTER ERASE CATALOG(AX0410) /* //

Comando AlterTem aplicao na mudana de muitos dos atributos de um DATA SET VSAM (nem todos atributos podem ser modificados). Exemplo para mudana do nome de um DATA SET: JCL //************************************************************* //************* EXEMPLO - USO DO COMANDO ALTER************* //************************************************************* //STEP 19 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //SYSIN DD * ALTER AXP0410.TESTE.KSDS.CLUSTER -

42

Cont.NEWNAME(AXP0410.TESTNOVO.KSDS.CLUSTER) ALTER AXP0410.TESTE.KSDS.DATA NEWNAME(AXP0410.TESTNOVO.KSDS.DATA ALTER AXP0410.TESTE.KSDS.INDEX NEWNAME(AXP0410.TESTNOVO.KSDS.INDEX) /* // -

NOTA:O comando ALTER apesar de muito poderoso, apresenta restries. Para informaes detalhadas, consultar o manual AMS (Access Method Service) da IBM..

Comando ListcatEste comando utilizado para apresentar todos os atributos e caractersticas dos objetos VSAM / NO VSAM do catlogo ICF. A lista apresenta informaes que podero ajudar, por exemplo, a determinar quando um KSDS deve ser reorganizado ou mesmo identificar todos os parmetros definidos em tempo de alocao. Exemplo para o KSDS definido anteriormente: //******************************************************* //*******EXEMPLO DO USO DO COMANDO LISTCAT********** //******************************************************* //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=U //SYSIN DD * LISTCAT ENT(AXP0410.TESTE.KSDS.CLUSTER) ALL /*

43

Cont.ENTRIES (nome do arquivo) Especifica o nome do arquivo, cujas entradas no catlogo sero listadas. Se ENTRIES no for especificado e nenhum tipo de entrada for especificado, o catlogo inteiro ser listado. NAME/VOLUME/ALLOCATION/ALL Especifica o tipo de informao a ser includo no relatrio emitido. LEVEL Especifica que ser listado o nvel de nome de entrada. Exemplo: LISTCAT LEVEL (CNV) ALL CATALOG (nome do catlogo) - Opcional Especifica o nome do catlogo a partir de onde as entradas sero listadas. CLUSTER/DATA/INDEX/ALIAS/ SPACE/ NONVSAM Especifica o tipo de entrada a ser listada.

Comando para Controle da ExecuoToda vez que um comando do servio do mtodo de acesso executado, ele emite um cdigo de condio. So estes os cdigos de acordo com o manual (Access Method Services): 0 : a funo foi executada como desejada. 4: um problema foi encontrado na execuo da funo, por exemplo, o sistema no foi capaz de localizar uma entrada no catlogo com o comando LISTCAT. 8: a funo pedida foi executada, mas com erro. 12: a funo pedida no pde ser executada devido a um erro de lgica 16: ocorrncia de erro grave.

44

Cont.Voc pode usar os comandos modais IF-THEN-ELSE para controlar a seqncia de comandos executada. A varivel LASTCC contm o cdigo proveniente do ltimo comando executado, enquanto a varivel MAXCC contm o maior cdigo retornado por um comando executado anteriormente, dentro desta execuo do programa IDCAMS. Este valor o que aparece no COND CODE do JCL. Os operadores relacionais para comparao no LASTCC e MAXCC so:= ^= > < >=