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.