[firebase-br] Firebird 2.5.9 - Classic (Segurando Processos)

Gladiston Santana gladiston em vidy.com.br
Qui Out 24 15:40:03 -03 2019


O problema com threads é que você tem que matar tudo que tá lá dentro dela
como herança, se sobrar objeto ela 'vaza' e segura as instancias criadas
dentro dela. Você tem de usar units que sejam thread-safe ou fazer uma
implementação diferente, como vc acabou fazendo.



Em qua, 23 de out de 2019 às 19:03, Danilo Miranda <danilomibr em gmail.com>
escreveu:

> João, boa noite!
>
> Cara, eu estava com um problema parecido.
> Tenho uma aplicação que é um Replicador, ele roda como um serviço do
> Windows , conectando ao servidor Firebird com Zeos.
>
> Essa aplicação é multithread e a cada 1 minuto se conectava ao banco.
>
> Eu destruía criava e destruía os componentes Zeos em Runtime, conectava,
> fazia o que precisava, desconectava e destruía os objetos de conexão.
>
> O problema é que as conexões não eram derrubadas do Firebird. Após algumas
> horas eu tinha centenas de conexão no FB, ele estava consumindo bastante
> memória e a máquina ficava uma carroça
>
> Uso Delphi para criar a conexão e esses objetos TZConnection eram
> declarados como uma propriedade da Thread (tipo um Field do objeto thread,
> manja?)
>
> Resolvi o problema, alterando a aplicação, passando a declaração desses
> objetos TZConnection para dentro das funções que eu executo a "replicação",
> deixando de ser uma propriedade da Thread.
>
> Parece não fazer muito sentido né? Também acho. Mas foi a única forma que
> consegui resolver.
>
> Ah, meu FB roda no modo Superserver.
>
> Abraços
> Danilo



Mais detalhes sobre a lista de discussão lista