Lab 05 — Manutenção do Sistema AVANÇADO
Duração estimada: 60–90 min | Pré-requisito: Labs 01–04 concluídos | Autoridade de operador ou superior
Objetivos
- Analisar performance do sistema em tempo real
- Identificar e resolver problemas comuns de operação
- Gerenciar spool e filas de saída
- Executar checklist de manutenção preventiva
Exercício 5.1 — Diagnóstico de Performance
1Abra o monitor de status:
WRKSYSSTS
📝 Registre os valores: % CPU used, % system ASP used, DB faults/s, Non-DB faults/s.
2Pressione F5 três vezes (aguardando 30 segundos entre cada) e observe variações.
Exercício 5.2 — Identificação de Jobs Problemáticos
3Ordene jobs por CPU:
WRKACTJOB /* Pressione F10 para ordenar por CPU% */
4No job com maior CPU: Opção 5 → Opção 14 (Call Stack).
5Verifique jobs aguardando lock (status LCKW):
WRKACTJOB /* Procure na coluna Status por LCKW */
📝 Há algum job em LCKW? Qual job detém o lock?
Exercício 5.3 — Manutenção de Spool
6Verifique o volume de spool no sistema:
WRKSPLF SELECT(*ALL)
📝 Quantos arquivos de spool existem?
7Identifique a output queue mais cheia:
WRKOUTQ
8Visualize conteúdo de um spool (opção 5) e execute limpeza controlada:
CLROUTQ OUTQ(QPRINT)
Exercício 5.4 — Verificação de Disco
9Analise o uso de disco:
WRKDSKSTS
📝 Algum ASP está acima de 75%? Registre os valores para referência.
Exercício 5.5 — Análise de Log
10Exiba o log histórico:
DSPLOG LOG(QHST)
11Filtre mensagens de erro CPF:
DSPLOG LOG(QHST) MSGID(CPF*)
12Verifique mensagens do operador:
DSPMSG MSGQ(QSYSOPR) MSGTYPE(*COMP)
📝 Há mensagens de alerta não tratadas?
Exercício 5.6 — Checklist de Manutenção Preventiva
13Verificar subsistemas ativos:
WRKSBS /* Confirme que os esperados estão ACTIVE */
14Verificar impressoras:
WRKCFGSTS CFGTYPE(*DEV) CFGD(*PRT) /* Status inesperado? */
15Verificar filas represadas:
WRKJOBQ /* Filas com status HLD inesperadamente? */
16Verificar usuários bloqueados:
WRKUSRPRF USRPRF(*ALL) STATUS(*DISABLED) /* Usuários que deveriam estar ativos? */
17Gerar relatório de status para registro:
WRKSYSSTS OUTPUT(*PRINT) WRKACTJOB OUTPUT(*PRINT) WRKDSKSTS OUTPUT(*PRINT)
Exercício 5.7 — Simulação de Incidente
Cenário: Usuário reporta que seu job batch está "travado" há 2 horas.
18Localizar o job:
WRKACTJOB USER(usuario_reportado)
19Diagnosticar pelo status:
| Status | Diagnóstico | Ação |
|---|---|---|
RUN | Executando normalmente | Aguardar ou verificar lentidão |
MSGW | Aguardando resposta de mensagem | Responder a mensagem pendente |
LCKW | Aguardando liberação de lock | Identificar e avaliar o job que detém o lock |
20Para MSGW — responder mensagem pendente:
WRKJOB JOB(numero/usuario/nome) /* Opção 10 = Messages → responder */
21Para LCKW — identificar lock:
WRKOBJLCK OBJ(lib/arquivo) OBJTYPE(*FILE) /* Quem detém o lock? */
22Documentar a ação:
SNDMSG MSG('Job tratado - estava em MSGW. Respondido as 14:30') TOUSR(QSYSOPR)
✅ Checklist de Conclusão
- Analisei performance com WRKSYSSTS
- Identifiquei job com maior CPU
- Gerenciei spool e output queues
- Analisei uso de disco com WRKDSKSTS
- Consultei log do sistema (DSPLOG)
- Executei checklist de manutenção preventiva completo
- Pratiquei diagnóstico de job problemático
📋 Valores de Referência Saudáveis
| Métrica | Saudável | Atenção | Crítico |
|---|---|---|---|
| CPU Total | < 70% | 70–85% | > 85% |
| ASP Disco | < 70% | 70–80% | > 80% |
| DB Faults/s | < 5 | 5–15 | > 15 |
| Non-DB Faults/s | < 10 | 10–30 | > 30 |