Pessoal, Estamos fazendo testes com o pool do DBExpress 4 onde trabalho. Contudo, percebemos que, claramente a framework está gerando um pequeno memory leak (isso mesmo!!!). Contudo, vamos desenvolver um serviço que será consumido centenas de vezes ao dia. Esse pequeno memory leak vai derrubar o servidor em pouco tempo.
Código de exemplo: Connection := TDBXConnectionFactory.GetConnection if (System.Assigned(Connection)) then begin try // (...) finally SysUtils.FreeAndNil(Connection); end; end; Cada requisição cai num código como o acima. De fato, o Connection é liberado da memória, porém alguns elementos internos dele, não. Utilizei o "ReportMemoryLeaksOnShutdown := True;" para perceber isso. Segue abaixo o Memory Leak Report: --------------------------- Unexpected Memory Leak --------------------------- An unexpected memory leak has occurred. The unexpected small block leaks are: 1 - 12 bytes: TDBXProperties x 1 61 - 68 bytes: TWideStringList x 1 237 - 252 bytes: Unknown x 1 --------------------------- Importante: Estes 3 objetos (TDBXProperties, TWideStringList e o Unknown), são gerados para cada requisição. Ou seja: se eu receber 100 requisições, serão gerados 100 destes 3 objetos. Para tirar a dúvida se o problema era com o Command ou o Reader que utilizam a conexão, fizemos uma aplicação que apenas efetua o GetConnection e em seguida damos um Free nela, sem utilizarmos absolutamente nada e o erro foi exatamente o mesmo. Alguém, especialmente algum evangelizador, sabe como resolver/contornar esse problema? Se precisar, posso enviar um pequeno projeto para demonstrar o memory leak. --------------------------------- Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]