📌 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) ouS80A
(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
noEXEC
sobrepõe oREGION
noJOB
. -
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
ouS80A
, aumenta oREGION
. -
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.