Ir para conteúdo
  • Cadastre-se

dev botao

Eventual erro 10060 usando OpenSSL


  • Este tópico foi criado há 2307 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde, colegas!!

Recentemente após a atualização da exigência do TLS V 1.2 para NFE 4.0, resolvi mudar todos os meus clientes para utilizarem o OpenSSL (Todos eles usam certificados A1) acreditando que essa seria a melhor alternativa (Mais prática), visto que muitos deles ainda possuem windows desatualizados e sem suporte a TLS 1.2 (o que demandaria tempo demais).
Bem, o meu problema é o seguinte:  De vez em quando obtenho o erro 10060 utilizando o OpenSSL. Fiz o teste em um dos clientes deixei todas as máquinas usando a Wincrypt e apenas 1 delas usando openSSL, o resultado foi:
1) A máquina com OpenSSL emitiu notas em contingência 15 vezes durante o dia sempre por conta deste mesmo erro ( 10060)
2) As máquinas configuradas com wincrypt não emitiram nenhuma nota em contingência. Funcionaram online 100% do tempo.

Outra coisa que eu percebi é que o tempo de timeout  da ocorrência deste erro,
não obedece o tempo de  timeout definido em dm.ACBrNFe1.Configuracoes.WebServices.TimeOut, esse erro acontece sempre em mais ou menos 20 segundos. E sempre que ocorreram, nenhuma nota chegou a ser realmente autorizada (Como acontecia na Capicom ou até com a Wincrypt de vez em quando).

O meu medo é gerar um grande volume de inutilizações no final do mês.
Estou usando a versão 1.02.13

Como o meu executável não é compilado para 64 bits, utilizo sempre a versão de 32 bits (independente do S.O)
Algum dos colegas já passaram pelo mesmo problema ??

Grande abraço  a todos e obrigado!

Link para o comentário
Compartilhar em outros sites

  • Fundadores

https://support.microsoft.com/pt-br/help/191143/10060-connection-timed-out-error-with-proxy-server-or-isa-server-on-sl

10060 é TimeOut... o WebService não respondeu, portanto o problema é na SEFAZ

21 horas atrás, João Marcos_14485 disse:

não obedece o tempo de  timeout definido em dm.ACBrNFe1.Configuracoes.WebServices.TimeOut,

TimeOut ocorre a nível de Sistema Operacional, então nem todas as situações podem ser tratadas pela aplicação...

A única maneira de ter um TimeOut preciso, é usar a opção SSL.TimeOutPorThread := True

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

Hum... também migrei para OpenSSL os clientes que possuem certificado A1 (antes utilizava Capicom, para A3 fui para WinCrypt), e os clientes começaram a reclamar que quando estão sem internet o sistema parou de entrar em Contingência Offline, pois o tratava em meu sistema os erros: 12007, 12002, 12029 para assumir a Contingência... percebi que também está retornando o erro 10060 com OpenSSL, então vou acrescentar mais esse erro para assumir a entrada em Contingência Offline em meu sistema.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Daniel Simoes disse:

Porque não tratar erros de cm contingência off-line  em OnTransmitError ?

Ué... nunca usei esse cara não Daniel. Sempre utilizei try...except e então verifico os códigos que assumo a contingência. Como funciona exatamente esse OnTransmitError, se dispará-lo já assumiria a contingência sem verificação de códigos?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

O ACBrNFe, irá disparar esse evento, sempre que houver um erro de transmissão... nele vc pode pegar o HTTPCode e o InternalError...

Com isso, fica mais simples de ligar na sua aplicação um Flag, para iniciar a emissão em off-line

Nesse vídeo (exclusivo a assinantes do SAC), isso é demonstrado em detalhes

image.png

  • Obrigado 1
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

On 7/17/2018 at 1:11 PM, Daniel Simoes said:

https://support.microsoft.com/pt-br/help/191143/10060-connection-timed-out-error-with-proxy-server-or-isa-server-on-sl

10060 é TimeOut... o WebService não respondeu, portanto o problema é na SEFAZ

TimeOut ocorre a nível de Sistema Operacional, então nem todas as situações podem ser tratadas pela aplicação...

A única maneira de ter um TimeOut preciso, é usar a opção SSL.TimeOutPorThread := True

Obrigado pela dica, Daniel!
Vou modificar desta forma  para ver os resultados que tenho!

Tive um problema novo na segunda: (Acredito que o WS deu pau em alguns estados). O que ocorria é que quem estava usando OpenSSL ao chamar o método de enviar a nota, a aplicação simplesmente ficava travada. Não retornava timeout, mas o método de envio também não finalizava nunca.

Vou tentar usar desta forma. Muito obrigado pela ajuda, meu velho!

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores
7 minutos atrás, João Marcos_14485 disse:

O que ocorria é que quem estava usando OpenSSL ao chamar o método de enviar a nota, a aplicação simplesmente ficava travada. Não retornava timeout, mas o método de envio também não finalizava nunca.

Passamos por esse mesmo problema.. a comunicação HTTPS do ACBr com a OpenSSL é feita pela classe Synapse, e ela, no Windows usa a API WinSock, que é muito baixo nível....

Por isso que criamos a propriedade TimeOutPorThread... Nesse caso o ACBr abre uma Thread para tentar a comunicação... enquanto a Thread Principal, verifica se o TimeOut ocorreu... se ele ocorreu, a Thread é simplesmente abandonada...

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

 

10 horas atrás, Daniel Simoes disse:

Passamos por esse mesmo problema.. a comunicação HTTPS do ACBr com a OpenSSL é feita pela classe Synapse, e ela, no Windows usa a API WinSock, que é muito baixo nível....

Por isso que criamos a propriedade TimeOutPorThread... Nesse caso o ACBr abre uma Thread para tentar a comunicação... enquanto a Thread Principal, verifica se o TimeOut ocorreu... se ele ocorreu, a Thread é simplesmente abandonada...

Então o meu problema tá resolvido!
Muito obrigado, meu velho!!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2307 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.