VSAM

VSAM OVERVIEW

Este topico tem a funcao de informar sobre o VSAM e nao de formar um especialista. Portante, o assunto vai ser abordado de maneira conceitual.


VIRTUAL STORAGE ACCESS METHOD

Usado para arquivar e gerenciar dados. Também conhecido como IDCAMS (IDC Acess Method Services).

As vantagens do VSAM:

1 - Cataloga os Datasets;
2 - Datasets tem uma melhor preformance;
3 - É mais eficiente que outros metodos de acesso;
4 - Datasets com 'chave' (Key) podem ter multiplos índices;
5 - Para melhorar o acesso aos dados, mais memória virtual é usada.

As desvantatgens:

1 - É menos eficiente gerenciando arquivos sequenciais;
2 - Não suporta GDG's (Generation Data Group).


Normalmente, um sitema mainframe tem dois tipos de arquivos, VSAM e não-VSAM.
Os arquivos não-VSAM podem ser os sequenciais.
Os bancos de dados do DB2 e do IMS normalmente são instalados usandos Datasets VSAM.

Os Datasets acessados por um CICS normalmente são VSAM também.




Datasets VSAM

Linear Datasets

São Dstasets que tem um 'Stream' simples de dados não formatados. Os dados precisam ser formatados pela aplicação que está usando os mesmos.
Estes Datasets tem uso específico, iguais aos SCDS usados no SMS.
Um Dataset linear não pode ser acessado como se tivesse arquivos individuais.


Entry Sequenced Dataset (ESDS)

Este é um Dataset VSAM que é equivalente ao Arquivo Sequencial Ordinário. Arquivos gravados podm ser atualizados retornados ao seu lugar, mas novos dados tem que ser adicionados no fim do arquivo.

Os arquivos gravados são prcessados um de cada vez, na ordem em que são 'carregados', podem ser lidos do começo para o fim ou do fim para o começo.

Os arquivos gravados não podem ser deletados, mas podem ser marcados para deleção, para que a aplicação que está usando estes dados passem a nao usá-los mais.


Relative Record Datasets (RRDS)

Este tipo de Dataset permite acesso aos arquivos baseado em seu numero relativo de gravação. Este número não pode ser mudado, mas pode ser re-usado quando o Dataset for deletado.

Arquivos tipo RRDS podem ser chamados de arquivos numerados.


Key Sequenced Dataset (KSDS)

É um tipo de arquivo na qual os dados gravados podem ser processados sequencialmente ou randomicamente, baseado no valor de uma chave. Um arquivo KSDS é chamado de arquivo indexado.

Os arquivos KSDS fornecem uma melhoria de performance com relaçào a arquivos antigos, especialmente quando os dados devem ser processados randomicamente, é possível atualizar, deletar e inserir dados entre arquivos já existentes.

O aruivo KSDS tem duas partes, componente de dados e componente do índex.


Partitioned Datasets Extended (PDSE)

O PDSE é similar ao PDS, exceto que é gerenciado pelo VSAM.

As vantagens do PDSE são:

1 - Usa espaço de disco melhor;
2 - Expande os diretórios para mais membros;
3 - O VSAM recolhe automaticamente espaços sem uso;
4 - Membros do PDSE podem ser compartilhados;




Os Catálogos do VSAM

O VSAM gerencia os Datasets através de um catálogo.

O Integrated Catalog Facility (ICF), faz a integração entre o VSAM e o MVS, isto permite que os Datasets VSAM e não-VSAM sejam catalogados em um mesmo dispositivo de disco.

Os catálogos são divididos entre Master Catalog, que contém Datasets ou User Catalogs em seu catálogo.

Antes de um Dataset VSAM ser catalogado, um VSAM Volume DATASET (VVDS) é criado em um disco. O VVDS é um Dataset que contém as informações sobre os Datasets VSAM naquele volume de disco.

Os Arquivos VSAM e não-VSAM em um volume podem estar relacionados no Catálogo de Usuário ou no Catálogo Master.

Mas como é definido quem gerencia os Datasets o Master ou o User Catalog?
Este problema é resolvido através de um Alias, que é um 'apontador' que aponta para o User Catalog, onde todos os Datasets com um Alias serão catalogados no User Catalog.

Um Alias pode ter de 1 a 4 qualificadores. Mas este é um trabalho geralmente do time de segurança.

Quando um Dataset é procurado, o Master Catalog é verificado primeiro, se não encontrado, o Alias já o aponta para o User Catalog.

O Catálogo contém também o volume que se encontra o Dataset.




VSAM Cluster

Cluster é o nome que é usado para descrever um Dataset VSAM.

Um Dataset VSAM consiste de um ou mais Componentes. Quando um Cluster VSAM é acessado, o VSAM pega os dados dentro ou fora dos componentes dos Clusters.

Exemplos:

PAYROLL.MASTER - Este é o Cluster.

PAYROLL.MASTER.DATA - Este é o componente onde os arquivos de dados são aruivados.

PAYROLL.MASTER.INDEX - Este é o componente onde o dados sobre o índex são arquivados.


O Componente de Dados é parte do Cluster VSAM, onde os dados gravados estão arquivados.

O Componente de Índex está presente somente nos Datasets tipo KSDS. O Índex contém dois tipos de arquivos que são:

Index Set Records
Sequence Set Records

São usados para localizar arquivos de dados guardados no Componente de Dados do KSDS.

Se o que está sendo usdo é o KSDS, somente é permitido processar os dados na menma sequencia em que estão escritos.

Se estão sendo usados os RRDS, o VSAM localiza o arquivo gravado usando o numero deste para calcular a localização do arquivo no Componente de Dados. ESDS e RRDS não usam índex.


Control Areas

Control Interval - CI ( Intervalo de Controle ) - É um bloco lógico de dados para um Dataset VSAM.

Control Area - CA ( Área de Controle ) - É o nome da unidade de alocação física do Cluster VSAM. O tamanho da CA depende do tamanho do disco.


Aprofundando no VSAM - KSDS

O tipo mais usado de organização dos arquivos é o KSDS.

Os KSDS é dividido entre Index Component e Data Component.

O Index Component é dividido entre:

Index Set - Define uma 'chave' que contém o maior valor arquivado em cada sequencia de arquivos e um apontador que aponta para arquivo de Sequence Set que se quer acessar.

Sequence Set - Contém um arquivo para cada Control Area (área de controle) no Componente de Dados.


VSAM Control Interval

É a unidade de dados que é movida entre o Virtual Storage e Direct Acess Storage. São mantidos sempre numa sequencia de chave.

Quando criado KSDS ou RRDS, um espaço pode ser reservado para novos arquivos que podem vir a serem adicionados futuramente.




Definindo Arquivos VSAM com IDCAMS

As maneiras de processar Dataset's VSAM sao:

1 - Usando IDCAMS em um Job ou Job Step;

2 - Usando comandos de TSO

3 - Chamando um programa AMS

Este topico abordara a primeira opcao.

Exemplo em um JCL

//stepname EXEC PGM=IDCAMS

Um cartao SYSIN DD sempre sera necessario, pois os comandos sao lidos atraves dele. Assim como um cartao SYSPRINT DD.

Tambem serao necessarios outros cartoes DD, como o PRINT ou REPRO por exemplo.

Dois tipos de comandos sao usados quando carrega o IDCAMS:

1 - Funcional - Comandos que fazem alguma coisa.

2 - Modal - Comandos que controlam o processamento.

Comando de Definicao de Cluster:

DEFINE CLUSTER - Para definir um dataset VSAM (Linear Dataset, RRDS, ESDS).

Existem varias opcoes de parametros quando se define um Cluster:

1 - NAME

2 - VOLUME - Para especificar o volume ou volumes que se deseja (CYLINDERS, RECORDS, TRACKS)

3 - INDEXED/LINEAR/NONINDEXED/NUMBERED - Define organizacao dos dados

4 - MODEL

5 - REUSE/NOREUSE

6 - KEYS

7 - SPANNED/NONSPANNED

8 - RECORDSIZE

9 - FREESPACE

10 - SHAREOPTIONS




Definindo VSAM Usando JCL

Se tiver um SMS instalado, um Dataset VSAM pode ser definido usando as seguintes Keywords no JCL:

AVGERC

KEYOFF/KEYLEN

RECORG

LRECL

DATACLASS

Os VSAM definidos por JCL podem ser:

Permantentes

Temporarios

Ou ainda como serao tratados os Datasets:

Pre-Alocados

Deletados

Um Dataset PDSE tambem pode ser definido via JCL:

//MYPDSE DD DSN=MY.PDSE,DSNTYPE=LIBRARY,DYSP=

O parametro DSNTYPE=LIBRARY define um PDSE.




Usando o Comando ALTER

Este comando e usado para mudar atributos em um VSAM.

Alguns parametros opcionais para o comando ALTER:

CATALOG

NEWNAME

LIMIT




Usando o Comando LISCAT

Este comando e utilizado para listar as entradas do catalogo. Sejam arqruivos VSAM, nao-VSAM, GDG, etc.

Dois comandos sao usados para especificar os niveis das entradas no catalogo:

ENTRIES

LEVEL

Outros parametros tambem sao necessarios:

NAME

HISTORY

VOLUME

ALLOCATION

ALL

O catalogo tambem pode ser especificado no parametro, caso nao seja usado este parametro, o IDCAMS procura o catalogo usando o nome especificado no parametro ENTRIES.




Usando o Comando DELETE

Usado para remover as entradas do catalogo VSAM

Ao usar este comando,so o nome do Dataset pode ser usado.

Exitem ainda os seguintes parametros:

CATALOG - Usado para quando precisar encontrar um Dataset que nao foi encontrado em uma busca geral.

ERASE/NOERASE

PURGE/NOPURGE




Usando o Comando PRINT

Usado para imprimir o conteudo de um Dataset VSAM

Este comando tem dois sub-comandos principais para definir o Input File ou Input Dataset:

INFILE

INDATASET

Outros parametros tambem pode ser usados:

CHARACTER/DUMP/HEX - Determina o formato da impressao;

OUTFILE - Determina o Output diferente do Sysprint

FROMKEY/FROMADDRESS/FROMNUMBER/SKIP - Determina os valores do comeco do Dataset

TOKEY/TOADDRESS/TONUMBER/COUNT - Determina os valores do fim do Dataset




Usando o Comando REPRO

Usado para copiar conteudo de um Dataset para outro, seja o Dataset VSAM ou nao.

Os Sub-comandos usados sao:

- OUTDATASET

- OUTFILE

Mas primeiro deve-se definir de onde vem os dados pelos parametros INFILE e INDATASET.

Na sequencia, as opcoes sao as seguintes:

- FROMKEY/FROMADDRESS/FROMNUMBER/SKIP - Determina os valores do comeco do Dataset

- TOKEY/TOADDRESS/TONUMBER/COUNT - Determina os valores do fim do Dataset

- REPLACE/NOREPLACE - Usado para manter ou nao os dados do Dataset no qual os dados estao sendo colocados.




Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License