Ronda XT - Integração com Hardware - Lentidão no processamento da fila de coleta de marcações (CSMCenter)
Incidente
No Ronda XT, a coleta de marcações de ponto apresenta lentidão. O serviço CSMCenter demora para processar os registros da fila e as marcações não chegam (ou demoram muito), às tabelas de destino (R070ACC, R070DAM, etc.).
Causa
Este incidente ocorre, quando o serviço CSMCenter está sobrecarregado, ou não consegue processar a fila de marcações de forma eficiente. As causas mais comuns são:
- Acúmulo de Registros (Backlog): A causa mais provável é um acúmulo muito grande de marcações pendentes na tabela de fila central, a R070CMA. Esses registros estão aguardando processamento (com o campo DIRACC igual a '0' ou '1') e podem ser de dias, meses ou até anos anteriores.
- Envio Excessivo de Comandos: O envio repetitivo de Comandos de Coleta de Backup (como os comandos 23, 31, 33, 36, 39, referentes a R070ONL.CODCMD) pode sobrecarregar o CSMCenter, forçando-o a re-processar marcações que já estão no banco, gerando duplicidade e mais lentidão.
- Logs Detalhados: O Nível de Log do CSMCenter (configurado no CSMCenter Config) está definido como Trace ou Debug. Isso faz com que o serviço gaste mais tempo escrevendo arquivos de log detalhados do que processando a fila de marcações.
- Fila Específica do Fabricante (Telemática): Em dispositivos Telemática, o driver Conex armazena as marcações primeiro em tabelas próprias (como REPAFD003) antes de repassá-las para a R070CMA. Se a lentidão estiver nessas tabelas, o problema ocorre antes mesmo de chegar ao CSMCenter.
Solução
Para diagnosticar e corrigir a lentidão, siga os passos de investigação abaixo:
1. Entenda o Fluxo de Coleta:
1.1. As integrações via Driver SDK dos fabricantes (Control ID, Dimep, TopData, etc.) insere a marcação diretamente na tabela R070CMA (após passar pela Concentradora);
1.2. O serviço CSMCenter lê a R070CMA (registros com DIRACC iguais 0 ou 1), processa, e move para as tabelas finais (R070ACC para aceitas, R070DAM para rejeitadas, etc.);
2. Diagnóstico da Causa Raiz:
2.1. Verifique se a lentidão é causada por comandos excessivos;
2.2. Acesse Supervisão / On-line / Comandos / Log de Comandos;
2.3. Filtre pelo período recente;
2.4. Verifique se há um volume anormal de Comandos de Coleta (CODCMD 23, 31, 33, 36, 39) sendo enviados;
2.5. Identifique o usuário ou a rotina que os está executando;
3. Otimização de Performance (Ação Padrão):
3.1. Acesse a console da CSM Center Config (no servidor de aplicação);
3.2. Mude o Nível de Log para FATAL;
Observação: Isso reduz drasticamente a escrita em disco e foca o serviço no processamento da fila.
3.3. Avalie e ajuste a propriedade Intervalo de coleta de eventos de acesso, para um valor maior, diminuindo a frequência de varredura;
4. Diagnóstico Específico (Telemática):
4.1. Se o diagnóstico do Passo 2 não apontar comandos excessivos e os dispositivos forem Telemática, foque a investigação nas tabelas do driver Conex (REPAFD003, REPAFD001);
Observação: Neste cenário, o suporte do fabricante (Telemática) pode precisar ser acionado para investigar a lentidão no repasse dos dados para a R070CMA.
5. Ação de Contorno Emergencial (Backlog):
Atenção: Este procedimento é emergencial e deve ser realizado com cuidado, preferencialmente com apoio de um DBA, pois envolve alteração direta no banco de dados.
5.1. Se o diagnóstico confirmar que há um grande volume de marcações muito antigas (de meses ou anos anteriores) onerando a fila na R070CMA, execute um comando para ignorar, esses registros antigos momentaneamente;
5.2. Altere o campo DIRACC de 0 ou 1 para 2 ou 3 (Ignorado, fazendo equivalência de 0 para 2 e 1 para 3) para todos os registros anteriores a uma data de corte segura;
5.3. Passado o impacto e urgência principais de marcações antigas onerando a fila, volte as marcações de DIRACC iguais a 2 ou 3 para 0 e 1, respectivamente, para que sejam processadas, o gargalo voltará a ocorrer, porém poderão atuar em tempo hábil.