InícioLaboratórios › Lab 05

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)
Em produção, confirme com o time antes de limpar uma output queue!

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:

StatusDiagnósticoAção
RUNExecutando normalmenteAguardar ou verificar lentidão
MSGWAguardando resposta de mensagemResponder a mensagem pendente
LCKWAguardando liberação de lockIdentificar 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étricaSaudávelAtençãoCrítico
CPU Total< 70%70–85%> 85%
ASP Disco< 70%70–80%> 80%
DB Faults/s< 55–15> 15
Non-DB Faults/s< 1010–30> 30