Ir para conteúdo
  • Cadastre-se

dev botao

Nfce Timeout


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

Recommended Posts

  • Membros Pro
Agora, André Ferreira de Moraes disse:

Se isto fosse um problema real nos fontes do componente teríamos vários usuários reclamando da mesma situação. Uso sempre a última versão do componente nos meus clientes e com os tratamentos citados acima não tenho reclamações de demora no envio.

Entendo, mas no meu caso a situação está caótica.. o Cliente é supermercado, tem várias filiais ocorrendo o problema. Estão ocorrendo filas e reclamações constantes. Vou tentar usar como Capicon, se o problema for conexão de internet, o erro continuará ocorrendo..  Vou eliminar todas as possibilidades.

Link para o comentário
Compartilhar em outros sites

  • Respostas 98
  • Created
  • Última resposta

Top Posters In This Topic

  • Moderadores
2 minutos atrás, Dércio Luis Zanatta disse:

Entendo, mas no meu caso a situação está caótica.. o Cliente é supermercado, tem várias filiais ocorrendo o problema. Estão ocorrendo filas e reclamações constantes. Vou tentar usar como Capicon, se o problema for conexão de internet, o erro continuará ocorrendo..  Vou eliminar todas as possibilidades.

Em 10/11/2016 at 16:56, Dércio Luis Zanatta disse:

Nesse cliente, tem somente um terminal por filial.. São postos de combustível.. O que posso fazer é mandar os logs de uma filial que está usando o executável antigo e outra que está usando o executável novo...  Que arquivos vc precisa exatamente ?

Neste post vc fala que só tem um terminal pq são postos de gasolina, agora vc diz que são supermercados. Seja claro em como podemos reproduzir o problema, senão não temos como ajudar.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Agora, André Ferreira de Moraes disse:

Neste post vc fala que só tem um terminal pq são postos de gasolina, agora vc diz que são supermercados. Seja claro em como podemos reproduzir o problema, senão não temos como ajudar.

Me desculpe André.. Estou testando em vários clientes... o problema mais grave é nesse que tem supermercados, mas está ocorrendo em todos.

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

 

 

22 minutos atrás, André Ferreira de Moraes disse:

Neste post vc fala que só tem um terminal pq são postos de gasolina, agora vc diz que são supermercados. Seja claro em como podemos reproduzir o problema, senão não temos como ajudar.

Será que teria como fazer esse tratamento via Thread no demo para que eu possa ter uma idéia de como implementar isso ?

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde

Só para título de informação... 

Eu tinha uma cópia do ACBR que estava na minha máquina antes da atualização do dia 02/09/2016. Voltei essa cópia e recompilei os pacotes com o ACBR_Install2.exe e depois recompilei meu aplicativo.

Notei que que seu eu alterar a propriedade SSLLib para libCapicomDelphiSoap o problema de falha de conexão ocorre com muito menos frequencia e quando ocorre, a demora no retorno também é bem menor.

Se eu utilizar a propriendade SSLlib para libOpenSSL, os erros por falha na conexão ocorrem muito mais frequentemente, e a demora para o retorno é bem maior.

Na quarta-feira, vamos acompanhar em mais terminais com essa alteração que fiz para levantar informações desse comportamento.

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia

Enquanto aguardamos o resultado dos testes hj no cliente gostaria de saber se alguém poderia mandar algum exemplo de como controlar o Time Out do envio/recebimento do retorno da NFCe via THreads. Pelo que vi, essa é a única alternativa para controlar isso.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Infelizmente o problema de conexão usando  libCapicomDelphiSoap  ainda acontece, apenas demora sempre 22 seg para retornar o erro enquanto que com   libOpenSSL esse tempo varia de 5 a 58 seg.

Acredito que não tenho outra saída para resolver essa demora senão usar ThReads, então se alguém puder me ajudar a montar isso eu agradeço pois não sei nem por onde começar ehhhe.

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você provavelmente tem algum problema de rede, relacionado a esse cliente... Note que:

- Esse problema não está ocorrendo com outros usuários do ACBr
- Não se trata de algo nos fontes... você continua com o problema, seja em Capicom, OpenSSL, fontes atuais ou antigos

Verifique se outros clientes do mesmo Estado, possuem o mesmo problema...

 

As Threads não vão resolver o seu problema... Tudo que a Thread fará, é permitir uma maneira mais rápida e controlada, de acionar a contingência Off-line... Mas se os problemas de rede continuarem lá.. Você emitirá muitos documentos em OffLine...Com a Thread você precisará ter um tratamento rigoroso, das Notas que ficaram pendentes (que foram abortadas ou abandonadas pela Thread)... Você precisará ter uma "fila" especial, para Cancelar ou Inutilizar esse documentos...

 

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

  • Membros Pro
56 minutos atrás, Daniel Simoes disse:

Você provavelmente tem algum problema de rede, relacionado a esse cliente... Note que:

- Esse problema não está ocorrendo com outros usuários do ACBr
- Não se trata de algo nos fontes... você continua com o problema, seja em Capicom, OpenSSL, fontes atuais ou antigos

Verifique se outros clientes do mesmo Estado, possuem o mesmo problema...

 

As Threads não vão resolver o seu problema... Tudo que a Thread fará, é permitir uma maneira mais rápida e controlada, de acionar a contingência Off-line... Mas se os problemas de rede continuarem lá.. Você emitirá muitos documentos em OffLine...Com a Thread você precisará ter um tratamento rigoroso, das Notas que ficaram pendentes (que foram abortadas ou abandonadas pela Thread)... Você precisará ter uma "fila" especial, para Cancelar ou Inutilizar esse documentos...

 

Sim Daniel..

São dois problemas bem distintos:

1 - O Fato de estar ocorrendo erro de conexão com a SEFAZ com muita frequencia..  Isso está ocorrendo em todos os clientes, alguns mais, outros menos, porém somente nesse é que a demora para retornar o erro é grande.

2 - Controlar o Time Out do envio. Esse atualmente é o problema que está causando mais dor-de-cabeça, pois o fato da conexão estar lenta ou inativa, não depende de ninguém.. pode acontecer, como está acontecendo. O que está causando a insatisfação do cliente é mesmo esse tempo excessivo para retornar o erro e entrar em contingênica OFF LIne.. Acredito que teria que ter uma forma de abortar esse aguardo em um determinado tempo menor.

 

Eu consegui simular isso aqui em laboratório .

Criei um ponto de acesso a internet pelo pacote de dados do meu celular (que é bem básico e lento). Conectado a essa conexão, consegui simular a demora no envio das NFCes.

O que me chama a atenção é que se configuro a propriedade SSLLib como  libCapicomDelphiSoap recebo o erro:

" O tempo limite da operação foi atingido"  

Recebo essa mensagem de 5 a 20 seg.

Configurando a  propriedade SSLLib como  libOpenSSL recebo o erro:

"Erro interno 10060  HTTP:0" ou "erro interno:10090 HTTP:500"  Em um tempo que varia de 6 segundos as 30 MINUTOS

Tudo isso no mesmo computador, com a mesma conexão de internet etc...

Por tudo isso é que acho que deve-se trabalhar uma maneira de abortar o processo em um tempo configurável, ai fica na mão do cliente tornar a conexão dele melhor ou enviar em contingência off line com a mesma conexão ruim,,

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
12 minutos atrás, André Ferreira de Moraes disse:

Como está configurado a propriedade ACBrNFe1.Configuracoes.WebServices.TimeOut ?

TimeOut = 3000

Tentativas = 2

Infelizmente não vou poder usar como  libCapicomDelphiSoap

Agora está ocorrendo o erro:" A área de dados transferida para uma chamada do sistema é muito pequena"

em alguns terminais, em outros funciona !

Editado por Dércio Luis Zanatta
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Para testar esse cenário de TimeOut, modifique o arquivo: ACBrNFeServicos.ini

- Ache a sessão: [NFCe_SP_H] (ou a equivalente, conforme o WebService testado)
- Dentro dessa sessão, ache a Chave: NfeStatusServico_3.10 e modifique conforme abaixo:

[NFCe_SP_H]
;NfeStatusServico_3.10=https://homologacao.nfce.fazenda.sp.gov.br/ws/nfestatusservico2.asmx
NfeStatusServico_3.10=http://www.google.com:81/

 Isso fará o ACBrMonitorPLUS tentar acessar um site que não existe (http://www.google.com:81/) e causará a demora de TimeOut

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

  • Membros Pro
3 minutos atrás, Daniel Simoes disse:

Para testar esse cenário de TimeOut, modifique o arquivo: ACBrNFeServicos.ini

- Ache a sessão: [NFCe_SP_H] (ou a equivalente, conforme o WebService testado)
- Dentro dessa sessão, ache a Chave: NfeStatusServico_3.10 e modifique conforme abaixo:

[NFCe_SP_H]
;NfeStatusServico_3.10=https://homologacao.nfce.fazenda.sp.gov.br/ws/nfestatusservico2.asmx
NfeStatusServico_3.10=http://www.google.com:81/

 Isso fará o ACBrMonitorPLUS tentar acessar um site que não existe (http://www.google.com:81/) e causará a demora de TimeOut

Obrigado pela dica Daniel, mas eu já consegui simular a demora, mesmo usando a URL da SEFAZ com uma conexão de internet 3G bem lenta..

Simular o problema não é mais problema (com o perdão da redundância)

O problema é abortar o processo de envio/Retorno num tempo configurável..

Já fiz deversas tentativas aqui, a que deu melhor resultado foi usar  libCapicomDelphiSoap , porém com essa opção ocorre o erro sitado anteriormente em algumas máquinas. Sendo assim, voltei a estaca zero..

 

 

Editado por Dércio Luis Zanatta
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Faça o seguinte teste:

Abra o arquivo trunk2\Fontes\ACBrDFe\ACBrDFeOpenSSL.pas

procure pela procedure TDFeOpenSSL.ConfiguraHTTP(const URL, SoapAction: String;
  MimeType: String); 

Após a linha FHTTP.ProxyPass := FpDFeSSL.ProxyPass; adicione 
FHTTP.Sock.NonBlockMode := True; 

Recompile todo o ACBr e seu aplicativo e coloque pra rodar usando a versão OpenSSL no seu cliente e veja se o problema irá diminuir.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
9 minutos atrás, André Ferreira de Moraes disse:

Faça o seguinte teste:

Abra o arquivo trunk2\Fontes\ACBrDFe\ACBrDFeOpenSSL.pas

procure pela procedure TDFeOpenSSL.ConfiguraHTTP(const URL, SoapAction: String;
  MimeType: String); 

Após a linha FHTTP.ProxyPass := FpDFeSSL.ProxyPass; adicione 
FHTTP.Sock.NonBlockMode := True; 

Recompile todo o ACBr e seu aplicativo e coloque pra rodar usando a versão OpenSSL no seu cliente e veja se o problema irá diminuir.

Ola.

Fiz as alterações sugeridas, porém aqui na minha conexão 3G não notei nenhuma melhora... Ainda existe uma demora excessiva.


 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Então, do lado do componente, acho q não tem nada que possa ser alterado.

http://www.ararat.cz/synapse/doku.php/public:howto:connecttimeout

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
11 minutos atrás, André Ferreira de Moraes disse:

Então, do lado do componente, acho q não tem nada que possa ser alterado.

http://www.ararat.cz/synapse/doku.php/public:howto:connecttimeout

Realmente lametável não ter como controlar o Time Out. 

Vou fazer um outro post apenas com o objetivo de verificar com outros usuários do RS, se eles também estão enrfentando tais problemas.

Por enquanto, muito obrigado.

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
23 horas atrás, Daniel Simoes disse:

Para testar esse cenário de TimeOut, modifique o arquivo: ACBrNFeServicos.ini

- Ache a sessão: [NFCe_SP_H] (ou a equivalente, conforme o WebService testado)
- Dentro dessa sessão, ache a Chave: NfeStatusServico_3.10 e modifique conforme abaixo:


[NFCe_SP_H]
;NfeStatusServico_3.10=https://homologacao.nfce.fazenda.sp.gov.br/ws/nfestatusservico2.asmx
NfeStatusServico_3.10=http://www.google.com:81/

 Isso fará o ACBrMonitorPLUS tentar acessar um site que não existe (http://www.google.com:81/) e causará a demora de TimeOut

Boa tarde Daniel.

Fiz o teste que vc sugeriu. 

Para mim ocorre mensagem de erro depois de 22 seg. mesmo tendo configurado o TimeOut do componente como 3 seg.

Vc consegue fazer esse mesmo teste ai ?  para vc também demora os 22 seg ou demora o tempo que vc tem configurado no timeout do componente ?

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Pra mim demora o tempo configurado no componente. Não recomendo deixar um timeout tão baixo, deixe no mínimo 5 segundos.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
20 minutos atrás, André Ferreira de Moraes disse:

Pra mim demora o tempo configurado no componente. Não recomendo deixar um timeout tão baixo, deixe no mínimo 5 segundos.

Ai que está o estranho André...

Eu já configurei 3,5, 10 , etc...

Demora sempre 22 seg com esse endereço do google !

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vc fez os testes usando OpenSSL?

Baixe o ACBrMonitor e veja se o mesmo problema acontece, faça um teste consultando o status de serviço e veja quanto tempo demora pro erro ocorrer.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
2 minutos atrás, André Ferreira de Moraes disse:

Vc fez os testes usando OpenSSL?

Baixe o ACBrMonitor e veja se o mesmo problema acontece, faça um teste consultando o status de serviço e veja quanto tempo demora pro erro ocorrer.

Sim, utilizo OpenSSL

Posso testar no Demo do ACBR ao invés do monitor ?

Para mim testar isso no envio da NFCe ao invés do stauts serviço, eu altero a tag NfeAutorizacao_3.10=  ?

 

Editado por Dércio Luis Zanatta
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.