Você está na página 1de 55

VSAM

Introduo
O 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.

Principais Caractersticas

Aplicvel a Diferentes Tipos de Processamentos


O 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.

Controle Centralizado
Informaes 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 Dados
O 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 ...

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.

Performance
Uma 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 Uso
O 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.

Catlogo ICF
CATLOGO 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 Arquivos
O 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.

Key Sequenced Data Set - KSDS


Ordenado 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- ESDS


No permite delees Acesso seqencial No permite reserva de espao livre Adies efetuadas sempre no fim fsico do arquivo

Relative Record Data Set - RRDS


Os 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 - LDS


Utilizado 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.

Estrutura Lgica do Arquivo Vsam

Formato dos Registros


O 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

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 Field


Contm as informaes do registro, faz parte da CI. R LL Tamanho do contador = 2 bytes Indicador de controle = 1 byte
Posio 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 Field


Descreve 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 Vsam


Tamanho 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 Space
So 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

R
1 BYTE CIDF
00000001

LL
2 BYTE
11000010 00000010 00110001

DD

FS

LL

FS
TAMANHO FREE SPACE

DESLOCAMENTO FREE SPACE

Control Area
Os 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 - KSDS


O 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

Exemplo
Registro Lgico
4265 Nmero da Pea ----654321-----Nmero da-------Fatura---1508 Preo Unitrio 100 Quantidade Sapato Descrio

Campo-Chave
A 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.

Exemplo
Campo - Chave
Conjuntos 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 ndices
O VSAM utiliza o Index Component para localizar o registro a ser lido ou localizar a posio para sua insero. INDEX STRUCTURE
I 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

Insero
SEQUENCE 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 10006


10009 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 CI


10007 SEQUENCE SET C O N T R O L A R E A 10001 10003 10009 10003

O VSAM FAZ O SPLIT


10080 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 - ESDS


Em 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 - RRDS


Um 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 Alternados
Possibilita 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 Pagamento


NDICE 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 Automtico
Para 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

ndice
NDICE ALTERNADO 1 NDICE ALTERNADO 2

NDICE ALTERNADO 3

CLUSTER BSICO

NDICE ALTERNADO 4

AMS
Os 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 Utilizados


DEFINE 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 Ksds


NOTA: 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 Utilizados


Observar 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 Ksds


JCL //************************************************************** //******** 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 Utilizados


PRINT: 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 Ksds


JCL //***************************************************** //*********DELECAO DE UM KSDS VSAM****************** //****************************************************** //STEP04 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE AXP0410.TESTE.KSDS.CLUSTER /*

Descrio dos Parmentros Utilizados


DELETE: 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 Iniciais
O 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 Utilizados


DEFINE 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-Condies
Antes 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 Utilizados


BLDINDEX 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 Cluster


JCL //******************************************************* //*****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 Iniciais
O 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 Repro


JCL //***************************************************************** //************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 Esds


JCL //**************************************************************** //**************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 Rrds


NUMERO 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 Rrds


JCL //************************************************************** //*****************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 Rrds


JCL //**************************************************************** //*******************DELECAO DE UM RRDS VSAM****************** //**************************************************************** //STEP18 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=X //SYSIN DD * DELETE AXP0410.TESTE.RRDS.CLUSTER ERASE CATALOG(AX0410) /* //

Comando Alter
Tem 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 Listcat
Este 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 Execuo


Toda 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:
= ^= > < >= <= ou ou ou ou ou ou eq ne gt lt ge le para para para para para para igual; diferente; maior que; menor que; maior ou igual; menor ou igual;

Exemplo
//*************************************************************** //*****REPRO P/ CARGA DO ESDS COM CONTROLE DE SEQ. EXEC.***** //*************************************************************** //STEP12 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //EB1ARQ DD DSN=AXP0410.DATA(ENTRADA),DISP=SHR //BASE DD DSN=AXP0410.TESTE.ESDS.CLUSTER, // DISP=OLD //SYSIN DD * REPRO INFILE (EB1ARQ) OUTFILE (BASE) IF LASTCC = 0 THEN LISTCAT ENT(AXP0410.TESTE.ESDS.CLUSTER) ALL

45

Cont.
ELSE DELETE AXP0410.TESTE.ESDS.CLUSTER /* // NOTA: O comando 'SET' pode ser usado para mudar o cdigo de condio: IF LASTCC = 0 THEN ELSE SET MAXCC = 16 No caso acima, o cdigo de retorno do passo ser 16, indicando que deveremos encerrar a execuo do JOB.

Cont.
Observe que os caracteres de continuao no precisam ser usados na seqncia DO/END, apenas para os parmetros contidos no LISTCAT, VERIFY, PRINT etc. O comando END deve ser nico em uma linha. LISTCAT PRINT IF LASTCC EQ 0 THEN DO END ELSE DO PRINT REPRO END NOTA: Se em uma instruo IF desejarmos executar mais do que um comando funcional, deveremos delimit-los com um DO-END.

46

Restries do Jcl para Arquivos Vsam


Sob circunstncias normais, somente dois parmetros so necessrios para arquivos VSAM: os parmetros DSN e DISP. Um terceiro parmetro pode ser usado, o AMP (Access Method Parameter), cujos subparmetros so utilizados para otimizar a performance, controlando a alocao dos BUFFERS de dados (BUFND) e de ndice (BUFNI). Existem outras situaes que sero tratadas em seguida. DCB Os arquivos VSAM so descritos atravs do bloco de controle do mtodo de acesso (ACB), e no atravs do bloco de controle de dados (DCB), portanto o parmetro DCB de JCL no aplicvel para o VSAM.

Cont.
DISP Se os subparmetros CATLG ou UNCATLG forem codificados, uma mensagem gerada, mas no h qualquer efeito sobre o DATA SET, porque DATA SETS VSAM so catalogados, descatalogados e deletados por meio do comando do AMS (Access Method Service). A codificao do DELETE como subparmetro do DISP no ter qualquer efeito sobre o DATA SET VSAM. Se NEW for codificado, o OS/390 alocar espao, mas este no ser utilizado. Nomes temporrios no podem ser usados com DATA SET VSAM (Nomes comeando com'&&').

DSN

LABEL Devido aos DATA SET VSAM residirem em dispositivos de memria de acesso direto, os subparmetros BLP, NL no possuem qualquer significado para arquivos VSAM.

47

Uso do Parmetro AMP Parameter) (Access Method Parameter)


O parmetro AMP serve para complementar informaes no bloco de controle do Mtodo de Acesso VSAM (ACB). Na maioria dos casos, no necessrio. principalmente usado para alocar BUFFERS de I/0 para o componente de dados e ndice, a fim de que se obtenha um melhor desempenho. Os subparmetros mais utilizados so os seguintes: AMORG: Indica que aquele comando DD se refere a um DATA SET VSAM. Por exemplo, se voc est planejando usar DUMMY para um DATA SET VSAM, com DDNAME TRANS, o comando DD deve ser codificado, como abaixo: //TRANS DD DUMMY, AMP=AMORG

BUFND
BUFND: Este parmetro fornece o nmero de I/O BUFFERS a ser utilizado pelo componente de dados do CLUSTER. Cada BUFFER do tamanho do CI de dados. O valor DEFAULT de dois BUFFERS de dados, sendo que um dos dois usado somente durante as divises (SPLITS) de 'CI/CA'. A quantidade de BUFFERS deixados para processamento normal '1'. Se no programa o acesso aos dados for seqencial (ACCESS MODE SEQUENTIAL ou DYNAMIC), a especificao de uma quantidade de BUFFERS maior um importante meio na reduo dos I/O's para o componente de dados. 0 valor timo depende do tipo de dispositivo que est sendo utilizado (disco 3380,3390 etc.) e dado pela frmula: BUFND = (N = NMERO DE CIs POR TRILHA) x 2

48

Cont.
'N' o nmero de CIs de dados que sero lidas em cada acesso ao disco(I/O). O nmero de CI's por trilha pode ser determinado pelo comando: LISTCAT ENT(AXP0410.TESTE.KSDS.CLUSTER) ALL Sua equao : NUM. DE CIS PARA TRILHA = A / B A = CI / CA campo do LISTCAT da parte do componente de dados;

Cont.
B = TRACKS/CA idem ao acima. Se Access Mode is Random for especificado no programa, o valor DEFAULT (igual a '2') suficiente para uma boa performance de programas BATCH Cobol. importante observar que o valor de BUFND quando apropriadamente codificado, reduz significativamente o tempo de processamento para BACKUPS e reorganizaes.

49

BUFNI
BUFNI: Para o componente de ndice do KSDS, cada BUFFER do tamanho de uma 'CI' do ndice. Este subparmetro pode ser codificado somente para 'KSDS' (ESDS e RRDS no possuem componente de ndice). O valor DEFAULT 1, o qual suficiente para processamento BATCH seqencial, mas em geral no suficiente para acesso randmico. Se Access Mode is Random ou Dynamic for especificado no programa Cobol para um arquivo KSDS, o valor timo a ser utilizado encontrado a partir do comando LISTCAT e da utilizao da seguinte equao: 1 Se a opo de tratamento de ndices IMBED no foi especificada na criao do arquivo:

Cont.
BUFNI = campo do LISTCAT do componente de INDEX - STATISTICS REC-TOTAL = Nmero 2 Se a opo IMBED foi especificada: BUFNI = ( A / B ) - (C / D ) + 1 Onde: A = HURBA DO INDICE B = TAM. DO CI DO INDICE C = HURBA DO DATA D = TAM. DO CI DO DATA X NUM. DE CIs POR CA (CI/CA) HURBA High Used RBA campo do LISTCAT CI/CA - Campo do LISTCAT NOTA: Esses clculos devero resultar em um valor inteiro .

50

BUFSP
BUFSP: Fornece o nmero de bytes requeridos para os BUFFERS do componente de dados e ndice. Se o valor maior do que aquele que aparece no parmetro BUFFERSPACE do comando DEFINE CLUSTER, ele o sobrepe. Apesar de podermos codificar este parmetro recomendvel deixar seu clculo a cargo do VSAM. Apenas para efeito de ilustrao, o valor que se obtm para este parmetro a partir da equao seguinte: BUFSP = (A * B * 2) + (C * D * 1)

Cont.
Onde: A = TAM. CI. DATA B = Quantidade de BUFFERS de dados C = TAM. CI. DE NDICE D = Quantidade de BUFFERS de ndice.

O PARMETRO AMP CODIFICADO DA SEGUINTE MANEIRA NO JCL: //EXAMP // DD DSN=EXAMP.KSDS.CLUSTER, DISP=SHR, AMP= ('BUFNI=5','BUFND=12')

51

Consideraes de Performance para Jobs 'Batch'


O segredo para melhorarmos o tempo de processamento, termos poucas e rpidas operaes de I/O's para qualquer DATA SET. Dessa forma, seria importante: 1. Mantermos em memria o primeiro e segundo nveis do componente de ndice para obtermos um melhor tempo de acesso (memria), do que atravs de I/O's a dispositivos eletromecnicos. Usar a frmula colocada anteriormente para sabermos quantos BUFFERS seriam necessrios para colocar todos os registros de ndice na memria. 2. Uma alternativa para a primeira opo, que a melhor, seria utilizar o IMBED, alocando um arquivo KSDS. Com isso, o SEQUNCE SET ficar replicado ao longo da primeira trilha de dados da CONTROL AREA. Com isto no haver perda de tempo, deslocamento mecnico do conjunto de braos de leitura e gravao, para a posterior leitura/gravao do CI de dados que contm o registro a ser processado.

Recomendaes para o Tamanho do C1


CONTROL INTERVAL (CI) a unidade bsica de transferncia de dados entre o disco e a memria Central. Os tamanhos de CI de dados vlidos so mltiplas de 512 bytes at 8k, e a partir deste ponto, mltiplos de 2048. Os tamanhos de CI de ndice so 512, 1024, 2048 e 4096 bytes, normalmente selecionados pelo VSAM na criao (DEFINE) de arquivo. A escolha do tamanho do CI baseia-se no tipo de processamento a ser executado no DATA SET, na utilizao do espao e caractersticas do dispositivo de armazenamento. A discusso que se segue, leva em conta os pontos citados.

52

Cont.
Processamento direto CIs de pequeno tamanho favorecem o processamento direto, pois elimina-se com isso a transferncia de dados desnecessrios do disco para a memria. No processo ON-LINE (CICS), menos registros ficam bloqueados em caso de atualizao. Processamento seqencial Cls de tamanhos maiores podem melhorar a performance para processamento seqencial, pois um maior nmero de dados ser transferido em cada 1/0. Processamento misto CIs podem ser de tamanho menor, o que atende s necessidades do processamento aleatrio, e para o processamento seqencial seriam fornecidos mais BUFFERS, conforme a frmula colocada anteriormente. Espao no utilizvel no 'Cl' Escolha um CI de dados que resultar em um espao mnimo no utilizvel no fim de cada CI.

Cont.
O uso do DEFAULT para o tamanho do CI do componente de ndice O tamanho do CI do componente de ndice dever normalmente ficar a cargo do prprio VSAM. Porm, em alguns casos raros, um valor muito pequeno para o CI do ndice poder causar desperdcio de espao no disco. Tal situao pode ocorrer quando o tamanho do CI do ndice no consegue acomodar o conjunto de KEYS e RBA para todos os CIs dentro de uma CA. O algoritmo interno do VSAM (baseado no tamanho do CI, nmero de CIs por CA e no tamanho mdio da chave aps compresso) normalmente funciona apropriadamente, a no ser em excees, quando a compresso de chaves no a esperada, como chaves totalmente distintas uma das outras, muitas CIs dentro de uma CA, quando deve ser feita uma validao da ocupao do espao desse arquivo.

53

Recomendaes para FREESPACE


As divises de CIs e CAs somente ocorrero quando forem inseridos novos registros dentro do CI, e no houver espao disponvel para acomodar o novo registro, bem como na substituio de registros de tamanhos variveis, resultando em novos tamanhos de registros. O parmetro FREESPACE no precisa ser especificado se este tipo de atividade no esperado, por exemplo, quando aps a carga inicial, todo o processamento ser apenas de leitura. NOTA: Sobre este assunto foram citadas algumas DICAS que possibilitam uma melhor performance no processamento de DATA SETS VSAM. Um estudo bem mais completo feito no manual OS/VS VSAM PERFORMANCE GUIDELINES (vide referncias para consulta).

Comparao entre os Trs Tipos de Vsam: Ksds, Data Sets Vsam: Ksds, Esds e Rrds
Acesso atravs de campos chave Somente os arquivos KSDS possuem campo de chave primria. Uma chave alternada nica pode ser usada para um ESDS, mas compiladores Cobol no suportam essa caracterstica para aplicaes BATCH (processando sob o CICS possvel). Chaves alternadas (Alternate Keys) KSDS e ESDS podem ter at '253' chaves alternadas. RRDS no suportam chaves alternadas. Espao requerido Um KSDS necessita de espao adicional para o componente de ndice. Opcionalmente, pode ser reservado espao adicional, deixado no componente de dados para inseres randmicas (parmetro FSPC). Delees Os registros so fisicamente deletados em arquivos KSDS e RRDS. Um ESDS no possui essa caracterstica.

54

Cont.
Divises De CI E CA Somente KSDS sofrem divises de CI's e CA's. Reorganizao Arquivos KSDS precisam ser freqentemente reorganizados porque os registros ficam fora de seqncia fsica, como conseqncia das divises (splits) de CI's e CA's. Arquivos ESDS e RRDS no precisam ser reorganizados. Acesso atravs do RBA Registros em arquivos KSDS e ESDS podem ser acessados atravs do RBA (Relative Byte Address), sob CICS. Para aplicaes BATCH Cobol, esse acesso no possvel. Tamanho do registro Registros podem ser de tamanho fixo ou varivel para arquivos KSDS, ESDS e RRDS.

Cont.
Aplicao Arquivos KSDS podem ser utilizados em aplicaes que requerem acesso atravs de um campo chave em particular ou acesso seqencial. Um arquivo ESDS normalmente utilizado quando os registros so processados seqencialmente ou com o fim da criao de arquivos BACKUP. Um RRDS ser utilizado se for possvel desenvolver um algoritmo que relacione um campo do registro com um nico RRN (Relative Record Number). Lembrar que, para acessos randmicos um RRDS mais eficiente do que um KSDS, no entanto, a dificuldade est no desenvolvimento do referido algoritmo.

55