Membros Pro Dev Telluria Posted March 28 Membros Pro Share Posted March 28 Bom dia pessoal! Estamos enfrentando um problema em alguns clientes, ao enviar um NFC-e, está acontecendo um travamento e está demorando bem mais que o timeout configurado no ACBrLib.ini. Segue em anexo o log mostrando que demorou mais de um minuto para destravar sendo que o timeout configurado no ACBrLib.ini é apenas 5 segundos. O que pode estar acontecendo? Link to comment Share on other sites More sharing options...
Administradores Juliana Tamizou Posted March 28 Administradores Share Posted March 28 Tópico movido para a área do SAC, para que o SLA de respostas seja considerado Juliana Tamizou Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !! Link to comment Share on other sites More sharing options...
Consultores José M. S. Junior Posted March 28 Consultores Share Posted March 28 Boa tarde, Poderia anexar o .ini com as configurações da lib para verificação. José Junior Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Membros Pro Dev Telluria Posted March 28 Author Membros Pro Share Posted March 28 Boa tarde! Perdão, esqueci de anexar o .ini e o log. Muito Obrigado! ACBrLibNFE-20220323.rar ACBrLib.ini Link to comment Share on other sites More sharing options...
Consultores José M. S. Junior Posted March 28 Consultores Share Posted March 28 Esse tempo de retorno na resposta está estranho mesmo... Mas analisando os logs notei que quando de fato ocorre timeout o tempo é de 5 segundos para gravar a mensagem, então creio que não seja referente ao timeOut e sim ao método de ultimo_retorno no caso de processamento com sucesso, pois é ele que de fato trás o retorno completo da resposta. 23/03/22 10:59:21:044 - NFe_Enviar(0,Sincrono ) 23/03/22 10:59:21:060 - Travar 23/03/22 10:59:26:076 - Destravar 23/03/22 10:59:26:076 - SetRetorno(-10, Erro Interno: 10060 Erro HTTP: 0 URL: https://nfce.fazenda.mg.gov.br/nfce/services/NFeAutorizacao4 Connection timed out ) Sugiro que verifique no XML gerado em disco, o tempo que está sendo gravado, se é exatamente o tempo do log ou se está gravando antes... Tente realizar esse mesmo teste com o aplicativo demonstração também, para verificar se ocorre essa demora, pois suspeito que seja algo na implementação do método Ultimo_Retorno no lado da aplicação. José Junior Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Membros Pro Dev Telluria Posted March 29 Author Membros Pro Share Posted March 29 14 horas atrás, José M. S. Junior disse: Esse tempo de retorno na resposta está estranho mesmo... Mas analisando os logs notei que quando de fato ocorre timeout o tempo é de 5 segundos para gravar a mensagem, então creio que não seja referente ao timeOut e sim ao método de ultimo_retorno no caso de processamento com sucesso, pois é ele que de fato trás o retorno completo da resposta. 23/03/22 10:59:21:044 - NFe_Enviar(0,Sincrono ) 23/03/22 10:59:21:060 - Travar 23/03/22 10:59:26:076 - Destravar 23/03/22 10:59:26:076 - SetRetorno(-10, Erro Interno: 10060 Erro HTTP: 0 URL: https://nfce.fazenda.mg.gov.br/nfce/services/NFeAutorizacao4 Connection timed out ) Sugiro que verifique no XML gerado em disco, o tempo que está sendo gravado, se é exatamente o tempo do log ou se está gravando antes... Tente realizar esse mesmo teste com o aplicativo demonstração também, para verificar se ocorre essa demora, pois suspeito que seja algo na implementação do método Ultimo_Retorno no lado da aplicação. Entendi. Vou verificar o que me recomendou. Muito obrigado! Link to comment Share on other sites More sharing options...
Membros Pro Dev Telluria Posted March 30 Author Membros Pro Share Posted March 30 Em 29/03/2022 at 08:35, Dev Telluria disse: Entendi. Vou verificar o que me recomendou. Muito obrigado! Boa tarde! Conforme mostra a imagem a seguir o XML está sendo gerado no tempo exato do log. Sobre realizar o mesmo teste com o aplicativo de demonstração, é complicado pois o problema acontece em produção e não acontece em todos os clientes, além disso apesar da frequência com que o problema ocorre, não é possível prever quando ele irá ocorrer. Sobre o problema ser no método Ultimo_Retorno do lado da aplicação, em nossa solução não comunicamos diretamente com a DLL, nós importamos os projetos ACBrLib.Core e ACBrLib.Core do exemplo de demonstração e em nossa solução e utilizamos a classe ACBrNFe para realizar a chamada dos métodos da DLL. Sobre Link to comment Share on other sites More sharing options...
Fundadores Solution Daniel Simoes Posted March 31 Fundadores Solution Share Posted March 31 O TimeOut do lado do Client, é feito pelo Sistema Operacional... Em algumas situações, o Sistema Operacional pode ter dificuldades em saber que trata-se de uma situação de TimeOut... isso ocorreria por exemplo, quando o servidor Http esta OnLine mas há algum problema no WebService Devido a essa característica, tem uma opção no ACBr que é TimeOutPorThread (algo assim)... Com ela ativada o ACBr faz a conexão em uma Thread e abandona a mesma, no tempo exato definido em TimeOut... e deixa a Thread morrer sozinha... Eu não gosto de usar essa opção pois você não terá o verdadeiro erro HTTP, mas pode ser uma opção em Clientes onde o TimeOut é problemático Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Membros Pro Dev Telluria Posted April 7 Author Membros Pro Share Posted April 7 Em 31/03/2022 at 09:16, Daniel Simoes disse: O TimeOut do lado do Client, é feito pelo Sistema Operacional... Em algumas situações, o Sistema Operacional pode ter dificuldades em saber que trata-se de uma situação de TimeOut... isso ocorreria por exemplo, quando o servidor Http esta OnLine mas há algum problema no WebService Devido a essa característica, tem uma opção no ACBr que é TimeOutPorThread (algo assim)... Com ela ativada o ACBr faz a conexão em uma Thread e abandona a mesma, no tempo exato definido em TimeOut... e deixa a Thread morrer sozinha... Eu não gosto de usar essa opção pois você não terá o verdadeiro erro HTTP, mas pode ser uma opção em Clientes onde o TimeOut é problemático Bom dia! Desculpa a demora, estamos validando essa opção do TimeOutPorThread. Muito obrigado! 1 1 Link to comment Share on other sites More sharing options...
Recommended Posts