Translate

Mostrar mensagens com a etiqueta programação JCL. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta programação JCL. Mostrar todas as mensagens

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.