InícioMódulos › Módulo 03

Módulo 03 — Gerenciamento de Jobs INTERMEDIÁRIO

Monitoramento, controle e agendamento de jobs batch e interativos no AS/400.

3.1 Tipos de Job

TipoDescrição
*INTERACTJob interativo — sessão de usuário
*BATCHJob em lote, executado em background
*AUTOSTARTIniciado automaticamente com o subsistema
*COMMJobs de comunicação

Todo job é identificado por 3 campos: Nome / Usuário / Número — ex: QPADEV0001 / JOAO / 012345

3.2 Monitoramento

Listar todos os jobs ativos

WRKACTJOB

Opções disponíveis na tela:

OpçãoAção
4Encerrar job
5Exibir detalhes
8Exibir mensagens do job
13Desconectar job interativo
14Ver call stack (o que está executando)

Filtrar por usuário ou subsistema

WRKACTJOB USER(JOAO)
WRKACTJOB SBS(QBATCH)

Exibir detalhes de job específico

WRKJOB JOB(123456/JOAO/MEUJOB)

3.3 Filas de Jobs

WRKJOBQ                    /* Listar todas as filas        */
WRKJOBQ JOBQ(QBATCH)       /* Jobs em fila específica      */
HLDJOBQ JOBQ(QBATCH)       /* Segurar fila (impede execução) */
RLSJOBQ JOBQ(QBATCH)       /* Liberar fila segurada        */
CRTJOBQ JOBQ(MINHAFILAJOB) /* Criar fila customizada       */

3.4 Controle de Jobs

Segurar e liberar

HLDJOB JOB(123456/JOAO/MEUJOB)   /* Pausar job          */
RLSJOB JOB(123456/JOAO/MEUJOB)   /* Liberar job pausado */

Encerrar job (sempre preferir *CNTRLD)

ENDJOB JOB(123456/JOAO/MEUJOB) OPTION(*CNTRLD) DELAY(30)
⚠ Atenção: Use OPTION(*IMMED) apenas em último recurso — pode corromper dados em processamento.
ENDJOB JOB(123456/JOAO/MEUJOB) OPTION(*IMMED)   /* Força encerramento */

3.5 Job Log

DSPJOBLOG                          /* Log do job atual               */
DSPJOBLOG JOB(123456/JOAO/MEUJOB)  /* Log de job específico          */
DSPJOBLOG OUTPUT(*PRINT)           /* Salvar log no spool            */

3.6 Submeter Jobs Batch

SBMJOB CMD(DSPLIB LIB(QGPL)) JOBQ(QBATCH) JOB(TESTE001)
SBMJOB CMD(CALL PGM(MEUALIB/MEUPGM)) JOB(ROTINA01) JOBQ(QBATCH)

Submeter com agendamento imediato

SBMJOB CMD(CALL PGM(MEUALIB/BACKUP)) SCDDATE(*CURRENT) SCDTIME('23:00:00') JOB(BACKUP_NOITE)

3.7 Agendamento de Jobs

WRKJOBSCDE                                    /* Ver jobs agendados  */
ADDJOBSCDE JOB(BACKUP_DIA) CMD(CALL PGM(BKPLIB/BKPPGM)) FRQ(*WEEKLY) SCDDAY(*MON *TUE *WED *THU *FRI) SCDTIME('22:00:00')
CHGJOBSCDE JOB(BACKUP_DIA) SCDTIME('23:30:00')  /* Alterar horário   */
RMVJOBSCDE JOB(BACKUP_DIA)                       /* Remover agendamento */

3.8 Diagnóstico

Job em loop (alto CPU%)

WRKACTJOB  /* Pressione F10 para ordenar por CPU% */

Ver call stack de um job

WRKJOB JOB(num/usr/nome) /* Opção 14 = Call Stack */

Ver locks de um job

WRKJOB JOB(num/usr/nome) /* Opção 12 = Locks */

Job em MSGW — aguardando resposta de mensagem

WRKJOB JOB(num/usr/nome) /* Opção 10 = Mensagens → responda a mensagem pendente */