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.