This post is also available in:
O agente do Oracle Enterprise Manager está ativo, o heartbeat com o OMS está OK, mas as métricas simplesmente não chegam. Ao tentar forçar uma coleta manualmente, aparece o seguinte erro:
EMD runCollection error:connection to the agent has been lostEsse comportamento acontece mesmo com emctl status agent mostrando Agent is Running and Ready. O processo está vivo, mas o estado interno do agente está corrompido ou dessincronizado com o OMS.
Por Que Acontece
O agente mantém arquivos de estado em $AGENT_INST/sysman/emd/state/. Esses arquivos registram o progresso de uploads e coletas em andamento. Quando o agente é interrompido de forma abrupta — queda de energia, kill forçado, reinicialização do host, instabilidade de rede — esses arquivos ficam em um estado inconsistente.
Na prática, o processo sobe normalmente, mas a camada de comunicação com o OMS falha ao tentar retomar as operações pendentes. O resultado é um agente que responde ao heartbeat mas não consegue executar coletas.
Diagnóstico
Antes de aplicar a solução, confirme que o problema é esse e não uma falha de conectividade ou OMS inacessível.
1. Verifique o status completo do agente:
./emctl status agentObserve especificamente:
Heartbeat Statusdeve estarOkLast successful uploaddeve ter um timestamp recenteCollection Statusdeve mostrarCollections enabled
Se o Heartbeat Status for OMS is unreachable, o problema não é estado corrompido — é conectividade. Veja a seção “Quando Isso Não Resolve” abaixo.
2. Tente forçar uma coleta no target com problema:
./emctl control agent runCollection <TARGET_NAME>:<TARGET_TYPE> <COLLECTION_NAME>Exemplo com Oracle Home:
./emctl control agent runCollection OraDB19Home1_2_oracleserver_6741:oracle_home oracle_home_configSe retornar EMD runCollection error:connection to the agent has been lost, o estado está corrompido. Siga para a solução abaixo.
Solução
A sequência correta é: limpar o estado corrompido → forçar upload → verificar.
⚠️ Atenção:
emctl clearstatedescarta os arquivos de estado pendentes. Dados de coleta que ainda não foram enviados ao OMS serão perdidos. Em ambientes de produção com alertas ativos, confirme que o OMS está acessível antes de executar.
Passo 1 — Limpar o estado do agente:
./emctl clearstate agentSaída esperada:
Oracle Enterprise Manager Cloud Control 13c Release 4
Copyright (c) 1996, 2020 Oracle Corporation. All rights reserved.
EMD clearstate completed successfullyPasso 2 — Forçar o upload ao OMS:
./emctl uploadSaída esperada:
Oracle Enterprise Manager Cloud Control 13c Release 4
Copyright (c) 1996, 2020 Oracle Corporation. All rights reserved.
---------------------------------------------------------------
EMD upload completed successfullyPasso 3 — Verificar o status do agente:
./emctl status agentConfirme que Last successful upload foi atualizado e Heartbeat Status está Ok.
Passo 4 — Testar a coleta novamente:
./emctl control agent runCollection OraDB19Home1_2_oracleserver_6741:oracle_home oracle_home_configSaída esperada:
EMD runCollection completed successfullyChecklist Rápido
./emctl status agent
./emctl clearstate agent
./emctl upload
./emctl status agent
./emctl control agent runCollection <TARGET>:<TYPE> <COLLECTION>Quando Isso Não Resolve
O clearstate resolve quando o problema é estado interno corrompido. Se o problema for outro, a sequência acima não vai ajudar:
| Sintoma adicional | Causa provável | Próximo passo |
|---|---|---|
Heartbeat Status: OMS is unreachable | Conectividade ou certificado inválido | Verificar rede e re-secure do agente |
| Upload retorna erro de autenticação | Certificado do agente desatualizado | emctl secure agent |
clearstate falha com OutOfMemoryError | Diretório state/ corrompido com volume excessivo | Mover conteúdo de state/ manualmente antes do clearstate |
| Problema persiste após clearstate + upload | Bug específico de versão | Consultar MOS com os logs gcagent.log e emagent.nohup |
Para o cenário de diretório state/ corrompido, a alternativa é mover o conteúdo antes de executar o clearstate:
cd $AGENT_INST/sysman/emd
mkdir state-backup-$(date +%Y%m%d)
mv state/* state-backup-$(date +%Y%m%d)/
./emctl clearstate agent
./emctl start agent
./emctl uploadReferências
- Oracle Docs — Enterprise Manager Cloud Control Administrator’s Guide: emctl Commands
- MOS Note 1902124.1 — EM12c: emctl start agent Fails With Target Interaction Manager failed (verificar aplicabilidade à versão em uso)
