Ir para o conteúdo principal

Funcionamento do Updater (Problemas x Soluções)

O Updater é um sistema fundamental para a Alterdata, responsável por gerenciar e entregar atualizações para a maioria dos softwares desenvolvidos pela empresa. Para cumprir seu objetivo, ele utiliza diversas APIs e executa várias funções, garantindo que os clientes tenham acesso às versões mais recentes de seus sistemas.

1. Funções do Updater

O Updater desempenha um papel crucial na gestão de software, realizando as seguintes funções principais:

  • 🔄 Entrega de Atualizações: O Updater baixa e distribui as atualizações dos sistemas para as máquinas dos clientes.

  • 📁 Gerenciamento de Versões: Garante que a versão correta da atualização seja baixada  e que os arquivos de download estejam presentes na pasta designada. Ele também lida com problemas de MD5 (módulos do sistema), onde as versões podem estar corrompidas ou com o mesmo nome de versões antigas, exigindo que sejam renomeadas e anexadas novamente.

  • 🔏 Verificação de Licença e Acesso: Interage com APIs para verificar a licença do cliente e garantir o acesso ao sistema.

  • 💻 Sincronização de Máquinas: Em redes com máquinas "master" e "slave", o Updater gerencia o download da versão pelo master e a sincronização com as slaves.

  • ⏬ Download de Sistemas: Permite o download de sistemas através do Update Center.

2. Problemas Recorrentes e Soluções

Esta seção detalha os problemas mais comuns enfrentados com o Updater e as etapas para resolvê-los.

2.1. Atualização do Sistema

Problema 1: Updater baixou a atualização, mas não está entregando.
  • Sim: Use o aplicativo de teste na máquina do cliente para simular a solicitação e verificar se a entrega falha.
  • Não: O problema reside no download para o código incorreto.
  • Sim: Procure ajuda.
  • Não: Então o problema é a ausência do arquivo. Faça um novo download!
Problema 2: Updater não está baixando a atualização. 
  • Sim:
    1. Confirme no endpoint de verificação de atualizações (Postman) se a versão é entregue na consulta.
    2. Se a atualização for entregue no Postman, analise a máquina do cliente para erros de download (verificar logs do Updater Manager ou log de eventos) ou outros impedimentos (ex: sistema registrado com outro código, versões superiores na base de dados).
    3. Se a versão estiver liberada para o cliente (CRM, UF, cidade, etc.) mas não for entregue pelo Postman, pode ter ocorrido um problema no processamento da versão. Peça ajuda a alguém do dsn.cir.
  • Não: Verifique com o responsável pela versão a possibilidade de liberá-la para o cliente.
Problema 3: Updater não está baixando uma atualização e apresenta a mensagem:
"Solicitação da URL de download para o aplicativo apagar, setor: ERP, versão xxxxxxx Retorno: 1401 - Não existe no Updatecenter aplicativo com id 107". 
  • Verificação: Verifique pela API solicitar_url_download se um link para download é gerado com o código do cliente e o ID da versão
    Testes Adicionais: Se a URL não for gerada, teste com código CRM, CPF, CNPJ ou codigo_cliente

Problema 4: Updater não está baixando a atualização (genérico).
  • Teste na sua máquina se o Updater baixa a versão com o código do cliente28.

  • Teste se o problema é para baixar um módulo específico ou qualquer módulo29.

  • Teste se o computador do cliente consegue acessar o UpdateCenter e baixar o sistema pelo "Download de versão".

Problema 5: Liberação de versão não processa o cliente - A versão está liberada no UpdateCenter, porém não baixa no cliente. 

OBS: Em alguns casos, mesmo liberando o cliente no UpdateCenter, a versão não é liberada para ele, tendo que processar novamente o código do cliente. Isso ocorre por que hoje não conseguimos processar todos os clientes, mas nesses casos podemos fazer o seguinte procedimento:

1. Processar novamente o código do cliente pelo Postman:

 Pegue o id_crm do cliente na API de licença http://updatecenter.alterdata.com.br/api/licenca pelo postman, e após processe o id_crm do mesmo no cron de atualizar cliente:
GET  https://updatecenter.alterdata.com.br/api/cron/atualizar-cliente/?id_externo= com o id_crm do cliente inserido após o “externo=”

Após realizar esse procedimento, basta buscar atualização no UpdaterManager.exe do cliente e ver se a versão irá baixar.

  • O Updater desta máquina está como master? 

Sim: Vá para o item 3 (desativar antivírus).

Não: 

          • Sim: Provavelmente o master ainda não fez o download da versão, o slave ainda não sincronizou a nova versão, ou a versão foi instalada manualmente em alguma máquina na rede (ou no master).

          • Não: Vá para o item "b" (acesso à internet).

          • Sim: Vá para o item 3 (desativar antivírus).

          • Não: Verifique o acesso à internet em outros sites e a existência de proxy na rede (configure-o se houver

  • Identificou o log que corresponde à versão esperada?
    Sim: Se souber resolver, siga em frente; caso contrário, peça ajuda
    Não: Peça ajuda.


2.2. Acesso ao Sistema: Segurança

Problema 1: Sistema está sempre solicitando as informações do contador. 48
  • Sim: Esse é o problema, pois o limite para esse campo no Bimer é de 50 caracteres.

  • Não: Vá para o item 2 (licenças adicionais).

  • Sim: Consulte o bureau do cliente utilizando a aplicação de teste da DLL de segurança.

  • Não: Force a atualização da licença na máquina e verifique se o problema persiste.

Problema 2: Cliente não consegue acessar o sistema, não tem o aplicativo cadastrado no UpdateCenter. 
  • Sim: Verifique no UpdateCenter se o aplicativo está cadastrado corretamente, conforme a licença do cliente.
    Se não estiver cadastrado no UpdaterCenter, entre em contato com o setor responsável e solicite a criação do aplicativo.

  • Não: Peça para verificar com a ADM e STAFF para incluir o produto no CRM corretamente.

Problema 3: Bloqueios de licença.
  • Não tem: O cliente deve entrar em contato com o setor responsável pela inclusão.

  • Sim, tem: Verifique se há alguma restrição, como inadimplência, produto cancelado, ou outros problemas de cadastro no CRM (ex: falta de CPF/CNPJ).

  • Sim: Verifique se a versão foi liberada para esse cliente.

  • Não: Execute o Diagnóstico.

Problemas 4: Cliente encontrado/ Cliente não encontrado.
  • Sim: Vá no Manager do Updater e configure as informações de proxy, solicitando ao cliente que preencha essas informações.

  • Não: Possível falha de conexão; verifique se há antivírus, Warsaw, firewall ou outros aplicativos bloqueando o acesso.

Problema 5: "Este computador não pode ser identificado"
Problema 6: "Object reference not set to an instance of an object.". 
🧠 Linha de Raciocínio

Updater bloqueando/permitindo acesso ao sistema :

  • Verificar no CRM se o bloqueio/permissão está de acordo com as informações de produto/características do cliente

  • Verificar pelo DLL From /ReadDllFromCSharp qual a resposta do Permissão V2.

  • Verificar pelo manager (botão escondido) se o sistema está autorizado, comparar com a resposta da api de licença. Caso seja necessário forçar atualização da licença.

Updater baixou atualização, mas não entrega:

  • Verificar por qual identidade foi feito o download

  • Verificar se pelo app azul entrega a atualização

Updater não baixa atualização para um sistema:

  • Verificar pela console se o código/cnpj/cpf do cliente faz chamada para este sistema.

  • Verificar pela console apresenta algum erro ao solicitar download.

  • Verifique se o aplicativo existe na base do updater e qual identidade está vinculada.

  • Verificar se a api “Verificar atualizações” entrega a versão.

  • Verificar se na base não existe uma versão >= que a versão que precisa baixar;

  • Verificar se o cliente acessa o site do update center e faz download de versão;

  • Desativar firewall/Antivírus

Versão liberada para um cliente, mas a api não entrega:

  • Verificar como foi a liberação (crm, cidade, uf, característica ou todos). Caso tenha sido por região, verifique o endereço do cliente no crm.

  • Verificar se a versão é homologada e o cliente possui alguma característica que impeça liberação;

  • Verificar Maior data entre Carência,Validade da cobrança e Alteração da situação do produto;

Assinatura/Aluguel
com inadimplência

Com título de renegociação

Demonstração

Não atualiza 

Vencido: Se baseia na data de ativação da inadimplência

St. Prod :        Demonstração

Não utiliza

A vencer: Pode atualizar com versões liberadas até o primeiro título a vencer

Tp. Mov. Cob: Demonstração

-

-

Não pode estar em branco e não pode ser diferente de demonstração


2.3. Acesso ao Sistema: Updater Parado

Problema 1: Serviço do Updater parado. 
  • Sim: Quando a máquina é reiniciada, o serviço volta a ficar parado?
      • a. Procure no log de eventos do sistema por um log do Service Control Manager com data/hora próxima da última inicialização da máquina, contendo: 
        "Tempo limite esgotado (30000 milissegundos) ao aguardar a conexão do serviço Alterdata Updater." 
        ou
        "Não foi possível iniciar o serviço Alterdata Updater devido ao seguinte erro: O serviço não respondeu à requisição de início ou controle em tempo hábil." 

      • b. Procure no log de eventos do aplicativo por algum log de erro do Updater que possa ter encerrado o processo. Se encontrar, informe a equipe de desenvolvimento.

  • Não: Procure a equipe de desenvolvimento. 

2. O serviço Alterdata Updater está instalado nos serviços do Windows? 

Problema 2: Serviço do Updater rodando (mas com falha no funcionamento). 
  • Conseguiu localizar o problema pelo Diagnóstico?
    Sim: Se souber resolver, vá em frente.
    Não: Peça ajuda!

Problema 3: Não foi possível se conectar ao link http://localhost:8766
  • Sim: Vá no Manager do Updater e configure as informações de proxy, solicitando ao cliente que preencha esses dados.

  • Não: Possível falha de conexão; verifique se há antivírus, Warsaw, firewall ou outros aplicativos bloqueando o acesso.


2.4. Updater não inicia o download da versão.

  1. A versão desejada foi liberada no Update Center para o cliente?

  2. A versão do sistema instalado na máquina já se comunicou com o Updater?

  3. O sistema está registrado com o código do cliente corretamente?

  4. A versão que precisa ser baixada está liberada para o código do cliente corretamente no site? 

  5. O cliente em questão possui mais de um CRM com o mesmo CNPJ? Se sim, o cadastro deve ser acertado na administração.

  6. Procure no log de eventos do master algum log referente ao download em questão.

  7. O sistema já está cadastrado na base do Updater master? Verifique na área "Licenças" do Updater Manager do master, clicando em detalhes da licença do cliente, aba "Aplicativos Registrados no Updater".


2.5. O download da versão está na pasta mas o Updater não entrega para o sistema. 

  • Verifique se o sistema está registrado com o código do cliente corretamente.

  • Verifique na base do Updater se o download em questão está vinculado ao código do cliente corretamente.


2.6. O sistema não está se comunicando com o Updater.

  • Constatação: Verifique na área "Licenças" do Updater Manager do master, clicando em detalhes da licença do cliente, aba "Aplicativos Registrados no Updater". Se o sistema não for apresentado na lista, provavelmente não está se comunicando com o Updater. Antes de verificar no Updater Manager, feche e abra o sistema novamente.

  • Causas possíveis:

  • Bonjour não está instalado ou com o serviço paralisado.

  • Presença de Malware/Vírus na máquina que possa estar influenciando na comunicação entre o sistema e o Updater.

  • Se as dicas acima não resolverem: Verifique o log de eventos do Windows para ocorrências do Updater que possam ajudar.


2.7. Travamento tela de passaporte. 

  1. Redefinir o Internet Explorer.

  2. Verificar acesso aos sites Passaporte2.alterdata.com.br e Passaporte2-basico.alterdata.com.br.

  3. Verificar instalação do Updater.

  4. Verificar o diagnóstico e ver se aponta algum tipo de bloqueio como proxy, firewall ou domínio.

  5. Caso não funcione, testar acesso no redfrom.

  6. Verificar acesso ao passaporte Test.dll (funciona colocando na %temp% quando o installer está em execução).

  7. Verificar o link com https://passaporte2-basico.alterdata.com.br/passaporte-rest-api/rest/admin/usuarios/info?include=assinantes&info=eyJjaGF2ZSI6IjBDM0q5cGFSX2RJcG9jMi16Vnk1ejRDajYwZ3BfWndsTjBUR3BIQmt0Z210a2VGeTFqTmFZTE9adFo2SUZSYmJHZkJIZy0yS2pCQWVVa29CeDlyUzBUekkzaVhnN2J2UFd3cm9iTjZFM25DVzIMd2VmcWcxTENTT2IBcWNXNTNJMVQwR0NhSF9MVFAtTTIfRUqtLVh5Q0cydXh2SUpST0tPeUhidHV0WVJCdTBITzFxbHB0MGZjZzNBWHdLWVFXU0NnbjlnVzRESGpFbzlsNU IZPaXNMUnNjNHVnR0htcEtNdUY0NnpBcjVTSjdCRml6LUppcWluWIRIMnB2ZW1jck1EUk15bGRUMHqxZTFWcGstR1YyUnIZZS1qa1NWcFJocUR3N3N PVkZGX2RIbFBBdylsInRva2VueiI6ImMtdl9jMG5ETWZOR3BO MnNlIQTIIbGFqRkdpbWduemhjLWQ3cHBiV1ladVRycUxqSnRibnByVlYlQjEtQXZCS3M3cnVIYk9mOUc0R0JpQlk5TzN5d1hRVnNza0JZSFNMcTZRZVpMT2dzTWw3Sk10WktGVTVjc2VEdjlUZOjWEg3WU1nUmNxTHJaTVRvbE56T KOTIECFpIYXg1cFNSMzFIQ3RUdWFCR1IMbjWJsaTBzc3ZXaFh4dXNXY2NKdWI1F2bFFJSG1icWpuNRuaUwzcGNuMWpQV2VDMWg1N001RUNpMkx3T3NXOGEzejlyUGVFS1QtZnNkU115WXINNXFxdIBDV01ORUJFcFJvRXBxcEZSdnBiTzM4c2Q3MXV2QVoxeVFHZVRCOTI1bE1mUVBzQ3NfV0UtSUZIenICMFExaUpEdnE4MzVHWkhrSWF FZUIMWEtJdUp6WTNFUnJ3bzIOTVktVkxjSWVCMkMwZTFjYjRtdzh4TnJ6OG1rUkxtV2ZDY0dTeWtYdFdLa3Z4QnkySDh OYONMOFF1RIMyeTZmMFVMWUtGeUhMMWItOE93TIN6SEljeWs2YWICcnMtRkdhTzNJM29pVFVRN2RCMEtXY0hfUjBpTVlicnc4S0VYNklxQTdxYkhGaEE1MEZSejIZUm12djZmZGptUVVrTIVRa3MifQ
    (lembrando de modificar com as informações de chave de autenticação do cliente).

    Não passando, verificar se a chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\fipsalgorithmpolicy no regedit está com valor 0. Caso esteja com valor 1, modificar para 0 conforme dica do link https://support.microsoft.com/pt-br/help/981119/fix-you-cannot-run-an-asp-net-3-5-based-application-that-uses-a-script.


2.8. Erro na rotina Procurar Novas Atualizacoes OnLine

 em System.Security.Cryptography.RijndaelManaged..ctor()
   --- Fim do rastreamento de pilha de exceções internas ---
   em System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   em System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   em System.Security.Cryptography.CryptoConfig.CreateFromName(String name, Object[] args)
   em System.Security.Cryptography.SymmetricAlgorithm.Create()
   em Seguranca.AES.Rijndael.Encrypt(String s, String p) na C:\dsn\update-center\net\updater\tags\2.11.7.0\Seguranca\AES\Rijndael.cs:linha 86
   em Classes.UpdateServerManager.FormatarObjetoAtualizacoesAPI(List`1 aplicativos) na C:\dsn\update-center\net\updater\tags\2.11.7.0\Updater\Classes\UpdateServerManager.cs:linha 48
   em Classes.UpdateServerManager.VerificarAtualizacoesAPI(List`1 aplicativos, Boolean filtrarRetornos, Boolean byVipera) na C:\dsn\update-center\net\updater\tags\2.11.7.0\Updater\Classes\UpdateServerManager.cs:linha 112
   em Alterdata.Updater.Updater.Classes.UpdaterProcesses.ProcurarNovasAtualizacoesOnLine(Aplicativo aplicativoParaAtualizar, Boolean byVipera) na C:\dsn\update-center\net\updater\tags\2.11.7.0\Updater\Classes\UpdaterProcesses.cs:linha 134
  1. Com credenciais administrativas, clique em Iniciar, Executar, digite gpedit.msc e pressione "Enter".

  2. No Editor de Diretiva de Grupo Local, clique em "Configuração do Computador", clique duas vezes em "Configurações do Windows" e, em seguida, clique duas vezes em "Configurações de Segurança".

  3. Clique em "Definições de segurança", faça duplo clique em "Políticas locais" e, em seguida, clique em "Opções de segurança".

  4. No painel de detalhes, clique duas vezes em "Criptografia do sistema: Use algoritmos compatíveis com FIPS para criptografia".

  5. Clique em "Habilitado" e em OK para fechar a caixa de diálogo.

  6. Feche o Editor de Diretiva de Grupo Local.

  • Alternativamente: Altere a chave de registro HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Habilitado para 1.


2.9. Erros diversos quando o Updater não incia.

  • Problema: Problema com o .NET Framework do cliente.

  • Solução: Reinstalar o Framework (NÃO REPARAR).

  • Problema: A porta 8767 não está liberada no firewall.

  • Solução: Liberar as portas 8767 e 8766 nas regras de entrada e saída do firewall. Reiniciar o serviço do Updater.

  • Updater funcionando sem nenhum erro nos logs?
    • Não: Contingência não está funcionando nesta versão - resolver updater.

    • Sim: Verifique se a quantidade de usuários entregue está de acordo com o cadastro no CRM.

  • Verifique pelo endpoint: {{host}}/api/licenca quantas licenças são retornadas (pesquisar pela palavra "usuarios").

  • Compare se a quantidade de usuários retornada pelo Postman é igual à quantidade de usuários no Updater do cliente (consultar licença ativada pelo botão escondido do Updater Manager e pesquisar por "usuários").
    Normalmente, quando o cliente não tem controle de usuários, a quantidade retornada é 999 (ilimitado).
    • Se houver dúvida, consulte o CRM do cliente, clicando no produto pai e na aba "complemento do produto" (deve apresentar "usuários/conexões simultâneas = x").
      Essa quantidade de usuários é determinada pelo cadastro do cliente no CRM. Inconsistências devem ser alteradas pela ADM.

4. Erro: "Este computador não pode ser identificado". 

Verificações (sem erro aparente):

      • IE
      • Antivírus
      • Proxy
      • Domínio,
      • Versão do Updater
      • Atualizações do Windows
      • Logs de eventos

6. Erro: "Error: System.Net.WebException: A conexão subjacente estava fechada: Erro inesperado em um recebimento. ---> System.ComponentModel.Win32Exception: O cliente e o servidor não podem se comunicar porque não possuem um algoritmo em comum."

Dica: Renan pediu para guardar essa dica com a vida. Possivelmente relacionado a problemas de comunicação de algoritmo entre cliente e servidor. A referência citada é "Multiple Products: SQL Server service will not start, error code-2146893007-Knowledgebase / Software - Wasp Helpdesk".