VSAM - Cluster

O cluster VSAM é definido em JCL. JCL usaIDCAMSutilitário para criar um cluster. IDCAMS é um utilitário, desenvolvido pela IBM, para serviços de métodos de acesso. É usado principalmente para definir conjuntos de dados VSAM.

Definindo um Cluster

A sintaxe a seguir mostra os principais parâmetros agrupados em Define Cluster, Data e Index.

.DEFINE CLUSTER (NAME(vsam-file-name)      -
BLOCKS(number)                             -
VOLUMES(volume-serial)                     -
[INDEXED / NONINDEXED / NUMBERED / LINEAR] -
RECSZ(average maximum)                     -
[FREESPACE(CI-Percentage,CA-Percentage)]   -
CISZ(number)                               -
[KEYS(length offset)]                      -
[READPW(password)]                         -
[FOR(days)|TO(date)]                       -
[UPDATEPW(password)]                       -
[REUSE / NOREUSE] )                        -
DATA                                       -
   (NAME(vsam-file-name.data))             -
INDEX                                      -
   (NAME(vsam-file-name.index))            -
CATALOG(catalog-name[/password]))

Os parâmetros no nível CLUSTER se aplicam a todo o cluster. Os parâmetros no nível DATA ou INDEX se aplicam apenas aos dados ou ao componente de índice.

Discutiremos cada parâmetro em detalhes na tabela a seguir -

Sr. Não Parâmetros com Descrição
1

DEFINE CLUSTER

O comando Definir Cluster é usado para definir um cluster e especificar atributos de parâmetro para o cluster e seus componentes.

2

NAME

NAME especifica o nome do arquivo VSAM para o qual estamos definindo o cluster.

3

BLOCKS

Blocks especifica o número de blocos atribuídos ao cluster.

4

VOLUMES

Volumes especifica um ou mais volumes que conterão o cluster ou componente.

5

INDEXED / NONINDEXED / NUMBERED / LINEAR

Este parâmetro pode assumir três valores INDEXED, NONINDEXED ou NUMBERED, dependendo do tipo de conjunto de dados que estamos criando. Para arquivos sequenciados por chave (KSDS), a opção INDEXED é usada. Para arquivos de seqüência de entrada (ESDS), a opção NONINDEXED é usada. Para arquivos de registro relativo (RRDS), a opção NUMBERED é necessária. Para arquivos Linear (LDS), a opção LINEAR é necessária. O valor padrão deste parâmetro é INDEXED. Discutiremos mais sobre KSDS, ESDS, RRDS e LDS nos próximos módulos.

6

RECSZ

O parâmetro Tamanho do registro tem dois valores que são o tamanho médio e máximo do registro. A Média especifica o comprimento médio dos registros lógicos no arquivo e o Máximo denota o comprimento dos registros.

7

FREESPACE

Espaço livre especifica a porcentagem de espaço livre a ser reservado para os intervalos de controle (CI) e áreas de controle (CA) do componente de dados. O valor padrão deste parâmetro é porcentagem zero.

8

CISZ

CISZ é conhecido como tamanho do intervalo de controle. Ele especifica o tamanho dos intervalos de controle.

9

KEYS

O parâmetro de chaves é definido apenas em arquivos sequenciados por chave (KSDS). Ele especifica o comprimento e deslocamento da chave primária da primeira coluna. A faixa de valor deste parâmetro é de 1 a 255 bytes.

10

READPW

O valor no parâmetro READPW especifica a senha do nível de leitura.

11

FOR/TO

O valor deste parâmetro especifica a quantidade de tempo em termos de data e dias para reter o arquivo. O valor padrão para este parâmetro é zero dias.

12

UPDATEPW

O valor no parâmetro UPDATEPW especifica a senha do nível de atualização.

13

REUSE / NOREUSE

O parâmetro REUSE permite que os clusters sejam definidos que podem ser redefinidos para o status vazio sem excluí-los e redefini-los.

14

DATA - NAME

A parte DATA do cluster contém o nome do conjunto de dados que contém os dados reais do arquivo.

15

INDEX-NAME

A parte INDEX do cluster contém a chave primária e o ponteiro de memória para o registro correspondente na parte de dados. É definido quando um cluster sequenciado por chave é usado.

16

CATALOG

O parâmetro Catálogo denota o catálogo sob o qual o arquivo será definido. Discutiremos sobre o catálogo separadamente nos próximos módulos.

Exemplo

A seguir está um exemplo básico para mostrar como definir um cluster em JCL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.KSDSFILE)  -
   INDEXED                                 -
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   KEYS(5  0)                              -
   CISZ(4096)                              -                            
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.KSDSFILE.DATA))      -
   INDEX (NAME(MY.VSAM.KSDSFILE.INDEX))
/*

Se você for executar o JCL acima no servidor Mainframes. Ele deve ser executado com MAXCC = 0 e criará o arquivo VSAM MY.VSAM.KSDSFILE.

Excluindo um Cluster

Para excluir um arquivo VSAM, o cluster VSAM precisa ser excluído usando o utilitário IDCAMS. O comando DELETE remove a entrada do cluster VSAM do catálogo e, opcionalmente, remove o arquivo, liberando assim o espaço ocupado pelo objeto. Se o conjunto de dados VSAM não tiver expirado, ele não será excluído. Para excluir esses tipos de conjuntos de dados, use a opção PURGE.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

A sintaxe acima mostra os parâmetros que podemos usar com a instrução Delete. Discutiremos cada um deles em detalhes na tabela a seguir -

Sr. Não Parâmetros com Descrição
1

ERASE / NOERASE

A opção ERASE é especificada para substituir o atributo ERASE especificado para o objeto no catálogo. A opção NOERASE é usada por padrão.

2

FORCE / NOFORCE

A opção FORCE é especificada para excluir SPACE e USERCATALOG mesmo se eles não estiverem vazios. A opção NOFORCE é usada por padrão.

3

PURGE / NOPURGE

A opção PURGE é usada para excluir o conjunto de dados VSAM se o conjunto de dados não tiver expirado. A opção NOPURGE é usada por padrão.

4

SCRATCH / NOSCRATCH

A opção SCRATCH é especificada para remover a entrada associada para o objeto do Índice de Volume. É usado principalmente para conjuntos de dados não vsam, como GDGs. A opção NOSCRATCH é usada por padrão.

Exemplo

A seguir está um exemplo básico para mostrar como excluir um cluster em JCL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.KSDSFILE CLUSTER
	PURGE
/*

Se você for executar o JCL acima no servidor Mainframes. Ele deve ser executado com MAXCC = 0 e excluirá o arquivo VSAM MY.VSAM.KSDSFILE.