Translate

Mostrar mensagens com a etiqueta datasets zOS. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta datasets zOS. Mostrar todas as mensagens

sexta-feira, 23 de março de 2007

O que é XMIT em Mainframe?

 

Bellacosa Mainframe explica o XMIT

O que é XMIT em Mainframe?

O comando XMIT (Transmit) é um utilitário do TSO/E utilizado para empacotar e transmitir datasets entre usuários, sistemas z/OS ou ambientes Mainframe.

Ele funciona como uma espécie de:

ZIP do Mainframe
+
Envio de Arquivos

O resultado é um arquivo especial conhecido como:

XMIT File
ou
Transmitted Dataset

Muito utilizado para:

✅ Compartilhar JCLs

✅ Enviar fontes COBOL

✅ Transferir PDSs completos

✅ Distribuir ferramentas

✅ Migrar objetos entre ambientes


Como Funciona?

Imagine que você possui uma biblioteca:

USER.COBOL.SOURCE

Com dezenas de programas COBOL.

O XMIT transforma tudo em um único arquivo:

USER.COBOL.XMIT

que pode ser enviado para outro usuário.


Fluxo Simplificado

PDS
 ↓
XMIT
 ↓
Arquivo XMIT
 ↓
FTP / E-mail / Connect:Direct
 ↓
RECEIVE
 ↓
PDS Restaurada

Comando Básico XMIT

No TSO:

XMIT USERID -
DSNAME('USER.COBOL.SOURCE')

Onde:

USERID = Destinatário

DSNAME = Dataset enviado

Exemplo 1 – Enviar um PDS

Suponha:

USER.JCL

contendo:

JOB1
JOB2
JOB3

Execute:

XMIT BELLACOSA -
DSNAME('USER.JCL')

Resultado:

Arquivo Transmitido

na fila do usuário destino.


Exemplo 2 – Criar Arquivo XMIT

Muito comum para download.

XMIT BELLACOSA -
DSNAME('USER.JCL') -
OUTDSN('USER.JCL.XMIT')

Resultado:

USER.JCL.XMIT

Agora você pode:

FTP
IND$FILE
Download
Connect:Direct

Estrutura

Antes:

USER.JCL
   ├── JOB001
   ├── JOB002
   └── JOB003

Depois:

USER.JCL.XMIT

Como Receber?

Utilizando RECEIVE.


Comando RECEIVE

RECEIVE INDSN('USER.JCL.XMIT')

Sistema pergunta:

Restore dataset?

Resposta:

YES

Dataset restaurado.


Exemplo Completo

Passo 1

Criar arquivo transmitido.

XMIT BELLACOSA -
DSNAME('USER.COBOL.SOURCE') -
OUTDSN('USER.COBOL.XMIT')

Passo 2

Transferir.

FTP
IND$FILE
SFTP
Connect:Direct

Passo 3

Receber.

RECEIVE INDSN('USER.COBOL.XMIT')

Passo 4

Confirmar restauração.

Restore?
YES

Passo 5

Dataset recriado.

USER.COBOL.SOURCE

Enviando PDS Completa

XMIT preserva:

✅ Membros

✅ Estatísticas

✅ Estrutura

✅ Atributos


Exemplo:

USER.COBOL

contendo:

PROG001
PROG002
PROG003

Após RECEIVE:

PROG001
PROG002
PROG003

continuam intactos.


XMIT via Batch

Também pode ser executado por JCL.


Exemplo:

//STEP01 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD *
 XMIT USERID
  DSNAME('USER.JCL')
/*

RECEIVE via Batch

//STEP01 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
 RECEIVE INDSN('USER.JCL.XMIT')
/*

O que Pode Ser Transmitido?

PDS

USER.JCL

PDS/E

USER.COBOL

Sequential

USER.ARQUIVO

Load Library

USER.LOADLIB

O que NÃO É Recomendado?

Arquivos muito grandes.

Exemplo:

DB2 Tablespace
VSAM Gigantesco

Normalmente usa-se:

DFDSS
ADRDSSU
FTP

XMIT e FTP

Fluxo muito comum:

Mainframe A
      ↓
XMIT
      ↓
Arquivo .XMIT
      ↓
FTP
      ↓
Mainframe B
      ↓
RECEIVE

XMIT e IND$FILE

Muito usado para baixar exemplos da internet.


Passo típico:

Site Mainframe
      ↓
Arquivo.XMIT
      ↓
Download PC
      ↓
Upload Mainframe
      ↓
RECEIVE

Erros Comuns

Dataset Não Existe

DATA SET NOT FOUND

Espaço Insuficiente

INSUFFICIENT SPACE

RECEIVE em Dataset Inválido

INVALID TRANSMISSION DATASET

Vantagens

✅ Fácil utilização

✅ Preserva atributos

✅ Mantém membros

✅ Funciona em qualquer z/OS

✅ Muito usado na comunidade Mainframe


Curiosidade

Durante décadas, a comunidade Mainframe distribuiu ferramentas, utilitários, macros, exits e exemplos COBOL através de arquivos .XMIT. Muitos pacotes clássicos disponíveis em fóruns, grupos SHARE e CBT Tape eram distribuídos exatamente nesse formato.


Resumo Rápido

ComandoFunção
XMITTransmitir dataset
RECEIVERestaurar dataset
OUTDSNCriar arquivo XMIT
DSNAMEDataset origem
IKJEFT01Executar via Batch
PDS/PDSETotalmente suportados

Exemplo Clássico

XMIT BELLACOSA -
DSNAME('USER.COBOL.SOURCE') -
OUTDSN('USER.COBOL.XMIT')

Depois:

RECEIVE INDSN('USER.COBOL.XMIT')

Resultado:

PDS original restaurada
com todos os membros.

Essa é a forma mais tradicional de empacotar e transportar bibliotecas COBOL, JCL, PROC e utilitários entre ambientes Mainframe z/OS.


quinta-feira, 22 de março de 2007

O que é DSN em JCL?

 

Bellacosa Mainframe explicando dsn em jcl

O que é DSN em JCL?

No ambiente Mainframe, DSN significa:

Data Set Name

Ou seja:

Nome de um Dataset

O parâmetro DSN= é um dos mais utilizados em JCL e serve para informar qual arquivo (dataset) será utilizado por um programa, utility ou procedimento.


Definição Simples

Pense no DSN como o caminho de um arquivo no Windows.

Windows:

C:\ARQUIVOS\CLIENTES.TXT

Mainframe:

USER.PROJETO.CLIENTES

Esse nome é o DSN.


Exemplo Básico

//ARQENT DD DSN=USER.PROJETO.CLIENTES,
//       DISP=SHR

Onde:

DSN=USER.PROJETO.CLIENTES

é o dataset utilizado.


Significado da Sigla

SiglaSignificado
DSData Set
NName
DSNData Set Name

Estrutura de um DSN

Um dataset é composto por qualificadores.

Exemplo:

EMPRESA.FINANCEIRO.CLIENTES

Cada parte possui significado.

EMPRESA
   ↓
FINANCEIRO
   ↓
CLIENTES

Exemplo Corporativo

BANCO.PRODUCAO.COBOL
BANCO.TESTE.COBOL
BANCO.CLIENTES.VSAM
BANCO.JCL.PROC

Uso em DD Statements

O uso mais comum.

//ENTRADA DD DSN=USER.ARQ.ENTRADA,
//            DISP=SHR

Dataset Sequencial

//SAIDA DD DSN=USER.ARQ.SAIDA,
//          DISP=OLD

Dataset VSAM

//CLIENTE DD DSN=BANCO.CLIENTE.KSDS,
//            DISP=SHR

Dataset GDG

//RELAT DD DSN=USER.RELATORIO.GDG(+1),
//          DISP=(NEW,CATLG)

Dataset Temporário

//SORTWK DD DSN=&&TEMP,
//           DISP=(NEW,PASS)

O dataset existe apenas durante o Job.


DSN e DISP

Normalmente aparecem juntos.

//ARQ DD DSN=USER.CLIENTES,
//        DISP=SHR

Onde:

DSN = Nome do Dataset

DISP = Como será utilizado

DSN em Criação de Arquivos

//SAIDA DD DSN=USER.NOVO.ARQUIVO,
//          DISP=(NEW,CATLG,DELETE),

O dataset será criado.


DSN em SYSUT1 e SYSUT2

Muito comum em utilities.

//SYSUT1 DD DSN=USER.ARQ.ORIGEM,
//            DISP=SHR
//SYSUT2 DD DSN=USER.ARQ.DESTINO,
//            DISP=(NEW,CATLG)

DSN em IDCAMS

//ARQVSAM DD DSN=EMPRESA.CLIENTE.KSDS

DSN em SORT

//SORTIN DD DSN=USER.CLIENTES,
//           DISP=SHR

//SORTOUT DD DSN=USER.CLIENTES.ORD,
//            DISP=(NEW,CATLG)

DSN e Catálogo

O catálogo do z/OS mantém informações sobre o dataset.

Quando informamos:

DSN=USER.CLIENTES

o sistema consulta o catálogo para localizar o arquivo.


Regras para Nomes

Um DSN:

✅ Pode ter até 44 caracteres

✅ Pode possuir vários qualificadores

✅ Usa ponto (.) como separador


Exemplo:

EMPRESA.FINANCEIRO.ARQUIVOS.CLIENTES

Qualificadores

Cada qualificador pode ter:

1 a 8 caracteres

Exemplo:

EMPRESA
FINANCE
CLIENTES

Caracteres Permitidos

Normalmente:

A-Z
0-9
@
#
$

Exemplo Real

//STEP01 EXEC PGM=COBOLPGM

//ENTRADA DD DSN=BANCO.PROD.CLIENTES,
 //          DISP=SHR

//SAIDA DD DSN=BANCO.PROD.RELATORIO,
 //         DISP=(NEW,CATLG,DELETE)

Erros Comuns

Dataset Não Existe

IEC141I
DATA SET NOT FOUND

Nome Incorreto

JCL ERROR

Dataset Em Uso

DATA SET IN USE

Boas Práticas

✅ Utilizar nomenclatura padronizada

✅ Separar Produção e Teste

✅ Usar qualificadores significativos

✅ Evitar nomes genéricos


Curiosidade

O conceito de DSN existe desde os primeiros sistemas OS/360 da IBM nos anos 1960. Mesmo após décadas de evolução tecnológica, ele continua sendo uma das estruturas fundamentais do z/OS, organizando bilhões de datasets utilizados diariamente por bancos, seguradoras e governos.


Resumo Rápido

ComandoFunção
DSN=USER.ARQDataset existente
DSN=ARQ(+1)Nova geração GDG
DSN=&&TEMPDataset temporário
DSN=ARQ.VSAMArquivo VSAM
DSN=ARQ.SEQArquivo sequencial

Conclusão

O DSN (Data Set Name) é o nome lógico de um dataset no Mainframe. Utilizado principalmente em instruções DD do JCL, ele identifica arquivos sequenciais, VSAM, GDGs, bibliotecas, datasets temporários e diversos outros recursos do z/OS. Dominar o uso de DSN é um dos primeiros passos para compreender JCL, Batch e administração de arquivos em ambientes Mainframe.


domingo, 18 de março de 2007

O que é Storage em Mainframe?

 

Bellacosa Mainframe mergulhando no Storage Mainframe

O que é Storage em Mainframe?

No mundo Mainframe, Storage é o subsistema responsável por armazenar permanentemente todos os dados utilizados pelas aplicações, bancos de dados, arquivos, logs, backups e sistemas operacionais.

Em outras palavras:

Storage = O "cofre" de dados do Mainframe

É nele que ficam armazenados:

  • Datasets

  • VSAM

  • DB2

  • Logs

  • Backups

  • JCLs

  • Fontes COBOL

  • Bibliotecas Load

  • Arquivos de usuários


Diferença Entre Memória e Storage

Muitos iniciantes confundem os dois conceitos.

Memória (RAM)

Armazenamento temporário.

Programa Executando
         ↓
      Memória

Quando o sistema é desligado:

Dados Perdidos

Storage

Armazenamento permanente.

Programa
     ↓
Storage

Os dados permanecem gravados.


Evolução Histórica

Década de 1960

Cartões perfurados.

80 colunas

Década de 1970

Discos magnéticos.


Década de 1980

DASD de grande capacidade.


Atualmente

SSD
Flash
NVMe
Storage Corporativo

O que é DASD?

Significa:

Direct Access Storage Device

É o termo tradicional utilizado em Mainframe para dispositivos de armazenamento.


Exemplo:

3390
3380

eram modelos clássicos.


Storage Moderno

Hoje os Mainframes normalmente utilizam:

IBM DS8000

A principal família de storage corporativo da IBM.


Exemplo

IBM Z
   ↓
FICON
   ↓
DS8000
   ↓
Discos SSD

O que o Storage Guarda?


Datasets

Arquivos do z/OS.

Exemplo:

USER.COBOL.SOURCE

Load Libraries

Programas compilados.

Exemplo:

USER.LOADLIB

DB2

Tabelas e índices.


VSAM

Arquivos indexados.


Logs

Registros operacionais.


Backups

Cópias de segurança.


Estrutura Simplificada

Aplicação
     ↓
z/OS
     ↓
Canal FICON
     ↓
Storage

Comunicação com o Storage

O Mainframe utiliza:

FICON

Fiber Connection


Função:

Mainframe
      ↔
Storage

Velocidades atuais:

16 Gbps
32 Gbps
64 Gbps

e superiores.


Controladoras

Dentro do Storage existem controladoras especializadas.

Responsáveis por:

  • Cache

  • Replicação

  • Compressão

  • Segurança


Cache do Storage

Antes de acessar o disco:

Storage Cache
       ↓
Disco

Benefícios:

✅ Mais velocidade

✅ Menor latência


RAID

Proteção contra falhas.

Exemplo:

Disco A
Disco B
Disco C

Se um falhar:

Dados continuam disponíveis

Replicação

Storage corporativo normalmente mantém cópias.


Exemplo:

São Paulo
      ↓
Rio de Janeiro

Ou:

Data Center A
      ↓
Data Center B

PPRC

Peer-to-Peer Remote Copy

Tecnologia IBM de replicação.


Metro Mirror

Replicação síncrona.


Global Mirror

Replicação assíncrona.


Snapshots

Fotografias instantâneas dos dados.


Utilizados para:

  • Backup

  • Recuperação

  • Testes


Compressão

Reduz espaço consumido.


Exemplo:

100 TB
 ↓
60 TB

Criptografia

Storages modernos possuem:

Encryption at Rest

Protegem dados armazenados.


Storage e DB2

Fluxo típico:

DB2
 ↓
Dataset
 ↓
Storage

Storage e VSAM

VSAM
 ↓
Dataset KSDS
 ↓
Storage

Storage e Batch

Durante um JOB:

Programa COBOL
        ↓
Leitura Dataset
        ↓
Storage

Storage e CICS

CICS
 ↓
VSAM
 ↓
Storage

Disponibilidade

Storages corporativos oferecem:

✅ Redundância

✅ Failover

✅ Hot Swap

✅ Replicação


Hot Swap

Troca de componentes sem desligamento.


Exemplo:

SSD defeituoso
      ↓
Troca Online

Capacidade

Storages modernos podem armazenar:

Petabytes

de dados.


Exemplo Real

Banco:

PIX
TED
DOC
Cartões
Internet Banking

Tudo armazenado em Storages corporativos.


Principais Componentes

ComponenteFunção
DASDArmazenamento
DS8000Storage IBM
FICONComunicação
CacheAceleração
RAIDProteção
PPRCReplicação
Metro MirrorEspelhamento síncrono
Global MirrorEspelhamento assíncrono
SnapshotBackup instantâneo
CriptografiaSegurança

Curiosidade

Um único sistema IBM DS8000 pode armazenar petabytes de dados e atender simultaneamente milhares de aplicações executando em IBM Z, LinuxONE, AIX, IBM i e ambientes distribuídos. Em grandes bancos, é comum que dezenas de storages corporativos trabalhem em conjunto para garantir disponibilidade contínua dos dados.


Resumo Rápido

COBOL
  ↓
Dataset
  ↓
z/OS
  ↓
FICON
  ↓
DS8000
  ↓
SSD / Flash

Conclusão

O Storage em Mainframe é a infraestrutura responsável pelo armazenamento permanente dos dados corporativos. Utilizando tecnologias como DASD, DS8000, FICON, RAID, Replicação, Snapshots e Criptografia, ele garante desempenho, disponibilidade e segurança para aplicações críticas que processam milhões de transações diariamente em bancos, seguradoras, governos e grandes empresas.


sábado, 13 de janeiro de 2007

O que é PDS e PDS/E?

 

Bellacosa Mainframe o que é pds e pds/e

O que é PDS e PDS/E?

Quando alguém começa a estudar datasets no z/OS, rapidamente encontra dois nomes muito importantes:

PDS

e

PDSE (PDS/E)

Eles são fundamentais no universo mainframe porque armazenam:

  • JCL;

  • programas COBOL;

  • PROC;

  • scripts;

  • parâmetros;

  • bibliotecas do sistema.

Praticamente todo profissional mainframe trabalha com eles diariamente.


Primeiro: o que é um PDS?

PDS significa:

Partitioned Data Set

É um tipo especial de dataset que funciona como:

uma biblioteca com vários arquivos internos.


Analogia simples

Imagine:

uma pasta de escritório.

Dentro dela existem:

  • vários documentos;

  • organizados separadamente.

No PDS:

  • o dataset é a pasta;

  • os arquivos internos são chamados de:

membros.


Exemplo de PDS

USUARIO.JCL

Esse dataset pode conter vários membros:

USUARIO.JCL(MYJOB)
USUARIO.JCL(TESTE)
USUARIO.JCL(BACKUP)

Aqui temos:

ParteSignificado
USUARIO.JCLPDS
MYJOBmembro
TESTEmembro

Para que o PDS é usado?

Muito usado para armazenar:

  • JCL;

  • programas COBOL;

  • PROC;

  • macros;

  • scripts;

  • parâmetros.


Por que o PDS foi criado?

Imagine armazenar milhares de pequenos arquivos separados no disco.

Isso seria:

  • lento;

  • difícil de organizar;

  • ineficiente.

Então a IBM criou o conceito:

vários membros dentro de um único dataset.


Como funciona internamente?

O PDS possui:

  • área de diretório;

  • área de dados.


Diretório

Guarda informações dos membros:

  • nome;

  • localização;

  • controle.


Área de dados

Onde os membros ficam armazenados.


Problema clássico do PDS

O PDS tradicional possui limitações antigas.

Com o tempo:

  • membros apagados;

  • alterações;

  • reutilizações;

geravam:

fragmentação.


O famoso problema:

“Directory Full”

Ou:

“No Space in Directory”

Muito comum em ambientes antigos.


Então nasceu o PDSE

PDSE significa:

Partitioned Data Set Extended

Também chamado:

PDS/E


O que mudou no PDSE?

O PDSE é:

a evolução moderna do PDS.


Principais melhorias


1. Gerenciamento automático

O sistema organiza espaço automaticamente.


2. Sem compressão manual

No PDS clássico:
às vezes era necessário:

COMPRESS

No PDSE isso praticamente desaparece.


3. Melhor performance

Mais eficiente no acesso aos membros.


4. Melhor uso de espaço

Menos fragmentação.


5. Mais estabilidade

Muito mais robusto.


6. Expansão automática

O diretório cresce automaticamente.


Então o PDSE é melhor?

Na maioria dos casos:

sim.

Hoje muitos ambientes preferem:

PDSE.


Exemplo de uso

Biblioteca COBOL:

USUARIO.COBOL

Membros:

CLIENTE
CONTAS
RELATORIO

Como acessar?

Normalmente no:

ISPF 3.4


Exemplo

DSNAME LEVEL ===> USUARIO.COBOL

Como editar um membro?

Na lista:

  • usar E;

  • escolher membro.


Exemplo

E USUARIO.COBOL(PROGRAMA)

Como identificar PDS e PDSE?

No ISPF aparecem atributos.

O importante é:

DSORG


PDS tradicional

DSORG=PO

PDSE

Também aparece como:

PO-E

ou:

LIBRARY

dependendo da ferramenta.


O que significa PO?

Partitioned Organization


O que é membro?

Membro é:

um arquivo interno do PDS.


Analogia

PDS = gaveta
Membro = documento


Vantagens do PDS


Organização

Agrupa muitos arquivos relacionados.


Facilidade operacional

Muito usado por programadores.


Melhor gerenciamento

Mais eficiente que milhares de datasets separados.


Vantagens do PDSE


Mais moderno


Mais rápido


Menos manutenção


Melhor aproveitamento de espaço


Maior estabilidade


Existe desvantagem?

O PDSE consome um pouco mais de controle interno do sistema.

Mas hoje isso raramente é problema.


Curiosidades incríveis

1. PDS existe há décadas

E ainda é extremamente usado.


2. O PDSE resolveu problemas históricos do z/OS

Principalmente fragmentação.


3. Bibliotecas COBOL normalmente usam PDS ou PDSE


4. Muitos sistemas bancários possuem milhares de bibliotecas PDS/E


Erros comuns de iniciantes


1. Confundir PDS com diretório Linux

A ideia é parecida, mas a arquitetura é diferente.


2. Pensar que membro é dataset separado

Não.
Membro existe dentro do PDS.


3. Ignorar espaço de diretório no PDS clássico

Isso pode causar erros.


4. Confundir PS com PDS

PS:

  • arquivo único.

PDS:

  • biblioteca com membros.


Como criar PDS?

No ISPF:

opção 3.2

Definindo:

  • DSORG=PO;

  • espaço;

  • diretório.


Como criar PDSE?

Mesmo processo, mas selecionando:

LIBRARY

ou:

PDSE.


Onde aparecem no dia a dia?

Praticamente em tudo:

  • COBOL;

  • JCL;

  • PROC;

  • parâmetros;

  • automação;

  • sistemas do z/OS.


Por que aprender isso?

Porque PDS e PDSE são:

uma das estruturas mais importantes do mainframe.

Quem entende isso compreende:

  • organização de bibliotecas;

  • desenvolvimento COBOL;

  • estrutura do z/OS;

  • administração de datasets.


Resumo rápido

ConceitoSignificado
PDSBiblioteca com membros
PDSEEvolução moderna do PDS
MembroArquivo interno
DSORG=PODataset particionado
PO-EPDSE
PSArquivo simples

Conclusão

PDS e PDSE são tipos fundamentais de dataset usados no z/OS para organizar bibliotecas de programas, JCLs e arquivos corporativos.

O PDS foi uma das estruturas mais importantes da história do mainframe, enquanto o PDSE trouxe melhorias modernas de performance, estabilidade e gerenciamento automático.

Entender PDS e PDSE é essencial para qualquer pessoa que deseja aprender IBM Mainframe de verdade.

sexta-feira, 12 de janeiro de 2007

O que é Blockagem em Dataset QSAM?

 


O que é Blockagem em Dataset QSAM?

Quando começamos a estudar datasets no mainframe, rapidamente aparecem termos como:

  • RECFM;

  • LRECL;

  • BLKSIZE;

  • blockagem.

No começo parece algo extremamente técnico.

Mas a ideia é mais simples do que parece.

E entender blockagem é fundamental para:

  • performance;

  • uso de disco;

  • processamento batch;

  • COBOL;

  • SORT;

  • QSAM.


Primeiro: o que é QSAM?

QSAM significa:

Queued Sequential Access Method

É um método de acesso usado no z/OS para trabalhar com arquivos sequenciais.

Ele é muito utilizado em:

  • COBOL;

  • JCL;

  • relatórios batch;

  • processamento financeiro.


O que é um registro?

Antes da blockagem, precisamos entender:

registro.

Um registro representa:

uma linha de dados.

Exemplo:

JOAO      0001500
MARIA     0003200
CARLOS    0009800

Cada linha é um registro.


O problema sem blockagem

Imagine um dataset com:

  • milhões de registros;

  • cada registro com 80 bytes.

Se o disco gravasse:

  • 1 registro por vez,

o sistema faria milhões de operações de I/O.

Isso seria:

  • lento;

  • caro;

  • ineficiente.


Então nasceu a blockagem

A ideia é simples:

agrupar vários registros em um único bloco físico.


Analogia fácil

Imagine transportar livros.

Sem blockagem:

  • 1 livro por viagem.

Com blockagem:

  • vários livros dentro de uma caixa.

Resultado:

  • menos viagens;

  • mais eficiência.


O que é um bloco?

Bloco é:

um conjunto de registros gravados juntos no disco.


Exemplo simples

Imagine:

  • registro = 80 bytes

  • bloco = 800 bytes

O sistema consegue armazenar:

10 registros dentro do mesmo bloco

Porque:

10 × 80 = 800

Onde isso aparece?

Na definição do dataset:

RECFM=FB
LRECL=80
BLKSIZE=800

Entendendo os parâmetros


RECFM=FB

Formato:

Fixed Block

Registros fixos com blockagem.


LRECL=80

Cada registro possui:
80 bytes.


BLKSIZE=800

Cada bloco possui:
800 bytes.


Resultado

O sistema grava:

10 registros por bloco.


Por que isso melhora performance?

Porque o disco trabalha melhor lendo:

  • grandes blocos;
    do que:

  • registros individuais.


Benefícios da blockagem


1. Menos I/O

Reduz acessos físicos ao disco.


2. Mais velocidade

Leitura e gravação mais rápidas.


3. Melhor uso do disco

Menos desperdício.


4. Melhor performance batch

Especialmente em:

  • SORT;

  • COBOL;

  • grandes arquivos.


O que acontece sem blockagem?

Exemplo:

RECFM=F
LRECL=80

Aqui:

  • registros fixos;

  • sem blocagem.

Cada registro é gravado separadamente.


Isso é ruim?

Nem sempre.

Mas normalmente:

  • FB é mais eficiente que F.


Blockagem em VB

Também existe em datasets variáveis.

Exemplo:

RECFM=VB

Nesse caso:

  • registros possuem tamanhos diferentes;

  • mas continuam agrupados em blocos.


O que é BLKSIZE?

BLKSIZE significa:

Block Size

Define:

o tamanho físico do bloco.


Exemplo visual

Sem blockagem:

[REG]
[REG]
[REG]
[REG]

Com blockagem:

[BLOCO: REG REG REG REG]

Quem define a blockagem?

Pode ser:

  • programador;

  • JCL;

  • sistema;

  • SMS do z/OS.


O sistema pode calcular sozinho?

Sim.

Hoje muitos ambientes usam:

BLKSIZE=0

O z/OS calcula automaticamente o melhor tamanho.


Isso é muito usado atualmente

Porque:

  • reduz erros;

  • otimiza performance;

  • simplifica configuração.


Exemplo de JCL

//ARQ DD DSN=USUARIO.TESTE,
//    DISP=(NEW,CATLG),
//    RECFM=FB,
//    LRECL=80,
//    BLKSIZE=800

O que isso cria?

Dataset:

  • registros fixos;

  • 80 bytes;

  • 10 registros por bloco.


Como COBOL lê isso?

O COBOL normalmente não “vê” a blockagem diretamente.

O QSAM e o z/OS fazem isso automaticamente.


O programador trabalha com registros

O sistema operacional cuida dos blocos.


O que é blocking factor?

Também chamado:

fator de blockagem.

Indica:
quantos registros cabem no bloco.


Exemplo

LRECL = 80
BLKSIZE = 800

Fator:

800 ÷ 80 = 10

Então:

blocking factor = 10


Erros comuns de iniciantes


1. Confundir bloco com registro

Registro = linha lógica
Bloco = agrupamento físico


2. Ignorar BLKSIZE

Isso pode afetar performance.


3. Pensar que COBOL controla tudo

Quem gerencia blockagem é:

  • QSAM;

  • z/OS.


4. Definir BLKSIZE errado

Pode gerar desperdício ou erros.


Curiosidades incríveis

1. Blockagem existe desde os primeiros mainframes

Porque I/O sempre foi crítico.


2. Grandes bancos dependem fortemente disso

Performance batch seria inviável sem blockagem.


3. O conceito influenciou vários sistemas modernos

Mesmo hoje muitos bancos de dados usam ideias parecidas.


4. Um bom BLKSIZE pode melhorar muito performance

Principalmente em arquivos gigantes.


Como visualizar atributos do dataset?

No ISPF 3.4:

  • digite I;

  • veja:

    • RECFM;

    • LRECL;

    • BLKSIZE.

Ou via comando:

LISTDS 'USUARIO.ARQ'

Resumo rápido

ConceitoSignificado
RegistroLinha lógica
BlocoGrupo de registros
BlockagemAgrupar registros
BLKSIZETamanho do bloco
LRECLTamanho do registro
FBFixo com bloco
VBVariável com bloco

Conclusão

A blockagem em datasets QSAM é uma técnica usada pelo z/OS para melhorar eficiência e performance no acesso aos dados.

Em vez de gravar registros individualmente, o sistema agrupa vários registros em blocos físicos, reduzindo operações de I/O e acelerando o processamento batch.

Entender blockagem é um passo essencial para dominar:

  • datasets;

  • COBOL;

  • JCL;

  • SORT;

  • arquitetura interna do mainframe IBM Z.


quinta-feira, 11 de janeiro de 2007

Tipos de Dataset e Formatos de Dataset no Mainframe

 

Bellacosa Mainframe e os tipos e formatos de dataset em Mainframe

Tipos de Dataset e Formatos de Dataset no Mainframe

Quando alguém começa a estudar z/OS, rapidamente percebe que datasets possuem:

  • tipos;

  • formatos;

  • organizações;

  • atributos.

No começo parece complicado.

Mas entender isso é essencial para trabalhar com:

  • COBOL;

  • JCL;

  • ISPF;

  • batch;

  • armazenamento no mainframe.


O que é um Dataset?

Dataset é o nome usado no z/OS para representar:

arquivos.

Eles armazenam:

  • programas;

  • dados;

  • JCL;

  • relatórios;

  • parâmetros;

  • logs.


Diferença entre tipo e formato

Isso confunde muitos iniciantes.


Tipo de Dataset

Define:

como o dataset é organizado.

Exemplo:

  • PS;

  • PDS;

  • VSAM.


Formato de Dataset

Define:

como os registros são armazenados internamente.

Exemplo:

  • FB;

  • VB;

  • U.


Principais Tipos de Dataset


1. Sequential Dataset (PS)

Também chamado:

Physical Sequential

É o tipo mais simples.

Os dados são armazenados em sequência.


Analogia

Imagine:

uma fita de papel contínua.

Os registros ficam um após o outro.


Uso comum

  • relatórios;

  • arquivos batch;

  • entrada e saída de processamento;

  • logs.


Exemplo

USUARIO.RELATORIO

Características

  • simples;

  • rápido;

  • muito usado em batch.


2. PDS (Partitioned Data Set)

Muito importante no mundo mainframe.

Funciona como:

uma biblioteca com vários arquivos internos.


Os arquivos internos são chamados

membros


Exemplo

USUARIO.JCL(MYJOB)

Aqui:

  • dataset = USUARIO.JCL

  • membro = MYJOB


Uso comum

  • bibliotecas JCL;

  • programas COBOL;

  • PROC;

  • scripts.


Analogia

Imagine:

uma pasta com vários documentos dentro.


3. PDSE (Partitioned Data Set Extended)

Versão moderna do PDS.

Melhorias:

  • gerenciamento automático;

  • melhor performance;

  • menos desperdício;

  • mais estabilidade.


Hoje muitos ambientes preferem PDSE

Porque ele reduz problemas antigos do PDS clássico.


4. VSAM

VSAM significa:

Virtual Storage Access Method

É um dataset avançado.


Uso comum

  • sistemas bancários;

  • aplicações corporativas;

  • grandes bases de dados.


Características

  • acesso indexado;

  • alta performance;

  • grande capacidade.


Tipos VSAM


KSDS

Indexado.

Mais comum.


ESDS

Sequencial.


RRDS

Acesso relativo.


LDS

Linear.

Muito usado pelo DB2.


5. GDG

GDG significa:

Generation Data Group

Permite manter versões automáticas de datasets.


Exemplo

RELATORIO.GDG(+1)

Uso comum

  • backups;

  • histórico batch;

  • retenção de arquivos.


6. Temporary Dataset

Dataset temporário.

Existe apenas durante execução do JOB.


Exemplo

&&TEMP

Formatos de Dataset (RECFM)

Agora entra uma parte extremamente importante.

O atributo:

RECFM

Define:

Record Format

Ou seja:
como os registros são armazenados.


Principais formatos


FB — Fixed Block

Registros fixos

Todos possuem mesmo tamanho.


Exemplo

RECFM=FB
LRECL=80

Todos registros possuem:
80 bytes.


Muito usado em

  • JCL;

  • COBOL;

  • arquivos batch.


Analogia

Imagine:

folhas exatamente do mesmo tamanho.


VB — Variable Block

Registros variáveis

Cada linha pode possuir tamanho diferente.


Exemplo

RECFM=VB

Uso comum

  • relatórios;

  • textos;

  • arquivos variáveis.


Analogia

Linhas podem ser:

  • curtas;

  • médias;

  • longas.


U — Undefined

Formato indefinido.

Muito usado para:

  • programas load;

  • binários.


Exemplo

RECFM=U

F — Fixed

Registro fixo sem blocagem.


V — Variable

Registro variável sem blocagem.


O que é blocagem?

Blocos agrupam registros para:

  • melhorar performance;

  • reduzir I/O.


Outros atributos importantes


LRECL

Logical Record Length

Define tamanho lógico do registro.


Exemplo

LRECL=80

BLKSIZE

Block Size

Tamanho físico do bloco.


SPACE

Espaço alocado.


DSORG

Organização do dataset.


Exemplo completo

DSORG=PO
RECFM=FB
LRECL=80
BLKSIZE=800

O que significa?

  • PO = PDS

  • FB = registros fixos

  • 80 bytes por linha

  • bloco de 800 bytes


Como visualizar atributos?

No ISPF:

opção 3.4

Ou comando:

LISTDS 'USUARIO.JCL'

Como criar datasets?


Via ISPF 3.2

Mais comum para iniciantes.


Via JCL

Muito usado em batch.


Via TSO ALLOC

Comando interativo.


Exemplo

ALLOC DA('USUARIO.TESTE')
NEW SPACE(1,1)
RECFM(FB)
LRECL(80)

Erros comuns de iniciantes


1. Confundir PDS com PS

PDS possui membros.
PS não.


2. Ignorar RECFM

Isso pode causar ABENDs.


3. LRECL errado

Muito comum em COBOL e SORT.


4. Pensar que tudo funciona como Windows

O z/OS possui arquitetura própria.


Curiosidades incríveis

1. Muitos bancos possuem milhões de datasets

Organizados há décadas.


2. VSAM ainda é extremamente usado

Principalmente no setor financeiro.


3. O conceito de dataset é mais antigo que Linux

E continua extremamente eficiente.


4. PDS surgiu muito antes dos diretórios modernos


Como datasets aparecem no dia a dia?

Praticamente tudo usa datasets:

  • COBOL;

  • JCL;

  • DB2;

  • SORT;

  • backups;

  • spool;

  • parâmetros.


Por que aprender isso?

Porque datasets são:

a base do armazenamento no z/OS.

Quem entende datasets entende:

  • organização;

  • batch;

  • aplicações;

  • arquitetura mainframe.


Conclusão

Os tipos e formatos de dataset são um dos pilares do ambiente mainframe.

Eles definem:

  • como os dados são organizados;

  • armazenados;

  • processados;

  • acessados pelo z/OS.

Compreender PS, PDS, VSAM, RECFM e LRECL é um passo fundamental para qualquer estudante que deseja dominar o universo IBM Mainframe.


quarta-feira, 10 de janeiro de 2007

O que é Dataset?

 

Bellacosa Mainframe o que é dataset

O que é Dataset?

Quando alguém começa a estudar mainframe, uma das primeiras palavras que aparecem é:

Dataset

Ele é um dos conceitos mais importantes do z/OS.

Sem entender datasets, fica muito difícil compreender:

  • JCL;

  • COBOL;

  • ISPF;

  • processamento batch;

  • armazenamento no mainframe.


Definição simples

Dataset é o nome usado no mainframe para representar:

arquivos.

Ou seja:

um dataset é uma área onde informações são armazenadas no z/OS.

Ele pode guardar:

  • programas COBOL;

  • JCL;

  • dados bancários;

  • parâmetros;

  • relatórios;

  • logs;

  • backups.


Uma analogia fácil

Imagine um grande arquivo físico dentro de uma empresa.

Existem:

  • gavetas;

  • pastas;

  • documentos organizados.

No mainframe:

  • o disco é o armário;

  • os datasets são as pastas;

  • os membros são os documentos internos.


Por que não chamam de “arquivo”?

Porque o z/OS possui uma arquitetura diferente dos sistemas modernos.

No Windows usamos:

  • arquivos;

  • pastas;

  • diretórios.

No mainframe usamos:

  • datasets;

  • PDS;

  • volumes;

  • catálogos.

É outra lógica de organização.


Onde os datasets ficam?

Eles ficam armazenados em discos do mainframe chamados:

DASD

Significa:

Direct Access Storage Device

São dispositivos de armazenamento corporativo de alta performance.


Como é o nome de um dataset?

Datasets seguem um padrão hierárquico.

Exemplo:

USUARIO.JCL.TESTE

Entendendo o nome


USUARIO

Prefixo do dono.


JCL

Categoria ou biblioteca.


TESTE

Nome específico.


Parece um diretório?

Sim.
Visualmente lembra muito caminhos modernos.


Tipos principais de dataset


1. Sequential Dataset (PS)

O mais simples.

Armazena dados em sequência.

Exemplo:

  • relatórios;

  • arquivos batch;

  • logs.


2. PDS (Partitioned Data Set)

Muito importante.

Funciona como:

uma biblioteca com vários arquivos internos.

Esses arquivos internos são chamados:

membros.


Exemplo

USUARIO.JCL(MYJOB)

Aqui:

  • dataset = USUARIO.JCL

  • membro = MYJOB


3. PDSE

Versão moderna do PDS.

Possui:

  • melhor performance;

  • gerenciamento automático;

  • mais eficiência.


4. VSAM

Dataset avançado usado para:

  • aplicações corporativas;

  • acesso indexado;

  • grandes volumes.

Muito usado por:

  • bancos;

  • sistemas financeiros.


O que pode existir dentro de um dataset?


JCL

Jobs batch.


COBOL

Programas.


Dados

Arquivos processados.


Parâmetros

Configurações do sistema.


Relatórios

Saídas batch.


Como acessar datasets?

Normalmente pelo:

ISPF

Principalmente:

opção 3.4


Exemplo prático

Na opção 3.4:

DSNAME LEVEL ===> USUARIO.JCL

O ISPF lista os datasets encontrados.


Comandos comuns de dataset


LISTDS

Mostra informações.

LISTDS 'USUARIO.JCL'

EDIT

Edita dataset.

EDIT 'USUARIO.JCL(TESTE)'

BROWSE

Visualiza sem alterar.

BROWSE 'USUARIO.JCL(TESTE)'

DELETE

Remove dataset.

DELETE 'USUARIO.TESTE'

Como criar datasets?

Pode ser:

  • via ISPF;

  • comandos TSO;

  • JCL;

  • utilitários IDCAMS.


Exemplo simples via ISPF

Opção:

3.2

Usada para criar datasets.


O que é catalogação?

O z/OS mantém um catálogo indicando:

  • onde o dataset está;

  • em qual volume;

  • suas informações.

Isso facilita localizar datasets rapidamente.


O que é volume?

É o disco onde o dataset está armazenado.

Exemplo:

VOL001

Organização dos datasets

Datasets possuem atributos importantes:


RECFM

Formato do registro.


LRECL

Tamanho lógico do registro.


BLKSIZE

Tamanho do bloco.


SPACE

Espaço alocado.


DSORG

Tipo de organização.


Isso assusta iniciantes?

Muito.

Mas depois tudo começa a fazer sentido.


Curiosidades incríveis

1. Bancos possuem milhões de datasets

Organizando décadas de informações.


2. Muitos datasets existem há décadas

Ainda em produção.


3. O conceito de dataset é mais antigo que muitos sistemas modernos

E continua extremamente eficiente.


4. O z/OS gerencia armazenamento de forma extremamente rigorosa

Muito diferente de PCs domésticos.


O que iniciantes costumam errar?

“Dataset é igual pasta”

Nem sempre.

PDS parece uma pasta, mas dataset possui lógica própria.


“Tudo funciona como Windows”

O z/OS possui arquitetura diferente.


“Posso alterar qualquer dataset”

Muitos possuem proteção RACF.


Como datasets aparecem no dia a dia?

Usuários trabalham constantemente com:

  • bibliotecas COBOL;

  • JCL;

  • SYSOUT;

  • parâmetros;

  • arquivos batch.

Tudo usando datasets.


Por que aprender datasets?

Porque praticamente tudo no mainframe depende deles.

Datasets são:

  • base do armazenamento;

  • núcleo operacional do z/OS;

  • estrutura fundamental do ambiente.


Conclusão

Dataset é o conceito central de armazenamento no mundo mainframe.

Ele representa os arquivos utilizados pelo z/OS para guardar programas, dados, JCLs e informações corporativas críticas.

Entender datasets é um dos passos mais importantes para qualquer pessoa que deseja aprender mainframe IBM Z.