Jump to content

Assista tectoy.png

chamada diadoacbr

Método Enviar travando em diversos clientes - ACBrNFe.dll


Go to solution Solved by Daniel Simoes,

Recommended Posts

  • Membros Pro

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?

image.thumb.png.a988ea02b519e76ed46cd24bddd1440f.png

Link to comment
Share on other sites

  • Administradores

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(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

  • Consultores

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.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro
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

  • Membros Pro
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.

image.thumb.png.abf6e2ce21c07b8b656f9d86bfc4b57e.png

 

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.

image.png.fcd79c6ef43bb9e52bfa440e3c4a51bd.png

 

Sobre 

Link to comment
Share on other sites

  • Fundadores
  • Solution

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

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro
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!

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.