Fórum AppServer Consumindo muita memória. Conexão Fantasma #459498
25/10/2013
0
Estou com um problema no meu appserver que no início do dia está consumindo pouca memória, mas no final do dia, está consumindo muita memória, fica lento e, às vezes, o firebird recusa a nova conexão. Eu achei que se tratava de "conexão fantasma", mas eu utilizo KeepAlive(TDSTCPServerTransport.KeepAliveEnablement = kaEnabled). Eu só tenho um único ServerMethod, e nele um TSqlConection para firebird. O LifeCyde = Session, logo uma sessão para casa appclient que conecta. Na minha concepção, não deveria dar problemas, pois se um appclient desconectar forçadamente (caiu a internet), dentro de instantes, o KeepAlive
deveria destruir tudo que está criado naquela Session, mas na prática o tamanho do appserver na memória só aumenta. Se eu mudar o LifeCyde = Server, a minha conexão com banco de dados vai ser única e vai acabar conflitando o que um appclient com outro. Fiz um pequeno teste, em outra aplicação, tentando um appserver o LifeCyde = Server e dois appclient ao mesmo tempo, fazendo uma consulta no banco, e dá erro.
Para amenizar o problema, todos os dias à noite, o serviço appserver é reiniciado, aí no outro dia começa tudo novamente. E à tarde começa o pico da lentidão e crescimento do seu tamanho na memória do servidor.
Queria saber se alguém poderia me ajudar neste problema que tenho há muito tempo, uns 3 anos praticamente.
deveria destruir tudo que está criado naquela Session, mas na prática o tamanho do appserver na memória só aumenta. Se eu mudar o LifeCyde = Server, a minha conexão com banco de dados vai ser única e vai acabar conflitando o que um appclient com outro. Fiz um pequeno teste, em outra aplicação, tentando um appserver o LifeCyde = Server e dois appclient ao mesmo tempo, fazendo uma consulta no banco, e dá erro.
Para amenizar o problema, todos os dias à noite, o serviço appserver é reiniciado, aí no outro dia começa tudo novamente. E à tarde começa o pico da lentidão e crescimento do seu tamanho na memória do servidor.
Queria saber se alguém poderia me ajudar neste problema que tenho há muito tempo, uns 3 anos praticamente.
Alessandro Zanela
Curtir tópico
+ 0
Responder
Posts
25/10/2013
Marcos Saffran
Alessandro,
recentemente fiz um programa que a cada segundo verificava no banco de dados mysql, através de um timer, informações sobre diversas tabelas.
Esse programa estava aumentando o uso da memória a cada segundo, então verifiquei que apesar de fechar todas as query elas continuavam na memória, para resolver coloquei, depois do último close do meu timer um destroy e resolveu o meu problema.
Não sei como está o seu programa, mas espero que a solução do meu problema possa ajudá-lo a resolver o seu.
recentemente fiz um programa que a cada segundo verificava no banco de dados mysql, através de um timer, informações sobre diversas tabelas.
Esse programa estava aumentando o uso da memória a cada segundo, então verifiquei que apesar de fechar todas as query elas continuavam na memória, para resolver coloquei, depois do último close do meu timer um destroy e resolveu o meu problema.
Não sei como está o seu programa, mas espero que a solução do meu problema possa ajudá-lo a resolver o seu.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)