| 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
| Sigla | Significado |
|---|---|
| DS | Data Set |
| N | Name |
| DSN | Data 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
| Comando | Função |
|---|---|
| DSN=USER.ARQ | Dataset existente |
| DSN=ARQ(+1) | Nova geração GDG |
| DSN=&&TEMP | Dataset temporário |
| DSN=ARQ.VSAM | Arquivo VSAM |
| DSN=ARQ.SEQ | Arquivo 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.
Sem comentários:
Enviar um comentário