📌 Explicação

O parâmetro DCB= (Data Control Block) define as características físicas do dataset: tipo de registro, tamanho do registro, tamanho do bloco, codificação, etc.

É obrigatório quando o dataset é novo (DISP=NEW) e não tem um modelo de referência (como LIKE=).

🧰 Usos mais comuns

  • Criar datasets com formatação padrão (FB, VB, etc.)

  • Definir o tamanho dos registros (LRECL) e blocos (BLKSIZE)

  • Garantir compatibilidade com programas que leem/gravam o arquivo

🧾 Sintaxe

//DDNAME DD DSN=nome.do.dataset,
//           DISP=(NEW,CATLG,DELETE),
//           UNIT=SYSDA,
//           SPACE=(TRK,(10,5)),
//           DCB=(RECFM=xx,LRECL=nnn,BLKSIZE=nnnn)

Principais parâmetros do DCB:

  • RECFM= → formato do registro:

    • FB: Fixo, bloqueado

    • F: Fixo, não bloqueado

    • VB: Variável, bloqueado

    • V: Variável, não bloqueado

  • LRECL= → comprimento lógico do registro (ex: 80, 133, 255)

  • BLKSIZE= → tamanho do bloco (pode deixar o sistema calcular)

💻 Exemplo prático

//SAIDA DD DSN=CDICAS.SAIDA.RELATORIO,
//         DISP=(NEW,CATLG,DELETE),
//         UNIT=SYSDA,
//         SPACE=(CYL,(2,1)),
//         DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

Aqui você está criando um arquivo com:

  • Registros fixos

  • Cada registro com 80 posições

  • Cada bloco com 10 registros (80×10 = 800)

⚙️ Regras

  • DCB é obrigatório pra datasets novos que não usam LIKE=.

  • O RECFM define se o programa vai ler os dados com estrutura fixa ou variável.

  • BLKSIZE afeta a performance de leitura/escrita — muito pequeno = desperdício, muito grande = risco de erro.

💡 Dicas

  • Para arquivos simples de texto: RECFM=FB,LRECL=80 já resolve.

  • Se não sabe o BLKSIZE, pode omitir e deixar o sistema calcular.

  • Prefira padronizar o DCB nos jobs pra facilitar manutenção.

 

✅ Conclusão

DCB= é como a planta baixa do dataset. Diz como ele será construído no nível mais baixo — registro por registro. Usar bem o DCB evita erro de leitura, abend de compatibilidade e até perda de dados. Quem domina isso, mostra que manja de JCL na veia.