Autor Tópico: Controle de Número de Conexões com o Banco através da Aplicação  (Lida 3684 vezes)

Adesoft

  • Avançado
  • ****
  • Mensagens: 355
    • Email
Caros amigos,

Estamos com uma aplicação de um cliente no provedor King Host, porém o cliente acessa através de um IP dinâmico da net. A King Host liberou o acesso ilimitado para o tempo da conexão, com isto a aplicação do usuário não tem tempo de validade para ficar conectada.

Porém o provedor esta bloqueando o IP do cliente a cada 5 dias, avisando que chegou a 255 conexões é o limite, ai ele bloqueia o IP as conexões são zeradas e quando eu solicitou o desbloqueio volta ao normal.

Creio que algum amigo, já fez um controle no login do SC da Aplicação para controlar se o usuário já esta com uma conexão aberta ou não e se tiver zerar ele e relogar com o mesmo usuário.
Pois muitos usuários não usam o botão sair da aplicação, fechando no X, e neste caso a conexão fica aberta.

Seria como hoje o SC, caso fecharmos o SC sem sair corretamente ao entrar ele mostra que tem uma conexão aberta, e vc pode derrubar ela.

Agradeço a ajuda.

Adeilson de Oliveira
Adeilson de Oliveira
THS do Brasil

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Controle de Número de Conexões com o Banco através da Aplicação
« Responder #1 Online: Março 27, 2013, 10:30:47 am »
Eu não entendi porque você esta usando conexão persistente.. isso zica mesmo!! Se você tiver acesso ao cron do linux ou agendador de tarefas do windows se for server windows é só matar o processo do mysql e iniciar novamente.. pode fazer isso por exemplo todo dia as 0h.

Adesoft

  • Avançado
  • ****
  • Mensagens: 355
    • Email
Re:Controle de Número de Conexões com o Banco através da Aplicação
« Responder #2 Online: Março 27, 2013, 10:34:19 am »
Caros amigos,
No fórum tem um artigo falando de algo parecido com controle e dica passado pelo Haroldo

http://forum.scriptcase.com.br/index.php/topic,459.0/topicseen.html

Porém o problema seria quando o usuário fechar a aplicação no browser  direto a sua conexão ficará aberta, e ao tentar entrar novamente vou conseguir saber que ele esta logado, e como proceder para fechar a conexão antiga derrubando e fazendo ele logar com uma nova, sem afetar a aplicação com demais usuários?

Adeilson de Oliveira
Adeilson de Oliveira
THS do Brasil

Adesoft

  • Avançado
  • ****
  • Mensagens: 355
    • Email
Re:Controle de Número de Conexões com o Banco através da Aplicação
« Responder #3 Online: Março 27, 2013, 10:44:16 am »
Saulo,

O Cliente nos convenceu que a necessidade da aplicação ficar permanente era porque muitas vezes o usuário ficava com a tela do cadastro de entrada de estoque aberta e saia para pegar informações de logística de entrada e algumas vezes ultrapassava o tempo e perdia a tela com a digitação.
Pois na King eu não tenho o controle por tempo, eu tinha solicitado para eles um tempo de 2 horas, porém é um padrão ou ilimitado como esta agora.

Na sua sugestão então eu faria um cron (Linux) para Restartar o Mysql, assim todas as conexões seriam encerrada ? Um dúvida em PHP, a conexão em PHP abertas são diferentes da conexão com o Banco?
Pois o provedor me alertou que a aplicação do cliente chegou a 255 conexões, fiquei pensando como, pois o cliente só tem 3 computadores!

OBS: Amigos na aplicação SC, o botão [ Sair ] já vem na programação interna do SC para ele fechar (destruir) a sessão? exmplo:
session_destroy(); // Destrói toda sessão


Adeilson de Oliveira
« Última modificação: Março 27, 2013, 12:42:28 pm por Adesoft »
Adeilson de Oliveira
THS do Brasil

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Controle de Número de Conexões com o Banco através da Aplicação
« Responder #4 Online: Março 27, 2013, 01:16:20 pm »
Então conexão no mysql é tudo uma coisa só.. melhor dizendo quem dizao mysql pra não matar a conexão é o php, e se você define o php com conexão persistente o que acontece, a sessão do php deve estar expirando e a do mysql fica presa, aí ele mantém a conexão no mysql o cara volta e entra de novo, o php deveria verificar se existe essa conexão e não criar outra, mas esse comportamento embora seja o padrão pode ser alterado e modificado de acordo com o ambiente, aí é criada uma nova conexão no mysql..que fica presa também.. e esse ciclo continua mesmo que seja o mesmo cara.. (seria bom verificar seu php.ini  e as configs do mysql do provedor) o que eu faria, desabilitaria a conexão persistente no mysql / php (veja neste artigo que as vantagens de conexões persistente não se justificam http://php.net/manual/pt_BR/features.persistent-connections.php)  e faria uma aplicação que de tempos em tempos faça uma requisição simples ao sistema mantenha a conexão do cara ativa, se for uma tela em específico você pode usar um container com refresh.

Adesoft

  • Avançado
  • ****
  • Mensagens: 355
    • Email
Re:Controle de Número de Conexões com o Banco através da Aplicação
« Responder #5 Online: Abril 02, 2013, 08:38:19 am »
Saulo,
Depois de horas com o provedor King, chegamos a forma exata de trabalho deles:

Forma número 01: Padrão
- PH53, a sessão do usuário é encerrada pelo fechamento do Browser, porém a conexão com o mysql tem um limite de 5 minutos, caso o usuário não se conectar a nenhuma tabela a conexão é encerrada

Forma número 02: Por Solicitação
- PH53, a sessão do usuário fica aberta direto, a conexão do banco não é encerrada, porém neste formato o provedor quando chega a 255 conexões ele trava, e o IP do cliente é bloqueado. Neste caso para o cliente é melhor pois ele não fica fechando e precisando se logar, e não perde alguns dados que por ventura deixou na tela sem salvar por estar fazendo outra tarefa.

O Acesso ao mysql para poder restart através de uma tarefa não é possível por servidores compartilhado. O suporte me orientou para que eu controlasse o número de conexões dos usuários ao banco.

Sabemos também que a nossa aplicação que esta com este cliente foi feita em sc5.2 e estamos trabalhando para migrar para  sc6.0 Porém estamos com este problema poderia nos ajudar?

Adeilson de Oliveira
Adeilson de Oliveira
THS do Brasil

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Controle de Número de Conexões com o Banco através da Aplicação
« Responder #6 Online: Abril 23, 2013, 09:53:52 am »
Adesoft, me adiciona no skype: saulobborges.