VSAM - Comandos
Os comandos VSAM são usados para executar certas operações em conjuntos de dados VSAM. A seguir estão os comandos VSAM mais úteis -
- Alter
- Repro
- Listcat
- Examine
- Verify
Alterar
O comando ALTER é usado para modificar os atributos do arquivo VSAM. Podemos alterar os atributos do arquivo VSAM que mencionamos na definição do cluster VSAM. A seguir está a sintaxe para alterar os atributos -
ALTER file-cluster-name [password]
[ADDVOLUMES(volume-serial)]
[BUFFERSPACE(size)]
[EMPTY / NOEMPTY]
[ERASE / NOERASE]
[FREESPACE(CI-percentage CA-percentage)]
[KEYS(length offset)]
[NEWNAME(new-name)]
[RECORDSIZE(average maximum)]
[REMOVEVOLUMES(volume-serial)]
[SCRATCH / NOSCRATCH]
[TO(date) / FOR(days)]
[UPGRADE / NOUPGRADE]
[CATALOG(catalog-name [password]]
A sintaxe acima mostra quais parâmetros podemos alterar em um cluster VSAM existente. A descrição do parâmetro permanece a mesma mencionada no módulo VSAM - Cluster.
Exemplo
O exemplo a seguir mostra como usar o comando ALTER para aumentar o espaço livre, para adicionar mais volumes e para alterar chaves -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
ALTER MY.VSAM.KSDSFILE
[ADDVOLUMES(2)]
[FREESPACE(6 6)]
[KEYS(10 2)]
/*
Se você for executar o JCL acima no servidor Mainframes. Deve executar com MAXCC = 0 e irá alterar o Espaço Livre, Volumes e Chaves.
Repro
O comando REPRO é usado para carregar dados no conjunto de dados VSAM. Ele também é usado para copiar dados de um conjunto de dados VSAM para outro. Podemos usar este comando para copiar dados do arquivo sequencial para o arquivo VSAM. O utilitário IDCAMS usa o comando REPRO para carregar os conjuntos de dados.
REPRO INFILE(in-ddname)
OUTFILE(out-ddname)
Na sintaxe acima, o in-ddname é o nome DD para o Conjunto de dados de entrada que está tendo registros. O out-ddname é o nome DD para o conjunto de dados de saída, onde os registros dos conjuntos de dados de entrada serão copiados.
Exemplo
O exemplo a seguir mostra como copiar registros de um conjunto de dados para outro conjunto de dados VSAM -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//IN DD DSN = MY.VSAM.KSDSFILE,DISP = SHR
//OUT DD DSN = MY.VSAM1.KSDSFILE,DISP = SHR
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
REPRO INFILE(IN)
OUTFILE(OUT)
/*
Se você for executar o JCL acima no servidor Mainframes. Ele deve ser executado com MAXCC = 0 e copiará todos os registros de MY.VSAM.KSDSFILE para o arquivo MY.VSAM1.KSDSFILE VSAM.
Listcat
O comando LISTCAT é usado para obter os detalhes do catálogo de um conjunto de dados VSAM. O comando Listcat fornece as seguintes informações sobre conjuntos de dados VSAM -
- Informação SMS
- Informação RLS
- Informação de Volume
- Informação da esfera
- Informação de Alocação
- Atributos do conjunto de dados
LISTCAT ENTRY(vsam-file-name) ALL
Na sintaxe acima, vsam-file-name é o nome do conjunto de dados VSAM para o qual precisamos de todas as informações. A palavra-chave ALL é especificada para obter todos os detalhes do catálogo.
Exemplo
O exemplo a seguir mostra como buscar todos os detalhes usando o comando Listcat para um conjunto de dados VSAM -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
LISTCAT ENTRY(MY.VSAM.KSDSFILE)
ALL
/*
Se você for executar o JCL acima no servidor Mainframes. Ele deve ser executado com MAXCC = 0 e mostrará todos os detalhes do catálogo sobre o conjunto de dados MY.VSAM.KSDSFILE.
Examinar
O comando Examine é usado para verificar a integridade estrutural de um cluster de conjunto de dados sequenciado por chave. Ele verifica o índice e os componentes de dados e, se algum problema for encontrado, as mensagens de erro serão enviadas para o spool. Você pode verificar qualquer uma das mensagens IDCxxxxx.
EXAMINE NAME(vsam-ksds-name) -
INDEXTEST DATATEST -
ERRORLIMIT(50)
Na sintaxe acima, vsam-ksds-name é o nome do conjunto de dados VSAM para o qual precisamos examinar o índice e a parte de dados do cluster VSAM.
Exemplo
O exemplo a seguir mostra como verificar se o índice e a parte dos dados do conjunto de dados KSDS estão sincronizados ou não -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
EXAMINE NAME(MY.VSAM.KSDSFILE) -
INDEXTEST DATATEST -
ERRORLIMIT(50)
/*
Se você for executar o JCL acima no servidor Mainframes. Ele deve ser executado com MAXCC = 0 e mostrará todos os problemas com o conjunto de dados VSAM em uma das mensagens IDCxxxxx no spool.
Verificar
O comando Verify é usado para verificar e corrigir arquivos VSAM que não foram fechados corretamente após um erro. O comando adiciona registros de fim de dados corretos ao arquivo.
VERIFY DS(vsam-file-name)
Na sintaxe acima, vsam-file-name é o nome do conjunto de dados VSAM para o qual precisamos verificar os erros.
Exemplo
O exemplo a seguir mostra como verificar e corrigir erros no conjunto de dados VSAM -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
VERIFY DS(MY.VSAM.KSDSFILE)
/*
Se você for executar o JCL acima no servidor Mainframes. Ele deve ser executado com MAXCC = 0 e corrigirá os erros no conjunto de dados VSAM.