Portanto, mesmo antes de o script da regra de negócios ser executado,
muita coisa aconteceu, para registros que provavelmente nem são para o
Discovery.
Mas, a essa altura, ele ainda pode não conseguir saber se um registro é
para descoberta ou não, portanto, executa o script de regra de negócios,
que agenda um trabalho 'ASYNC: Discovery - Sensors' em sys_trigger de
qualquer maneira.
Esse trabalho agendado, definido para ser executado uma vez,
agora, chama o script include DiscoverySensorJob, runSensor
function, que executa SensorProcessor Java.
Quando SensorProcessor é inicializado, ele consulta a tabela
discovery_status para ver se o valor agent_correlator é um registro
discovery_status sys_id. Se for, então isso é uma confirmação, esta é
uma entrada de descoberta.
Em seguida, ele obtém a carga útil, seja do campo ou de um anexo
grande (>500k, até ~ 50 MB), descriptografa-o se necessário e
procura um parâmetro skip_sensor=false. Se ele encontrou, sabe
que o registro NÃO é para Discovery.
Se ele passar por tudo isso, ele começará a executar o código real do
sensor Discovery
A partir disso, você pode ver que muito processamento pode ter que ser
feito para descobrir se um trabalho NÃO é para Discovery, e envolveu a
execução de um trabalho agendado para fazer isso.
Quando o ACC inicia um Padrão de Descoberta, ele usa o PatternLauncher
do Discovery, como um padrão sem servidor, mas não preenche o Agent
Correlacion, porque não há registro de Status de Descoberta. Em vez disso,
ele foi acionado a partir de classificadores de processo após uma
verificação de descoberta aprimorada do ACC. Dentro do Discovery, não é
consistente.
E muitas vezes isso ainda não acertou. É por isso que chamo isso de pior
exemplo.
Os seguintes problemas conhecidos tiveram que ser abertos para recursos
que não eram do Discovery, para que o parâmetro skip_sensor pudesse ser