📌 Explicação

O parâmetro REGION= define quanto de memória virtual (em KB ou MB) o job ou passo do job pode usar durante a execução. Ele pode ser usado tanto na instrução JOB quanto na instrução EXEC de cada passo.

🧰 Usos mais comuns

  • Restringir ou ampliar o uso de memória de um job/passo.

  • Evitar abends como S878 (sem espaço suficiente) ou S80A (estouro de região).

  • Garantir performance em programas que exigem mais memória (como COBOL com DB2, CICS etc.).

🧾 Sintaxe

//NOMEJOB JOB (conta),‘descrição’,
//             REGION=valor

//ETAPA EXEC PGM=PROGRAMA,
//             REGION=valor

Onde valor pode ser:

  • Em KB: REGION=4096 (4MB)

  • Em MB: REGION=4M, REGION=0M (libera o máximo permitido)

💻 Exemplo prático

//COBOLJOB JOB (1234),'COBOL DICAS',
//             REGION=4M,CLASS=A,MSGCLASS=X
//*
//PASSO01 EXEC PGM=PROGCOBOL,
//             REGION=0M

Nesse exemplo:

  • O JOB inteiro pode usar até 4MB de memória.

  • Mas o PASSO01 pode usar o máximo permitido pelo sistema (REGION=0M).

⚙️ Regras

  • O REGION no EXEC sobrepõe o REGION no JOB.

  • Pode ser exigido por programas que usam muita memória (ex: grandes SORTs).

  • Os limites exatos dependem da configuração do sistema (z/OS).

💡 Dicas

  • Se tomar abend S878 ou S80A, aumenta o REGION.

  • Use REGION=0M quando você confia que o programa precisa e o sistema pode entregar.

  • Em produção, sempre consulte o administrador antes de meter 0M — pode impactar outros jobs.

 

✅ Conclusão

REGION= é tipo o motor do job. Define se ele vai andar de Fusquinha ou de V8. Se faltar memória, não adianta ter código bom — vai abendar. Usa com consciência, ajusta conforme a necessidade do programa, e garante uma execução redonda e eficiente.