Ir para conteúdo
  • Cadastre-se

dev botao

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


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 722 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

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 para o comentário
Compartilhar em outros sites

  • Administradores

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

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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 para o comentário
Compartilhar em outros sites

  • Moderadores

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 para o comentário
Compartilhar em outros sites

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 para o comentário
Compartilhar em outros sites

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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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!

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.