notícia corporativa inova/sau-web

Auditoria de banco elimina classe de falhas que travava TARM e omitia áudios de ocorrência no SAU

Divergência de collation no banco de dados causava erro intermitente na aba Áudios do Histórico e deixava 52 rotinas críticas a um passo de falhar. Correção de raiz recriou todas as rotinas e zerou o risco; paralelamente, correção de casamento de ramal encerrou travação do terminal de regulação médica de um usuário.

Arte de notícia corporativa para Correção de raiz elimina classe de falhas de banco que travava terminal de regulação e omitia áudios de ocorrência

Uma divergência de codificação de caracteres (collation) no banco de dados do SAU provocava dois problemas operacionais distintos, ambos corrigidos em intervenção única.

O primeiro afetava a aba Áudios do Histórico de Ocorrência: ao comparar variáveis internas de uma stored procedure com colunas de tabelas que usavam codificações diferentes, o banco retornava erro e a aba não carregava. A correção inicial resolveu o caso visível, mas a equipe de engenharia conduziu uma auditoria estática completa do banco e descobriu que o problema era sistêmico — 52 rotinas, incluindo as responsáveis por gravação de chamados, sincronização de ramais telefônicos, autenticação de dispositivos e busca de veículos, carregavam o mesmo defeito de forma latente. Nenhuma falhava em log porque ninguém havia pisado nos ramos de código que disparavam a comparação problemática.

A correção de raiz normalizou a collation padrão do banco para alinhar com as colunas existentes e recriou todas as 1.276 rotinas e 12 triggers com corpo idêntico ao original. Após a intervenção, as rotinas em risco passaram de 52 para zero. A janela de mudança foi de aproximadamente 1,5 segundo, com backup completo do estado anterior mantido para reversão.

O segundo problema era um defeito de lógica no casamento de ramais. Quando o identificador cadastrado de um ramal não coincidia com o seu número — situação presente em contas com dados legados — o ramal era silenciosamente descartado. Como a lista de ramais não chegava vazia, o mecanismo de contingência não disparava, e o terminal de regulação médica (TARM) do usuário afetado permanecia indefinidamente em estado de espera pela conexão com o servidor de telefonia.

A correção passou a considerar tanto o ID quanto o número do ramal, recuperando os ramais que eram descartados sem alterar o comportamento dos demais. Um refinamento adicional passou a comparar identificadores como texto, impedindo que o banco convertsesse strings como '0015' em número 15 e casasse com o ramal de outro usuário. Análise de impacto confirmou que sete usuários passam a receber corretamente seus ramais próprios, sem ganho ou perda indevida.

Materiais para imprensa

Inova Comunicações

Central de chamados

Conte o que está acontecendo

Não inclua senhas, dados de pacientes ou outras informações sensíveis.