VSAM - Definições e Conceitos
Autor: Maurício Alves Cardeal | Publicado: 2012-06-03T13:20:00-03:00

<!--[if gte mso 9]>
 
  
 
<![endif]--><!--[if gte mso 9]>
 
  Normal
  0
  
  
  21
  
  
  false
  false
  false
  
  PT-BR
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  
<![endif]--><!--[if gte mso 9]>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  
  
 
<![endif]--><!--[if gte mso 10]>

 /* Style Definitions */
 table.MsoNormalTable
 {mso-style-name:"Tabela normal";
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:"";
 mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
 mso-para-margin:0cm;
 mso-para-margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:"Times New Roman","serif";}

<![endif]-->



VSAM (VIRTUAL STORAGE ACCESS METHOD) - PROGRAMAS BATCH



É UM METODO DE ACESSO QUE TRABALHA
COM ORGANIZACOES DE ARQUIVOS RESIDENTES EM DISPOSITIVOS DE ACESSO DIRETO
(DISCOS).



A CLAUSULA SELECT PERMITE
ESPECIFICACOES DO ARQUIVO, TAIS COMO ORGANIZACAO, MODO DE ACESSO E OUTRAS
INFORMACOES.



PARA O UNIBANCO, A ORGANIZACAO SERA
GERALMENTE INDEXADA E O MODO DE ACESSO SERA DINAMICO, O QUE QUER DIZER QUE OS
REGISTROS PODEM SER ACESSADOS TANTO SEQUENCIAL QUANTO RANDOMICAMENTE.



A CLAUSULA FILE STATUS É
UTILIZADA PARA PROPICIAR A MONITORACAO DA EXECUCAO DE CADA COMANDO DE I-O
(OPEN, READ, WRITE, REWRITE, START, DELETE, CLOSE). O FILE STATUS DEVE SER
DEFINIDO NA WORKING-STORAGE COMO UM CAMPO NUMERICO DE DOIS BYTES. DURANTE A
EXECUCAO DE QUALQUER PEDIDO PARA O ARQUIVO, O SISTEMA COLOCA UM VALOR NA STATUS
KEY, QUE INDICA O ESTADO RESULTANTE DO PEDIDO.



SEMPRE QUE O PROGRAMA EMITIR QUALQUER
UM DOS COMANDOS ESPECIFICADOS ACIMA, O FILE STATUS TEM QUE SER VERIFICADO PARA
QUE SE POSSA DETERMINAR SE O COMANDO SOLICITADO FOI BEM SUCEDIDO OU NAO.
(FILE-STATUS = ZEROS INDICA QUE O COMANDO FOI EXECUTADO COM SUCESSO). 



OPEN à PODERA ABRIR O ARQUIVO COMO ENTRADA
(OPEN INPUT), SAIDA (OPEN OUTPUT) OU ENTRADA E SAIDA (OPEN I-O). 



CLOSE à SERVIRA PARA FECHAR O ARQUIVO.



START à FORNECE MEIOS PARA UM POSICIONAMENTO
LOGICO PARA SUBSEQUENTE OBTENCAO SEQUENCIAL DE REGISTROS. 



FORMATO:
START NOME-DO-ARQ KEY IS EQUAL TO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DATA-NAME

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
GREATER&nbsp; THAN

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOT LESS
THAN



O PONTEIRO E' COLOCADO NO PRIMEIRO
REGISTRO CUJA CHAVE SATISFACA A CONDICAO ESPECIFICADA. SE HOUVER UM OU MAIS
REGISTROS QUE SATISFACAM A CONDICAO, O STATUS RETORNARA COM 00. SE NAO HOUVER
NENHUM REGISTRO QUE SATISFACA A CONDICAO, O STATUS RETORNARA COM O VALOR 23.



O COMANDO START APENAS POSICIONA O
PONTEIRO NO REGISTRO DESEJADO MAS NAO PERMITE ACESSO AOS DADOS. APOS O
POSICIONAMENTO DEVE SER DADO UM READ SEQUENCIAL PARA A LEITURA DO REGISTRO.



READ à SERVE PARA ACESSO AOS DADOS DO
REGISTRO.



FORMATO:
READ NOME-DO-ARQ {NEXT} INTO AREA-DE-WORKING



SE USADO SEM A PALAVRA NEXT, SERVIRA
PARA A LEITURA DO REGISTRO ATRAVES DO SEU CAMPO CHAVE, PORTANTO APENAS UM
REGISTRO SERA LIDO.



O STATUS 23 INDICA QUE A CHAVE
SOLICITADA NAO FOI ENCONTRADA NO ARQUIVO.



COM A PALAVRA NEXT, SERVIRA PARA A
LEITURA SEQUENCIAL DE UM OU MAIS REGISTROS.

O
STATUS 00 INDICA QUE O REGISTRO FOI LIDO SEQUENCIALMENTE COM SUCESSO.



O STATUS 10 INDICA QUE HOUVE FINAL
DOS DADOS NO ARQUIVO.



WRITE à SERVE PARA GRAVACAO DE DADOS. O
STATUS 22 INDICA QUE JA EXISTE UM REGISTRO NO ARQUIVO COM A MESMA CHAVE DA&nbsp; TENTATIVA DE GRAVACAO.



REWRITE à SERVE PARA ATUALIZACAO DE DADOS.



DELETE à SERVE PARA A DELECAO DO REGISTRO.





Para
criar um arquivo VSAM:



//DEFINE&nbsp;&nbsp; EXEC
PGM=IDCAMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

//SYSPRINT DD SYSOUT=*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


//SYSIN&nbsp;&nbsp;&nbsp; DD
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp; DEL (nomedoarquivo) CLUSTER PURGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp; DEFINE CLUSTER -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (NAME(nomedoarquivo)
UNIQUE INDEXED -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRK(1 1)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;KEYS(10 0) -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ERASE
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CISZ(4096)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RECORDSIZE(460
460) -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
FREESPACE(10 5)) -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp; DATA -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (NAME(nomedoarquivo.D)) -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

&nbsp;&nbsp;&nbsp;&nbsp; INDEX -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (NAME(nomedoarquivo.I))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;






ALTERNATE KEY



&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; É um recurso do VSAM que permite
acessar um KSDS por um campo diferente da PRIME KEY. 



&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No programa:&nbsp;&nbsp; arqW - arquivo "normal"

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arqI - chave
alternada



Programas batch exemplo:&nbsp; UN186, HPRB08



Programas online exemplo: 

Arquivo C525OW/C525OI

BJTP - transação
principal (opção "renovação")

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BJB90
(menu) - BJB91 (menu renovação)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BJD01/02/03/04 - manutenção



Definir os dois arquivos no CICS, na
FCT.



&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; O
arquivo .PATH é o que será acessado com a chave alternada.



&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Quando
define arquivo .PATH, o .AIX é apenas a área onde o vsam guarda o índice.



Quando a chave alternada não fizer
parte da chave primaria, no CLUSTER atentar-se ao tamanho correto das chaves
nas definições dos arquivos.






Exemplo Define CLUSTER para ALTERNATE
INDEX:



//STEP01&nbsp;&nbsp; EXEC
PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN&nbsp;&nbsp;&nbsp;
DD&nbsp;&nbsp; *

&nbsp; DELETE&nbsp;&nbsp; D.CO.BNH.C525OW CLUSTER PURGE

&nbsp; DEFINE
CLUSTER&nbsp;&nbsp; (&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
NAME(D.CO.BNH.C525OW)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
RECSZ(100 100)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
FREESPACE(00 00)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
INDEXED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
KEY(20 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRK(1
1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHR(3
3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
SPEED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
CONTROLINTERVALSIZE (4096)&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;TO (99365)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
IMBED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
NOREUSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
UNIQUE )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DATA(NAME(D.CO.BNH.C525OW.D))&nbsp;&nbsp;&nbsp;&nbsp;
-

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
INDEX(NAME(D.CO.BNH.C525OW.I))



&nbsp;&nbsp; REPRO IDS
(D.CO.BNH.C525OE)&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ODS
(D.CO.BNH.C525OW)

&nbsp;//********************************************************************

&nbsp;//* DEFINIÇÃO&nbsp;
CHAVE ALTERNADA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *

&nbsp;//********************************************************************

&nbsp;//STEP02&nbsp;&nbsp; EXEC PGM=IDCAMS

&nbsp;//SYSPRINT
DD&nbsp;&nbsp; SYSOUT=*

&nbsp;//SYSIN&nbsp;&nbsp;&nbsp; DD&nbsp;&nbsp;
*

&nbsp;&nbsp; DEFINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ALTERNATEINDEX (&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
NAME(D.CO.BNH.C525OW.AIX)&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RELATE
(D.CO.BNH.C525OW)&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KEY
(11&nbsp; 9))&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-

å tamanho da chave
alternada

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATA (&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
NAME(D.CO.BNH.C525OW.AIX.D) -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CISZ
(4096)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRK(1
1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHR (3
3))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INDEX
(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
NAME(D.CO.BNH.C525OW.AIX.I) -

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CISZ(2048))

&nbsp;//********************************************************************

&nbsp;//* DEFINIÇÃO&nbsp;
CHAVE PATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *

&nbsp;//********************************************************************

&nbsp;//STEP03&nbsp;&nbsp; EXEC PGM=IDCAMS

&nbsp;//BASDD&nbsp;&nbsp;&nbsp; DD&nbsp;&nbsp;
DSN=D.CO.BNH.C525OW,DISP=OLD

&nbsp;//AIXDD&nbsp;&nbsp;&nbsp; DD&nbsp;&nbsp;
DSN=D.CO.BNH.C525OW.AIX,DISP=OLD

&nbsp;//SYSPRINT
DD&nbsp;&nbsp; SYSOUT=*

&nbsp;//SYSIN&nbsp;&nbsp;&nbsp; DD&nbsp;&nbsp;
*

&nbsp;&nbsp; DEFINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp; PATH (&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp; NAME
(D.CO.BNH.C525OW.PATH)&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp; PATHENTRY
(D.CO.BNH.C525OW.AIX))

&nbsp;&nbsp; BLDINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp; INFILE
(BASDD)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -

&nbsp;&nbsp;&nbsp;&nbsp; OUTFILE(AIXDD)

&nbsp;//*



Para maiores detalhes e
esclarecimentos, consultar a apostila de Introdução à VSAM.






FILE STATUS VSAM

0002&nbsp;&nbsp;&nbsp;&nbsp; - CHAVE DUPLICADA FOI ENCONTRADA, MAS O
PROGRAMA ESPECIFICOU ESTA OPCAO.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -
DUPL. KEY EM INDICE ALTERNADO



0004&nbsp;&nbsp;&nbsp;&nbsp; - FIM DE ARQUIVO DURANTE GET



0008&nbsp;&nbsp;&nbsp;&nbsp; - CHAVE DUPLICADA DURANTE PUT OU WRITE

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -
CHAVE DUPLICADA NO INDICE ALTERNATIVO



0010&nbsp;&nbsp;&nbsp;&nbsp; - FIM DE ARQUIVO FISICO

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -
ARQ OPCIONAL NAO DISPONIVEL NA HORA DA ABERTURA

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -
"END-OF-FILE(EOF)" APOS COMANDO READ.



0012&nbsp;&nbsp;&nbsp;&nbsp; - CHAVE FORA DE SEQUENCIA DURANTE UM
"PUT"



0016 &nbsp;&nbsp;&nbsp; - REGISTRO NAO ENCONTARDO, ERRO DE
GRAVACAO(FISICO) INDICE DE KSDS E PEQUENO



0020&nbsp;&nbsp;&nbsp;&nbsp; - CHAVE INVALIDA



0021&nbsp;&nbsp;&nbsp;&nbsp; - ERRO DE SEQUENCIA

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -
ALTERACAO DO CONTEUDO DA CHAVE DURANTE A EXECUCAO DA "REWRITE"
(SOMENTE PARA ARQ. KSDS)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; -
REGISTRO FORA DE SEQUENCIA.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PARA
KSDS:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 1-
WRITE SEQ. EXIGE CHAVES CLASSIF.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 2-
'ACCESS SEQUENTIAL' E /READ COM SKIP SEM 'START'.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 3-
'ACCESS SEQUENTIAL' COM STRNC=1 PARA RRDS.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 4-
ACESSO SEQUENCIAL E/READ COM SKIP SEM 'START'.

&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -
REWRITE SEM READ PREVIO.

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -
WRITE EM REGISTRO COM CHAVE DUPLICADA.



0022&nbsp;&nbsp;&nbsp;&nbsp; - DUPLICATE KEY EM WRITE OU DUPLICATE KEY
EM INDICE ALTERNADO C/UNIQKEY



0023 &nbsp;&nbsp;&nbsp; - REGISTRO NAO ENCONTRADO.

- END-OF-FILE
APOS COMANDO 'START'

-
OPCAO 'CREATER THAN' USADA E A CHAVE CONTEM HIGH-VALUES.

-
READ SEQ EM CHAVE APOS A ULTIMA GRAVADA.



0024 &nbsp;&nbsp;&nbsp; - VIOLACAO DOS LIMITES DO ARQUIVO

-
NAO EXISTE ESPACO DISPONIVEL EM ARQUIVOS 'VSAM' INDEXADO OU RELATIVO PARA
INSERCAO DE REGISTROS

-
ESTOURO DE AREA OVERFLOW

-
VOLUME CHEIO (FALTA ESPACO) - PARA KSDS.

-
SPLIT DE C.A COM SHROPT=4 DISP=SHR PARA KSDS.

-
REGISTRO DO INDICE ALTERNADO ATINGIU TAMANHO MAXIMO.



0028&nbsp;&nbsp;&nbsp;&nbsp; - AREA SECUNDARIA NAO SUFICIENTE

-
EM CASO DE REPRO, FAZER DELETE/DEFINE DO ARQ.



0030&nbsp;&nbsp;&nbsp;&nbsp; - ERRO I/O NA JFCB (IRRECUPERAVEL)

-
ERRO DE I/O :

&nbsp; . DATA CHECK

&nbsp; . CHECK DE PARIDADE

&nbsp; . ERRO DE TRANSMISSAO

-
ERRO I/O NO USER-CATALOG-VSAM.

-
ERRO I/O NO LABEL DO VOLUME.

-
ERRO DE PAGINACAO (VIRTUAL X REAL)

-
ERRO DE I/O OU REGISTRO 'SPANNED' COM ERRO.



0034&nbsp;&nbsp;&nbsp;&nbsp; - VIOLACAO DOS LIMITES DO ARQUIVO ESDS

-
NAO EXISTE ESPACO DISPONIVEL EM ARQUIVO 'VSAM' SEQUENCIAL PARA INSERCAO DE
REGISTROS

-
ESTOURO DE AREA DE OVERFLOW

-
VOLUME CHEIO (FALTA ESPACO) - ESDS.

-
SPLIT DE C.A COM SHROPT=4 E DISP=SHR PARA ESDS.



0088&nbsp;&nbsp;&nbsp;&nbsp; - OPEN NOME EXTERNO DA SELECT NAO
COMPATIVEL COM O JCL

-
ARQ. JA SE ENCONTRA ABERTO E NAO ESTA DISPONIVEL



0090&nbsp;&nbsp;&nbsp;&nbsp; - OPEN "INPUT" OU "I/O"
EM ARQUIVO NAO INICIALIZADO.

-
(O/C) "TIME-STAMP" DO "DATA/INDEX" NAO CHECA COM A VTOC OU
SI.

-
(O/C) FALTANDO PASSAR "VERIFY" NO ARQUIVO.

-
(O/C) FALTANDO CARTAO "DD" PARA O ARQUIVO.

-
RBA NAO CORRESPONDE A REGISTRO NENHUM.

-
STRNO ESPECIF. ESTA INSUFICIENTE. AUMENTAR.

-
TIPO&nbsp; DE PROC. (OUTPUT) INVOMPATIVEL COM
OPEN:

- OPEN INPUT
COM WRITE, REWRITE OU DELETE.

- OPEN OUTPUT
COM REWRITE OU DELETE.

- OPEN I/O
COM ACCESS SEQ E WRITE.

- CLAUSULA
'ORGANIZATION INDEXED' INFORMA INDEVIDAMENTE PARA ESDS.

-
WRITE VIA RBA PARA KSDS. INDEVIDO.

-
TENTATIVA DE 'DELETE' EM ESDS.

- FALTA
CLAUSULA: 'ORGANIZATION IS INDEXED' PARA KSDS.

-
FALTA CLAUSULA: 'ORGANIZATION IS RELATIVE' PARA RRDS.

-
START EM ARQUIVO ESDE/RRDS (INVALIDO).

-
WRITE EM ARQUIVO VSAM COM SHROPT=1.

-
TAMANHO DA CHAVE = '0' NA CLUSTER OU TAMANHO DA CHAVE NO PROGRAMA DIFERE DO DA
CLUSTER.

-
READ, REWRITE, DELETE, START EM ARQUIVO ABERTO COM OUTPUT.

-
READ EM ARQUIVO SPANNED SEM CLAUSULA 'INTO'.

-
READ PARA RBA EM ARQUIVO SPANNED.

-
READ VIA PATH SEM BUILDINDEX ANTERIOR NO INDICE ALTERNADO.

-
READ VIA RBA PARA UM RRDS, NAO PERMITIDO.

-
READ VIA RBA PARA UM 'BASE' VIA 'PATH' NAO PERMITIDO.



0092&nbsp;&nbsp;&nbsp;&nbsp; - ERRO LOGICO

-
START: FOI DADO START EM ARQ. FECHADO

-
READ : TAMANHO DO REGISTRO ERRADO

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TAMANHO DA CHAVE ERRADA

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LER ARQUIVO FECHADO

-
ARQ. DE INPUT

&nbsp; . LEITURA/GRAVACAO/REGRAVACAO DE REGISTRO COM
TAMANHO DIFERENTE DO ESPECIFICADO NA DEFINICAO DO 'CLUSTER'

&nbsp; . REGRAVACAO DA DELECAO SEQUENCIAL SEM
LEITURA PRECEDENTE SER BEM SUCEDIDA.

&nbsp; . QUALQUER ACESSO APOS E.O.F. TER SIDO
ENCONTARDO

-
OPEN EM ARQUIVO JA ABERTO.

-
CLOSE EM ARQUIVO JA FECHADO.

-
LAYOUT DEFINIDO NA WORKING-STORAGE PARA READ INTO NAO COMPORTA O REGISTRO LIDO

-
REWRITE OU DELETE SEM READ PREVIO.

-
TENTATIVA DE ALTERACAO DO TAMANHO DA CHAVE.

-
TAMANHO DO REGISTRO NO PROGRAMA MAIOR QUE O DA CLUSTER, OU IGUAL A ZERO, OU
MENOR QUE A SOMA DO TAMANHO DA CHAVE COM DESLOCAMENTO. OU TAMANHO DO REGISTRO
DE UM RRDS DIFERE DO DEFINIDO NA CLUSTER.&nbsp;
NUMERO DE BUFFERS INSUFICIENTE PARA O PROCESSAMENTO DO ARQUIVO.

- READ APOS
END-OF-FILE.

-
ARQUIVO NAO ESTA ABERTO.



0093&nbsp;&nbsp;&nbsp;&nbsp; - MEMORIAL VIRTUAL E' INSUFUCIENTE

-
ARQ. NAO E' VALIDO PARA TIPO DE PROCESSAMENTO REQUISITADO

-
VOLUME/EXTENT INVALIDO

-
DADOS JA SOBRE CONTROLE EXCLUSIVO

-
RECURSO NAO DISPONIVEL

-
OPEN : ARQ JA ABERTO (EM OUTRO JOB DISP=OLD)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA DE
WORKING PEQUENA

-
(O/C) MEMORIA VIRTUAL DA PARTICAO INSUFICIENTE PARA O PROGR

-
(O/C) 'ACCESS' ESPECIFICADO PARA O ARQUIVO INVALIDO.

-
TENTATIVA DE ABRIR COMO I/O OU OUTPUT POR OUTRA TASK OU PAR

-
(O/C) DISP=OLD COM MAIS DE UM OPEN NO MESMO PROGRAMA (MUDAR DISP=SHR).

-
CI PRESA POR OUTRA TASK.

-
VOLUME NAO MONTADO.

-
MEMORIA VIRTUAL DA PARTICAO INSUFICIENTE PARA O PROGRAMA.



0094&nbsp;&nbsp;&nbsp;&nbsp; - READ SEM OPEN PREVIO OU WRITE SEM OPEN
PARA RRDS.



0095&nbsp;&nbsp;&nbsp;&nbsp; - INFORMACAO DO ARQ. INVALIDO OU INCOMPLETO

-
OPEN : TAMANHO DA CHAVE ERRADA AO DEFINIR O "CLUSTER"

-
ACESSO A CATALOGO INCORRETO

-
ACESSO A UM ARQ. VAZIO COM OPCAO INPUT OU I/O

-
ACESSO COM OPCAO OUTPUT A UM ARQ. NOREUSE.

-
TAMANHO DA RECORD KEY OU SEU DESLOCAMENTO NO REGISTRO DO AR NAO CONFERE COM O
ESPECIFICADO NO "CLUSTER"

-
OPEN EM INDICE ALTERNADO INVAL DEVE SER PATH.

-
(O/C) INFS. DO ARQUIVO NA 'VTOC' NAO CHECA COM A DA CLUSTER NO CATALOGO.

-
ARQUIVO NAO CONSTA DO CATALOGO VSAM INFORMADO.

-
(O/C) TAMANHO OU DESLOC. DA CHAVE NO PROGRAMA NAO CHECA COM AS DA CLUSTER NO
CATALOGO.

-
FALTA CLAUSULA INDEXED PARA KSDS -- OU -- CLAUSULA 'ORGANIZATION' INCOMPATIVEL
COM A DA CLUSTER.

-
OPEN OUTPUT PARA O ARQUIVO NAO RECEM-DEFINIDO.



0096&nbsp;&nbsp;&nbsp;&nbsp; - NOME EXTERNO DO JCL NAO E' COMPATIVEL COM
O PGM

- OPEN: DD
STATEMENT MISSING

-
FALTOU ESPECIFICAR CARTAO DD

-
ARQ. NAO EXISTE NO CATALOGO 'VSAM' CORRESPONDENTE

-
(O/C) FALTA CARTAO DD PARA O ARQUIVO.

-
OPEN PARA O ARQUIVO JA ABERTO

-
DD INVALIDO PARA VSAM.



0097&nbsp;&nbsp;&nbsp;&nbsp; - O DATA-SET NAO FOI APROPRIAMENTE FECHADO

-
O FLAG(VSAM) DE TERMINO ANORMAL LIGADO PASSAR UM VERIFY SOBRE O DATASET

-
(O/C) FALTA VERIFY.



0099&nbsp;&nbsp;&nbsp;&nbsp; - TERMINO ANORMAL

-
PROVAVEL ERRO DE SUBROTINA DO VSAM



0160&nbsp;&nbsp;&nbsp;&nbsp; - ARQUIVO VAZIO



0204&nbsp;&nbsp;&nbsp;&nbsp; - ESTOURO DE AREA SAIDA (204-211)



090C&nbsp;&nbsp;&nbsp;&nbsp; - VERIFICAR SE O PROTEST NAO CRIOU REG. COM
CHAVE&nbsp; REPETIDA PARA ARQ VSAM