por JoséQuintas » 23 Jun 2017 22:43
Vamos lá....
Tenho um banco MySQL na internet, não faço idéia do limite.
Uso o da internet para o webservice de CEP, utilizado pelo aplicativo.
Uso também pra atualizar tabelas nos clientes.
Tenho um banco MySQL no MEU SERVIDOR, acessado por todos os clientes.
Uso pra disparar e-mails de NFE. Fica um aplicativo rodando 24 horas.
Todos os XMLs de NFE estão nele, o aplicativo atualiza sempre.
Antigamente também era usado pelos clientes pra acessar PDF de documentos, PDF gerado pelo Unidanfe, direto pelo aplicativo.
Tenho IP dinâmico, e o servidor é acessado através do no-ip.org
E tenho o banco MySQL em CADA CLIENTE.
Depois que fiz isso, comecei a transferir os XMLs de meu servidor para cada cliente.
É usado pelo aplicativo pra muita coisa do cliente.
A intenção final é que não precise mais do meu servidor.
Por enquanto está servindo de backup dos XMLs, além de enviar e-mails.
Do lado do cliente, o aplicativo pode acessar os três servidores, depende da situação/rotina.
O servidor do cliente é acessado o tempo todo, durante todo aplicativo.
O meu servidor é acessado pra disparar e-mails apenas, pode ser várias vezes por dia.
O da internet, é via webservice, ou então eventualmente pra atualizar tabelas do aplicativo.
O servidor da internet existe há muitos anos.
O meu servidor tá asim há uns 8 ou 9 anos.
O servidor dos clientes, uns 2 anos ou 3 anos.
Uso ADO, conexão MySQL do cliente conectada o tempo todo, as demais conectar/desconectar.
O que acontece no Windows:
O limite de half-open connections é 8 (OITO), se não foi aumentado.
Isso se refere a conexões "meio-abertas", que não podem ser consideradas nem abertas nem fechadas.
Antes do Windows XP Service Pack 1 ou 2, o limite era 16 MILHÕES, depois virou 8 UNIDADES.
O Windows faz cache de conexões, pra agilizar a tarefa.
Quando você fecha a conexão, ela fica pendente por um tempo, e não é fechada instantâneo.
Se ficar abrindo e fechando conexões, haverá uma fila de espera, cada vez maior, por causa do limite de 8 conexões.
Pode chegar ao ponto de travar tudo: Windows, roteador e tudo mais.
Não é limite de conexões abertas, é limite de conexões "meio-abertas".
Conta nisso conexões em fase de fechamento e conexões em fase de abertura.
Tem os limites do Windows pra manter uma conexão aberta fora de uso, tem limites do Windows pra manter um terminal conectado fora de uso, e tem outros limites.
Também tem a internet brasileira, que pode ter uma breve caída, e trocar o endereço de IP, e caso seja conexão via internet lá se foi a conexão.
Se ficar o bicho pega, se correr o bicho come.....
Só resta manter conexão aberta, e contornar eventuais problemas, se acontecerem.
Lembrando que além das suas conexões, tem as várias conexões que Windows e aplicativos costumam fazer....
É leitor de email, navegador de internet, programas de banco podendo fiscalizar conexões, antivírus, etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"https://github.com/JoseQuintas/