VSAM Básico PDF
VSAM Básico PDF
VSAM Básico PDF
1-1
2.1 Regras de dedão para VSAM _________________________ 2-28
2.1.1 Regras inválidas ______________________________________ 2-28
2.2 Parâmetros que afetam a performance ________________ 2-29
2.2.1 Unidade de alocação ___________________________________ 2-29
2.2.2 Guaranted Space______________________________________ 2-29
2.2.3 Otimização do tamanho da control área (CA) _______________ 2-30
2.2.4 Partial Release________________________________________ 2-31
2.2.5 Constraint relief_______________________________________ 2-31
2.2.6 Tamanho da Control Interval ____________________________ 2-32
2.2.7 Definição de FREE SPACE para KSDS e ESDS _______________ 2-33
2.2.8 Opções de índice ______________________________________ 2-35
2.2.9 Key Range e Ordered __________________________________ 2-35
2.2.10 Share options ________________________________________ 2-35
2.2.11 Opção de carga inicial __________________________________ 2-36
2.2.12 Tamanho do REGION __________________________________ 2-37
2.2.13 Opções de Buffer______________________________________ 2-37
2.2.14 Técnicas de Buffer_____________________________________ 2-39
2.2.14.1 Non-Shared Resource (NSR) _________________________ 2-39
2.2.14.2 Local Shared Resource (LSR) ________________________ 2-41
2.2.15 Compressão de dados__________________________________ 2-42
2.2.15.1 Verificando candidados VSAM ________________________ 2-42
2.2.16 VSAM Data Striping ____________________________________ 2-43
2.2.16.1 Tópicos do VSAM data striping _______________________ 2-44
2.2.16.2 Multi layer e data striping ___________________________ 2-46
2.2.16.3 Implementando um VSAM data striping ________________ 2-46
3 Gerenciando arquivos VSAM ____________________________ 3-47
3.1 Considerações para Reorganização ___________________ 3-48
3.1.1 Splits de CI/CA _______________________________________ 3-48
3.1.2 Perda de espaço útil na CA de dados ______________________ 3-48
3.1.3 Splits de CI/CA com aumento de espaço ___________________ 3-51
3.1.4 Compartilhamento no VSAM _____________________________ 3-51
3.1.5 Compartilhando o VSAM ________________________________ 3-52
3.1.5.1 SHAREOPTIONS VSAM _______________________________ 3-52
3.1.6 Considerações ________________________________________ 3-53
3.2 Endereçamento Estendido __________________________ 3-54
4 VSAM RLS __________________________________________ 4-55
4.1 Como o RLS trabalha ______________________________ 4-56
4.2 RLS em um único sistema ___________________________ 4-57
4.3 Restrições do RLS _________________________________ 4-58
4.4 Implementação do RLS _____________________________ 4-59
1-2
5 Introdução ao DFSMStvs_______________________________ 5-60
5.1 Definições _______________________________________ 5-61
5.1.1 Backward recovery ____________________________________ 5-61
5.1.2 Forward recovery _____________________________________ 5-61
5.1.3 Atomic updates _______________________________________ 5-61
5.2 Overview do DFSMStvs _____________________________ 5-62
5.2.1 Conexão com o RLS ___________________________________ 5-62
5.2.2 Lock no DFSMStvs_____________________________________ 5-62
5.2.3 Log do DFSMStvs _____________________________________ 5-62
5.2.4 Implementação _______________________________________ 5-63
5.2.5 Alterações no IDCAMS _________________________________ 5-64
5.2.5.1 ALLOCATE _________________________________________ 5-64
5.2.5.2 ALTER ____________________________________________ 5-64
5.2.5.3 DEFINE ALTERNATEINDEX ____________________________ 5-64
5.2.5.4 DEFINE CLUSTER ___________________________________ 5-65
5.2.5.5 DEFINE PATCH _____________________________________ 5-65
5.2.5.6 SHCDS ____________________________________________ 5-66
1-3
1 VSAM BÁSICO
Neste capítulo será montada a fundação para o resto do curso. Os
conceitos e terminologias associados com arquivos VSAM serão revistos.
Será explicado como um arquivo VSAM é diferente dos outros arquivos,
os vários tipos de arquivos e o que faz dele único
1-4
1.1 Overview do VSAM
1-5
1.2 O que é o VSAM
1-6
1.3 Terminologia do VSAM
1-7
O tamanho da CI pode variar de um arquivo para outro, mas todas as
CI no componente de dados de um arquivo devem ter o mesmo
tamanho.
1.3.5 Split
1-8
1.3.6 Registros Spanned
Registros Spanned são registros mais largos que o tamanho de uma CI.
Para ter regisrtos spanned, o arquivo deve ser definido com o atributo
SPANNED no momento da criação. Registros spanned são permitidos
expandir através ou ultrapassar limites de control interval. O RDF
descreve se um registro é spanned ou não.
1.3.8 Componentes
1-9
1.3.8.2 Componente de índice
1-10
Sequence set
O sequence set é o menor nível de índice de uma Ci de índice e
aponta diretamente para uma CI de dados na CA. Existe uma CI
no sequence set para cada CA de dados. Ela contem ponteiros e
a maior chave de cada CI. Ela também contem ponteiros
horizontais de uma CI de sequence set par a próxima Ci de
sequence set maior.
1-11
Index set
O index set é o restante do componente de índice. Se existe mais
de uma CI de sequence set, o VSAM automaticamente constrói
outro nível de índice. Cada CI no index set contem ponteiros e a
maior informação de chave da CI no próximo nível inferior de
índice. O maior nível de índice sempre contém uma única CI.
1-12
1.3.9 Cluster
1.3.10 Chaves
1-13
Indiferente das chaves primárias, que devem ser únicas, chaves
alternadas idênticas podem ocorrer em mais de um registro lógico. Isto
permite a busca por uma chave alternada para ler todos os registros
base contendo a mesma chave alternada.
1.3.11 Sphere
Qualquer campo no registro do cluster base pode ser usado como uma
chave alternada. Ele pode também fazer overlap de uma chave primária
(em um KSDS), ou com qualquer outra chave alternada. O campo de
chave alternada deve ser um campo contíguo com o mesmo
deslocamento em cada registro. Em um registro spanned, este campo
deve estar localizado totalmente na primeira control interval.
1-14
1.3.13 Path de Índice Alternado
1-15
1.4 Tipos de arquivos
1-16
Espaços vazios na CI são referenciados como espaços não utilizados
porque eles nunca poderão ser usados. Isto é um resultado de
fragmentação interna da CI.
Existem três métodos para acessar um KSDS. Eles são seqüencial, direto
ou salto seqüencial.
1-17
Acesso seqüencial é utilizado para carregar um KSDS e para
recuperar, atualizar, adicionar e apagar registros em um arquivo
existente.
1-18
a primeira busca de salto seqüencial é o primeiro acesso após o
arquivo ser aberto, a busca direta é iniciada para encontrar o
primeiro registro. Deste nível de sequence set é que será usado
para buscar registros subseqüentes. Se outra operação for
executada antes, então a última posição de operação será
utilizada como o ponto de partida para buscar os registros do
sequence set, então um novo posicionamento é necessário.
1-19
1.4.3.1 Processamento típico de um RRDS
Um linear data set contem dados que podem ser acessados como um
endereçamento de string de bytes em memória virtual. Ele é um arquivo
VSAM com uma control interval de tamanho de 4096 bytes. Um LDS não
1-20
tem informações de controle na sua CI, que é, nenhum RDF ou CIDF.
Todos os bytes de um LDS são bytes de dados. Registros lógicos devem
ser agrupados em blocos pelo programa aplicativo, mas registros não
existem do ponto de vista do VSAM.
1-21
1.5 Arquivos Estendidos
Data striping;
Compressão de dados;
Endereçamento estendido no VSAM;
Liberação parcial de espaço;
System-managed buffering;
1-22
1.6 Endereçamento Estendido
1-23
1.7 Acesso a dados VSAM
1.7.1 IDCAMS
1-24
1.8 Definindo arquivos VSAM
1-25
1.9 Exploradores do VSAM
1.9.1 DB2
O DB2 usa arquivos VSAM linear data set (LDS) para as suas tabelas,
sem implementer Data-in-Virtual. Todo o controle, inclusive buffer pool,
é realizado pelo DB2.
1.9.4 CICS
1.9.5 DFSMS/hsm
1.9.6 DFSMS/rmm
1-26
2 Performance no VSAM
A meta na performance do VSAM é reduzir os valores de I/O wait time e
I/O service time – que é, o tempo de resposta do I/O para transações
que acessam arquivos VSAM. Isto pode ser obtido reduzindo o número
do I/O ou fazendo com que o processo de I/O seja mais rápido.
2-27
2.1 Regras de dedão para VSAM
A razão pela qual a IBM não altera os seus valores defaults é para
manter a compatibilidade com aplicações existentes.
Outro ponto que vale a pena salientar é que existem “circulando” muitas
regras que afetam diretamente a performance do VSAM, como:
2-28
2.2 Parâmetros que afetam a performance
2-29
O storage group onde estes volumes pertencem devem estar na
lista de storage groups selecionados pela ACS;
Recomendações:
2-30
O tamanho da CA tem um impacto sifgnificativo na performance do
VSA. A CA de um cilindro tem as seguintes vantagens:
2-31
Pode-se utilizar na data class o parâmetro space constraint relief para
reduzir o espaço até um limite percentual antes que ocorra a falha na
alocação.
Recomendações
2-32
Em conclusão, para arquivos acessados tanto randomicamente quanto
seqüencialmente, deve-se utilizar uma CI pequena com múltiplos
buffers para aumentar a performance no acesso seqüencial.
Recomendações
Quando especificar free space de CI, garanta que o free space não
resultará em muito unused free space. Isso pode ser feito calculando
2-33
com o tamanho do registro, tamanho da CI e tamanhos do CIDF e RDF,
da seguinte forma:
Para cálculo do free space de CA o VSAM garante que pelo menos uma
CI por CA ficará vazia durante a carga inicial quando o valor definido é
maior que zero.
Recomendações
2-34
2.2.8 Opções de índice
Recomendações
Estas opções não são mais recomendadas e em z/OS 1.3 acima elas não
são mais suportadas.
Intra address space pode realizar locks para arquivos VSAM entre
suas tasks.
VSAM SHAREOPTIONS é uma importante regra na integridade do
VSAM, especificando como um arquivo VSAM será compartilhado
entre tasks em um ou múltiplos address spaces no z/OS. Esta
funcionalidade usa ENQ no SYSVSAM para garantir o alcance da
serialização.
Funções ENQ/RESERVE emitidas pelas aplicções;
Disposição OLD ou SHR no JCL que também implica em uma
ENQ;
Mecanismo de lock por Record level sharing (RLS)
2-35
Quando um VSAM é definido, pode-se especificar como os dados serão
compartilhados em um único sistema ou em múltiplos sistemas que
podem acessar ao dado.
Recomendações
Um arquivo VSAM precisa ser carregado pela primeira vez pois uma
aplicação não pode abrir como input um arquivo que esteja vazio.
Recomendações
2-36
Use SMB;
Use formato estendido;
2-37
grande parte das Ci de dados no buffer pool. Para acesso
seqüencial basta uma CI de índice no buffer (sequence set) e
quantas CI de dados forem possíveis;
Quando o mesmo cluster é compartilhado entre duas aplicações,
em sistemas diferentes, a coerência do buffer pool deve ser
garantida. Que é, se uma CI é alterada no buffer pool local, o o
utro buffer deve refletir a mudança;
Para um uso mais eficiente de memória virtual, um buffer pool pode ser
compartilhado por diversos arquivos utilizando buffer pool shared ou
global. Existem quatro tipos de gerenciamento de buffer pool,
chamados modos, dependendo da técnica utilizada para seu
gerenciamento:
2-38
Se não for utilizado o parâmetro BUFSP, o valor máximo utilizado de
memória virtual para buffer é:
2-39
Recomendações
2-40
2.2.14.2 Local Shared Resource (LSR)
2-41
2.2.15 Compressão de dados
Dicionário de compressão;
Dicionário de expansão;
2-42
Processamento de CI não é permitido;
Catálogo, arquivos do sistema e arquivos temporário não são
suportados;
2-43
Por dados em stripe, entende-se que as trilhas, no caso do SAM e as CI
no caso do VSAM, são espalhadas através dos volumes. Este formato
permite que um único pedido para registros em múltiplas trilhas e CI
serão satisfeitos por solicitações concorrentes de I/O para múltiplos
volumes.
2-44
2-45
2.2.16.2 Multi layer e data striping
Para criar um arquivo VSAM data striping, deve ser feito o seguinte:
2-46
3 Gerenciando arquivos VSAM
Neste capítulo serão vistos tópicos práticos de trabalho diário com
arquivos VSAM.
3-47
3.1 Considerações para Reorganização
Por causa disso, todas as considerações antigas para evitar longos seek
e RPS miss em um volume lógico 3380/3390 estão defasadas.
Independente disso, serão vistas razões “novas e velhas” que justificam
uma reorganização de VSAM.
Tente evitar splits, se não for possível, NÃO reorganize SOMENTE por
ocorrência de splits. Monitore o tempo de resposta e o crescimento no
número de splits de CA.
3-48
O sequence set é o menor nível de índice, onde os ponteiros são para
as CI de dados. No sequence set, cada CI de índice contem um registro.
Cada registro governa uma CA e tem ponteiros para cada CI de dados
usada, sua maior chave possível e ponteiros para CI de dados livre na
CA de dados.
3-49
Segue um exemplo numérico:
HI-A-RBA = 184320000
HI-U-RBA = 176209920
FREE SPACE % CA = 10
FREESPA = 89616384
3-50
3.1.3 Splits de CI/CA com aumento de espaço
3-51
duplicados, estruturas inválidas de índice, registros inválidos de
catálogo, inválidos dumps, backups, restores, entre outros.
Tratar o SHAREOPTIONS;
Serializa OPEN, CLOSE e EOV;
Serializa adição dinâmica de string;
Serializa atualizações no catálogo;
Opções de cross-region
3-52
(2) Este SHAREOPTIONS significa que pode haver apenas uma
estrutura de blocos de controle para VSAM OUTPUT através do
Sysplex e muitas estruturas de blocos de controle para VSAM
INPUT.
(3) O VSAM permite muitos OPEN para INPUT e OUTPUT. O usuário é
quem deve garantir a integridade das operações de leitura e
gravação.
(4) O VSAM permite muitos OPEN para INPUT e OUTPUT. O usuário é
quem deve garantir a integridade das operações de leitura e
gravação. O VSAM faz o refresh dos buffers pool de dados e índice
para acesso direto para garantir a coerência dos dados no buffer
pool.
Opções de cross-system
(3) O VSAM não faz refresh do buffer pool para acesso direto. Quando
SHAREOPTIONS(3,3) ou SHAREOPTIONS(4,3) o VSAM fornece um
Control Block Update Facility (CBUF).
3.1.6 Considerações
3-53
3.2 Endereçamento Estendido
SMS Managed;
Definido como formato estendido;
3-54
4 VSAM RLS
VSAM RLS é um outro modo de gerenciamento de buffer pool que
permite qualquer número de usuários em um Sysplex compartilharem
arquivos VSAM. Ele oferece total integridade de dados. A serialização
ocorre a nível de registro. Contudo, para implementar situações de
recuperação o usuário deve ter seu próprio controle, como o CICS tem.
VSAM RLS não introduz novos tipos de arquivos VSAM: ao invés disto,
ele introduz uma nova forma de acessar arquivos existentes.
Para indicar o uso do RLS pode-se utilizar a própria macro ACB com o
parâmetro MACRF=RLS ou a palavra chave RLS no sub-parâmetro AMP
do cartão DD no JCL.
4-55
4.1 Como o RLS trabalha
4-56
4.2 RLS em um único sistema
4-57
4.3 Restrições do RLS
Compartilhar VSAM sob o RLS exige que o sphere VSAM seja SMS
managed;
O IDCAMS não possui acesso aos blocos de controle no address
space do SMSVSAM. Não é possível obter informações
pertencentes ao RLS pelo IDCAMS;
Arquivos LINEAR, temporários e com key ranges não são
suportados pelo RLS;
Devido ao compartilhamento das estruturas de bloco de
controlem o RLS não utiliza shareoptions;
O RLS não suporta data striping;
4-58
4.4 Implementação do RLS
4-59
5 Introdução ao DFSMStvs
O DFSMStvs é uma extensão do uso do RLS para o VSAM. A sua função
chave é que o VSAM oferece funcionalidades de lock, commit, backuot e
log que possibilitam múltiplos usuários batch executarem
concorrentemente com acesso do CICS aos mesmos arquivos mantendo
a integridade e habilidade de recuperação.
5-60
5.1 Definições
5-61
5.2 Overview do DFSMStvs
5-62
O system logger é usado porque ele pode fazer merge de entradas de
muitos sistemas z/OS para um único log stream, onde um log stream é
simplesmente um conjunto de entradas de log. Um único log stream
para o sysplex facilita o gerenciamento e garante a integridade dos
dados.
5.2.4 Implementação
5-63
Definir as classes SMS;
Atualizar o membro IGDSMSxx da SYS1.PARMLIB;
5.2.5.1 ALLOCATE
BWO(TYPECICS)
Esta opção especifica o backup-while-open (BWO) em um
ambiente DFSMStvs. Para o processamento do RLS esta opção
ativa o BWO para o DFSMStvs.
DATACLASS CISIZE
Para o DFSMStvs, especificação de n*2K evita desperdício em
uma estrutura de cache na coupling facility.
SHAREOPTIONS
Quando se usa o acesso do DFSMStvs, o DFSMS assume um
valor de (3,3)
5.2.5.2 ALTER
BWO(TYPECICS)
Esta opção especifica o backup-while-open (BWO) em um
ambiente DFSMStvs. Para o processamento do RLS esta opção
ativa o BWO para o DFSMStvs.
LOG(UNDO)
Especifica que mudanças ao sphere acessado em modo
DFSMStvs pode ser backed out usando um log externo. O
DFSMStvs considera o sphere recuperável.
LOG(ALL)
Especifica que mudanças ao sphere acessado em modo
DFSMStvs pode ser backed out e também forward recovered
usando log externo. O DFSMStvs considera o sphere recuperável.
LOGSTREAMID também deve ser definido.
LOGSTREAMID
Esta opção adiciona ou altera o nome do DFSMStvs log forward-
recovery para todos os componentes de um VSAM sphere.
BUFFERSPACE
Quando se usa o acesso do DFSMStvs, o DFSMS ignora o
parâmetro BUFFERSPACE.
CONTROLINTERVALSIZE
5-64
Para o DFSMStvs, a especificação de n*2K evita desperdício de
espaço na estrutura de cache da coupling facility.
KEYRANGES
Não se pode abrir arquivos com keyranges em processamento do
RLS e DFSMStvs porque o DFSMS não suporta este parâmetro.
SHAREOPTIONS
Quando se usa o acesso do DFSMStvs, o DFSMS assume um
valor de (3,3)
WRITECHECK
Quando se usa o acesso DFSMStvs, o DFSMS ignora o parâmetro
WRITECHECK.
BUFFERSPACE
Quando se usa o acesso do DFSMStvs, o DFSMS ignora o
parâmetro BUFFERSPACE.
CONTROLINTERVALSIZE
Para o DFSMStvs, a especificação de n*2K evita desperdício de
espaço na estrutura de cache da coupling facility.
KEYRANGES
Não se pode abrir arquivos com keyranges em processamento do
RLS e DFSMStvs porque o DFSMS não suporta este parâmetro.
LOG(UNDO)
Especifica que mudanças ao sphere acessado em modo
DFSMStvs pode ser backed out usando um log externo. O
DFSMStvs considera o sphere recuperável.
LOG(ALL)
Especifica que mudanças ao sphere acessado em modo
DFSMStvs pode ser backed out e também forward recovered
usando log externo. O DFSMStvs considera o sphere recuperável.
LOGSTREAMID também deve ser definido.
LOGSTREAMID
Esta opção adiciona ou altera o nome do DFSMStvs log forward-
recovery para todos os componentes de um VSAM sphere.
SHAREOPTIONS
Quando se usa o acesso do DFSMStvs, o DFSMS assume um
valor de (3,3)
WRITECHECK
Quando se usa o acesso DFSMStvs, o DFSMS ignora o parâmetro
WRITECHECK.
NOUPDATE
5-65
Ele trabalha da mesma forma para o DFSMStvs como RLS.
5.2.5.6 SHCDS
LISTDS
Uma nova e opcional palavra chave, JOBS, retorna uma lista dos
jobs que correntemente acessam arquivos em modo DFSMStvs.
LISTSHUNTED
Lista informação sobre tarefas que foram “shunted” devido a
incapacidade de completar um syncpoint para um arquivo, uma
unidade de recuperação ou todas as unidades de recuperação.
PURGE
Descarta entradas de log e libera os locks associados para uso
quando o arquivo é corrompido e não se pode restaura-lo para
um estado de consistência com as entradas do log.
RETRY
Tenta novamente o syncpoint; ele é usado quando se recupera
um arquivo para um estado que é consistente com entradas de
log.
5-66