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á 962 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

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

  • Administradores
Postado

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 !!

  • Moderadores
Postado

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.

Postado
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!

Postado
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 

  • Fundadores
  • Solution
Postado

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.

Postado
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
×
×
  • 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.