Ir para conteúdo
  • Cadastre-se

dev botao

ACBrMonitorPlus SAT comunicação via socket lenta.


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

Recommended Posts

  • Membros Pro

Estou trocando informações com o ACBrMonitorPlus via socket para utilizar os recursos do SAT, porém o retorno esta EXTREMAMENTE lento, envio o comando SAT.EnviarCFe

e a resposta vem cada bloco com um delay muito alto. O arquivo anexo é justamente é um log que criei em meu aplicativo onde temos o horário->retorno, desta forma poderá ver o tempo de resposta entre os comandos.

O mesmo algoritmo eu utilizo com a ACBrMonitorNFe e o retorno é de imediato, fico no aguardo dos comentários dos amigos.

retorno.txt

Wagner J.'. Rocha

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Verifiquei duas coias em seu log.

1. a dll do SAT (SAT.DLL) não está no diretório que você configurou, você precisa colocar a DLL SAT.DLL que veio junto ao aparelho no diretório configurado para que funcione.

2. Seu SAT aparentemente está bloqueado, você precisa desbloqueá-lo primeiro.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Verifiquei as questões que solicitou:

1) a DLLSAT.dll e ZLIB.dll copiada para a pasta c:\ACBrMonitorPLUS são as mesmas que utilizo em meu aplicativo. Dentro do ACBrMonitorPLUS esta indicado como localização da DLL: C:\ACBrMonitorPLUS\dllsat.dll

2) Estou utilizando o Kit de Desenvolvimento da Dimep e dentro de minha aplicação fazendo a comunicação direta as respostas são de imediato.

Algo mais que tenha que possa verificar?

Wagner J.'. Rocha

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Olhei o ACBrMonitor.ini dentro da pasta c:\ACBrMonitorPlus e não consegui identificar nada de estranho para mim.

Segue os arquivos ACBrMonitor.ini, ACBrSAT.log e o WJR.txt

Dentro do WJR.txt esta todos os retornos recebidos do ACBrMonitor via socket com a hora para ficar fácil identificar o tempo de resposta. Ignore a sequencia <<< e >>> que acrescentei ao retorno do ACBrMonitorPlus para identicar algum retorno 'oculto'.

O que percebi que o retorno que consta no ACBrSAT.log é de imediato, depois o processo de retorno pelo ACBrMonitorPlus que passa ter a demora. Um detalhe que percebi quando usando o ACBrMonitorNFe é q a comunicação é sincrona e neste caso na DLL que utilizo para a comunicação (Catalyst SocketWrench Control 3.5(SP5)) tive que determinar a propriedade Blocking=false. tentei realizar o teste alterando Bloking=true mas ai não obtenho retorno.

Caso alguém do grupo tenha conseguido obter a resposta via socket de forma imediata e possa passar a DLL que esta utilizando os parâmetros utilizados eu me proponho a alterar minha programação.

Respeitosamente.

 

Wagner

ACBrMonitor.ini

ACBrSAT.log

wjr.txt

Wagner J.'. Rocha

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Não tem nada de incomum nas configurações, parecem estar tudo em ordem, me resta pensar que a demora é no seu SAT ou na comunicação entre a DLL e o SAT, testei aqui com um SAT Tanca e está tudo perfeitamente normal.

Você poderia somente para efeito de teste mudar a comunicação para arquivo e verificar se demora também?

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Parece que seu componente TCP está lendo linha a linha (provavelmente o terminador está com: CR+LF ou apenas LF)

O ACBrMonitor termina o bloco de transmissão com um ETX (chr(3))

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

Daniel, grato pela resposta.

O componente que utilizo não fica esperando um determinado caracter de final de transmissão ou fica lendo em linhas.

Uma vez que envio a String ao servidor, fica gerando um evento de leitura e no caso eu trato quando vem o finalizador do protocolo (no nosso caso chr(3)).

Como comentei anteriormente eu utilizo o mesmo componente com o ACBrNFeMonitor e este retornar de uma unica vez a resposta. 

Habilitei no componente que utilizo o LOG e para comparar fiz a seguinte sequencia, fiz uma envie uma venda CFe no ACBrMonitorPlus e depois fiz uma venda enviando uma venda NFe para o ACBrNFePlus. Comparando as informações do LOG onde venda CFe inicia na linha 2 e a venda NFe inicia 27, perceba que existe a mesma sequencia de comando, o único detalhe que para a NFe o bloco de conexão volta a se repetir na 50 pois solicito a impressão.

Estou anexando o LOG caso queira analisar.

 

Respeitosamente.

Wagner

socket_log.txt

Wagner J.'. Rocha

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não consegui compreender muito bem o Log ou notar alguma diferença entre os diferentes testes...

Comandos mais simples (que retornam apenas uma linha) funcionam adequadamente ?

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

Estou utilizando somente para a impressão do Extrato e neste caso o retorno é de imediato.

Faço todo o processo com acesso direto a DLLSAT.DLL (Dimep) e no momento da impressão, faço pelo ACBrMonitorPlus.

Saberia me dizer se tem conhecimento de alguém que esta usando a troca de informações para o SAT com o ACBrMonitorPlus via socket, pois neste caso me proponho a utilizar o mesmo componente ao menos para o teste.

 

Wagner J.'. Rocha

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não sei dizer... acho que a maioria usa por TXT...

Você consegue criar uma sequencia de comandos a enviar, que cause a lentidão ?

Assim tento reproduzir o problema, usando um programa simples para enviar os comandos por Socket

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

  • Fundadores

Olá Wagner,

Desculpe-me mais uma vez pela demora na resposta...

Fiz um teste usando o Telnet do windows  e a resposta foi imediata... (veja a imagem em anexo)

Recebi um erro de rejeição, por estar usando o Emulador de SAT do SEFAZ... Mas acredito que para efeito de testes de resposta do canal TCP, é o mesmo efeito...

Para testar usando o Telnet... faça o seguinte...

open localhost 3434
SAT.inicializa <enter><ponto><enter>
SAT.EnviarCFe("C:\temp\cfe01.xml") <enter><ponto><enter>

 

 

testeTelnet.jpg

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

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.

The popup will be closed in 10 segundos...