Ir para conteúdo
  • Cadastre-se

dev botao

ACBrMTer - Problema de conexão com múltiplos Micro Terminais


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

Recommended Posts

Postado (editado)

Boa tarde. Desenvolvi uma aplicação para fazer o gerenciamento dos Micro Terminais de um cliente meu. No estabelecimento dele, ele possue 3 Micro Terminais, e quando a minha aplicação inicia a conexão com todos eles, eu consigo somente mexer em um deles, os outros ficam travados. Com isso, depois de um tempo, eles destravam e consigo mexer, sendo que trava os outros novamente, e assim por diante.

Procurei aqui no fórum outros tópicos relacionados a perca de conexão com os Micro Terminais e achei um tópico interessante que talvez possa me dar um norte de solução.

 

1 - Como posso solucionar problemas de perca de conexão quando se utilizo mais de um Micro Terminal na rede?

2 - Alguém poderia me explicar como funciona a propriedade "KeepAlive"?

3 - Alguém poderia me explicar como aplicar a propriedade "KeepAlive" via exemplo de código-fonte, por favor?

4 - Se possuir outros tópicos que ja foram resolvidos do mesmo assunto que o meu, por favor, deixe os links.

Aguardo respostas. Obs: Preciso dessa correção urgente para que eu consiga apresentar a solução para meu cliente o quanto antes.

Marca dos Micro Terminais de meu cliente: WillBor Tech

Editado por Vitor Cortinovis
Postado

Citei um link de um tópico que estava aberto sobre o mesmo problema que o meu, e foi resolvido com o desenvolvimento de uma nova função: "KeepAlive".

Poderia me explicar como ela funciona e um exemplo de implementação dela, por favor?

  • Fundadores
Postado

o Tópico parece descrever bem o problema e a solução... veja ainda o change-log

Citar

21/08/2019
-- ACBrMTER --
[+] Adicionada a Propriedade "KeepAlive : Integer default 0"
    Se o valor for diferente de 0, o ACBrMTER irá verificar se a conexão com o
    Microterminal ainda está ativa, a cada N segundos
    https://www.projetoacbr.com.br/forum/topic/53139-problemas-mter-micros-terminais-gertec-antigos-solução/

o ACBr é Open Surce...  então basta abrir os fontes e estudar...

  • Curtir 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.

  • Consultores
Postado
Em 16/11/2019 at 10:21, Vitor Cortinovis disse:

Poderia só me explicar como funciona a propriedade "KeepAlive" então, por gentileza?

Basta você passar pra propriedade um valor N. Então o ACBrMTER vai ficar verificando a cada N tempo se a conexão está ativa.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado
5 minutos atrás, EMBarbosa disse:

Basta você passar pra propriedade um valor N. Então o ACBrMTER vai ficar verificando a cada N tempo se a conexão está ativa.

Bom dia. Eu atualizei os fontes do ACBrMTer e a propriedade apareceu pra mim agora, só que adicionei um novo valor a ela diferente de 0 e ela não esta registrando no Log o comanda de verificação de esta online ou não.

Alem de informar um valor na propriedade, eu preciso fazer mais algum procedimento?

  • Consultores
Postado
3 minutos atrás, Vitor Cortinovis disse:

Bom dia. Eu atualizei os fontes do ACBrMTer e a propriedade apareceu pra mim agora, só que adicionei um novo valor a ela diferente de 0 e ela não esta registrando no Log o comanda de verificação de esta online ou não.

Alem de informar um valor na propriedade, eu preciso fazer mais algum procedimento?

Não, basta alterar o valor.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Fiz uma alteração no meu fonte e funcionou, só que esta retornando, aparentemente, um erro:

 -- 18/11 11:35:14:524 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:16:565 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:16:618 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:18:605 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:18:671 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:20:647 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:20:723 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:22:692 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:22:773 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:24:734 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:24:823 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:26:776 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:26:867 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:28:818 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:28:912 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:30:859 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:30:955 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:32:900 -- Terminal: 192.168.1.253 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine
 -- 18/11 11:35:33:000 -- Terminal: 192.168.1.252 - RecebeOnLine: SIM - Modelo: VT100 n[227]o suporta verifica[231][227]o Status OnLine

O que seria isso por favor?

Postado

Estou enfrentando dificuldades na minha aplicação de gerenciamento de Micro Terminais onde eu tenho 4 Micro Terminais que podem trabalhar simultaneamente. Com isso, se um Micro Terminal fizer uma operação de digitar números enquanto no outro Micro Terminal estiver fazendo uma operação, por exemplo, se inserção de itens, algumas vezes está ocasionando conflitos, pois as vezes o caracter informado em um Micro Terminal é recebido pelo outro Micro Terminal.

Também, quando realizo uma operação em um dos Micro Terminais, os outros Micro Terminais que estão sendo utilizados simultaneamente, ficam lentos na maioria das vezes. Isso só ocorre quando faço operações simultâneas em vários Micro Terminais ao mesmo tempo.

Alguém já passou por essas situações? (Lentidão com mais de um Micro Terminal e caracteres informados em um Micro Terminal é recebido pelo outro)

Observação: Já utilizo um tipo de tratamento de caracter, salavando ele num TClientDataSet de acordo com o IP do Micro Terminal, mas mesmo assim, ocorre conflitos por causa da lentidão.

Postado

Não, não ocorre pois não possuem processos extenso como inserção de itens, etc... No meu caso, os Micro Terminais irão fazer comunicações com o BD algumas vezes para inserir dados, por isso possa ser que ocorra lentidões em outros Micro Terminais conectados quando se tenta fazer outra ação enquanto uma outra está sendo realizada.

Estava verificando aqui com outras pessoas que entendem mais da parte lógica e chegamos em um consenso de usarmos Threads para realizar os processos separadamente. Com isso, cada processo criará sua Thread sem interromper os demais processos de outros Micro Terminais.

Uma outra questão é: Como reconectar Micro Terminais que perderam conexão sem desconectar os demais Micro Terminais que possuem conexão estável? Poderia me indicar como poderei fazer isso ou se já possue algum tópico com essa solução, pois não achei nada aqui nos fóruns.

Agradeço.

  • Fundadores
Postado

Não escreva muito código ou códigos muito longos dentro dos eventos do ACBrMTER

Capture os dados, trate, salve em BD ou Tela...e deixe outra rotina manipular esses dados 

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
Agora, Daniel Simoes disse:

Não escreva muito código ou códigos muito longos dentro dos eventos do ACBrMT

Capture os dados, trate, salve em BD ou Tela...e deixe outra rotina manipular esses dados 

Sim, fiz dessa maneira e amenizou bastante meu problema com lentidão, pelo menos 90% foi resolvido.

Minha questão e reconectar os Micro Terminais que caíram a conexão sem desativar todos para reconectar. Tem alguma ideia?

  • Fundadores
Postado

Verifique se há alguma configuração no Equipamento, para tentar reconexão automática..

O ACBrMTER, abre um Servidor TCP/IP, multithread, ou seja, ele sempre ficará aguardando uma nova conexão... mas quem tem que iniciar a conexão é o Micro Terminal

 

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.

  • Fundadores
Postado

Mais uma vez... Esse problema ocorre no Demo do ACBrMTER ?

Verifique se você está devolvendo o controle para o ACBrMTER, no evento de entrada de conexão ?

Analise os Logs...e veja como o ACBrMTER está se comportando, nesse momento...

 

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

Sim, esse problema tambem acontece no na Demo do ACBrMTer. Se um dos Micro Terminais conectados desconectar e conectar novamente, eu não consigo mais mandar comandos pra ele, mesmo ele estando conectado.

image.thumb.png.225ec0be19693c77e0aa9718bc586d38.png

Só que no caso da Demo, aconteçe o inverso da minha aplicação:

Na Demo: O Micro Terminal que caiu a conexão e se reconectou não da mais para acessa-lo

Na minha aplicação: Os Micro Terminais que não cairam a conexão não são mais acessiveis.

Postado (editado)

1 - Ativar a conexão

2 - Retirar da tomada um dos Micro Terminais conectados (simulando um fio com mal contato, etc...)

3 - Ligar novamente o Micro Terminal desligado

4 - Após o Micro Terminal se reconectar, tentar enviar um comando a ele

Pronto, o erro deverá acontecer, com essa mesma mensagem.

Editado por Vitor Cortinovis
  • Este tópico foi criado há 1746 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.